The VeriGPU project aims to create an open GPU developed using the Verilog hardware description and modeling language. Initially, the project is being developed using a Verilog simulator, but once completed, it will be able to be used for the production of real chips. The project’s developments are distributed under the MIT License.
VeriGPU is positioned as a specialized processor (ASIC) optimized for accelerating computations related to machine learning systems. Plans mention compatibility with the deep learning framework PyTorch and the implementation of application development for VeriGPU using the HIP (Heterogeneous-Compute Interface) API. Future support for other APIs, such as SYCL and NVIDIA CUDA, is also anticipated.
The GPU is developed based on the RISC-V instruction set; however, the final internal architecture of the GPU instruction set is only loosely compatible with the RISC-V ISA, as the design of the GPU does not aim to maintain compatibility with RISC-V when it does not fit within the RISC-V representation. Development is focused on the capabilities necessary for machine learning systems, which is why only the BF16 floating-point computation format is used to reduce the size and complexity of the chip matrix, and only essential floating-point operations for machine learning, such as exp, log, tanh, and sqrt, are made available.
The already available components include a GPU controller, an APU (Accelerated Processing Unit) for integer operations (‘+’, ‘-’, ‘/’, ‘*’), a block for floating-point operations (‘+’, ‘*’), and a branch management block. An assembler and support for code compilation in C++ based on LLVM are offered for application development. Planned features include instruction-level parallelism, data and instruction memory caching, and SIMT (Single Instruction Multiple Threads) operations.

Source: opennet.ru
