A team of researchers from the Georgia Institute of Technology is developing the Vortex research project, which offers an open GPGPU based on the RISC-V instruction set architecture, aimed at executing parallel computations using the OpenCL API and the SIMT (Single Instruction, Multiple Threads) execution model, as well as conducting research in 3D graphics and developing new GPU architectures. The project is currently at the prototype stage, operating with FPGA. Schematics, hardware block descriptions in Verilog, simulator, drivers, and related project documentation are distributed under the BSD license.
In its current form, a standard RISC-V ISA is provided, extended with some additional instructions necessary for supporting GPU functions and stream management. In development, the authors of the project aimed to minimize changes to the RISC-V instruction set architecture, utilizing existing vector instructions whenever possible. A similar approach is also applied in the RV64X project, which also develops an open GPU based on RISC-V technologies.

Vortex's graphics processing capabilities are currently limited. Support for OpenGL ES based on Vortex has been announced, but currently, the GPU implements only the 'tex' instruction for accelerated texture processing, which is performed at the fragment shader level. There is no built-in rasterizer; all geometry operations are handled by the system CPU, while basic primitives for points, lines, and triangles, as well as fragment processing, depth, and transparency, are implemented using OpenCL core.

In the future, it is planned to implement graphics-specific ISA extensions, add support for CUDA and Vulkan APIs, as well as extensions for accelerating machine learning systems and data analytics. For application development, a toolkit is offered, including adapted versions of PoCL (OpenCL compiler and runtime), LLVM/Clang, GCC, and Binutils for working with Vortex. Chip operation simulation is supported using Verilator (Verilog simulator) and SimX (software simulation).

Key features of Vortex:
- Support for the RISC-V RV32IMF instruction set architecture.
- Chip scaling up to 64 cores with optional L2 and L3 caches.
- Each core can execute 1024 threads and operate at a frequency of 250 MHz.
- The maximum computing power is estimated at 128 Gflops, with a memory bandwidth of 16 GB/s. A 32-core implementation running at 200 MHz on an Altera Stratix 10 FPGA demonstrated a performance of 25.6 GFlops.
- Support for the OpenCL 1.2 standard.
- Implementation capability based on Intel Arria 10 and Intel Stratix 10 FPGAs.
Source: opennet.ru
