Keniscayaan penetrasi FPGA ke dalam pusat data

gambar

Anda tidak perlu menjadi pengembang chip untuk memprogram untuk FPGA, Anda tidak perlu menjadi seorang programmer C ++ untuk menulis kode Java. Namun, dalam kedua kasus, mungkin, itu tidak akan berlebihan.

Tujuan komersialisasi kedua teknologi, Java dan FPGA, adalah untuk menyangkal pernyataan terbaru. Berita bagus untuk FPGA adalah bahwa dengan penggunaan tingkat abstraksi dan toolkit yang sesuai dalam 35 tahun terakhir, sejak penemuan perangkat logika yang dapat diprogram, membuat algoritma dan aliran data untuk FPGA alih-alih CPU, DSP, GPU atau bentuk ASIC khusus lainnya lebih mudah.

Ketepatan waktu yang luar biasa dari kreasi mereka dimanifestasikan dalam kenyataan bahwa ketika CPU tidak lagi menjadi satu-satunya modul komputasi pusat data untuk melakukan banyak tugas - karena berbagai alasan - FPGA mencapai efisiensi mereka dengan menawarkan kecepatan, latensi rendah, kapabilitas jaringan, dan memori - heterogen Kemampuan komputasi SoC FPGA modern, yang hampir merupakan sistem komputasi lengkap. Namun, FPGA berhasil digabungkan dengan perangkat lain dalam sistem hibrid, dan, menurut pendapat kami, baru mulai menemukan tempat yang tepat dalam hierarki komputasi.

Jadi kami menyelenggarakan The Next FPGA Platform di San Jose pada 22 Januari. Secara alami, salah satu pemasok utama FPGA di dunia dan pelopor di bidang ini adalah Xilinx. Ivo Bolsens, Wakil Presiden Senior dan CTO Xilinx, membuat presentasi di konferensi dan memberitahu kami tentang pemikirannya hari ini tentang bagaimana Xilinx membantu menciptakan sistem komputasi yang dapat diubah untuk pusat data.

Arsitek dan pemrogram sistem membutuhkan waktu yang cukup lama untuk datang ke pusat data yang heterogen, yang akan menghadirkan berbagai jenis kapasitas komputer yang memecahkan masalah komputasi, penyimpanan, dan jaringan. Ini tampaknya perlu karena fakta bahwa mengikuti hukum Moore menggunakan berbagai CMOS menjadi semakin sulit. Sementara bahasa kita masih terikat pada CPU, dan kita masih berbicara tentang "akselerasi aplikasi", merujuk pada peningkatan dalam pengoperasian program dibandingkan dengan apa yang dapat dilakukan pada CPU saja. Setelah beberapa waktu, pusat data akan berubah menjadi set daya komputasi, penyimpanan data, dan protokol yang menghubungkan semuanya bersama, dan kami akan kembali ke istilah seperti "komputasi" dan "aplikasi". Komputasi hybrid akan sama dengan layanan cloud saat ini,bekerja berdasarkan mesin konvensional atau virtual, dan pada titik tertentu kita hanya akan menggunakan kata "komputasi" untuk menggambarkan pekerjaan mereka. Pada titik tertentu - dan mungkin munculnya era ini akan difasilitasi secara aktif oleh FPGA - kita akan menyebutnya pemrosesan data.

Untuk menerapkan FPGA di pusat data, Anda perlu mengubah pola pikir Anda. "Ketika memikirkan cara untuk mempercepat aplikasi hari ini, Anda harus memahami cara menjalankannya, sumber daya apa yang digunakan, apa yang membutuhkan waktu," jelas Bolsens. - Anda perlu mempelajari masalah umum yang Anda coba selesaikan. Banyak aplikasi yang berjalan di pusat data saat ini dapat diukur, menangkap banyak sumber daya. Ambil pembelajaran mesin, misalnya, menggunakan sejumlah besar node komputasi. Tetapi berbicara tentang akselerasi, kita perlu berpikir tidak hanya tentang akselerasi komputasi, tetapi juga tentang akselerasi infrastruktur. ”

Misalnya, dalam operasi pembelajaran mesin yang dipelajari oleh Bolsens dalam praktiknya, sekitar 50% dari waktu dihabiskan untuk mentransfer data ke sana kemari antara daya komputasi yang tersebar, dan hanya separuh waktu yang tersisa dihabiskan untuk perhitungan itu sendiri.

“Di sinilah, bagi saya, FPGA akan dapat membantu, karena kami dapat memberikan optimasi baik dari aspek komputasi maupun aspek transfer data untuk aplikasi. Dan kita dapat melakukan ini di tingkat infrastruktur umum, dan di tingkat chip. Ini adalah salah satu keunggulan besar FPGA yang memungkinkan Anda membuat jaringan komunikasi untuk kebutuhan spesifik aplikasi. Menyaksikan pola tipikal pergerakan data dalam tugas yang terkait dengan pekerjaan kecerdasan buatan, saya tidak melihat perlunya arsitektur yang kompleks berdasarkan sakelar. Anda dapat membangun jaringan dengan aliran data yang besar. Hal yang sama berlaku untuk tugas-tugas pelatihan jaringan saraf - Anda dapat membangun jaringan mesh dengan ukuran paket yang beradaptasi dengan tugas tertentu. Menggunakan FPGA, Anda dapat mengatur dan menyempurnakan protokol transfer data dan topologi sirkuit untuk aplikasi tertentu.Dan dalam hal pembelajaran mesin, juga jelas bahwa kita tidak membutuhkan angka floating-point presisi ganda, dan kita dapat menyesuaikan ini juga. "

Perbedaan antara FPGA dan CPU atau ASIC khusus adalah bahwa yang terakhir diprogram selama produksi, dan setelah itu Anda tidak dapat mengubah pikiran Anda tentang jenis data yang dihitung atau elemen yang dihitung, atau tentang sifat aliran data yang melalui perangkat. FPGA memungkinkan Anda berubah pikiran jika kondisi kerja berubah.

Di masa lalu, keuntungan ini mahal ketika pemrograman untuk FPGA tidak dimaksudkan untuk orang yang lemah hati. Anda perlu membuka kompiler untuk FPGA sehingga mereka berintegrasi lebih baik dengan alat yang digunakan oleh programmer untuk membuat aplikasi komputasi paralel untuk CPU dalam C, C ++ atau Python, dan memberikan beberapa pekerjaan ke perpustakaan yang mempercepat prosedur pada FPGA. Inilah yang tumpukan pembelajaran mesin Vitis, yang merupakan dasar dari platform untuk MOs seperti Caffe dan TensorFlow, dan yang memiliki perpustakaan untuk meluncurkan model AI biasa atau menambahkan kemampuan FPGA untuk tugas-tugas seperti transcoding video, pengenalan objek pada video, analisis data, terlibat dalam hal ini , manajemen risiko keuangan dan perpustakaan pihak ketiga mana pun.

Konsep ini tidak jauh berbeda dari proyek CUDA dari Nvidia, diluncurkan sepuluh tahun yang lalu, dan menggeser komputasi paralel ke akselerator GPU, atau dari toolkit ROCm dari AMD, atau dari janji-janji proyek Intel, OneAPI, yang seharusnya berjalan pada CPU, GPU dan FPGA

Satu-satunya pertanyaan adalah bagaimana semua alat ini akan dihubungkan bersama sehingga siapa pun dapat memprogram satu set daya komputasi sesuai dengan kebijakan mereka. Ini penting karena FPGA menjadi lebih kompleks, jauh lebih kompleks daripada CPU mana pun yang tersedia. Mereka dibuat dengan proses teknologi paling maju dan dengan bantuan teknologi pengemasan chip paling modern. Dan mereka akan menemukan ceruk mereka, karena kita tidak bisa lagi membuang waktu, uang, energi dan kecerdasan - semua ini adalah sumber daya yang terlalu mahal.

"FPGA menawarkan keunggulan teknologi," kata Bolsens. - Dan ini bukan hanya iklan biasa tentang kemampuan beradaptasi dan penyesuaian. Dalam semua aplikasi penting - pembelajaran mesin, analisis grafik, perdagangan kecepatan tinggi, dll. - mereka memiliki kesempatan untuk beradaptasi dengan tugas tertentu tidak hanya jalur distribusi data, tetapi juga arsitektur memori - cara data bergerak dalam chip. Dan FPGA memiliki lebih banyak memori yang terpasang di dalam daripada perangkat lain. Perlu juga dicatat bahwa jika tugas tidak sesuai dalam satu FPGA, Anda dapat menskalakannya ke beberapa chip tanpa harus berurusan dengan kelemahan yang menanti Anda saat menskalakan tugas ke beberapa CPU atau GPU. "

Source: https://habr.com/ru/post/undefined/


All Articles