Untersuchung von PYNQ - Machen wir Deep Learning mit FPGA unter Verwendung von Python-

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.

Herstellung einer Faltungs-Neuronalen Netzwerkschaltung zur handschriftlichen Nummernerkennung 1 (Übersicht)

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.

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

Warum Softwareentwickler 2017 FPGA lernen sollten, wenn die Zahl der Jobs für maschinelles Lernen / Deep Learning zunimmt

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

Untersuchung von PYNQ - Machen wir Deep Learning mit FPGA unter Verwendung von Python-
Versuchen Sie Deep Learning mit FPGA
Deep Learning × Python
Was ich über KI / maschinelles Lernen mit Python gelernt habe (1)
Denken Sie über Party-Attack-ähnliche Wachstumstaktiken mit Deep Learning nach
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Python lernen mit ChemTHEATER 05-1
Python: Deep Learning-Praxis
Python lernen mit ChemTHEATER 02
Was ich über KI / maschinelles Lernen mit Python gelernt habe (3)
Python lernen mit ChemTHEATER 01
Mach Houdini mit Python3! !! !!
Python: Deep Learning Tuning
Was ich über KI / maschinelles Lernen mit Python gelernt habe (2)
Was ich über KI / maschinelles Lernen mit Python gelernt habe (4)
Empfehlungssystem mit Matrixzerlegung [Unüberwachtes Lernen mit Python Kapitel 10]
Vorzeichenkurvenschätzung mit selbst erstelltem Deep Learning-Modul (Python) + LSTM
Mach Django mit CodeStar (Python3.6.8, Django2.2.9)
[S3] CRUD mit S3 unter Verwendung von Python [Python]
Verwenden von Quaternion mit Python ~ numpy-quaternion ~
Mach Django mit CodeStar (Python3.8, Django2.1.15)
[Python] Verwenden von OpenCV mit Python (Basic)
Über das Lernen mit Google Colab
Maschinelles Lernen mit Python! Vorbereitung
Deep Kernel Learning mit Pyro
Beginnend mit maschinellem Python-Lernen
Iterative Verarbeitung von Python durch Chemoinfomatik gelernt
Generiere Pokemon mit Deep Learning
Verwenden von OpenCV mit Python @Mac
Senden Sie mit Python mit Google Mail
Multi Layer Perceptron für Deep Learning (Deep Learning mit Python; MPS Yokohama Deep Learning Series)
Umgang mit Tensorflow mit GPU beim Deep Learning, das plötzlich nicht mehr funktioniert
Vervollständigung von Python mit Emacs mit Company-Jedi
Harmonischer Mittelwert von Python (mit SciPy)
Identifikation der Katzenrasse mit Deep Learning
Python Hinweis: Über den Vergleich mit is
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Verwenden von Rstan aus Python mit PypeR
Machen Sie ASCII-Kunst mit tiefem Lernen
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Versuchen Sie es mit TensorFlow Part 2
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Über das Projektmanagement von Deep Learning (DNN)
Perceptron-Lernexperiment mit Python
Was tun mit PYTHON Release?
Lassen Sie uns mit Python Image Scraping durchführen
Überprüfen Sie die Kniebeugenform mit tiefem Lernen
Ich habe versucht, mit Theano tief zu lernen
Snack-Umsatzprognose mit Deep Learning
Bringen Sie Menschen mit Deep Learning zum Lächeln
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Python | Was Sie mit Python machen können
(Python) Deep Learning Library Chainer-Grundlagen Grundlagen
Vulkan berechnet mit Python mit VkInline und denkt über maschinelles Lernen auf der GPU und mehr nach