Skupina výzkumníků z Technologického institutu Georgie vyvíjí výzkumný projekt Vortex, který nabízí otevřený GPGPU založený na architektuře instrukční sady RISC-V, zaměřený na provádění paralelních výpočtů pomocí API OpenCL a modelu provádění SIMT (Single Instruction, Multiple Threads), a také na provádění výzkumů v oblasti 3D grafiky a vývoje nových architektur GPU. Projekt je zatím v prototypové fázi fungující pomocí FPGA. Schémata, popisy hardwarových bloků ve Verilogu, simulátor, ovladače a související projektová dokumentace jsou distribuovány pod licencí BSD.
V současné podobě je poskytována typová ISA RISC-V, rozšířená o některé další instrukce potřebné pro podporu funkcí GPU a řízení vláken. Při vývoji se autoři projektu snažili minimalizovat změny v architektuře instrukční sady RISC-V, pokud to bylo možné, využíváním již existujících vektorových instrukcí. Podobný přístup je také uplatněn v projektu RV64X, který rovněž vyvíjí otevřenou GPU na základě technologií RISC-V.

Možnosti Vortexu pro zpracování grafiky jsou zatím omezené. Bylo oznámeno, že Vortex podporuje OpenGL ES, ale v samotném GPU je zatím implementována pouze instrukce "tex" pro urychlení zpracování textur, která se provádí na úrovni fragmentového shadery. Vestavěný rasterizátor chybí — veškeré zpracování geometrických operací probíhá na straně systémového CPU, a základní primitivi pro body, čáry a trojúhelníky, stejně jako zpracování fragmentů, hloubky a průhlednosti, jsou realizovány pomocí jádra OpenCL.

V budoucnu se plánuje implementace specifických rozšíření ISA pro zpracování grafiky, přidání podpory API CUDA a Vulkan, stejně jako rozšíření pro urychlení systémů strojového učení a analýzy dat. Pro vývoj aplikací je k dispozici nástrojový kit, který zahrnuje upravené varianty PoCL (kompilátor a runtime OpenCL) pro práci s Vortexem, LLVM/Clang, GCC a Binutils. Podporována je simulace čipu pomocí Verilatoru (Verilogový simulátor) a SimX (softwarová simulace).

Hlavní vlastnosti Vortex:
- Podpora architektury instrukční sady RISC-V RV32IMF.
- Škálování čipu na 64 jader s volitelnými cache L2 a L3.
- Každé jádro může vykonávat 1024 vláken a pracovat s frekvencí 250 MHz.
- Maximální výpočetní výkon je odhadován na 128 Gflops a šířka pásma paměti je 16 GB/s. 32-jádrová implementace, pracující na frekvenci 200 MHz, na bázi FPGA Altera Stratix 10, vykázala výkon 25,6 GFlops.
- Podpora standardu OpenCL 1.2.
- Možnost realizace na bázi FPGA Intel Arria 10 a Intel Stratix 10.
Zdroj: opennet.ru
