Ich bin auch daran interessiert, mit FPGA wie Zynq zu beschleunigen. Als Software-Shop möchte ich einen Ansatz verfolgen, der sich schnell beschleunigen lässt, ohne zu viel nachzudenken. Selbst wenn ich FPGA verwende, möchte ich versuchen, wie man es verwendet, damit eine Implementierung, die OpenCV entspricht, im Voraus vorbereitet wird. Ich habe jedoch immer noch keine Chance, es zu versuchen.
"Beschleunigen Sie OpenCV-Anwendungen auf allen programmierbaren SoCs des Zynq-7000 mit der Vivado HLS-Videobibliothek."
http://japan.xilinx.com/support/documentation/application_notes/j_xapp1167.pdf
Evaluating Vivado High-Level Synthesis on OpenCV Functions http://www.idt.mdh.se/utbildning/exjobb/files/TR1803.pdf
FPGA Room Ich habe versucht, OpenCV mit Vivado HLS 2015.4 1 zu verwenden
Die Methode zur Implementierung von OpenCV von Vivado HLS, die ich jetzt verwenden werde, besteht darin, dass der Eingabe- / Ausgabeteil der Hardware-Funktion von AXI4 Stream ausgeführt wird. Auf dem Prüfstand wird IplImage2AXIvideo () verwendet, um IplImage in AXI4 Stream zu konvertieren, das dann in image_filter () eingefügt wird, und nach der Verarbeitung wird AXIvideo2IplImage () verwendet, um AXI4 Stream in IplImage zu konvertieren.
FPGA-Raum 7 (FAST Corners Detection 1) mit OpenCV mit Vivado HLS 2015.4
Ich verwende den von Xilinx bereitgestellten Code für die Synthese auf hoher Ebene wie folgt. hls::AXIvideo2Mat(INPUT_STREAM, img_0); hls::Duplicate(img_0, img_1, img_1_); hls::CvtColor<HLS_BGR2GRAY>(img_1, img_1g); hls::FASTX(img_1g, mask, 20, true); hls::Dilate(mask, dmask); hls::PaintMask(img_1_, dmask, img_3, color); hls::Mat2AXIvideo(img_3, OUTPUT_STREAM);
Solange Sie es auf diese Weise verwenden, können Sie FPGA verwenden, ohne über Verilog HDL Bescheid zu wissen. Wenn es darum geht, schnell Ergebnisse zu erzielen, ist es für Softwareläden am besten, das Schreiben von Verilog HDL zu vermeiden.
Wir untersuchen PYNQ.
Zu diesem Zeitpunkt sollte jeder, der mit dem Raspberry Pi vertraut ist, ihn auf die gleiche Weise starten können.
Der Autor der FPGA Room-Site schreibt weiterhin viele andere nützliche Artikel.
Beispiel für die Verwendung von BNN-PYNQ auf der PYNQ-Karte: Ich habe ein Cifar10-Beispiel, das ich bereits gelernt habe und das ich in der Jupyter-Notebook-Umgebung ausführe.
Zynq auf Python ausführen! PYNQ = Python + Zynq --Xilinx PYNQ-Entwicklungshintergrund und zukünftige Ausrichtung
Implementierung von Deep Learning durch FPGA --qiita Deep Learning mit FPGA ausprobieren - Gurken auswählen
Dies ist eine Implementierung des PYNQ-Boards mit BNN-PYNQ. -Ich lerne von Sortieren von "Gurken" durch tiefes Lernen mit TensorFlow.
connpass FPGA Extreme Computing
connpass "PYNQ Festival" Erweiterter Kampf: FPGA Deep Learning Practice Geselliges Beisammensein
Interface Juni 2017 Ausgabe Die Welt des Hard Computing ... Ultraschnelles Python mit GPU & FPGA
In letzter Zeit ist die Universität beschäftigt und ich hatte keine Zeit, HDL zu schreiben. Daher mache ich seit etwa 2015 eine Synthese auf hohem Niveau. Mit Xilinx 'High-Level-Synthesewerkzeug "Vivado HLS" (High-Level-Synthese) können Sie auf einmal synthetisieren. Ich dachte: "So einfach ist das." An der Universität verwenden wir kein Verilog HDL (die in FPGAs häufig verwendete Hardwarebeschreibungssprache) und unterrichten nur Synthese auf hohem Niveau. Alle Schüler verwenden FPGA bereits so, als würden sie Software-Code schreiben.
── Was kann ich für die Deep-Learning-Bibliothek verwenden?
Nakahara TensorFlow, Caffe, Chainer usw. können verwendet werden. Da je nach Unternehmen oder Abteilung verschiedene Frameworks verwendet werden, werden mehrere Frameworks unterstützt. Wenn Sie den Code in Python schreiben, etwas Einfallsreichtum machen, ihn in C ++ und das Xilinx-Tool einfügen, funktioniert er.
──Ist es in Ordnung, wenn Sie Python schreiben können, um mit FPGA an Deep Learning zu arbeiten?
Nakahara ist in Ordnung. Sie müssen nicht einmal C-Sprache schreiben.
--SlideShare Ich hätte super in maschinelles Lernen eingeführt werden sollen ... Ich habe FPGA berührt, bevor ich es wusste
--qiita Es ist Zeit für Programmierer, FPGA zu berühren!
Das Jupyter-Notizbuch wird in diesem Artikel auch im Betriebsbeispiel der handschriftlichen Erkennung von Zahlenzeichen (MNIST) durch Deep Learning (CNN) verwendet. Daher ist es einfach, den Inhalt so zu bestätigen, als ob eine der Ein- und Ausgaben ein Bild ist.
--SlideShare Professor Nakaharas High-Level-Synthesedemo TensorFlow Ich habe versucht, ein binärisiertes CNN-DQN mit FPGA auszuführen
github https://github.com/HirokiNakahara/GUINNESS
Hinweis: Sie können Videos finden, indem Sie auf YouTube nach PYNQ suchen.
Deep Learning verwendet die Sigmoid-Funktion nicht wie das alte neuronale Netzwerk. Daher ist es schwierig, dass die Empfindlichkeit aufgrund der Sättigung schlecht wird. Unter Verwendung dieser Tatsache ist es möglich, das Gewicht auszudrücken, das die Verbindung mit einem Datentyp mit einer kleinen Bitbreite angibt. Die Verwendung des INT8-Typs macht die Daten viel kleiner als die Verwendung von Gleitkommawerten, und die Berechnung ist einfacher, was die Schaltung erleichtert.
Eine lineare algebraische [BLAS] -Bibliothek (https://www.xilinx.com/applications/megatrends/machine-learning.html) wird bereitgestellt. Es erleichtert die Verwendung von Algorithmen, die in Standardbibliotheken geschrieben sind. Auch in diesem Fall ist es für 16-Bit- und 8-Bit-Ganzzahlen optimiert.
GoogLeNet SSD FCN-AlexNet AlexNet VGG
Es scheint Informationen zu geben, für die die Schaltung erzeugt werden kann.
--Alteras Artikel Warum FPGA für die CNN-Implementierung am besten geeignet ist --Intel-Pressemitteilung [Intel realisiert "Echtzeit-KI" für die neue Hochgeschwindigkeits-Deep-Learning-Plattform von Microsoft](https://newsroom.intel.co.jp/news/intel-delivers-real-time-ai-microsofts -beschleunigte-Deep-Learning-Plattform /) --Intel-Artikel 2017: Deep Learning mit Mid-Range-FPGA, höhere Effizienz als NVIDIA "Tesla M4" )
Die folgenden Personen haben auch viele Artikel zum Thema FPGA geschrieben. Kürzlich wurde auch ein Artikel in einer von CQ veröffentlichten Zeitschrift geschrieben. Hidemi's Idea Note Github Hidemi Ishihara
Recommended Posts