Frage

Wir prüfen, wie schnell wird ein Algorithmus auf dem FPGA vs normalen Quad x86-Computer ausgeführt wird.

Jetzt auf x86 laufen wir den Algorithmus viele Male, und ein mittleren nehmen, um OS-Overhead zu beseitigen, auch diese „säubert“ die Kurve von Fehlern. Das ist nicht das Problem.

Die Maßnahme im FPGA-Algorithmus ist in Zyklen und nimmt dann die Zyklen der Zeit, mit der FSMD trivial Zyklen zählen sowieso ...

Wir sind der Meinung, dass die Zählung Zyklus sind zu „rein“ zu messen und dies theoretisch getan werden könnte und nicht braucht, um eine wirkliche Maß zu machen oder den Algorithmus in der realen FPGA ausgeführt wird.

Ich möchte wissen, ist gibt es ein Papier oder eine Idee, eine Echtzeit-Maßnahme zu tun.

War es hilfreich?

Lösung

Wenn Sie versuchen, zu stellen, dass die FPGA-Implementierung kompetitiv oder überlegen ist, und daher in der realen Welt nützlich sein könnte, dann möchte ich Sie ermutigen ** Wanduhr mal ** auf dem Multi gegen die FPGA-Implementierung vergleichen. Das wird auch helfen sicherzustellen, dass Sie nicht übersehen Performance-Effekte über die FSM + Datenweg (wie E / A-Verzögerungen).

Ich bin damit einverstanden, dass der Berichtszyklus zählt nur ist nicht repräsentativ, da die FPGA-Zykluszeit 10X sein kann, dass die aus dem Regal Ware Mikroprozessoren.

Nun einige weitere ungebetene Ratschläge. Ich habe zahlreiche FCCM Konferenzen gewesen, und ähnlich, und ich habe viele Dutzende von FPGA-Implementierung vs. CPU Implementierung Performance-Vergleich Papieren gehört. Allzu oft vergleicht ein Papier mit einer benutzerdefinierten FPGA-Implementierung, die Monate in Anspruch nahm, im Vergleich zu einer CPU + Software-Implementierung, wobei der Ingenieur hat gerade den Benchmark-Quellcode aus dem Regal, es kompilierte und lief es an einem Nachmittag. Ich habe keine solche Präsentationen besonders überzeugend finden.

Ein fairer Vergleich würde eine Software-Implementierung bewerten, dass Anwendungen Best Practices, die besten verfügbaren Bibliotheken (zB Intel MKL oder IPP), die über mehrere Kerne verwendet Multithreading, dass gebrauchte Vektor SIMD (zB SSE, AVX, ...) statt skalare Berechnung, die verwendet Tools wie Profilometer leicht behoben Abfälle zu beseitigen und wie Vtune zu verstehen und zu optimieren, den Cache-Speicher-Hierarchie +. Bitte beachten Sie auch sicher sein, die tatsächliche Höhe der Entwicklungszeit auf dem FPGA gegen die Software-Implementierungen ausgegeben zu melden.

Weitere kostenlose Beratung: In dieser Energie konzentriert Zeiten, in denen Ergebnisse / joule Mai Trumpf Ergebnisse / Sekunde, sollten auch die Energieeffizienz Ihrer Implementierungen Berichterstattung

.

Weitere kostenlose Beratung. Bekommen die meisten wiederholbaren Zeiten auf dem „Quad x86“ ist die Maschine stillzulegen, herunterzufahren Hintergrund Prozessoren, Daemons, Dienstleistungen usw., trennen Sie das Netzwerk

Happy Hacking!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top