Tom’s Hardware Articles
Alexander Kostovich, September 8, 2021
Nvidia (image credit: Nvidia)
RISC-V is one of the hottest subjects in the computing world. This is because the instruction set architecture (ISA) offers a wide range of customization and understanding, in addition to the benefits of open source license free. Some projects designed generic GPUs based on RISC-V ISA and are now porting Nvidia’s CUDA software library to the Vortex RISC-VGP GPU platform.
Nvidia’s CUDA (Compute Unified Device Architecture) represents a unique computing platform and application programming interface (API) that runs on NVIDIA’s graphics card lineup. If the application is coded for CUDA support, the system will detect CUDA-based GPUs. This greatly improves GPU acceleration in your code.
Today, researchers are looking at ways to enable support for the CUDA software toolkit in a RISC-VGPGPU project called Vortex. Vortex RISC-V GPGPU aims to provide a full system RISC-V GPU based on RV32 IMFISA. This means 32-bit cores that can be extended from 1-core to 32-core GPU designs. It supports the OpenCL 1.2 graphics API and more recently some CUDA actions.
The researchers explain: “… This project proposes and builds a pipeline that supports end-to-end CUDA porting. The pipeline accepts CUDA source code as input and runs on the extended RISC-VGPU architecture. Pipeline CUDA Convert the source code as follows: Then convert NVVMIR, NVVMIR to SPIR-VIR, transfer SPIR-V IR to POCL to get RISC-V binary file, and finally extended RISC-VGPU Run the binary file in the architecture.
(Image credit: arXiv: 2109.00673)
I visualized this process in the graph above. All the steps to make it work are shown. The CUDA source code is based on the open source LLVM IR and is represented in an intermediate representation (IR) format called NVVM IR. It is then converted to a standard portable intermediate representation (SPIR-V) IR and transferred to OpenCL’s standard portable open source implementation called POCL. Vortex supports OpenCL, so the supported code is provided and it runs successfully.
Check out this paper for more information on this complex process. And, as an important note, we need to thank these researchers for their efforts to make CUDA run on RISC-VGPGPU. This is only a small step so far, but it may be the beginning of an era when RISC-V is used in accelerated computing applications. This is very similar to what Nvidia is currently doing with its GPU lineup.