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. ITEOS, verschiedene Standorte
  2. Hornbach-Baumarkt-AG, Bornheim bei Landau / Pfalz
  3. medneo GmbH, Berlin
  4. Deloitte, Düsseldorf, Hamburg

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 20,49€
  2. (-40%) 32,99€
  3. 4,32€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Ryzen Mobile 4000 (Renoir): Lasst die Ära der schrottigen AMD-Notebooks enden!
Ryzen Mobile 4000 (Renoir)
Lasst die Ära der schrottigen AMD-Notebooks enden!

Seit vielen Jahren gibt es kaum Premium-Geräte mit AMD-Chips und selbst bei vermeintlich identischer Ausstattung fehlen Eigenschaften wie eine beleuchtete Tastatur oder Thunderbolt 3. Schluss damit!
Ein IMHO von Marc Sauter

  1. HEDT-Prozessor 64-kerniger Threadripper schlägt 20.000-Dollar-Xeons
  2. Ryzen Mobile 4000 AMDs Renoir hat acht 7-nm-Kerne für Ultrabooks
  3. Zen+ AMD verkauft Ryzen 5 1600 mit flotteren CPU-Kernen

Holo-Monitor angeschaut: Looking Glass' 8K-Monitor erzeugt Holo-Bild
Holo-Monitor angeschaut
Looking Glass' 8K-Monitor erzeugt Holo-Bild

CES 2020 Mit seinem neuen 8K-Monitor hat Looking Glass Factory eine Möglichkeit geschaffen, ohne zusätzliche Hardware 3D-Material zu betrachten. Die holographische Projektion wird in einem Glaskubus erzeugt und sieht beeindruckend realistisch aus.
Von Tobias Költzsch und Martin Wolf

  1. UHD Alliance Fernseher mit Filmmaker-Modus kommen noch 2020
  2. Alienware Concept Ufo im Hands on Die Switch für Erwachsene
  3. Galaxy Home Mini Samsung schraubt Erwartungen an Bixby herunter

Open Power CPU: Open-Source-ISA als letzte Chance
Open Power CPU
Open-Source-ISA als letzte Chance

Die CPU-Architektur Power fristet derzeit ein Nischendasein, wird aber Open Source. Das könnte auch mit Blick auf RISC-V ein notwendiger Befreiungsschlag werden. Dafür muss aber einiges zusammenkommen und sehr viel passen.
Eine Analyse von Sebastian Grüner

  1. Open Source Monitoring-Lösung Sentry wechselt auf proprietäre Lizenz
  2. VPN Wireguard fliegt wegen Spendenaufruf aus Play Store
  3. Picolibc Neue C-Bibliothek für Embedded-Systeme vorgestellt

  1. Beschlagnahmt: Webseite bot 12 Milliarden Zugangsdaten zum Verkauf an
    Beschlagnahmt
    Webseite bot 12 Milliarden Zugangsdaten zum Verkauf an

    Betreiber verhaftet, Domain und Server beschlagnahmt: Die Webseite Weleakinfo.com hatte im großen Stil mit Zugangsdaten gehandelt, die aus über 10.000 Datenlecks stammen sollen.

  2. Bürogebäude Karl: Apple baut Standort in München deutlich aus
    Bürogebäude Karl
    Apple baut Standort in München deutlich aus

    Apple wird seine Aktivitäten in München offenbar deutlich ausbauen und auch ein neues Bürogebäude beziehen, das Platz für 1.500 Beschäftigte bietet. In München betreibt Apple bereits das Bavarian Design Center mit 300 Mitarbeitern.

  3. Seehofer: 5G-Netz ohne Huawei kurzfristig nicht machbar
    Seehofer
    5G-Netz ohne Huawei kurzfristig nicht machbar

    Bundesinnenminister Horst Seehofer spricht sich "gegen globale und pauschale Handelsbeschränkungen" aus. In Bezug auf Huawei wurde er noch deutlicher.


  1. 15:08

  2. 13:26

  3. 13:16

  4. 19:02

  5. 18:14

  6. 17:49

  7. 17:29

  8. 17:10