Mehr Rechenpower: Die GPU der Grafikkarte verarbeitet Messdaten vom Digitizer

Redakteur: Dipl.-Ing. (FH) Hendrik Härter

Bei schnellen Digitizer-Karten mit bis zu 5 GS/s fallen viele Messdaten an. Die Leistung der CPU ist begrenzt. Warum nicht auf die GPU der Grafikkarte ausweichen? Spectrum Instrumentation bietet eine Lösung.

Firmen zum Thema

Daten schneller verarbeiten: Mit der SCAPP-Option werden Messdaten der Digitizerkarte an die GPU der Grafikkarte geliefert.
Daten schneller verarbeiten: Mit der SCAPP-Option werden Messdaten der Digitizerkarte an die GPU der Grafikkarte geliefert.
(Bild: Spectrum)

Aktuelle Digitizer haben einen Engpass bei der Signalverarbeitung, entweder durch den Prozessor des Host-PCs mit nur acht oder 16 Kernen, oder ein komplex zu programmierendes FPGA. Mit der SCAPP-Option = Spectrums CUDA Access for Parallel Processing kann ein CUDA-basierter Prozessor (GPU) der Grafikkarte direkt zwischen jedem Spectrum Digitizer und dem PC benutzt werden. Vorteil: die vom Digitizer erfassten Daten werden direkt an die GPU geschickt, der mit bis zu 5000 Kernen eine viel schnellere parallele Verarbeitung bietet als die CPU des PCs mit nur acht oder 16 Kernen. Die gesteigerte Leistungsfähigkeit ist besonders wichtig bei schnellen Digitizern mit 50 MS/s, 500 MS/s oder sogar 5 GS/s.

Für SCAPP benötigt man nur eine typische Grafikkarte, die den CUDA-Standard vom führenden Grafikkarten-Hersteller Nvidia erfüllt. Die Spectrum Digitizerkarte liefert ihre aufgezeichneten Daten direkt an die GPU der Grafikkarte, ohne Interaktion der CPU des PCs. Nun steht die beeindruckende parallele Prozessorstruktur der GPU, die normalerweise hundertausende 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 Datenkonvertierung, Filtern, Mittelwertbildung, Basislinien- Unterdrückung, FFT-Fenster-Funktionen oder sogar FFTs selbst.

Bisherige Methoden, Signale zu verarbeiten

Bis jetzt gab es zwei grundsätzliche Arten, die hohen Datenmengen von schnellen Digitizern zu verarbeiten. Die übliche Methode ist, die CPU des PCs zu verwenden. 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 ist dabei allerdings, dass die CPU-Leistung die Möglichkeiten des Verarbeitungssystems begrenzt. Außerdem werden Kapazitäten der CPU auch für den restlichen PC, das Betriebssystem und die grafische Benutzeroberfläche benötigt.

Die zweite Methode ist, auf einen FPGA zurückzugreifen: Entweder mit festen Verarbeitungspaketen vom Anbieter oder mit einem offenen FPGA und einem Firmware-Development-Kit (FDK). Diese Methode bietet viele Möglichkeiten, aber sie verursacht hohe Kosten und ist komplex. Große FPGAs sind kostspielig 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. Dadurch kann die Inbetriebnahme des ganzen Systems stark verzögert werden. Zumal die Gefahr besteht, an die Grenzen des eingesetzten FPGAs auf der Karte zu stoßen. Ist der Block-RAM am Limit, ist keine weitere Verbesserung mehr möglich.

Vergleicht man die SCAPP-Methode mit einer bisherigen FPGA-basierten Lösung, sind die Kosten deutlich geringer: Eine passende CUDA-Grafikkarte liegt zwischen 150 bis 3000 Euro, und das nötige Software-Development-Kit ist kostenlos. Die größte Einsparung ist aber bei der Entwicklungszeit zu finden. Statt viele Wochen in das Verständnis des Firmware-Development-Kits, der FPGA-Firmware, der FPGA-Design-Suite und der Simulations-Tools zu investieren, kann der Kunde mit der SCAPP-Methode sofort starten. Lediglich einige einfache C-Codes und typische Design-Tools müssen beherrscht werden.

(ID:45015831)