Przykład projektu opencl™ 2D Fast Fourier Transform

Zalecane dla:

  • Urządzenie: nieznany

  • Quartus: wersja 17.1

author-image

Według

W tym przykładzie pokazano wdrożenie open computing language (OpenCL) szybkiej transformacji 2D Fourier (FFT). Przykład przetwarza macierz 2D 1024x1024 złożonych wartości zmiennoprzecinkowych o pojedynczej precyzji. 2D FFT rozkłada się na 1D FFT zastosowaną do każdego wiersza, po której następuje 1D FFT zastosowany do każdej kolumny.

Jądro rdzenia w tym przykładzie wykonuje 1D FFT i transpozycję macierzy. Program hosta dwukrotnie urzeka to jądro 1D FFT, aby ukończyć transformację 2D. W tym przykładzie uwzględniono wiele optymalizacji, w tym porównanie dwóch różnych układów danych wyjściowych, w których jeden układ danych działa o 60% lepiej. Dodatkowe szczegóły znajdują się w pakiecie przykładowego.

Wydajność 2D FFT

Funkcje

  • Rozszerzenie dostawcy kanałów
  • Optymalizacje wzorców dostępu do pamięci
  • Wiele jednoczesnych jąder
  • Połączenie pojedynczych elementów roboczych i jąder NDRange

Pobrań

Przykład projektu zawiera kod źródłowy urządzenia OpenCL (.cl) oraz aplikacji hosta. W celu skompilowania 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. Wymagania dotyczące odpowiedniego systemu operacyjnego są takie same jak wymagania zestawu SDK Intel FPGA dla OpenCL.

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.