Spectrum Instrumentation Datenverarbeitung ohne Flaschenhals

Für SCAPP benötigt man nur eine typische Grafikkarte, die den CUDA-Standard des Grafikkarten-Herstellers Nvidia erfüllt.

Eine deutlich schnellere Datenverarbeitung während der Aufzeichnung verspricht die SCAPP-Option für die Digitizer von Spectrum Instrumentation. Dazu setzt Spectrum auf die direkte Signalverarbeitung über einen CUDA-basierten Prozessor der Grafikkarte – ohne Umweg über die CPU des PCs.

Schnelle Digitizer generieren riesige Mengen an Daten. Der Prozessor des Host-PCs mit nur 8 oder 16 Kernen oder ein komplex zu programmierendes FPGA verursachen jedoch meist einen Engpass in der Signalverarbeitung. Mit der SCAPP-Option (das steht für „Spectrum‘s CUDA Access for Parallel Processing“) hat Spectrum Instrumentation nun einen neuen Ansatz entwickelt, der dieses Problem löst: Mit SCAPP wird ein CUDA-basierter Prozessor (GPU) der Grafikkarte direkt zwischen jedem Spectrum-Digitizer und dem PC benutzt. Der große Vorteil: Die vom Digitizer erfassten Daten werden direkt an die GPU geschickt, die mit bis zu 5000 Kernen eine sehr viel schnellere parallele Verarbeitung bietet als die CPU des PCs. Die gesteigerte Leistungsfähigkeit ist besonders wichtig bei schnellen Digitizern mit 50 MSample/s, 500 MSample/s oder sogar 5 GSample/s.

»Bisher gab es zwei grundsätzliche Arten,…

...die hohen Datenmengen schneller Digitizer zu verarbeiten«, verdeutlicht Oliver Rovini, Prokurist und Technischer Leiter von Spectrum Instrumentation. »Die übliche Methode ist die Nutzung der CPU des PCs. Ein Vorteil bei diesem Ansatz ist die Möglichkeit, eigene Datenverarbeitungsprogramme zu schreiben, mit jeder beliebigen Programmiersprache und ohne große zusätzliche Kosten.« Nachteilig sei dabei allerdings, dass die CPU-Leistung die Möglichkeiten des Verarbeitungssystems begrenze. Außerdem würden Kapazitäten der CPU auch für den restlichen PC, das Betriebssystem und die grafische Benutzeroberfläche benötigt.

»Die zweite Methode…

...ist die Nutzung von FPGA-Technologie, entweder mit festen Verarbeitungspaketen vom Anbieter – wie etwa die Block-Average-Pakete von Spectrum – oder mit einem offenen FPGA und einem Firmware-Development-Kit, kurz FDK«, so Rovini. »Diese Methode bietet weitreichende Möglichkeiten, aber sie verursacht auch hohe Kosten und ist komplex. Große FPGAs sind teuer und benötigen ein FDK vom Anbieter des Digitizers sowie die entsprechenden Tools des FPGA-Herstellers. Zudem ist die Implementierung von Signalverarbeitung in ein FPGA eine anspruchsvolle Aufgabe, die einen hohen Kenntnisstand von VHDL bedingt. Das kann die Inbetriebnahme des ganzen Systems stark verzögern. Zumal die Gefahr besteht, an die Grenzen des eingesetzten FPGAs auf der Karte zu stoßen. Ist z.B. das Block-RAM am Limit, ist keine weitere Verbesserung mehr möglich.«

Für SCAPP benötigt man nur eine typische Grafikkarte,…

...die den CUDA-Standard ab Version 5.0 des Grafikkarten-Herstellers Nvidia erfüllt. Die Digitizer-Karte von Spectrum liefert ihre aufgezeichneten Daten direkt an die GPU der Grafikkarte, ohne Interaktion der CPU des PCs. Nun steht die komplette parallele Prozessorstruktur der GPU, die normalerweise Hunderttausende von Pixeln des Monitors ansteuert, für die Verarbeitung der riesigen Menge an Messdaten zur Verfügung. Die GPU kann eine Vielzahl von Verarbeitungsvorgängen übernehmen wie etwa Datenkonvertierung, Filtern, Mittelwertbildung, Basislinien-Unterdrückung, FFT-Fenster-Funktionen oder sogar FFTs selbst.