Frühere Projekte haben gezeigt, dass Liquid Time-Constant Networks (LTC) sehr gute Performance
bei verschiedenen Aufgaben des maschinellen Lernens (ML) erzielen können. Zudem kann die
Modellarchitektur kompakter gehalten werden als bei anderen Modelltypen. Es hat sich jedoch als
schwierig erwiesen, die Echtzeitanforderungen zu erfüllen, wenn die Software auf einem
eingebetteten Softprozessor mit geringem Energieverbrauch implementiert ist.
Das Ziel dieses Projekts ist es, einen eng-gekoppelten Coprozessor zu entwickeln und zu
implementieren, um die Verarbeitung von LTC zu beschleunigen. Der Coprozessor wird als
Erweiterung einer RISC-V CPU implementiert. Der in Chisel implementierte Rocket-Chip-Generator
wird als Basis für dieses Projekt verwendet.
In einem ersten Schritt wird eine optimierte Software-Implementierung entwickelt und analysiert.
Dies zeigt, welche Berechnungen am meisten zur Gesamtverarbeitungszeit beitragen. Basierend auf
diesen Erkenntnissen werden dann die Hardware-Komponenten entworfen. Der implementierte
Coprozessor ist vollständig konfigurierbar. Dies ermöglicht verschiedene Modellgrößen und einen
variablen Grad an Paralellisierung. Das Design kann mit den Rocket-Chip Komponenten für ein MPF-
300 Field Programmable Gate Array (FPGA) mit einer Clockfrequenz von 100 MHz synthetisiert
werden.
Mit dem fertigen Coprozessor wird die Verbesserung der Verarbeitungszeit evaluiert. Dabei zeigt sich,
dass bei den beschleunigten Berechnungen bis zu 1000 mal schneller gerechnet werden können. Die
erreichbare Gesamtbeschleunigung hängt von der jeweiligen Modellarchitektur ab. Es kann jedoch
gezeigt werden, dass ein bestimmtes Modell aus einem früheren Projekt nun die
Echtzeitanforderungen erfüllen kann. Schlussendlich könnte die Beschleunigung eines größeren Teils
der Berechnungen eine deutlich höhere Gesamtbeschleunigung für einige Modelle bringen. Dafür ist
schlussendlich eine kleine Erweiterung der aktuellen Implementierung hier vorgeschlagen.
Previous projects have shown that Liquid Time-Constant Networks (LTC) can achieve very good
performance on various machine learning (ML) tasks. Additionally, the model architecture can be
kept more compact than those of other model types. Still, it has proven to be difficult to fulfill realtime
requirements if the software is implemented on a low-power embedded soft processor.
The aim of this project is to design and implement a tightly-coupled coprocessor to accelerate the
processing of LTC. The coprocessor is implemented as an extension of a RISC-V CPU. The Rocket-
Chip generator, implemented in Chisel, is used as a basis for this project.
In a first step, an optimized software implementation is developed and analyzed. This shows what
computations contribute most to the overall processing time. The hardware componentes are then
designed based on those insights. The implemented coprocessor is fully configurable to allow
different model sizes and a variable degree of paralellization. The design can be synthesized with the
Rocket-Chip components for a MPF-300 Field Programmable Gate Array (FPGA) with a clock
frequency of 100 MHz.
Finally, the improvement of the runtime is evaluated. This shows that a massive speedup of up to
1000x can be achieved for the accelerated computations. The achievable overall speedup depends on
the particular model architecture. But it can be shown that a specific model from a previous project
can now fulfill the real-time requirements. Finally, accelerating a larger portion of the computations
could again bring further runtime improvements and a significantly larger overall speedup for some
models. Thus, a small extension to the current implementation is proposed here.
HW/SW-Codesign of a tightly-coupled coprocessor for LTC neural networks
Beschreibung
Frühere Projekte haben gezeigt, dass Liquid Time-Constant Networks (LTC) sehr gute Performance
bei verschiedenen Aufgaben des maschinellen Lernens (ML) erzielen können. Zudem kann die
Modellarchitektur kompakter gehalten werden als bei anderen Modelltypen. Es hat sich jedoch als
schwierig erwiesen, die Echtzeitanforderungen zu erfüllen, wenn die Software auf einem
eingebetteten Softprozessor mit geringem Energieverbrauch implementiert ist.
Das Ziel dieses Projekts ist es, einen eng-gekoppelten Coprozessor zu entwickeln und zu
implementieren, um die Verarbeitung von LTC zu beschleunigen. Der Coprozessor wird als
Erweiterung einer RISC-V CPU implementiert. Der in Chisel implementierte Rocket-Chip-Generator
wird als Basis für dieses Projekt verwendet.
In einem ersten Schritt wird eine optimierte Software-Implementierung entwickelt und analysiert.
Dies zeigt, welche Berechnungen am meisten zur Gesamtverarbeitungszeit beitragen. Basierend auf
diesen Erkenntnissen werden dann die Hardware-Komponenten entworfen. Der implementierte
Coprozessor ist vollständig konfigurierbar. Dies ermöglicht verschiedene Modellgrößen und einen
variablen Grad an Paralellisierung. Das Design kann mit den Rocket-Chip Komponenten für ein MPF-
300 Field Programmable Gate Array (FPGA) mit einer Clockfrequenz von 100 MHz synthetisiert
werden.
Mit dem fertigen Coprozessor wird die Verbesserung der Verarbeitungszeit evaluiert. Dabei zeigt sich,
dass bei den beschleunigten Berechnungen bis zu 1000 mal schneller gerechnet werden können. Die
erreichbare Gesamtbeschleunigung hängt von der jeweiligen Modellarchitektur ab. Es kann jedoch
gezeigt werden, dass ein bestimmtes Modell aus einem früheren Projekt nun die
Echtzeitanforderungen erfüllen kann. Schlussendlich könnte die Beschleunigung eines größeren Teils
der Berechnungen eine deutlich höhere Gesamtbeschleunigung für einige Modelle bringen. Dafür ist
schlussendlich eine kleine Erweiterung der aktuellen Implementierung hier vorgeschlagen.
Previous projects have shown that Liquid Time-Constant Networks (LTC) can achieve very good
performance on various machine learning (ML) tasks. Additionally, the model architecture can be
kept more compact than those of other model types. Still, it has proven to be difficult to fulfill realtime
requirements if the software is implemented on a low-power embedded soft processor.
The aim of this project is to design and implement a tightly-coupled coprocessor to accelerate the
processing of LTC. The coprocessor is implemented as an extension of a RISC-V CPU. The Rocket-
Chip generator, implemented in Chisel, is used as a basis for this project.
In a first step, an optimized software implementation is developed and analyzed. This shows what
computations contribute most to the overall processing time. The hardware componentes are then
designed based on those insights. The implemented coprocessor is fully configurable to allow
different model sizes and a variable degree of paralellization. The design can be synthesized with the
Rocket-Chip components for a MPF-300 Field Programmable Gate Array (FPGA) with a clock
frequency of 100 MHz.
Finally, the improvement of the runtime is evaluated. This shows that a massive speedup of up to
1000x can be achieved for the accelerated computations. The achievable overall speedup depends on
the particular model architecture. But it can be shown that a specific model from a previous project
can now fulfill the real-time requirements. Finally, accelerating a larger portion of the computations
could again bring further runtime improvements and a significantly larger overall speedup for some
models. Thus, a small extension to the current implementation is proposed here.