Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Atmel, PIC, VEX, Fischertechnik

Moderator: Moderatoren

HiTek
Schreibt viel
Schreibt viel
Beiträge: 75
Registriert: 5. Mai 2010 10:46

Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HiTek » 12. Feb 2015 08:45

Hallo PC-Experten,

mich hätte interessiert, welche Plattform kompilierten C-Code wahrscheinlich schneller ausführt - ein Raspberry Pi oder ein halbwegs aktuelles Android Smartphone (mir ist klar, dass es hier große Unterschiede gibt). Es geht dabei nicht um Datenbankzugriffe und nicht um Netzwerk- oder WLAN-Aktionen, auch nicht um grafische Operationen. Es geht mir in dem geplanten Programm darum, möglichst viele Zahlen schnell zusammenzuzählen und auf eine etwas größere Menge an Zahlenarrays schnell zuzugreifen.

Ich habe im Internet zu dem Thema bislang nichts gefunden. Aber ich weiß, dass sich manche von Euch mit Benchmarks - z.B. von Arduino-Systemen beschäftigen. Vielleicht könnt ihr mir ja helfen. Vielen Dank im Voraus.

Herzliche Grüße
HiTek

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5351
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HaWe » 12. Feb 2015 09:14

hallo,
nativen C-Code wird ein RasPi vorraussichtlich +/- im gleichen Verhältnis schneller ausführen wie es dem cpu-Taktverhältnis entspricht.
Der RasPi B läuft mit 700 MHz, also wird er etwa doppelt so schnell rechnen wie der EV3.
Dass das so sein wird, kann man bereits an meinem Brickbench für die anderen Plattformen sehen.
Wissenswert ist beim reinen Takt-Vergleich aber noch, ob der Prozessor noch einen fpu- Coprozessor hat (wie die ARM-Cortex-Systeme, u.a. auch Arduino Due; die "reinen" ARM7 oder ARM9-Systeme haben keinen!)
Unterschiede im Verhältnis 1:2 wird man aber im täglichen Betrieb kaum merklich spüren.

Ganz anders wird die Sache für andere Betriebssysteme und Programmierplattformen aussehen (Java, Python,... ). Wie es hier aussieht, würde mich auch interessieren, ich habe allerdings selber keinen RasPi .

ps, edit:
ich selber setze momentan auf den Arduino Tre. Er entspricht am ehesten einem BeagleBone Black plus einem aufgesetzten zusätzlichen AVR (Arduino-Uno) -Huckepack-Prozessor.
Er wird mit 1 Ghz Takt laufen und wird die bekannte und bekannt einfache Arduino-Sketch-IDE als sog. "Web-IDE" bieten, d.h. der Compiler läuft auf dem Arduino selber, der als Webserver konfiguriert ist und als Schnittstelle eine Website aufbaut, die den Editor für den Compiler beinhaltet. Sehr schlau gemacht, finde ich, wenn's denn so kommt wie gedacht.)
Bild
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

HiTek
Schreibt viel
Schreibt viel
Beiträge: 75
Registriert: 5. Mai 2010 10:46

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HiTek » 12. Feb 2015 09:48

Hallo HaWe,
vielen Dank für deine Antwort. Ich habe deinen Benchmarktest vor einiger Zeit bereits studiert. Vielen Dank. Es ist gut zu wissen, dass es hier Experten gibt, die sich zwischen den LEGO- und den ARM-Welten bewegen. Die Folgerungen sind klar: Nimm eher einen Arduino oder einer Raspi als einen NXT oder EV3, wenn du grosse Rechenleistung für dein Roboterprojekt brauchst.

Aber wie sieht das jetzt mit den Smartphones aus? Sind die noch schneller? Die Prozessoren sind Zwei- oder Vierkerner, ihre Taktrate beträgt mehr als 1 GHz, 1,2 bei einem bescheidenen Samsung S3 mini, 1,5 GHz etwa bei einem Nexus 7 und 2,5 GHz bei einem aktuellen Samsung Galaxy S5.

Gilt hier: Je höher der Takt, desto schneller, wenn man NUR (!!) Zahlenarithmetik (!!) betreibt?

HiTek grüßt

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5351
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HaWe » 12. Feb 2015 10:04

Also erstmal: ein Experte bin ich ganz sicher nicht, ich bin ein ganz einfacher Hobby-Programmierer.
Experten spielen in einer ganz anderen Liga.

zu den Androids: auch eine gute Idee. Leider haben die aber keine I/Os für Motoren und Sensoren (außer ein paar fest eingebaute), können also nur schnell rechnen und dann z.B. EV3s per BT oder WiFi fernsteuern (wie es D. Gilday mit seinem Cubestormer macht). Multicore-Prozessoren werden hier gut programmierte Multitasking-Anwendungen sehr stark beschleunigen können. Für Cam-basierte Programme sicher eine Alternative zu RasPi und BBB und Tre, für schwerpunktmäßig I/O basierte Programme mMn wschl eher nicht.
Wenn es native Executables für Rechenaufgaben sind, wird der cpu-Takt (plus fpu) ausschlaggebend sein. Aber viele Smartphones laufen ja mit Java, das sind dann aber gar keine Executables.
Gerade beim Vergleich von Linux-Systemen (z.B. Galileo und BBB) vs. Arduino AVR berichten viele Insider, dass man insb. für schnelle I/Os an AVR-Prozessoren nicht vorbeikommt, denn der Weg zu den I/Os sei bei den reinen ARM-Linux-Systemen spürbar länger und langsamer - daher ja auch der zusätzliche AVR-Coprozessor beim Tre.

Wissen wie schnell sie sind wird man aber sicher erst dann, wenn man es auch wirklich testet, und mich würden solche Tests auch sehr interessieren. Ohne reichlich I/Os macht das aber für Roboter wenig Sinn, finde ich.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

HiTek
Schreibt viel
Schreibt viel
Beiträge: 75
Registriert: 5. Mai 2010 10:46

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HiTek » 12. Feb 2015 12:09

Hi HaWe,

der Verweis auf den CubeStormer war interessant. Ich glaube, Gilday hat ähnliche Anforderungen wie ich: Es geht ums schnelle Rechnen. Die Bewegung ist eine separate Angelegenheit, die ein NXT oder ein EV3 machen kann - ähnlich wie beim menschlichen Körper, da gibt es ja auch scheinbar unbewusste Reflexe und bewusste Bewegungen, die gezielt über das potentere Gehirn gesteuert werden müssen.

Die schnelle Ansteuerung für Motoren oder Sensoren ist mir bei meinem Projekt nicht wichtig. Also lohnt es sich, mit den Smartphones zu spielen (natürlich nicht mit interpretierten Java, sondern mit kompilierten C++-Code. Ich habe auch schon gesehen, dass manche dafür Python-Code mit eingebettetem C verwenden - 70x schneller als Java. (Abgesehen davon kann ein Smartphone von Haus aus auch besser sprechen als ein NXT oder ein Arduino - aber das ist eine andere Geschichte).

Welche Erfahrungen hast du eigentlich bei deinen Arduino-Versuchen gemacht? Wie schnell ist die Ansteuerung z.B. der Lego-NXT-Standardmotoren? Geht das über den Arduino oder über den NXT schneller, bis die Bewegung ausgeführt wurde?

fragt HiTek

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5351
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HaWe » 12. Feb 2015 12:20

die Ansteuerung der Encodermotoren ist mit den Arduinos deutlich schneller, und zwar schon mit den ganz kleinen Unos (alle AVRs laufen durchweg mit 16MHz cpu-Takt):
das Auslesen der Encoder-Pins könnte problemlos im 10µs-Takt erfolgen, also 100x so schnell wie beim NXT oder EV3 - was ntl keinen Sinn macht. Ich selber messe im 250µs-Takt und kann damit die Encoder doppelt so genau auslesen wie Lego (d.h. in 0,5° - Schritten), worauf ich selber aber aus Gründen der Einfachheit sogar verzichte, weil ich diese Genauigkeit nicht brauche. Wer sie aber braucht, kann sie nutzen.
Die Arduinos haben eigene libs für eine recht gute PID-Steuerung, die genauer arbeitet als die der NXT-VM, aber die ich noch nicht so gut tunen konnte wie meine selber programmierte NXC-PID-Steuerung. Allerdings muss man einräumen, dass auch hier die sehr langsame NXC-EFW limitierend ist, die zusätzlich von anderen NXT-Modulen ausgebremst wird.

Beim Arduino ist das nicht so, da die Encoder in Echtzeit durch Hardware-Timer-Interrupts gesteuert werden, die absolut unbeirrbar bei jedem (z.B. ) 4000sten Prozessor-Taktsignal den Interrupt zum Pin-Lesen auslösen. Da gibt es keine Störeinflüsse (wenn man nicht Blödsinn programmiert und das mit anderen Timer-Interrupts eigenhändig blockiert - in C und mit Executables geht eben alles).

Auch die pwm-Steuerung ist exakter, denn es sind 510 Schritte von -255 bis +255 möglich statt nur 200 von -100 bis +100. Auch ist Bremsen mit einstellbarer Stärke möglich (abhängig von den Motortreibern).
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

HiTek
Schreibt viel
Schreibt viel
Beiträge: 75
Registriert: 5. Mai 2010 10:46

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HiTek » 12. Feb 2015 12:37

Upps, das hört sich richtig gut an!!! Merci, vielen Dank für Deine Hilfe und Deine Infos.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5351
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HaWe » 12. Feb 2015 12:40

gern, und wenn du es schaffst, benchmarks auf irgendeiner Plattform zum Vergleich zum Laufen zu kriegen: sag Bescheid! :)
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

HiTek
Schreibt viel
Schreibt viel
Beiträge: 75
Registriert: 5. Mai 2010 10:46

Re: Geschwindigkeitsvergleich Raspberry Pi und Smartphone

Beitragvon HiTek » 12. Feb 2015 13:17

Ok, das kann ich gerne tun.


Zurück zu „allgemeine / Nicht-Lego-Robotik und Elektronik“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss