Een groep onderzoekers van het Georgia Institute of Technology ontwikkelt het onderzoeksproject Vortex, dat een open GPGPU biedt op basis van de RISC-V instructiesetarchitectuur, gericht op het uitvoeren van parallelle berekeningen met behulp van de OpenCL API en het SIMT (Single Instruction, Multiple Threads) uitvoeringsmodel, evenals op onderzoek op het gebied van 3D-grafica en de ontwikkeling van nieuwe GPU-architecturen. Het project bevindt zich momenteel nog in de prototypefase, werkend met behulp van FPGA. Schema's, beschrijvingen van hardwareblokken in Verilog, simulators, stuurprogramma's en bijbehorende projectdocumentatie worden verspreid onder de BSD-licentie.
In de huidige vorm wordt een standaard RISC-V ISA aangeboden, uitgebreid met enkele aanvullende instructies die nodig zijn voor de ondersteuning van GPU-functionaliteiten en threadbeheersing. Bij de ontwikkeling hebben de auteurs van het project geprobeerd de wijzigingen in de architectuur van de RISC-V instructieset te minimaliseren door, waar mogelijk, gebruik te maken van bestaande vectorinstructies. Een soortgelijke benadering wordt ook toegepast in het RV64X-project, dat ook een open GPU ontwikkelt op basis van RISC-V technologieën.

De grafische verwerkingscapaciteiten van Vortex zijn momenteel beperkt. Er is aangekondigd dat de ondersteuning van OpenGL ES op basis van Vortex wordt geïmplementeerd, maar in de GPU is tot nu toe slechts de 'tex'-instructie geïmplementeerd voor het versnellen van tekstuurverwerking, die plaatsvindt op het niveau van de fragment-shader. Er ontbreekt een ingebouwde rasterizer - alle geometrische bewerkingen worden uitgevoerd door de systeemp CPU, en de basisprimitieven voor punten, lijnen en driehoeken, evenals fragment-, diepte- en transparantieverwerking, zijn geïmplementeerd met behulp van OpenCL-kernels.

In de toekomst is het plan om specifieke uitbreidingen voor grafische verwerking in de ISA te implementeren, ondersteuning voor de CUDA en Vulkan API's toe te voegen, evenals uitbreidingen voor het versnellen van machine learning en gegevensanalyse. Voor de ontwikkeling van toepassingen wordt een toolkit aangeboden die aangepaste versies van PoCL (de OpenCL-compiler en runtime), LLVM/Clang, GCC en Binutils bevat, die zijn aangepast voor samenwerking met Vortex. De simulatie van de chipwerking wordt ondersteund met behulp van Verilator (Verilog-simulator) en SimX (software-simulatie).

Belangrijkste kenmerken van Vortex:
- Ondersteuning voor de RISC-V RV32IMF instructiesetarchitectuur.
- Schaalbaarheid van de chip tot 64 cores met optionele L2 en L3 caches.
- Elke kern kan 1024 threads uitvoeren en werkt op een frequentie van 250 MHz.
- De maximale rekencapaciteit is geschat op 128 Gflops, met een geheugensnelheid van 16 GB/s. De 32-core implementatie, die draait op 200 Mhz, op basis van de Altera Stratix 10 FPGA, toonde een prestatie van 25.6 GFlops.
- Ondersteuning voor de OpenCL 1.2-standaard.
- Mogelijkheid tot implementatie op basis van de Intel Arria 10 en Intel Stratix 10 FPGA.
Bron: opennet.ru
