1. Foren
  2. Kommentare
  3. Sonstiges
  4. Alle Kommentare zum Artikel
  5. › Vitis Software Platform: Xilinx…

Wie soll das gehen?

  1. Thema

Neues Thema Ansicht wechseln


  1. Wie soll das gehen?

    Autor: M.P. 02.10.19 - 08:41

    Ein FPGA in C++ oder gar Python programmieren?

    Das erinnert an den alten Wahlspruch "Meister, ich kann auch mit dem Hammer schrauben"...

    Aber wenn man sich die Liste der Anwendungsfälle anschaut, kriegt man ja noch mehr Fragezeichen...

  2. Re: Wie soll das gehen?

    Autor: tunnelblick 02.10.19 - 08:52

    M.P. schrieb:
    --------------------------------------------------------------------------------
    > Ein FPGA in C++ oder gar Python programmieren?
    >
    > Das erinnert an den alten Wahlspruch "Meister, ich kann auch mit dem Hammer
    > schrauben"...
    >
    > Aber wenn man sich die Liste der Anwendungsfälle anschaut, kriegt man ja
    > noch mehr Fragezeichen...

    Man versucht es doch seit Jahren. Zu meiner Zeit war SystemC der große Hype, der vhdl-Code, der da raus fiel jedoch alles andere als hype-verdächtig.
    Es ist einfach etwas anderes einen fpga zu programmieren. Semantisch möchte man zwar sehr ähnliches manchmal auch mit Software erreichen, aber das ist halt relativ schwer automatisch zu erkennen, zumal sich für viele Fälle aus dem Software Bereich fpgas auch gar nicht sonderlich gut eignen.

  3. Re: Wie soll das gehen?

    Autor: nuclear 02.10.19 - 09:20

    Na ja. Wenn ich das richtig verstehe ist das "programmieren" da nur noch eine Reihe von API-Calls von irgendwelchen 3rd party Programmen.
    Das könnte in der Tat funktionieren, jedoch ist das dann kein FPGA programmieren mehr. Das kann man dann auch einfach graphisch zusammenklicken.

    Was mir noch fehlt ist jedoch, wie die Daten vorher bearbeitet werden sollen, wie das Speichermanagement funktionieren soll etc. Wenn das alles aus den C++ Code synthetisiert werden soll sehe ich schwarz.

  4. Re: Wie soll das gehen?

    Autor: Daniel89 02.10.19 - 10:33

    Ein FPGA "programmiert" man nicht. Vielmehr beschreibt man mit der Sprache eine Schaltung, bzw. eine Funktion!
    Selbst wenn man nun mit Python arbeitet programmiert man das FPGA nicht. Man beschreibt in Python eine Funktion, die dann durch eine Schnittstelle in eine HDL und damit in den Bitstream für das FPGA umgewandelt wird (bei C/C++ genauso).
    Das "neue" ist nun, dass etablierte Frameworks in Python genutzt werden können (z. B. TensorFlow) um ein neuronales Netz zu entwerfen und das Framework bastelt dir daraus dann eine Hardwareversion. So etwas gibt es seitens Xilinx schon für OpenCV und C++ (siehe Xilinx HP - ich darf leider keine Links einfügen -.-).

    Was einem klar sein muss ist, dass nicht alle Funktionen in Hardware nachgebildet werden können (z. B. dürfte das für das Exportieren und Speichern des TensorFlow Graphen gelten). Vielmehr baut man sich einen Rechenbeschleuniger, der dieses spezielle Problem, welches man in Python beschrieben hat, beschleunigt. Klar, man kann das auch per Verilog / VHDL machen, aber so ist es durchaus bequemer, da man in Python die Gewichte des Netzes einfach importieren kann und die Synthese macht dir daraus das Design.

    Und was man nicht vergessen darf...
    Damit aus so einer (High)High Level Synthese auch ein optimales Design rauskommt, muss man wissen was man tut! Ansonsten wird das Design sehr schnell ineffizient (gilt aber auch schon für die "alte" C HLS).

  5. Re: Wie soll das gehen?

    Autor: M.P. 02.10.19 - 10:47

    > Ein FPGA "programmiert" man nicht.

    Da frage ich mich doch, was das "P" in FPGA bedeutet ;-)

    Ich frage mich eben, wie man mit den Semantiken von Python oder C++ die Funktionsweise eines FPGA abbilden kann...



    void main()
    {
    printf ("\nHello World");
    }

    in VHDL-Code umzusetzen stelle ich mir schon etwas interessant vor ...



    1 mal bearbeitet, zuletzt am 02.10.19 10:51 durch M.P..

  6. Re: Wie soll das gehen?

    Autor: Daniel89 02.10.19 - 11:09

    M.P. schrieb:
    --------------------------------------------------------------------------------
    > > Ein FPGA "programmiert" man nicht.
    >
    > Da frage ich mich doch, was das "P" in FPGA bedeutet ;-)
    >
    > Ich frage mich eben, wie man mit den Semantiken von Python oder C++ die
    > Funktionsweise eines FPGA abbilden kann...
    >
    > void main()
    > {
    > printf ("\nHello World");
    > }
    >
    > in VHDL-Code umzusetzen stelle ich mir schon etwas interessant vor ...

    Das ist eher eine unscharfe Übersetzung aus dem Englischen ins Deutsche. Auf einem FPGA läuft kein Programm, weshalb der Begriff "Programmieren" in Form von "Ich entwerfe ein Programm für das FPGA" nicht greift.

    Xilinx beschreibt in seinen x Dokumenten sehr gut was mit einer HLS umsetzbar ist und was nicht. Ein kleiner Auszug aus dem was NICHT geht (siehe Xilinx UG902 (v2014.1) S. 313):
    - System calls (also auch printf)
    - Dynamischer Speicher
    - (Pointer) - Beschränkt nutzbar
    - Dynamische Strukturen (also verlinkte Listen, etc.)

    Das selbe wird natürlich auch für die Python-Implementierung gelten. Alle System calls werden wegfallen, wodurch z. B. ein "open" nicht mehr funktioniert, bzw. das Schreiben und Lesen einer Datei auch nicht.

  7. Re: Wie soll das gehen?

    Autor: lost_bit 02.10.19 - 13:19

    Field programmable gate array - du Programmierst den nicht. Man schreibt auch keinen Programmcode. Vielmehr entwickelt man eine Hardwarebeschreibung. In dem FPGA ist ja dann irgendwo so ein kleiner MCU der dir dann bei Stromversorgung die ganzen Gates so konfiguriert (programmiert) das deine Entwurf da dann laufen kann.

  8. Re: Wie soll das gehen?

    Autor: M.P. 02.10.19 - 13:44

    Dann stelle ich meine Frage um: Wie soll (Bzw. warum sollte...) man eine Hardware-Beschreibung in C++ oder Python formulieren?

    Die Sematiken von C++ und Python sind doch für etwas ganz anderes erfunden worden ...

  9. Re: Wie soll das gehen?

    Autor: schnedan 03.10.19 - 10:23

    Warum?
    Es liegt Code in C/C++ / Python vor, der übernommen werden soll
    weil er alt und bewährt ist, weil er schlecht dokumentiert ist und ihn keiner mehr versteht, Rapid Prototyping, weil in der Abteilung die die Algorithmen entwickelt keiner HDL kann, Weil auf einem System schnell neue Algorithmen integriert werden müssen...
    Gründe gibts genug

    außerdem ist C ud Verilog in den Grundlagen schon recht ähnlich. d.h. reines C ohne Libary Funktionen kann man schon recht gut übersetzen... und darüber hinaus geht auch viel... nicht alles aber genug.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. über duerenhoff GmbH, Nürnberg
  2. MKL Ingenieurgesellschaft mbH, München
  3. PROSIS GmbH, verschiedene Standorte
  4. GEWOBAG Wohnungsbau-Aktiengesellschaft Berlin, Berlin

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 19,95€
  2. 18,99€
  3. (-60%) 23,99€
  4. 6,63€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Razer Blade Stealth 13 im Test: Sieg auf ganzer Linie
Razer Blade Stealth 13 im Test
Sieg auf ganzer Linie

Gute Spieleleistung, gute Akkulaufzeit, helles Display und eine exzellente Tastatur: Mit dem Razer Blade Stealth 13 machen Käufer eigentlich kaum einen Fehler - es sei denn, sie kaufen die 4K-Version.
Ein Test von Oliver Nickel

  1. Naga Left-Handed Edition Razer will seine Linkshändermaus wieder anbieten
  2. Junglecat Razer-Controller macht das Smartphone zur Switch
  3. Tartarus Pro Razers Tastenpad hat zwei einstellbare Schaltpunkte

Cloud Gaming im Test: Leise ruckelt der Stream
Cloud Gaming im Test
Leise ruckelt der Stream

Kurz vor Weihnachten werben Dienste wie Google Stadia und Playstation Now um Kunden - mit noch nicht ganz perfekter Technik. Golem.de hat Cloud Gaming bei mehreren Anbietern ausprobiert und stellt Geschäftsmodelle und Besonderheiten vor.
Von Peter Steinlechner

  1. Apple und Google Die wollen nicht nur spielen
  2. Medienbericht Twitch plant Spielestreaming ab 2020
  3. Spielestreaming Wie archiviert man Games ohne Datenträger?

Energiewende: Grüner Wasserstoff aus der Zinnschmelze
Energiewende
Grüner Wasserstoff aus der Zinnschmelze

Wasserstoff ist wichtig für die Energiewende. Er kann als Treibstoff für Brennstoffzellenautos genutzt werden und gilt als sauber. Seine Herstellung ist es aber bislang nicht. Karlsruher Forscher haben nun ein Verfahren entwickelt, bei dem kein schädliches Kohlendioxid entsteht.
Ein Bericht von Werner Pluta

  1. Brennstoffzelle Deutschland bekommt mehr Wasserstofftankstellen
  2. Energiewende Hamburg will große Wasserstoff-Elektrolyseanlage bauen

  1. I am Jesus Christ: Mit dem Jesus-Simulator die Wiederauferstehung schaffen
    I am Jesus Christ
    Mit dem Jesus-Simulator die Wiederauferstehung schaffen

    In I am Jesus Christ sollen PC-Spieler aus der Ich-Perspektive als Sohn Gottes antreten, Gutes tun und gegen Satan kämpfen können. Unklar ist derzeit unter anderem, ob das Programm rechtzeitig zu Weihnachten fertig wird.

  2. Dorothee Bär: Daten von Kindern sollen im Internet besser geschützt werden
    Dorothee Bär
    Daten von Kindern sollen im Internet besser geschützt werden

    Deutschlands Digital-Staatsministerin Dorothee Bär will Kinder im Internet besser schützen: Persönliche Daten sollen nicht mehr für die Erstellung von Nutzerprofilen oder zu Werbezwecken verwendet werden dürfen. Die FDP hält ein Verbot für kontraproduktiv.

  3. Mobilität: E-Scooter sollen gesondert in Unfallstatistik erscheinen
    Mobilität
    E-Scooter sollen gesondert in Unfallstatistik erscheinen

    Bislang gibt es keine offiziellen Zahlen dazu, wie viele Unfälle in Deutschland durch Fahrer von E-Scootern verursacht wurden. Das soll sich demnächst ändern; erste Zwischenbilanzen zeigen, dass bei Unfällen mit den Tretrollern die Verursacher meist deren Fahrer sind.


  1. 17:28

  2. 15:19

  3. 15:03

  4. 14:26

  5. 13:27

  6. 13:02

  7. 22:22

  8. 18:19