SOFTWARE: GEMEISTERTE HERRAUSFORDERUNGEN

Künstliches Neuron Künstliches Neuron
Beispiel für LED-Matrix Beispiel für LED-Matrix

Neuronale Netze – Machine Learning mit CUDA

Privates Projekt: Erweitern/Umschreiben eines Beispiel-Programms für ein einfaches Neuronales Netzwerk aus C++ um die Grafikkarte zum Einlernen der Beispieldaten zu nutzen.

 

Motivation: in meiner Freizeit habe ich mich eine Weile mit Neuronalen Netzen, deren Anwendung sowie Programmierung beschäftigt. Nach dem Einrichten der Toolchain und dem Kompilieren einiger Beispielprogramme und deren Ausführung ist mir aufgefallen, dass diese eher schlecht von den Multithreading-Kapazitäten meines Heimcomputers Gebrauch machen (Ein Kern von 8 hat 100% Auslastung, der Rest schläft). Das fand ich sehr ineffizient und deswegen suchte ich nach einem Weg den Prozess zu verbessern.

 

Ergebnis: Nach dem ich mehrere Feierabende (5-6) in das Projekt investiert habe, ist es mir gelungen, ein einfaches Neuronales Netzwerk Programm zum Erkennen von Buchstaben auf einer LED-Matrix um CUDA zu erweitern und so den Lernprozess deutlich zu beschleunigen.

 

Analyse System:

GPU: GeForce GTX 760

CPU: Intel® Core™ i7-4770 @3.4GHZ

RAM: 16 GB

Entwicklungsumgebung: Visual Studio 2013

 

 

Performanceoptimierung Python: Cython

Zur Performanceoptimierung sollen Funktionen von Python nach Cython ausgelagert und optimiert werden. 

 

Über mehrere Optimierungsschritte konnte die Geschwindigkeit der Funktionausführung um 580% beschleunigt werden.

 

Python IDE:

WinPython-32bit-2.7.10.3

 

Darstellung der Funktionsausführungszeiten: Original Python Cython, zwei Optimierungschritte

CAN-BUS Datenmitschnitt

Bild absichtlich unscharf gemacht: Projektdetails dürfen nicht veröffentlich werden

 

 

CAN-BUS: Reverse Engineering

Zwei-Phasen-Projekt: 

1. Phase: Analyse der Sensor- und Maschinenwerte, die über den CAN-Bus übertragen werden. Decodieren der Messwerte, Erkennen von Systemeigenschaften

2. Phase: Hitchhiking des Systems durch Einspielung eigener CAN-Befehle. 

Analyse System:

Sabre Lite Embedded Linux Board

Analyse Software: Wireshark

Systemkontolle durch: Multithreading TCP/IP Linux C Server als Schnittstelle zum Netzwerk und CAN-Bus.

 

Druckversion Druckversion | Sitemap
Inhaltlich Verantwortlich: Thomas Janner