Jan Fortmann
Implementierung eines FPGA-basierten K-Means Beschleunigers für den Vergleich von High-Level-Synthese und aktuellen Hardwarebeschreibungssprachen

Abstract
Der K-Means Algorithmus findet in vielen Bereichen der Medizin, Bioinformatik oder Bildverarbeitung Anwendung. Besonders bei der Echtzeitverarbeitung von immer größeren Datensätzen, bietet eine Softwareimplementierung des Algorithmus nicht die nötige Effizienz. In dieser Arbeit werden deshalb auf verschiedenen Abstraktionsebenen unterschiedliche Ansätze evaluiert, einen K-Means Algorithmus auf einem FPGA zu implementieren. Der entstandenen IP-Core soll über die Parallelisierung der Prozesse so effizient gestaltet werden, dass die Implementierung mit anderen Forschungsresultaten in diesem Gebiet Schritt halten kann. Zusätzlich wird Wert auf eine effektive Parametrisierbarkeit und Handhabung gelegt, was in ähnlichen Arbeiten bisher nicht vollständig gegeben ist.

Es sind zwei Implementierungen entstanden, zum einen in HLS und als Vergleich auf RTL. Die HLS-Variante kann bei ausgewählten Datensätzen mit verglichenen Arbeiten mithalten, ist effektiv zu handhaben und bietet Möglichkeiten zur Parametrisierung. Es wurde eine Laufzeitverbesserung von 198,3x gegenüber einer Softwareimplementierung erreicht. Bei der RTL-Implementierung wurde lediglich eine 12,9-fache Performancesteigerung erzielt, jedoch ist hier effektive Parametrisierbarkeit und Handhabung gegeben.