GPU gratis yang tidak memerlukan royalti dan tidak ada syarat penggunaan adalah impian banyak developer. Sekarang sebuah proyek disajikan yang merupakan awal dari banyak pekerjaan untuk membuat GPU yang sepenuhnya terbuka.
Ini adalah proyek yang dikembangkan oleh sekelompok peminat bersama dengan Pixlica, proyek itu sendiri disebut RV64X. Tugas utama tim adalah membuat satu set instruksi tambahan untuk grafik 3D dan pemrosesan data multimedia. Hasilnya adalah GPU yang dapat diintegrasikan secara bebas ke dalam prosesor berdasarkan arsitektur RISC-V.
Proyek ini didasarkan pada instruksi vektor dari RISC-V ISA. Mereka telah diperluas dengan dukungan untuk tipe data baru dan ekstensi yang dikhususkan untuk pemrosesan grafik. Secara khusus, operasi tambahan diusulkan untuk pemrosesan piksel (RGBA), titik (XYZW), elemen tekstur (UVW-texels), vektor (operasi dengan 2-4 vektor), parameter material, kalkulasi pencahayaan, matematika transendental, buffer kedalaman (Z - buffer) dan buffer bingkai (Framebuffer).
Prototipe pertama, menurut pengembangnya, dirancang hanya untuk digunakan di mikrokontroler, sehingga dukungannya hanya terbatas pada Vulkan API. Namun seiring waktu, pengembang akan menambahkan dukungan untuk OpenGL dan DirectX.
Ide di balik proyek baru ini adalah fleksibilitas arsitektur, yang memungkinkan Anda menghubungkan ekstensi untuk menyelesaikan berbagai tugas tertentu, termasuk pemotongan dua fase kerucut, penggunaan transformasi Fourier cepat untuk kedalaman warna sewenang-wenang, dan implementasi perangkat keras SLAM. . RV64X memiliki kemampuan untuk mengimplementasikan tahapannya sendiri untuk pipeline komputasi, serta buffer geometris, piksel, dan bingkai. Proyek ini juga mendukung pembuatan tesseler Anda sendiri.
Produsen, menggunakan proyek ini, memiliki kesempatan untuk menyiapkan chip yang dirancang untuk berbagai tugas. Pada saat yang sama, RV64X adalah basisnya.
Konsep proyek ini adalah hybrid CPU-GPU ISA, yang memungkinkan Anda membuat mikrokontroler grafis khusus dan prosesor multi-core yang menggabungkan core komputasi dengan blok untuk melakukan operasi grafis. Prosesor yang terintegrasi dengan GPU akan terlihat seperti satu unit tanpa blok video dialokasikan. Ini diprogram menggunakan serangkaian instruksi 64-bit terpadu dan model SIMD untuk menyediakan paralelisme tingkat data.
Kami juga dapat menyebutkan fitur arsitektur GPU baru seperti penggunaan model memori tunggal di CPU dan GPU, yang memungkinkan untuk dilakukan tanpa mekanisme RPC / IPC tambahan untuk menerjemahkan panggilan antara memori GPU dan CPU saat memproses operasi API 3D. Dalam hal ini, operasi grafik standar dapat diimplementasikan pada level microcode. Mendukung pembuatan shader kustom, rasterizer, dan ekstensi untuk penelusuran yang lebih baik.
Jika perlu, pengembang dapat mengimplementasikan operasi vektor untuk mengerjakan tugas simulasi, proyek visi komputer, dan pembelajaran mesin.
Adapun implementasi arsitektur, itu termasuk 32KB L1 cache untuk instruksi dan data, 8 KB SRAM untuk microcode, dekoder instruksi, implementasi perangkat keras set instruksi RV32V dan RV64X, dekoder instruksi tambahan yang ditentukan mikrocode, unit logika aritmatika vektor (ALU ), File register 136-bit dengan 1.024 elemen, Unit Fungsi Khusus (SFU), Unit Tekstur, dan framebuffer lokal yang dapat dikonfigurasi.