Forum: Mikrocontroller und Digitale Elektronik Fließkomma-Rechenleistung von ARM-Prozessoren


von Peter D. (peter9)


Lesenswert?

Hallo allerseits,

ich suche seit zwei Tagen krampfhaft nach näheren Informationen 
(Spezifikationen) über die Fließkomma-Rechenleistung (auch FLOPS 
genannt) von ARM-Prozessoren.

Seit einigen Jahren beschäftige ich mich beruflich mit kleineren 
Modellen (ARM3, z.B. SIM3U16x von SILABS), bei denen die FLOPS eher 
uninteressant sind, da dort nur wenig mit floats gerechnet wird.

Aktuell habe ich ein Projekt vor der Brust, bei dem so richtig viel 
gerechnet werden muss. Ein ATOM-PC (1.6GHz), auf dem ein 
Parallel-Projekt läuft, schafft mindestens 200 MFLOPS.

Ist sowas überhaupt mit einem ARM (mit FPU) zu meistern?

Bei Taskit gibt es z.B. ein Board mit AT91SAM5D36 von Atmel. Der hat 
eine FPU, aber keinerlei Angaben zu FLOPS. Getaktet wird der µC mit 
528MHz. Theoretisch, wenn die FPU ebenfalls mit dieser Freq getaktet 
wird, müssten 500 MFLOPS zu schaffen sein. Oder mache ich einen 
Denkfehler?

Wo bekommt man nähere Informationen?

Benchmark-Tabellen? (Für PC-Prozessoren gibt es sowas auf unzähligen 
Seiten!)

Viele Grüße
Peter

von (prx) A. K. (prx)


Lesenswert?

Peter D. schrieb:
> Aktuell habe ich ein Projekt vor der Brust, bei dem so richtig viel
> gerechnet werden muss. Ein ATOM-PC (1.6GHz), auf dem ein
> Parallel-Projekt läuft, schafft mindestens 200 MFLOPS.
>
> Ist sowas überhaupt mit einem ARM (mit FPU) zu meistern?

Wenn du in der Performance-Klasse eines Intel Atoms landet willst, dann 
schau dich bei jener Sorte ARMs um, wie du sie in Highend-Handys und 
-Tabs findest. So ungefähr ab Qualcomm Krait und Cortex A15 Cores.

Oder orientiere dich in Richtung DSP oder GPU.

> Benchmark-Tabellen? (Für PC-Prozessoren gibt es sowas auf unzähligen
> Seiten!)

Für Android-Handys und -Tabs auch.

von Arc N. (arc)


Lesenswert?

Peter D. schrieb:
> Hallo allerseits,
>
> ich suche seit zwei Tagen krampfhaft nach näheren Informationen
> (Spezifikationen) über die Fließkomma-Rechenleistung (auch FLOPS
> genannt) von ARM-Prozessoren.
>
> Seit einigen Jahren beschäftige ich mich beruflich mit kleineren
> Modellen (ARM3, z.B. SIM3U16x von SILABS), bei denen die FLOPS eher
> uninteressant sind, da dort nur wenig mit floats gerechnet wird.
>
> Aktuell habe ich ein Projekt vor der Brust, bei dem so richtig viel
> gerechnet werden muss. Ein ATOM-PC (1.6GHz), auf dem ein
> Parallel-Projekt läuft, schafft mindestens 200 MFLOPS.
>
> Ist sowas überhaupt mit einem ARM (mit FPU) zu meistern?

Es geht um 64-Bit double?
Zum Cortex-A8 gibt es entsprechende Informationen:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/ch16s07s01.html
Die VFP ist non-pipelined... Die NFP dagegen pipelined allerdings kann 
die nur single precision...
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/BCGEIHDJ.html

Ein Vergleich Atom N330 1.6 GHz vs. Beagle Board OMAP3530 600 MHz
http://www.ee.unlv.edu/~meiyang/ecg700/readings/ARM%20Cortex-A8%20vs.%20Intel%20Atom.pdf
Linpack Atom 933 MFlops, OMAP 23 MFlops

Wenn sich die Berechnungen mit (Integer-)SIMD-Befehlen machen ließen 
(und parallelisierbar sind) dürfte es ausgeglichener aussehen (keine 
Benchmark zur Hand)

von Michael H. (dowjones)


Lesenswert?

> Aktuell habe ich ein Projekt vor der Brust, bei dem so richtig viel
> gerechnet werden muss. Ein ATOM-PC (1.6GHz), auf dem ein
> Parallel-Projekt läuft, schafft mindestens 200 MFLOPS.
>
> Ist sowas überhaupt mit einem ARM (mit FPU) zu meistern?

Prinzipiell denke ich schon. Ich blicke bei der Nummerierung von 
ARM-Komponenten zwar nicht durch, aber einige wenige Angaben kann man 
bei ARM durchaus finden:
VFP9-S: 1.3Mflops/MHz
VFP10: 2.0Mflops/MHz
Quelle: 
http://www.arm.com/products/processors/technologies/vector-floating-point.php

Das klingt doch schonmal vielversprechend. :)  Man müsste jetzt nur 
herausfinden welche konkreten Chips diese FPUs verwenden...

von (prx) A. K. (prx)


Lesenswert?

Pass auf, dass du nicht Äpfel und Birnen vergleichst. Ein alter 1,6GHz 
single Core Atom kann in Benchmarks auf 2100 MFLOPs kommen. Das 
theoretische Limit dürfte noch weit darüber liegen.

Was ein wenig mehr ist als deine oben erwähnten 200 MFLOPs.
Soll heissen: 1 MFLOP != 1 MFLOP.

von Mike (Gast)


Lesenswert?

Peter D. schrieb:
> Aktuell habe ich ein Projekt vor der Brust, bei dem so richtig viel
> gerechnet werden muss.

Dann überlege, ab sich das auf einer GPU parallelisieren läßt

von Peter D. (peter9)


Lesenswert?

Moin Moin,

vielen Dank für eure ausführlichen Antworten.

Die 200 MFLOPS beim ATOM waren auch nur ein grober Richtwert. Ein Faktor 
10 wäre noch akzeptabel, da beim ATOM die Berechnungs-Routine ca. 500ms 
benötigt. Beim ARM hätte sie auch 5 Sek. benötigen dürfen. Nur nicht 5 
Stunden :(

Die Angaben von Michael:

VFP9-S: 1.3Mflops/MHz
VFP10: 2.0Mflops/MHz

sind ja schon mal ein Wort. Das ist ja sogar mehr als ich theoretisch 
geschätzt hatte.

Es würden übrigens float-Berechnungen (IEEE) reichen (kein 
64-Bit-double!).

Momentan ist das Projekt aber wieder auf Eis gelegt (liegt aber nicht am 
ARM-Prozessor!).

Der AT91SAM5D36 von Atmel hat übrigens "nur" einen VFP4. Wieviel FLOPS 
der nun kann habe ich noch nicht gefunden...

Grüße
Peter

von Hans (Gast)


Lesenswert?

Sonst seh dir mal die Xilinx Zynq an. Das ist ein dual ARM mit FPGA. Den 
haben wir für sehr rechenintensive Algorithmen benutzt und sind auf 
Rechenleistungen eines iCore 7 Pentiums gekommen. Setzte allerdings 
einiges an Arbeit voraus.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.