Komputasi kinerja tinggi, dengan kode yang jauh lebih sedikit | Berita MIT

Banyak perusahaan berinvestasi besar-besaran dalam perekrutan bakat untuk menciptakan kode perpustakaan berkinerja tinggi yang menopang sistem kecerdasan buatan modern. NVIDIA, misalnya, mengembangkan beberapa perpustakaan komputasi berkinerja tinggi (HPC) yang paling canggih, menciptakan parit kompetitif yang terbukti sulit bagi orang lain untuk dilanggar.
Tetapi bagaimana jika beberapa siswa, dalam beberapa bulan, dapat bersaing dengan perpustakaan HPC yang canggih dengan beberapa ratus baris kode, bukannya puluhan atau ratusan ribu?
Itulah yang telah ditunjukkan oleh para peneliti di Laboratorium Ilmu Komputer dan Kecerdasan Buatan MIT (CSAIL) dengan bahasa pemrograman baru yang disebut Exo 2.
EXO 2 termasuk dalam kategori baru bahasa pemrograman yang disebut profesor Jonathan Ragan-Kelley sebagai “bahasa yang dapat dijadwalkan pengguna” (USLS). Alih-alih berharap bahwa kompiler buram akan secara otomatis menghasilkan kode tercepat, USLS menempatkan programmer di kursi pengemudi, memungkinkan mereka untuk menulis “jadwal” yang secara eksplisit mengontrol bagaimana kompiler menghasilkan kode. Ini memungkinkan para insinyur kinerja untuk mengubah program sederhana yang menentukan apa yang ingin mereka hitung menjadi program kompleks yang melakukan hal yang sama dengan spesifikasi asli, tetapi banyak, jauh lebih cepat.
Salah satu keterbatasan USL yang ada (seperti EXO asli) adalah set operasi penjadwalan yang relatif tetap, yang membuatnya sulit untuk menggunakan kembali kode penjadwalan di berbagai “kernel” (komponen individual dalam perpustakaan berkinerja tinggi).
Sebaliknya, EXO 2 memungkinkan pengguna untuk mendefinisikan operasi penjadwalan baru secara eksternal ke kompiler, memfasilitasi pembuatan perpustakaan penjadwalan yang dapat digunakan kembali. Penulis utama Yuka Ikarashi, seorang mahasiswa PhD MIT dalam Teknik Listrik dan Ilmu Komputer dan Afiliasi CSAIL, mengatakan bahwa EXO 2 dapat mengurangi kode jadwal total dengan faktor 100 dan memberikan kinerja yang kompetitif dengan implementasi canggih pada berbagai platform, termasuk subprogram aljabar linier dasar (BLAS) yang memberi daya pada banyak aplikasi pembelajaran mesin. Ini membuatnya menjadi opsi yang menarik bagi para insinyur di HPC yang berfokus pada mengoptimalkan kernel di berbagai operasi, tipe data, dan arsitektur target.
“Ini adalah pendekatan bottom-up untuk otomatisasi, daripada melakukan pencarian ML/AI melalui kode kinerja tinggi,” kata Ikarashi. “Apa artinya adalah bahwa insinyur kinerja dan pelaksana perangkat keras dapat menulis perpustakaan penjadwalan mereka sendiri, yang merupakan serangkaian teknik optimasi untuk diterapkan pada perangkat keras mereka untuk mencapai kinerja puncak.”
Salah satu keuntungan utama EXO 2 adalah mengurangi jumlah upaya pengkodean yang diperlukan pada satu waktu dengan menggunakan kembali kode penjadwalan di seluruh aplikasi dan target perangkat keras. Para peneliti menerapkan perpustakaan penjadwalan dengan sekitar 2.000 baris kode dalam EXO 2, merangkum optimasi yang dapat digunakan kembali yang spesifik linier-aljabar dan spesifik target (AVX512, AVX2, Neon, dan Gemmini Hardware Accelerators). Perpustakaan ini mengkonsolidasikan upaya penjadwalan di lebih dari 80 kernel berkinerja tinggi dengan hingga selusin baris kode masing-masing, memberikan kinerja yang sebanding dengan, atau lebih baik dari, MKL, OpenBlas, Blis, dan Halide.
EXO 2 mencakup mekanisme baru yang disebut “Kursor” yang memberikan apa yang mereka sebut “referensi stabil” untuk menunjuk pada kode objek di seluruh proses penjadwalan. Ikarashi mengatakan bahwa referensi yang stabil sangat penting bagi pengguna untuk merangkum jadwal dalam fungsi perpustakaan, karena membuat kode penjadwalan terlepas dari transformasi kode objek.
“Kami percaya bahwa USL harus dirancang agar pengguna-extensible, daripada memiliki satu set operasi tetap,” kata Ikarashi. “Dengan cara ini, suatu bahasa dapat tumbuh untuk mendukung proyek -proyek besar melalui implementasi perpustakaan yang mengakomodasi beragam persyaratan optimasi dan domain aplikasi.”
Desain EXO 2 memungkinkan insinyur kinerja untuk fokus pada strategi optimasi tingkat tinggi sambil memastikan bahwa kode objek yang mendasari tetap setara secara fungsional melalui penggunaan primitif yang aman. Di masa depan, tim berharap untuk memperluas dukungan EXO 2 untuk berbagai jenis akselerator perangkat keras, seperti GPU. Beberapa proyek yang sedang berlangsung bertujuan untuk meningkatkan analisis kompiler itu sendiri, dalam hal kebenaran, waktu kompilasi, dan ekspresifitas.
Ikarashi dan Ragan-Kelley ikut menulis surat ini dengan mahasiswa pascasarjana Kevin Qian dan Samir Droubi, Alex Reinking dari Adobe, dan mantan postdoc CSAIL Gilbert Bernstein, sekarang seorang profesor di Universitas Washington. Penelitian ini didanai, sebagian, oleh Badan Proyek Penelitian Lanjutan Pertahanan AS (DARPA) dan Yayasan Sains Nasional AS, sementara penulis pertama juga didukung oleh Fellowship Masason, Funai, dan Quad.
Informasi ini pertama kali tayang di MIT.edu klik disini untuk melihat berita lainnya.
Discover more from Kitiran Media
Subscribe to get the latest posts sent to your email.