Opcja szybkiego przetwarzania sygnałów przez jednostkę GPU CUDA w digitizerach firmy Spectrum
Niedogodnością oferowanych obecnie digitizerów jest konieczność korzystania z mocy obliczeniowej mikroprocesora lub tworzenia skomplikowanego oprogramowania do układu FPGA. Firma Spectrum Instrumentation rozwiązała ten problem wprowadzając nową opcję programową SCAPP (Spectrum CUDA Access for Parallel Processing) dającą możliwość bardzo wydajnej digitalizacji, przetwarzania i analizy sygnałów.
SCAPP umożliwia zastosowanie do tego celu karty GPU z architekturą CUDA. Zaletą jest w tym przypadku transfer danych bezpośrednio z digitizera do jednostki GPU z przetwarzaniem równoległym realizowanym przez wiele (nawet do 5000) rdzeni obliczeniowych.
Daje to ogromny skok wydajności w porównaniu z przesyłaniem danych do komputera PC z zainstalowanym mikroprocesorem o 8 lub 16 rdzeniach obliczeniowych, istotny zwłaszcza przy digitalizacji z dużą szybkością próbkowania wynoszącą 50 MSps, 500 MSps czy nawet 5 GSps.
W porównaniu z rozwiązaniami bazującymi na układach FPGA, całkowity koszt implementacji SCAPP jest bardzo mały. Cena karty graficznej CUDA wynosi od 150 do 3000 euro, a zestaw SDK jest dostępny bezpłatnie. Jednak najważniejsza jest oszczędność czasu.
Zamiast spędzać tygodnie nad zrozumieniem działania FDK, struktury oprogramowania firmware i narzędzi symulacyjnych, użytkownik może rozpocząć pracę natychmiast korzystając z łatwych w obsłudze narzędzi i kodu w języku C.
Pakiet sterownika SCAPP obejmuje rozszerzenie RMDA (Remote Direct Memory Access) umożliwiające bezpośrednią transmisję danych z digitizera do jednostki GPU, zestaw przykładowych programów w C/C++ do interakcji z digitizerem i kartą CUDA oraz zestaw przykładowych programów realizujących podstawowe funkcje, m.in. filtrów, uśredniania, multipleksowania danych, konwersji danych i FFT.
Interakcja pomiędzy digitizerem i GPU odbywa się z wykorzystaniem szyny PCI Express. W zależności od karty można osiągnąć ciągłą transmisję danych z szybkością powyżej 3 GBps między digitizerem i GPU, wystarczającą do współpracy z jednokanałowym 8-bitowym digitizerem próbkującym sygnał z szybkością 2,5 GSps lub dwukanałowym 14-bitowym o szybkości próbkowania 500 MSps.
Karty CUDA występują w wersjach zawierających od 256 do 5000 rdzeni obliczeniowych (dla porównania mikroprocesor Quad-Core Xeon ma 16 rdzeni) i kilka GB pamięci, oferujących moc obliczeniową do 12 TFLOPS (1012 operacji zmiennoprzecinkowych na sekundę).
Niewielka karta z 1000 rdzeni o mocy obliczeniowej 3 TFLOPS jest w stanie realizować operacje ciągłej konwersji danych, multipleksowania, okienkowania, uśredniania i FFT w dwóch kanałach z szybkością 500 MSps przy rozmiarze bloku FFT równym 512 k.
Dla porównania, pakiet FFT od innych dostawców digitizerów typowo ogranicza rozmiar bloku FFT do 4 k lub 8 k, co wynika z ograniczeń FPGA. Sterownik SCAPP jest dostępny dla wszystkich digitizerów z oferty Spectrum Instrumentation.
Może być wykorzystywany zarówno w ultra-szybkich kartach rodziny M4i (o szybkości próbkowania 250 MSps, 500 MSps i 5 GSps), jak i digitizerach M2p średniej klasy (20...80 MSps).