Benchmark ini menunjukkan implementasi OpenCL™ transformasi Fourier cepat 1D (1D FFT) pada Intel® FPGAs. Benchmark ini dapat memproses hingga 16 juta nilai titik apung presisi tunggal yang kompleks dan mendukung pengubahan ukuran data secara dinamis.
Algoritma yang digunakan untuk memproses rangkaian data besar tersebut memiliki enam tahap. Misalnya, asumsikan kami ingin memproses 1 juta poin:
- Memperlakukan poin 1M sebagai matriks 1K x 1K, membacanya dari memori eksternal dan mengubahnya sewaktu-waktu.
- Jalankan 1K 1D FFT pada semua baris (dari matriks transposisi).
- Mengalikan nilai yang dihasilkan dengan faktor twiddle penyesuaian.
- Transpose matriks dan tulis ke buffer sementara di memori eksternal.
- Jalankan 1K 1D FFT pada semua baris.
- Transpose matriks dan keluaran tulis ke memori eksternal.
Seluruh sistem terdiri dari tiga kernel yang terhubung oleh saluran. Set tiga kernel diantrikan dua kali oleh host untuk melakukan komputasi penuh. Antrean pertama melakukan langkah 1-4 di atas, antrean kedua melakukan langkah 5-6. Ini pada dasarnya adalah inti 2D FFT dengan transposisi tambahan dan penggandaan twiddle.
Kode ini mudah di parameter untuk mendukung berbagai ukuran FFT serta persyaratan performa yang berbeda.
Performa FFT
Performa inti tergantung pada jumlah poin yang diproses secara paralel, tata letak data yang digunakan, serta jumlah dan kecepatan memori eksternal. Pengukuran di bawah ini dilakukan pada BittWare S5-PCIe-HQ D8 dengan dua DDR3-1600s. Pengukuran dilakukan pada FFT poin 1M untuk 8 poin secara paralel dan 4M FFT untuk 4 poin secara paralel.
Poin yang Diproses secara Paralel | Tata Letak Data Input/Output Alami |
Tata Letak Data Input/Output Dioptimalkan |
---|---|---|
4 | 117 MSPS | 217 MSPS |
8 | 292 MSPS | 457 MSPS |
MSPS adalah "jutaan sampel per detik."
Fitur
- Kernel item kerja tunggal
- Saluran Kernel
- Transposisi matriks yang dioptimalkan
Mingguan
Contoh desain memberikan kode sumber untuk perangkat OpenCL (.cl) serta aplikasi host. Untuk mengkompirasi aplikasi host, paket Linux* mencakup Makefile dan paket Windows termasuk proyek Microsoft Visual Studio 2010.
Unduhan berikut disediakan untuk contoh ini:
Penggunaan desain ini diatur oleh, dan tunduk pada, syarat dan ketentuan perjanjian lisensi desain referensi perangkat keras.
Persyaratan Perangkat Lunak dan Perangkat Keras
Contoh desain ini memerlukan alat berikut:
- perangkat lunak Intel® FPGA v17.1 atau yang lebih baru
- Intel FPGA SDK untuk OpenCL v17.1 atau yang lebih baru
- Pada Linux: GNU Make dan gcc
- Pada Windows: Microsoft Visual Studio 2010
Untuk mengunduh alat desain Intel, kunjungi halaman unduhan OpenCL. Hanya sistem operasi Linux yang didukung oleh contoh desain ini
OpenCL dan logo OpenCL adalah merek dagang dari Apple Inc. yang digunakan oleh Khronos dengan izin.
* Produk berdasarkan Spesifikasi Khronos yang dipublikasikan, dan telah lulus Proses Pengujian Kesesuaian Khronos. Status kesuaian saat ini dapat ditemukan di www.khronos.org/conformance.