OpenCL™ Fast Fourier Transform FFT (1D) poza chipem

Zalecane dla:

  • Urządzenie: nieznany

  • Quartus®: w wer. 17.1

author-image

Według

Ten test porównawczy przedstawia wdrożenie opencl™ szybkiej transformacji 1D Fourier (1D FFT) w systemie Intel® FPGAs. Test porównawczy może przetwarzać do 16 milionów złożonych wartości zmiennoprzecinkowych o pojedynczej precyzji i obsługuje dynamicznie zmieniający się rozmiar danych.

Algorytm wykorzystywany do przetwarzania tak dużych zestawów danych ma sześć etapów. Załóżmy na przykład, że chcemy przetworzyć 1 milion punktów:

  • Traktujemy 1M punktów jako macierz 1K × 1K, odczytuj je z pamięci zewnętrznej i transponuj w locie.
  • Uruchom 1K 1D FFT we wszystkich rzędach (transpozycji macierzy).
  • Pomnóż uzyskane wartości przez korektę czynników korekty.
  • Transponuj macierz i zapis do bufora przejściowego w pamięci zewnętrznej.
  • Uruchom 1K 1D FFT we wszystkich rzędach.
  • Transponuj dane wyjściowe macierzy i zapisu do pamięci zewnętrznej.

Cały system składa się z trzech jąder połączonych kanałami. Zestaw trzech jąder jest ustawiany w kolejce dwa razy przez hosta w celu wykonania pełnego obliczenia. Pierwsza kolejka wykonuje kroki 1-4 powyżej, druga kolejka wykonuje kroki 5-6. Jest to w gruncie rzeczy rdzeń 2D FFT z dodatkową transpozycją i wielozadaniową konstrukcją.

Kod ten jest łatwo parametryzowany, aby obsługiwać różne rozmiary FFT, a także różne wymagania dotyczące wydajności.

Wydajność FFT

Wydajność rdzenia zależy od liczby punktów przetwarzanych równolegle, używanego układu danych oraz liczby i prędkości pamięci zewnętrznej. Poniższe pomiary wykonano na płycie BittWare S5-PCIe-HQ D8 z dwoma dyskami DDR3-1600s. Pomiary wykonano na 1 mb pamięci FFT dla 8 punktów jednocześnie oraz 4M FFT, równocześnie 4 punkty.

MSPS to "miliony próbek na sekundę".

Funkcje

  • Jądra pojedynczego elementu roboczego
  • Kanały jądra
  • Zoptymalizowana transpozycja macierzy

Pobrań

Przykład projektu zawiera kod źródłowy urządzenia OpenCL (.cl) oraz aplikacji hosta. W celu kompilacji aplikacji hosta pakiet Linux* zawiera plik Makefile, a pakiet Windows zawiera projekt Microsoft Visual Studio 2010.

Następujące pliki do pobrania są podane dla tego przykładu:

Użytkowanie tego projektu podlega i podlega warunkom umowy licencyjnej na projekt referencyjny sprzętu.

Wymagania dotyczące oprogramowania i sprzętu

Ten przykład projektu wymaga następujących narzędzi:

  • oprogramowanie Intel® FPGA wersji 17.1 lub nowszej
  • Intel FPGA SDK dla OpenCL w wersji 17.1 lub nowszej
  • W systemie Linux: GNU Make i gcc
  • W systemie Windows: Microsoft Visual Studio 2010

Aby pobrać narzędzia do projektowania firmy Intel, odwiedź stronę pobierania OpenCL. Jedynie system operacyjny Linux jest obsługiwany przez ten przykład projektu.

OpenCL i logo OpenCL są znakami towarowymi firmy Apple Inc. użytymi za zgodą Khronos.

* Produkt jest oparty na opublikowanej specyfikacji Khronos i przeszedł proces testowania zgodności Khronos. Aktualny status zgodności można znaleźć na stronie www.khronos.org/conformance.

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.