Werbung
So, was ich schon mal bestätigen kann ist eine gewisse Empfindlichkeit in Sachen USB-Stromkabel. Mit einem, eigentlich ganz gut aussehenden, 1.80m USB-Kabel, mit dem der Raspi 2 problemlos läuft, blinkt beim Raspi 3 die rote LED. Wechsel auf ein 1m Kabel: Problem beseitigt.
Zum Test ein kleines C++ Projekt von mir übersetzt, um mal zu sehen, wie das Verhalten bei real world Anwendungen ist:
Ein time make ergibt auf dem Raspi 2 1m23.546s und auf dem Raspi 3 0m46.468s.
Ein time make -j4 ergibt auf dem Raspi 2 0m52.293s und auf dem Raspi 3 0m27.306s, hier laufen dann vier Compilerinstanzen parallel. Der relative Zeitgewinn ist hier nicht so groß, weil eine Quelldatei recht lang ist.
Beide Rechner mit aktuellem Raspian und ähnlich schnellen Speicherkarten.
oh! du hast einen 3er?
wie läuft dann der Brickbench?![]()
http://www.mindstormsforum.de/viewto...p=67795#p67795
(da der Test bisher für AVRs und VMs etc. designed war, muss man jetzt glaube ich mal langsam alle Tests verzehnfachen und dann durch 10 teilen (float) 8-)
Bei mir nicht, alle Linuxboards laufen "headless" im Netzwerk und haben keinen grafischen Desktop geladen. Dadurch haben sie auch viel mehr Speicher frei, was Tests auch noch verzerren würde.
Noch ne Erkenntnis zum 3er: Die Reichweite des WLAN ist recht bescheiden, verglichen mit Laptop oder Tablett. Habs wieder ausgeschaltet.
den Grafik-Display Teil kann man ntl auskommentieren, aber die Display-Benchmarks sind schon elementar wichtig für die Ermittlung der Gesamt-Leistung (zugegebenermaßen weniger auf dem Raspi allein betrachtet, insb. bei Verwendung von Multitasking), denn gerade im Vergleich zu den Arduinos einerseits und den Lego-ARMs sieht man, wie einem da hier und dort dadurch die Gesamt-Performance verhagelt wird.
Also mir erscheint schon die Kommandozeile für den Compiler da auf der Seite sehr suspekt. Warum verwendet man bei einem Benchmark keine Optimierungen ?
Mit GCC -O2 -lm -o bench bench.c übersetzt kriege ich
Raspi2
Raspi3hw brickbench
initializing...
0 1 int_Add
0 3 int_Mult
0 1 float_op
0 1 randomize
0 0 matrx_algb
0 13 arr_sort
Lässt man die Optimierungen, also das -O2 weg, kommthw brickbench
initializing...
0 1 int_Add
0 2 int_Mult
0 2 float_op
0 0 randomize
0 0 matrx_algb
0 13 arr_sort
Raspi2
Raspi3hw brickbench
initializing...
0 1 int_Add
0 3 int_Mult
0 2 float_op
0 1 randomize
0 1 matrx_algb
0 46 arr_sort
Insgesamt wohl kein wirklich aussagekräftiger Test.hw brickbench
initializing...
0 1 int_Add
0 3 int_Mult
0 2 float_op
0 1 randomize
0 1 matrx_algb
0 42 arr_sort
keine Optimierungen deswegen, weil stur der nackte Code abgearbeitet werden soll.
Optimierungen können z.B. die Zählschleifen mit den Konstanten-Operationen wegoptimieren, deren Werte ja nie benutzt werden, oder auch sonst irgendwie Prozeduren "abkürzen".
Das wäre dann wie Nürburgring-Nordschleife querfeldein abgekürzt per Highspeed-Feldweg oder Hubschrauber.
Es sollen aber alle Oprationen haarklein gemacht werden, damit man sieht, wie lang da wirklich gebraucht wird fürs Laden in und aus Registern, Integer- und fp- Units (soweit vorhanden) und RAM.
hier nochmal zum direkten Vergleich meine B+ und 2B Werte:
bei dir:Code:bench test ms B+ 2B cpu clock 800MHz 900MHz Grafik: openvg Screen: HDMI 1060x600 int_add 1 1 int_mult 3 4 float_op 13 2 mersenne 2 1 matrix 1 2 arr_sort 88 46 text 2630 2626 graph 13333 13333 gesamt ms: 16072 16015 Benchmark: 3111 3122
Code:Raspi2 0 1 int_Add 0 3 int_Mult 0 2 float_op 0 1 randomize 0 1 matrx_algb 0 46 arr_sort(sch*** code tags nur im "erweitert" EditorCode:Raspi3 0 1 int_Add 0 3 int_Mult 0 2 float_op 0 1 randomize 0 1 matrx_algb 0 42 arr_sort
und doch, ich finde ihn SEHR aussagekräftig, weil er nämlich Funktionen wie in echten Programmen benutzt, sowohl low-level shift/XOR als auch high-level shellsort etc.
Da weiß man nämlich wirklich, was man an Mehr oder Weniger später zu erwarten hat.
(Multitasking wird hier nicht getestet, bei float und array_sort sieht man trotzdem stärkere Unterschiede als sonst zwischen B+ und 2B / 3B.)
wäre die Pi 3 cpu aber wirklich 2x schneller, würde man das auch in jedem Einzeltest im Vergleich zum 2B oder B+ sehen, wie auch sonst? Im Vergleich zu den verschiedenen Arduinos sieht man es ja auch!
Lesezeichen