Megjelent a Vortex projekt második kiadása, amely a RISC-V utasításkészlet-architektúrán alapuló nyílt GPGPU-t fejleszt, amely az OpenCL API és a SIMT (Single Instruction, Multiple Threads) végrehajtási modell segítségével párhuzamos számítási feladatokat végez. A projekt felhasználható a 3D grafika területén végzett kutatásokra és új GPU architektúrák fejlesztésére is. A sémák, a hardverblokkok leírása Verilog nyelven, a szimulátor, az illesztőprogramok és a kísérő tervdokumentáció az Apache 2.0 licenc alatt kerül terjesztésre.
A GPGPU magja egy általános RISC-V ISA, amely kiegészítve néhány további utasítással, amelyek a GPU-funkciók és a szálvezérlés támogatásához szükségesek. Ugyanakkor a RISC-V utasításkészlet-architektúra változtatásait minimálisra csökkentik, és lehetőség szerint a meglévő vektorutasításokat használják. Hasonló megközelítést alkalmaz az RV64X projekt is, amely szintén RISC-V technológiákon alapuló nyílt GPU-t fejleszt.

A Vortex technológiákon alapuló grafikákhoz a nyílt GPU Skybox fejlesztés alatt áll, amely támogatja a Vulkan grafikus API-t. Az Altera Stratix 10 FPGA alapján létrehozott, 32 magot (512 szálat) tartalmazó Skybox prototípus 230 gigapixel/s (3.7 gigatranzakció/másodperc) kitöltési teljesítményt tett lehetővé 29.4 MHz-es frekvencián. Megjegyzendő, hogy ez az első nyílt GPU olyan szoftveres és hardveres megvalósítással, amely támogatja a Vulkan-t.
A Vortex főbb jellemzői:
- Támogatja a 32 és 64 bites RISC-V RV32IMF és RV64IMAFD utasításkészlet architektúrákat.
- Konfigurálható magok, feladatblokkok (warpok) és szálak száma.
- Az ALU-k, FPU-k, LSU-k és SFU-k konfigurálható száma magonként.
- Állítható csővezeték kibocsátási szélesség.
- Opcionális megosztott memória és L1, L2 és L3 gyorsítótár.
- OpenCL 1.2 specifikáció támogatása.
- Megvalósítási lehetőség FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 és Xilinx Versal VCK5000 alapján.
- Speciális utasítások: "tex" a textúrafeldolgozás felgyorsítására, vx_rast a raszterezés szabályozására, vx_rop a töredékek, mélység és átlátszóság kezelésére, vx_imadd a szorzási és összeadási műveletek végrehajtására, vx_wspawn, vx_tmc és vx_bar az utasításélek és hullámfrontok aktiválására, szálak készlete párhuzamosan hajtja végre a SIMD Engine), vx_split és vx_join.
- A SPIR-V shaderek köztes megjelenítésének támogatása OpenCL-re való fordítással valósul meg.
- Az alkalmazásfejlesztéshez eszközkészletet kínálunk, amely magában foglalja a PoCL (fordító és futásidejű OpenCL), LLVM/Clang, GCC és Binutils változatait a Vortex-szel való munkához.
- A chip szimulációt a Verilator (Verilog szimulátor), az RTLSIM (RTL szimuláció) és a SimX (szoftverszimuláció) támogatja.
A Vortex 2.0 változásai között szerepel:
- A mikroarchitektúrát optimalizálták.
- Hozzáadott támogatás a 64 bites RISC-V RV64IMAFD utasításkészlet architektúrához.
- Hozzáadtuk a Xilinx FPGA-n alapuló megvalósítás lehetőségét.
- Hozzáadott támogatás az LLVM 16-hoz és Ubuntu 20.04.
- Az átalakítás megtörtént, és a minőségértékelés során feltárt hibákat kijavították.
Forrás: opennet.ru
