Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Baru-baru ini, Brian Bailey mengadakan diskusi bundar yang culminated in artikel dua bagian Supporting CPUs + FPGAs. Para ahli membahas realitas yang berkembang dari sistem yang menggabungkan FPGA dengan CPU, menyoroti bagaimana alur desain segar memberdayakan pengembang perangkat lunak untuk membawa platform CPU-plus-FPGA ke pasar lebih cepat.

Pendahuluan
Lonjakan kecerdasan buatan, ledakan perangkat terhubung, dan percepatan beban kerja data-center semuanya mengarah ke satu pengemudi umum: pengembang perangkat lunak yang mencari kecepatan. Hubungannya rendah latensi antara FPGA dan CPU, bersama dengan envelop daya yang modest dari FPGA modern, membuat sistem hibrid CPU-FPGA pilihan alami untuk kinerja yang menuntut. Namun, kompleksitas dasar teknologi FPGA sering kali menghambat pengembang.

Alat Sintesis Tingkat Tinggi (HLS) telah berkembang secara signifikan, memudahkan pemetaan C/C++ ke hardware. Masih, mereka terutama berpusat pada IP dan kurang pada keputusan tingkat sistem—menyeimbangkan tugas perangkat lunak versus hardware, memilih antara eksekusi terpipelining atau paralel, menyesuaikan granularitas data, atau memilih mekanisme komunikasi optimal.

Apa yang dibutuhkan insinyur perangkat lunak adalah alur desain terpadu yang terasa seperti IDE perangkat lunak standar tetapi memberikan feedback yang sadar hardware. Solusi komersial terbaru telah mulai menutup kesenjangan ini dengan mengabstraksi detail rendah sambil mempertahankan kontrol yang dibutuhkan pengembang. Alat-alat ini didasari oleh filosofi Desain Tingkat Sistem yang diuraikan dalam ESL Models and Their Application.

Memahami Alur Desain Tingkat Sistem
Desain Tingkat Sistem beroperasi pada abstrak yang lebih tinggi, memvalidasi, menyempurnakan, dan mengintegrasikan komponen sistem sebelum implementasi. Sebagian besar desainer memulai pada tingkat algoritmik, menulis model C/C++/SystemC, MATLAB, Simulink, atau LabVIEW yang menangkap perilaku sistem lengkap.

Kami fokus pada alur yang berpusat pada C/C++ (lihat Gambar 1). Tahap pertama—profiling aplikasi—mengidentifikasi fungsi atau loop yang dapat mendapat manfaat dari akselerasi hardware. Berikutnya, platform CPU/FPGA target ditentukan (misalnya, ARM-Cortex-A53 + FPGA) dan parameternya (clock, cache, interconnects) dikonfigurasi. Akhirnya, tugas yang di-profile dipetakan antara perangkat lunak dan hardware, culminating in arsitektur yang dapat dieksekusi.

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Gambar 1. Alur desain tingkat sistem umum untuk CPU/FPGA (Sumber: Space Codesign Systems, Inc.)

Blok kedua dari Gambar 1 mencakup optimasi arsitektur—kadang disebut eksplorasi arsitektur atau verifikasi kinerja—ditampilkan secara lebih detail dalam Gambar 2.

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Gambar 2. Proses optimasi arsitektur (Sumber: Space Codesign Systems, Inc.)

Tiga estimasi kunci menyumbang ke tahap ini:

Hasil yang diagregasi mempopulasi database, memungkinkan pengembang memverifikasi apakah tujuan tingkat sistem terpenuhi. Arsitektur yang memenuhi kriteria melanjutkan; jika tidak, iterasi optimasi lebih lanjut dipicu.

Blok akhir dari Gambar 1 berkaitan dengan implementasi arsitektur: desain tingkat tinggi diterjemahkan menjadi bitstream FPGA menggunakan alat vendor seperti Xilinx Vivado atau Intel Quartus Prime, menghasilkan sistem yang sepenuhnya tersintesis dan dapat diuji siap untuk diterapkan.

Optimasi Tingkat Sistem
Ketidaktersehatan alat optimasi end-to-end yang otomatis telah lama menjadi bottleneck dalam komputasi berbasis FPGA. Kompleksitas menyeimbangkan banyak dimensi desain menjelajahan manual menjadi membosankan, bahkan untuk desainer yang berpengalaman.

Gambar 3 menggambarkan alur optimasi umum untuk aplikasi pengolahan citra yang terdiri dari enam fungsi C/C++ yang diterapkan pada platform Zynq-7000. Delapan arsitektur kandidat dipertimbangkan, tetapi keterbatasan waktu ke pasar menuntut seleksi cepat dari kompromi terbaik antara kinerja, area, dan daya.

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Gambar 3. Eksplorasi arsitektur dengan keputusan tingkat sistem yang disorot (Sumber: Space Codesign Systems, Inc.)

Solusi komersial seperti Xilinx SDSoC/SDAccel, Falcon Computing Merlin Compiler, dan Space Codesign SpaceStudio kini menyediakan dukungan end-to-end. Mereka mencerminkan alur dalam Gambar 1 dan 2 sambil menyuntikkan logika keputusan otomatis:

Tampilan Ekosistem Komersial
Gambar 4 menyajikan pandangan berlapis dari ekosistem yang melingkupi desain platform CPU/FPGA. Lapisan teratas menunjukkan titik entri algoritmik; lapisan tengah menempatkan alat yang mendukung optimasi tingkat sistem dari C/C++; lapisan bawah berisi alat sintesis vendor yang menghasilkan bitstream. Platform CPU/FPGA representatif diilustrasikan di dasar.

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Gambar 4. Ekosistem komersial untuk platform CPU/FPGA (Sumber: Space Codesign Systems, Inc.)

Tabel 1 mencantumkan alat otomatisasi komersial kunci yang digunakan dalam desain platform CPU/FPGA.

Mempercepat Co‑Desain CPU‑FPGA: Alur Praktis untuk Pengembang Perangkat Lunak

Tabel 1. Alat otomatisasi komersial (*Catatan: Daftar diusulkan dalam tinjauan ini)

Kesimpulan
Membuka akses pengembangan CPU-plus-FPGA adalah tujuan akhir, memungkinkan lebih banyak pengembang perangkat lunak untuk memanfaatkan akselerasi hardware. Sama seperti industri perangkat lunak berkembang dari assembly ke Python dan Swift selama lima dekade, pemrograman FPGA sedang mengalami maturasi yang sama. Munculnya alat tingkat sistem seperti SpaceStudio, SDSoC, dan Merlin Compiler menandai pergeseran penting—masih, otomatisasi penuh dan optimasi yang lancar di seluruh kompilator tetap tonggak masa depan.

Guy Bois, Ing., PhD adalah Pendiri Space Codesign Systems dan Profesor di Departemen Rekayasa Perangkat Lunak dan Komputer di Polytechnique Montréal. Dengan pengalaman R&D yang luas bersama pemimpin industri—STMicroelectronics, Grass Valley, PMC Sierra, Design Workshops Technologies, dan Cadabra Systems—keahlian Guy dalam co-desain hardware/perangkat lunak telah mengarah pada komersialisasi SpaceStudio dan pendirian Space Codesign Systems Inc.

Tertanam

  1. CEO AMendate Thomas Reiher tentang Merevolusi Cetak 3D dengan Optimasi Topologi Otomatis
  2. Ravi Kunju Altair Membahas Desain Berbasis Simulasi dan Inspire Print3D
  3. 5 Pertanyaan Mendalam dengan Stefan Ferber, CEO Bosch.IO
  4. Inisiatif VE-VIDES Meluncurkan Kerangka Desain & Verifikasi Terpercaya untuk Keamanan IoT
  5. Cadence Meluncurkan Alat Cerebrus Berbasis ML untuk Meningkatkan Produktivitas Desain Chip 10× dan PPA 20%
  6. Cadence dan UMC Sertifikasi Alur Desain AMS 28HPC+ untuk Pengembangan Chip
  7. Tingkatkan Platform Robot Biaya Rendah Anda dengan Hardware Sumbu-7 Baru dan Perangkat Lunak Digital Twin Gratis
  8. Infineon & Elektrobit Hadirkan Keamanan Generasi Berikutnya untuk Mobil Terhubung
  9. Omron Meluncurkan Flow Core: Perangkat Lunak Canggih Meningkatkan Keandalan & Fleksibilitas Robot Mobile
  10. Menavigasi Lanskap Manufaktur Baru: Strategi untuk Keberhasilan