Kartu Akselerasi Intel FPGA yang Dapat Diprogram D5005
Tentang Dokumen Ini
Dokumen ini menjelaskan implementasi Accelerator Functional Unit (AFU) akses memori langsung (DMA) dan cara membangun desain untuk dijalankan pada perangkat keras atau dalam simulasi.
Sasaran Audiens
Audiens yang dituju terdiri dari pengembang perangkat keras atau perangkat lunak yang memerlukan Fungsi Akselerator (AF) untuk menyangga data secara lokal di memori yang terhubung ke perangkat Intel FPGA.
Konvensi
Konvensi Dokumen
Konvensi | Keterangan |
# | Mendahului perintah yang menunjukkan perintah yang akan dimasukkan sebagai root. |
$ | Menunjukkan perintah yang harus dimasukkan sebagai pengguna. |
font ini | Filenama, perintah, dan kata kunci dicetak dalam font ini. Baris perintah panjang dicetak dalam font ini. Meskipun baris perintah yang panjang dapat membungkus ke baris berikutnya, pengembalian bukan bagian dari perintah; jangan tekan enter. |
Menunjukkan teks placeholder yang muncul di antara kurung sudut harus diganti dengan nilai yang sesuai. Jangan masukkan kurung sudut. |
Akronim
Akronim
Akronim | Ekspansi | Keterangan |
AF | Fungsi Akselerator | Gambar Akselerator Perangkat Keras yang dikompilasi diimplementasikan dalam logika FPGA yang mempercepat aplikasi. |
AFU | Unit Fungsional Akselerator | Akselerator Perangkat Keras diimplementasikan dalam logika FPGA yang membongkar operasi komputasi untuk aplikasi dari CPU guna meningkatkan kinerja. |
API | Antarmuka Pemrograman Aplikasi | Satu set definisi subrutin, protokol, dan alat untuk membangun aplikasi perangkat lunak. |
CCI-P | Antarmuka Cache Inti | CCI-P adalah antarmuka standar yang digunakan AFU untuk berkomunikasi dengan host. |
DFH | Header Fitur Perangkat | Membuat daftar header fitur yang ditautkan untuk menyediakan cara yang dapat diperluas untuk menambahkan fitur. |
lanjutan… |
Perusahaan Intel. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang dari Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya dengan spesifikasi terkini sesuai dengan garansi standar Intel, tetapi berhak untuk membuat perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban yang timbul dari aplikasi atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali secara tegas disetujui secara tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Akronim | Ekspansi | Keterangan |
Bahasa Indonesia: FIM | Manajer Antarmuka FPGA | Perangkat keras FPGA yang berisi FPGA Interface Unit (FIU) dan antarmuka eksternal untuk memori, jaringan, dll.
Fungsi Akselerator (AF) berinteraksi dengan FIM pada waktu berjalan. |
Universitas Islam Negeri Syarif Hidayatullah Jakarta | Unit Antarmuka FPGA | FIU adalah lapisan antarmuka platform yang bertindak sebagai jembatan antara antarmuka platform seperti PCIe*, UPI dan antarmuka sisi AFU seperti CCI-P. |
MPF | Pabrik Properti Memori | MPF adalah Basic Building Block (BBB) yang dapat digunakan AFU untuk menyediakan operasi pembentukan lalu lintas CCI-P untuk transaksi dengan FIU. |
Glosarium Percepatan
Tumpukan Akselerasi untuk CPU Intel® Xeon® dengan Glosarium FPGA
Ketentuan | Singkatan | Keterangan |
Intel® Acceleration Stack untuk CPU Intel Xeon® dengan FPGA | Tumpukan Akselerasi | Kumpulan perangkat lunak, firmware, dan alat yang menyediakan konektivitas yang dioptimalkan kinerja antara Intel FPGA dan prosesor Intel Xeon. |
Kartu Akselerasi Intel FPGA yang Dapat Diprogram | Intel FPGA PAC | Kartu akselerator PCIe FPGA.
Berisi FPGA Interface Manager (FIM) yang dipasangkan dengan prosesor Intel Xeon melalui bus PCIe. |
- Panduan Pengguna Unit Fungsional Akselerator DMA: Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005
Deskripsi DMA AFU
Perkenalan
AFU Akses Memori Langsung (DMA) example menunjukkan cara mengelola transfer memori antara prosesor host dan FPGA. Anda dapat mengintegrasikan DMA AFU ke dalam desain Anda untuk memindahkan data antara memori host dan memori lokal FPGA. DMA AFU terdiri dari submodul berikut:
- Pabrik Properti Memori (MPF) Blok Bangunan Dasar (BBB)
- Antarmuka Cache Inti (CCI-P) ke Adaptor Avalon® Memory-Mapped (Avalon-MM)
- Sistem Tes DMA yang berisi DMA BBB
Submodul ini dijelaskan secara lebih rinci dalam topik Komponen Perangkat Keras DMA AFU di bawah.
Informasi Terkait
- Komponen Perangkat Keras DMA AFU di halaman 6
- Spesifikasi Antarmuka Avalon
Untuk informasi lebih lanjut tentang protokol Avalon-MM, termasuk diagram waktu untuk transaksi baca dan tulis.
Paket Perangkat Lunak DMA AFU
Intel Acceleration Stack untuk CPU Intel Xeon dengan paket FPGA file (*.tar.gz), termasuk DMA AFU example. mantan iniample menyediakan driver ruang pengguna. Aplikasi host menggunakan driver ini sehingga DMA memindahkan data antara host dan memori FPGA. Biner perangkat keras, sumber, dan driver ruang pengguna tersedia di direktori berikut: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Sebelum bereksperimen dengan DMA AFU, Anda harus menginstal paket perangkat lunak Open Programmable Acceleration Engine (OPAE). Lihat Menginstal Paket Perangkat Lunak OPAE di Panduan Memulai Cepat Intel Acceleration Stack untuk Intel FPGA Programmable Acceleration Card D5005 untuk instruksi instalasi. Panduan Memulai Cepat ini juga mencakup informasi dasar tentang Open Programmable Acceleration Engine (OPAE) dan mengonfigurasi AFU. Setelah menginstal paket perangkat lunak Open Programmable Acceleration Engine (OPAE), sebagaiampaplikasi le host dan driver ruang pengguna DMA AFU tersedia di direktori berikut: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Untuk menjalankan sample aplikasi host, fpga_dma_test pada perangkat keras Intel FPGA PAC D5005 Anda, lihat langkah-langkah di bagian Menjalankan DMA AFU Example. Perusahaan Intel. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Informasi Terkait
- Panduan Memulai Cepat Intel Acceleration Stack untuk Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005
- Menginstal Paket Perangkat Lunak OPAE
Komponen Perangkat Keras DMA AFU
DMA AFU berinteraksi dengan FPGA Interface Unit (FIU) dan memori FPGA. Lihat Lembar Data Manajer Antarmuka FPGA untuk Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005 untuk spesifikasi detail memori FPGA. Perangkat keras yang tersedia saat ini menentukan konfigurasi memori ini. Perangkat keras masa depan mungkin mendukung konfigurasi memori yang berbeda. Anda dapat menggunakan DMA AFU untuk menyalin data antara lokasi sumber dan tujuan berikut:
- Memori host ke perangkat FPGA
- Perangkat memori FPGA ke host
Sistem Perancang Platform, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys mengimplementasikan sebagian besar DMA
- AFU. Bagian dari DMA AFU yang diimplementasikan dalam sistem Platform Designer dapat ditemukan berikut ini
lokasi:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Anda dapat menemukan DMA BBB di lokasi berikut:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Panduan Pengguna Unit Fungsional Akselerator DMA: Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005
Diagram Blok Perangkat Keras DMA AFU
DMA AFU mencakup modul internal berikut untuk berinteraksi dengan FPGA Interface Unit (FIU):
- Logika Dekoder IO (MMIO) yang Dipetakan Memori: mendeteksi transaksi baca dan tulis MMIO dan memisahkannya dari saluran CCI-P RX 0 tempat transaksi tersebut berasal. Hal ini memastikan bahwa lalu lintas MMIO tidak pernah mencapai MPF BBB dan dilayani oleh saluran perintah MMIO independen.
- Memory Properties Factory (MPF): Modul ini memastikan bahwa respons baca dari DMA kembali sesuai urutan penerbitannya. Protokol Avalon-MM memerlukan respons baca untuk kembali dalam urutan yang benar.
- Adaptor CCI-P ke Avalon-MM: Modul ini menerjemahkan antara transaksi CCI-P dan Avalon-MM, sebagai berikut:
- Adaptor CCI-P ke Avalon-MMIO: Jalur ini menerjemahkan transaksi CCI-P MMIO menjadi transaksi Avalon-MM.
- Adaptor Host Avalon ke CCI-P: Jalur ini membuat jalur baca-saja dan tulis-saja yang terpisah bagi DMA untuk mengakses memori host.
- Sistem Uji DMA: Modul ini berfungsi sebagai pembungkus DMA BBB untuk mengekspos master DMA ke seluruh logika di AFU. Ini menyediakan antarmuka antara DMA BBB dan CCI-P ke Adaptor Avalon. Ini juga menyediakan antarmuka antara DMA BBB dan bank SDRAM FPGA lokal.
Informasi Terkait
Lembar Data Manajer Antarmuka FPGA untuk Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005
Sistem Uji DMA
Sistem pengujian DMA menghubungkan DMA BBB ke desain FPGA lainnya termasuk adaptasi CCI-P dan memori FPGA lokal.
Diagram Blok Sistem Uji DMA
Diagram blok ini menunjukkan internal sistem pengujian DMA. Sistem pengujian DMA ditampilkan sebagai blok monolitik pada Gambar 1 di halaman 7.
Sistem pengujian DMA mencakup modul internal berikut:
- Jembatan Jangkauan Jauh/Jembatan Pipa: Jembatan pipa dengan latensi yang dapat disesuaikan disertakan untuk mengontrol topologi dan meningkatkan desain Fmax.
- Header Fitur Perangkat DMA AFU (DFH): Ini adalah DFH untuk DMA AFU. DFH ini menunjuk ke DFH berikutnya yang terletak pada offset 0x100 (DMA BBB DFH).
- Null DFH: Komponen ini mengakhiri daftar tertaut DFH. Jika Anda menambahkan lebih banyak DMA BBB ke desain, pastikan bahwa alamat dasar DFH nol terletak di akhir daftar tertaut DFH.
- Blok Bangunan Dasar MA (BBB): Blok ini memindahkan data antara host dan memori FPGA lokal. Ia juga mengakses memori host untuk mengakses rantai deskriptor.
DMA BBB
Subsistem DMA BBB mentransfer data dari alamat sumber ke alamat tujuan menggunakan transaksi Avalon-MM. Driver DMA mengontrol DMA BBB dengan mengakses kontrol dan register status berbagai komponen di dalam sistem. Driver DMA juga mengontrol DMA BBB dengan menggunakan memori bersama untuk mengkomunikasikan deskriptor transfer. DMA BBB mengakses data dalam memori FPGA pada offset 0x0. DMA BBB mengakses data dan deskriptor di memori host pada offset 0x1_0000_0000_0000.
Diagram Blok Perancang Platform DMA BBB
Diagram blok ini tidak termasuk beberapa inti IP Pipeline Bridge internal.
Panduan Pengguna Unit Fungsional Akselerator DMA: Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005
Deskripsi DMA AFU
Komponen dalam DMA BBB Platform Designer mengimplementasikan fungsi berikut:
- Jembatan Jangkauan Jauh/Jembatan Pipa: Jembatan pipa dengan latensi yang dapat disesuaikan disertakan untuk mengontrol topologi dan meningkatkan desain Fmax.
- MA BBB DFH: Ini adalah header fitur perangkat untuk DMA BBB. DFH ini menunjuk ke DFH berikutnya yang terletak pada offset 0x100 (Null DFH).
- Bagian Depan Deskriptor: Bertanggung jawab untuk mengambil deskriptor dan mentransfernya ke Dispatcher. Ketika transfer DMA selesai, frontend menerima pembentukan status dari Dispatcher dan menimpa deskriptor di memori host.
- Pengirim: Blok ini menjadwalkan permintaan transfer DMA ke Master Baca dan Tulis.
- Baca Guru: Blok ini bertanggung jawab untuk membaca data dari host atau memori FPGA lokal dan mengirimkannya sebagai data streaming ke Write Master.
- Tulis Guru: Blok ini bertanggung jawab untuk menerima data streaming dari Read Master dan menulis konten ke host atau memori FPGA lokal.
Daftarkan Peta dan Ruang Alamat
DMA AFU mendukung dua memori views: DMA view dan tuan rumah view. DMA-nya view mendukung ruang alamat 49-bit. Bagian bawah DMA view memetakan ke memori FPGA lokal. Setengah bagian atas DMA view peta untuk menampung memori. Sang penyelenggara view mencakup semua register yang dapat diakses melalui akses MMIO seperti tabel DFH, dan register kontrol/status dari berbagai inti IP yang digunakan di dalam DMA AFU. MMIO mendaftar di DMA BBB dan AFU mendukung akses 32- dan 64-bit. DMA AFU tidak mendukung akses MMIO 512-bit. Akses ke register Dispatcher di dalam DMA BBB harus 32 bit (Descriptor frontend mengimplementasikan register 64-bit).
Peta Daftar DMA AFU
Peta register DMA AFU memberikan alamat absolut semua lokasi dalam unit. Register ini ada di host view karena hanya host yang dapat mengaksesnya.
Peta Memori DMA AFU
Offset Alamat Byte | Nama | Rentang dalam Byte | Keterangan |
ukuran 0x0 | DMA AFU DFH | ukuran 0x40 | Header fitur perangkat untuk DMA AFU. ID_L disetel ke 0x9081f88b8f655caa dan ID_H disetel ke 0x331db30c988541ea. DFH DMA AFU telah diparameterisasi menjadi titik offset 0x100 untuk mencari DFH berikutnya (DMA BBB DFH). Anda tidak boleh mengubah alamat dasar DMA AFU DFH karena alamat tersebut harus terletak di alamat 0x0 seperti yang ditentukan oleh spesifikasi CCIP. |
ukuran 0x100 | DMA BBB | ukuran 0x100 | Menentukan kontrol DMA BBB dan antarmuka register status. Anda dapat merujuk ke peta register DMA BBB untuk informasi lebih lanjut. Dalam DMA BBB pada offset 0, DMA BBB menyertakan DFH miliknya sendiri. DFH ini telah disetel untuk mencari DFH berikutnya pada offset 0x100 (NULL DFH). Jika Anda menambahkan lebih banyak DMA BBB, beri jarak 0x100 dan pastikan DFH NULL mengikuti DMA terakhir sebesar 0x100. |
ukuran 0x200 | DFH BATAL | ukuran 0x40 | Mengakhiri daftar tertaut DFH. ID_L disetel ke 0x90fe6aab12a0132f dan ID_H disetel ke 0xda1182b1b3444e23. DFH NULL telah diparameterisasi menjadi DFH terakhir di perangkat keras. Oleh karena itu DFH NULL terletak di alamat 0x200. Jika Anda menambahkan DMA BBB tambahan ke sistem, Anda perlu meningkatkan alamat dasar DFH NULL agar tetap berada di alamat tertinggi. Driver DMA dan aplikasi pengujian tidak menggunakan perangkat keras ini. |
Perusahaan Intel. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang dari Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya dengan spesifikasi terkini sesuai dengan garansi standar Intel, tetapi berhak untuk membuat perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban yang timbul dari aplikasi atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali secara tegas disetujui secara tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Daftarkan Peta dan Ruang Alamat
Peta Memori DMA BBB
Alamat byte berikut adalah offset relatif dari alamat dasar DMA BBB di sistem DMA AFU (0x100).
Offset Alamat Byte | Nama | Rentang dalam Byte | Keterangan |
ukuran 0x0 | DMA BBB DFH | ukuran 0x40 | Header fitur perangkat untuk DMA AFU. ID_L disetel ke 0xa9149a35bace01ea dan ID_H disetel ke 0xef82def7f6ec40fc . DFH DMA BBB telah diparameterisasi agar mengarah ke 0x100 untuk offset DFH berikutnya. Offset berikutnya dapat berupa DMA BBB lain, DFH lain (tidak termasuk dalam desain ini), atau NULL DFH. |
ukuran 0x40 | Pengirim | ukuran 0x40 | Port kontrol untuk operator. Driver DMA menggunakan lokasi ini untuk mengontrol DMA atau menanyakan statusnya. |
ukuran 0x80 | Bagian Depan Deskriptor | ukuran 0x40 | Frontend deskriptor adalah komponen khusus yang membaca deskriptor dari memori host dan menimpa deskriptor ketika transfer DMA selesai. Pengemudi menginstruksikan frontend di mana deskriptor pertama berada di memori host dan kemudian perangkat keras frontend berkomunikasi dengan driver terutama melalui deskriptor yang disimpan dalam memori host. |
Ruang Alamat DMA AFU
Host dapat mengakses register yang tercantum pada Tabel 4 di halaman 12 dan Tabel 5 di halaman 13. Subsistem DMA BBB memiliki akses ke ruang alamat 49-bit penuh. Bagian bawah ruang alamat ini mencakup memori FPGA lokal. Setengah bagian atas ruang alamat ini mencakup memori alamat host 48-bit. Gambar berikut menunjukkan host dan DMA views memori.
DMA AFU dan Host Views Memori
Daftar Tertaut Header Fitur Perangkat
Mantan desain DMA AFUample berisi tiga header fitur perangkat (DFH) yang membentuk daftar tertaut. Daftar tertaut ini memungkinkan sample aplikasi untuk mengidentifikasi DMA AFU serta driver untuk mengidentifikasi DMA BBB. Daftar DFH menyertakan DFH NULL di bagian akhir. Dimasukkannya DFH nol di akhir daftar tertaut memungkinkan Anda menambahkan lebih banyak DMA BBB ke desain Anda. Anda hanya perlu memindahkan NULL DFH ke alamat setelah BBB lainnya. Setiap DMA BBB mengharapkan DFH berikutnya ditempatkan 0x100 byte dari alamat dasar BBB. Gambar berikut menggambarkan linked-list untuk desain DMA AFU exampsaya.
Daftarkan Peta dan Ruang Alamat
Rangkaian Header Fitur Perangkat (DFH) DMA AFU
Model Pemrograman Perangkat Lunak
DMA AFU menyertakan driver perangkat lunak yang dapat Anda gunakan dalam aplikasi host Anda sendiri. fpga_dma.cpp dan fpga_dma.h fileterletak di lokasi berikut mengimplementasikan driver perangkat lunak:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Driver ini mendukung fungsi berikut:
API | Keterangan |
fpgaCountDMAChannels | Memindai rantai fitur perangkat untuk DMA BBB dan menghitung semua saluran yang tersedia. |
fpgaDMATerbuka | Membuka pegangan ke saluran DMA. |
fpgaDMATutup | Menutup pegangan ke saluran DMA. |
fpgaDMATransferInit | Menginisialisasi objek yang mewakili transfer DMA. |
fpgaDMATransferSetel Ulang | Menyetel ulang objek atribut transfer DMA ke nilai default. |
fpgaDMATransferDestroy | Menghancurkan objek atribut transfer DMA. |
fpgaDMATransferSetSrc | Menetapkan alamat sumber transfer. Alamat ini harus selaras 64 byte. |
fpgaDMATransferSetDst | Menetapkan alamat tujuan transfer. Alamat ini harus selaras 64 byte. |
fpgaDMATransferSetLen | Mengatur panjang transfer dalam byte. Untuk transfer non-paket, Anda harus mengatur panjang transfer ke kelipatan 64 byte. Untuk transfer paket, ini bukan keharusan. |
fpgaDMATransferSetTransferType | Mengatur jenis transfer. Nilai-nilai hukum adalah:
• HOST_MM_TO_FPGA_MM = TX (Host ke AFU) • FPGA_MM_TO_HOST_MM = RX (AFU ke host) |
fpgaDMATransferSetTransferCallback | Mendaftarkan panggilan balik untuk pemberitahuan penyelesaian transfer asinkron. Jika Anda menentukan panggilan balik, fpgaDMATransfer akan segera kembali (transfer asinkron).
Jika Anda tidak menentukan panggilan balik, fpgaDMATransfer akan kembali setelah transfer selesai (transfer sinkron/pemblokiran). |
fpgaDMATransferSetTerakhir | Menunjukkan transfer terakhir sehingga DMA dapat mulai memproses transfer yang diambil sebelumnya. Nilai defaultnya adalah 64 transfer dalam alur sebelum DMA mulai bekerja pada transfer tersebut. |
fpgaDMATransfer | Melakukan transfer DMA. |
Untuk informasi selengkapnya tentang argumen API, input, dan output, lihat header file terletak $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. Nama dan merek lain dapat diklaim sebagai milik orang lain.
Model Pemrograman Perangkat Lunak
Untuk mengetahui lebih banyak tentang model penggunaan driver perangkat lunak, lihat README file terletak di $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Menjalankan DMA AFU Example
Sebelum Anda memulai:
- Kamu pasti sudah tidak asing lagi dengan mantanampfile dalam Panduan Memulai Cepat Intel Acceleration Stack untuk Intel FPGA Programmable Acceleration Card D5005.
- Anda harus mendefinisikan variabel lingkungan. Variabel lingkungan bergantung pada versi Intel Acceleration Stack yang Anda gunakan:
- Untuk versi saat ini, setel variabel lingkungan ke $OPAE_PLATFORM_ROOT
- Anda harus menginstal pustaka Intel Threading Building Blocks (TBB) karena driver DMA bergantung padanya.
- Anda juga harus menyiapkan dua halaman besar berukuran 1 GB untuk menjalankan sample aplikasi. $ sudo sh -c “gema 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Lakukan langkah-langkah berikut untuk mengunduh bitstream DMA Accelerator Function (AF), untuk membangun aplikasi dan driver, dan untuk menjalankan desain exampsaya:
- Ubah ke aplikasi DMA dan direktori driver: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Bangun driver dan aplikasi: buat
- Unduh bitstream DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Jalankan aplikasi host untuk menulis 100 MB dalam porsi 1 MB dari memori host ke memori perangkat FPGA dan membacanya kembali: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Informasi Terkait
Panduan Memulai Cepat Intel Acceleration Stack untuk Kartu Akselerasi yang Dapat Diprogram Intel FPGA D5005 Intel Corporation. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Mengkompilasi DMA AFU Example
Untuk menghasilkan lingkungan build sintesis untuk mengkompilasi AF, gunakan perintah afu_synth_setup sebagai berikut:
- Ubah ke DMA AFU sampdirektori le: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Hasilkan direktori pembuatan desain: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Dari direktori pembuatan sintesis yang dihasilkan oleh afu_synth_setup, masukkan perintah berikut dari jendela terminal untuk menghasilkan AF untuk platform perangkat keras target: cd build_synth run.sh Skrip pembuatan AF run.sh membuat gambar AF dengan basis yang sama filenama sebagai konfigurasi platform AFU file (.json) dengan akhiran .gbs di lokasi:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Mensimulasikan AFU Example
Intel menyarankan Anda merujuk ke Panduan Memulai Cepat Lingkungan Simulasi Intel Accelerator Functional Unit (AFU) (ASE) agar Intel FPGA PAC Anda terbiasa dengan simulasi ex serupaamples dan untuk mengatur lingkungan Anda. Sebelum Anda melanjutkan langkah-langkah berikut, verifikasi bahwa variabel lingkungan OPAE_PLATFORM_ROOT diatur ke direktori instalasi OPAE SDK. Selesaikan langkah-langkah berikut untuk menyiapkan simulator perangkat keras untuk DMA AFU:
- Ubah ke DMA AFU sampdirektori le: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Buat lingkungan ASE di direktori baru dan konfigurasikan untuk simulasi AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Ubah ke direktori build ASE: cd build_ase_dir
- Bangun driver dan aplikasi: buat
- Buat simulasi: buat sim
Sample keluaran dari simulator perangkat keras:
[SIM] ** PERHATIAN : SEBELUM menjalankan aplikasi perangkat lunak ** [SIM] Letakkan env(ASE_WORKDIR) di terminal tempat aplikasi akan dijalankan (copy-paste) => [SIM] $SHELL | Jalankan:[SIM] ——+—------------------------------------------ [SIM] bash/zsh | ekspor ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Untuk $SHELL lainnya, konsultasikan dengan administrator Linux Anda [SIM] [SIM] Siap untuk simulasi… [SIM] Tekan CTRL-C untuk menutup simulator…Selesaikan langkah-langkah berikut untuk mengkompilasi dan menjalankan perangkat lunak DMA AFU di lingkungan simulasi:
- Buka jendela terminal baru.
- Ubah direktori ke: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Perusahaan Intel. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang dari Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya dengan spesifikasi terkini sesuai dengan garansi standar Intel, tetapi berhak untuk membuat perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban yang timbul dari aplikasi atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali secara tegas disetujui secara tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Mensimulasikan AFU Example
- Salin string pengaturan lingkungan (pilih string yang sesuai untuk shell Anda) dari langkah-langkah di atas dalam simulasi perangkat keras ke jendela terminal. Lihat baris berikut di sample keluaran dari simulator perangkat keras. [SIM] pesta/zsh | ekspor ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- Kompilasi perangkat lunak: $ make USE_ASE=1
- Jalankan aplikasi host untuk menulis 4 KB dalam porsi 1 KB dari memori host kembali ke memori perangkat FPGA dalam mode loopback: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Informasi Terkait
Panduan Pengguna Mulai Cepat Lingkungan Simulasi Intel Accelerator Functional Unit (AFU) (ASE).
Optimalisasi untuk Peningkatan Kinerja DMA
Implementasi optimasi NUMA (non-uniform memory access) pada fpga_dma_test.cpp memungkinkan prosesor mengakses memori lokalnya sendiri lebih cepat dibandingkan mengakses memori non-lokal (memori lokal ke prosesor lain). Konfigurasi khas NUMA ditunjukkan pada diagram di bawah. Akses lokal mewakili akses dari inti ke memori lokal ke inti yang sama. Akses jarak jauh menggambarkan jalur yang diambil ketika inti pada Node 0 mengakses memori yang berada di memori lokal ke Node 1.
Konfigurasi NUMA Khas
Gunakan kode berikut untuk menerapkan optimasi NUMA dalam aplikasi pengujian Anda:
// Siapkan afinitas yang tepat jika diminta if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties alat peraga;int retval; #if(FPGA_DMA_DEBUG)karakter str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetFunction”); // Temukan perangkat dari topologi hwloc_topology_t; hwloc_topology_init(&topologi); hwloc_topology_set_flags(topologi, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan. *Nama dan merek lain dapat diklaim sebagai milik orang lain.
Optimalisasi untuk Peningkatan Kinerja DMA
hwloc_topology_load(topologi); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologi, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologi, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”,str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”,str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("CPUSET adalah %s\n",str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET adalah %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologi, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(topologi, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) { retval = hwloc_set_cpubind(topologi, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }
Arsip Panduan Pengguna Unit Fungsional Akselerator DMA
Versi Tumpukan Akselerasi Intel | Panduan Pengguna (PDF) |
2.0 | Panduan Pengguna Unit Fungsional Akselerator DMA (AFU). |
Riwayat Revisi Dokumen untuk Panduan Pengguna Unit Fungsional Akselerator DMA
Versi Dokumen |
Percepatan Intel Versi Tumpukan |
Perubahan |
2020.08.03 |
2.0.1 (didukung dengan Intel
Quartus® Prime Pro Edisi Edisi 19.2) |
Memperbaiki gambar AF file nama di bagian Mengkompilasi DMA AFU Example. |
2020.04.17 |
2.0.1 (didukung dengan Intel
Quartus Prime Pro Edisi Edisi 19.2) |
Memperbaiki pernyataan di Sasaran Audiens bagian. |
2020.02.20 |
2.0.1 (didukung dengan Intel
Quartus Prime Pro Edisi Edisi 19.2) |
Memperbaiki kesalahan ketik. |
2019.11.04 |
2.0.1 (didukung dengan Intel Quartus Prime Pro Edisi Edisi 19.2) |
• Mengganti fpgaconf dengan fpgasupdate saat mengonfigurasi FPGA dengan AFU prebuild di bagian Menjalankan DMA AFU Example.
• Menambahkan subtitle Kartu Akselerasi Intel FPGA yang Dapat Diprogram D5005 ke judul dokumen. • Menambahkan variabel lingkungan $OPAE_PLATFORM_ROOT. • Bagian yang dimodifikasi Model Pemrograman Perangkat Lunak untuk pengeditan kecil. • Menambahkan bagian baru Mengkompilasi DMA AFU Example. • Bagian yang dimodifikasi Optimalisasi untuk Peningkatan Kinerja DMA untuk pengeditan kecil. |
2019.08.05 |
2.0 (didukung dengan Intel
Quartus Prime Pro Edisi 18.1.2) |
Rilis awal. |
Perusahaan Intel. Seluruh hak cipta. Intel, logo Intel, dan merek Intel lainnya adalah merek dagang Intel Corporation atau anak perusahaannya. Intel menjamin kinerja produk FPGA dan semikonduktornya sesuai spesifikasi terkini sesuai dengan garansi standar Intel, namun berhak melakukan perubahan pada produk dan layanan apa pun kapan saja tanpa pemberitahuan. Intel tidak bertanggung jawab atau berkewajiban apa pun yang timbul dari penerapan atau penggunaan informasi, produk, atau layanan apa pun yang dijelaskan di sini kecuali jika disetujui secara tegas dan tertulis oleh Intel. Pelanggan Intel disarankan untuk mendapatkan spesifikasi perangkat versi terbaru sebelum mengandalkan informasi apa pun yang dipublikasikan dan sebelum melakukan pemesanan produk atau layanan.
- Nama dan merek lain dapat diklaim sebagai milik orang lain.
Dokumen / Sumber Daya
![]() |
Kartu Akselerasi Intel FPGA yang Dapat Diprogram D5005 [Bahasa Indonesia:] Panduan Pengguna Kartu Akselerasi yang Dapat Diprogram FPGA, D5005, Kartu Akselerasi yang Dapat Diprogram FPGA D5005, Unit Fungsional Akselerator DMA |