Sekelompok penggemar mengusulkan satu set instruksi grafis baru yang dirancang untuk grafis 3D dan pemrosesan media. Instruksi baru ini dibangun di atas set instruksi vektor dasar RISC-V. Mereka akan menambahkan dukungan untuk tipe data baru yang khusus grafis sebagai ekstensi berlapis dalam semangat arsitektur set instruksi RISC-V inti (ISA). Vektor, matematika transendental, piksel, dan tekstur serta operasi buffer Z/Frame didukung. Ini bisa menjadi ISA CPU-GPU yang menyatu. Grup ini menyebutnya RV64X karena instruksi akan panjangnya 64-bit (32 bit tidak akan cukup untuk mendukung ISA yang kuat).
Kenapa sekarang?
Dunia memiliki banyak GPU untuk dipilih, mengapa demikian? Karena, kata grup tersebut, GPU komersial kurang efektif dalam memenuhi kebutuhan yang tidak biasa seperti kliping frustum 3D fase ganda, HPC yang dapat disesuaikan (FFT kedalaman bit sewenang-wenang), SLAM perangkat keras. Mereka percaya bahwa kolaborasi memberikan standar yang fleksibel, mengurangi upaya 10 hingga 20 tahun, jika tidak diperlukan, dan akan membantu verifikasi silang untuk menghindari kesalahan.
Tim mengatakan motivasi dan tujuan mereka didorong oleh keinginan untuk membuat desain kecil yang efisien area dengan kemampuan program dan ekstensibilitas khusus. Itu harus menawarkan kepemilikan dan pengembangan IP berbiaya rendah, dan tidak bersaing dengan penawaran komersial. Ini dapat diimplementasikan dalam target FPGA dan ASIC dan akan gratis dan open source. Desain awal akan ditargetkan untuk mikrokontroler berdaya rendah. Ini akan sesuai dengan Khronos Vulkan, dan seiring waktu mendukung API lain (OpenGL, DirectX, dan lainnya).
Perangkat keras terakhir akan menjadi inti RISC-V dengan unit fungsional GPU. Untuk programmer itu akan terlihat seperti satu bagian dari perangkat keras dengan instruksi panjang 64-bit yang dikodekan sebagai instruksi skalar. Model pemrograman adalah SIMD yang nyata, yaitu, kompiler menghasilkan SIMD dari opcode skalar awalan. Ini akan mencakup masalah variabel, backend SIMD berpredikat, front-end vektor, pengecualian presisi, bayangan cabang, dan banyak lagi. Tidak diperlukan mekanisme panggilan RPC/IPC untuk mengirim panggilan API 3D ke/dari ruang memori CPU yang tidak digunakan ke ruang memori GPU dan sebaliknya, kata tim tersebut. Dan akan tersedia sebagai titik tetap 16-bit (ideal untuk FPGA), serta titik mengambang 32-bit (ASIC atau FPGA).
Desain akan menggunakan format Vblock (dari upaya Libre GPU):
Ini sedikit mirip VLIW (hanya saja tidak terlalu)
Sebuah blok instruksi didahului dengan tag register yang memberikan konteks ekstra untuk instruksi skalar di dalam blok
Sub-blok meliputi:panjang vektor, swizzling, penggantian dan predikat vektor/lebar.
Semua ini ditambahkan ke opcode skalar
Tidak ada opcode vektor (dan tidak perlu)
Dalam konteks vektor, seperti ini:jika register digunakan oleh opcode skalar, dan register terdaftar dalam konteks vektor, mode vektor diaktifkan
Aktivasi menghasilkan for-loop tingkat perangkat keras yang mengeluarkan beberapa operasi skalar yang berdekatan (bukan hanya satu).
Pelaksana bebas mengimplementasikan loop dengan cara apa pun yang mereka inginkan:SIMD, multi-masalah, satu-eksekusi.
Desain akan menggunakan skalar (8-, 16-, 24- dan 32-bit tetap dan mengapung), serta transendental (sincos, atan, pow, exp, log, rcp, rsq, sqrt, dll.). Vektor (RV32-V) akan mendukung operasi vektor 2-4 elemen (8-, 16- atau 32-bit/elemen), bersama dengan instruksi khusus untuk pipa rendering grafis 3D umum untuk titik, piksel, texel (pada dasarnya vektor khusus )
Titik XYZW (64- dan 128-bit tetap dan mengambang)
Piksel RGBA (8-, 16-, 24- dan 32-bit piksel)
Teksel UVW (8-, 16-bit per komponen)
Lampu dan bahan (Ia, ka, Id, kd, Is, ks…)
Matriks akan menjadi matriks 2 × 2, 3 × 3, dan 4 × 4 akan didukung sebagai tipe data asli bersama dengan struktur memori untuk mendukungnya untuk vektor atribut dan pada dasarnya akan direpresentasikan dalam matriks 4 × 4.
Di antara keuntungan dari fusi CPU-GPU ISA adalah kemampuan untuk mengimplementasikan pipa grafis standar dalam mikrokode, memberikan dukungan untuk shader khusus dan mengimplementasikan ekstensi ray-tracing. Ini juga mendukung vektor untuk simulasi numerik dengan tipe data integer 8-bit untuk AI dan pembelajaran mesin.
Rasterizer khusus dapat diimplementasikan seperti splines, permukaan SubDiv, dan patch.
Desainnya akan cukup fleksibel sehingga dapat mengimplementasikan tahapan pipeline kustom, tahapan buffer geometri/piksel/bingkai kustom, tessellator kustom, dan operasi instans kustom.
Diagram blok RV64X
Implementasi referensi RV64X akan mencakup:
Cache SRAM Instruksi/Data (32KB)
Mikrokode SRAM(8KB)
Decoder Instruksi Fungsi Ganda
Mengimplementasikan RV32V dan X secara bawaan
Decoder Instruksi berkode mikro untuk ISA khusus
ALU Vektor Quad (32 bit/ALU—tetap/mengambang)
File Registrasi 136-bit (1K elemen)
Unit Fungsi Khusus
Satuan Tekstur
Buffer Bingkai lokal yang dapat dikonfigurasi
Desain dimaksudkan agar dapat diskalakan seperti yang ditunjukkan di bawah ini.
Desain terukur RV64X
Desain RV64X memiliki beberapa ide baru termasuk ISA CPU-GPU terpadu yang menyatu, register yang dapat dikonfigurasi untuk tipe data khusus, dan kode mikro berbasis SRAM yang ditentukan pengguna untuk ekstensi perangkat keras khusus yang ditentukan aplikasi untuk:
Tahap rasterisasi khusus
Pelacakan sinar
Pembelajaran mesin
Penglihatan komputer
Desain yang sama berfungsi baik sebagai mikrokontroler grafis yang berdiri sendiri atau unit shader skalabel, dan format data mendukung implementasi FPGA-native atau ASIC.
Mengapa ada kebutuhan untuk grafik terbuka ?
Pengembang berpikir sebagian besar prosesor grafis mencakup kelas atas seperti game, perdagangan frekuensi tinggi, visi komputer, dan pembelajaran mesin. Mereka percaya ekosistem tidak memiliki inti grafis yang dapat diskalakan untuk aplikasi yang lebih utama untuk hal-hal seperti kios, papan reklame, permainan kasino, mainan, robotika, peralatan, perangkat yang dapat dikenakan, antarmuka manusia-mesin industri, infotainment, dan kluster pengukur otomotif. Sementara itu, bahasa pemrograman khusus harus digunakan untuk memprogram inti GPU untuk OpenGL, OpenCL, CUDA, DirectCompute, dan DirectX.
Ekstensi grafis untuk RISC-V akan mengatasi skalabilitas dan beban multi-bahasa yang memungkinkan tingkat inovasi kasus penggunaan yang lebih tinggi.
Langkah selanjutnya
Ini adalah spesifikasi yang sangat awal, masih dalam pengembangan dan dapat berubah berdasarkan masukan pemangku kepentingan dan industri. Tim akan membentuk forum diskusi. Tujuan langsungnya adalah membangun implementasi sampel dengan simulator set instruksi, implementasi FPGA menggunakan IP sumber terbuka dan IP khusus yang dirancang sebagai proyek sumber terbuka. Demo dan benchmark sedang dirancang. Pengembang yang tertarik untuk berpartisipasi harus mengontrak Atif Zafar.
Adapun GPU 3D Libre-RISC, tujuan organisasi adalah merancang CPU, VPU, dan GPU hybrid. Ini bukan, seperti yang dilaporkan secara luas, "GPU eksklusif khusus." Ada opsi untuk membuat produk GPU yang berdiri sendiri. Tujuan utama mereka adalah merancang SoC prosesor all-in-one lengkap yang kebetulan menyertakan VPU dan GPU berlisensi Libre.
Bagaimana menurut kami?
Populasi pemasok GPU meningkat. Kami sekarang memiliki lebih dari selusin.
AppleLibre-RISC-V 3D GPUQualcommAMDNvidiaGrafis RISC-VArmIntelThink-SiliconDMPJingjia MicroVeriSilcionImagination Technologies
Aplikasi yang tidak terdaftar sebagai pengguna potensial dari GPU kecil yang gratis, fleksibel, termasuk mata uang kripto dan penambangan.
Jika tujuan komunitas RISC-V untuk meniru pemasok IP seperti Arm dan Imagination, maka kita dapat mengharapkan untuk melihat desain DSP, ISP dan DP. Setidaknya ada satu proposal Open DSP; mungkin bisa dibawa ke komunitas RISC-V.
Ini akan memakan waktu setidaknya dua tahun sebelum implementasi perangkat keras muncul. Salah satu kandidat paling logis untuk mengadopsi desain ini adalah Xilinx, yang sekarang menggunakan Arm's Mali dalam desain Zynq-nya. Kami juga berharap melihat beberapa implementasi keluar dari China.
>> Artikel ini awalnya diterbitkan pada situs saudara kami, EE Times.
Jon Peddie , pelopor dalam industri grafis, adalah presiden dari Jon Peddie Research.
Untuk lebih banyak Tertanam, berlangganan buletin email mingguan Tersemat.