ventus-gpgpu  by THU-DSP-LAB

RISC-V GPGPU processor design and toolchain

Created 3 years ago
821 stars

Top 43.2% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Ventus-GPGPU is an open-source project developing a high-performance GPGPU processor based on the RISC-V architecture and its Vector Extension (RVV). It targets researchers and developers seeking a flexible, customizable GPU hardware platform, offering a foundation for advanced computing and AI workloads.

How It Works

Developed using the Chisel HDL, Ventus implements a GPGPU architecture supporting RISC-V ISA extensions. Its core approach leverages a modular design, with a software toolchain built on LLVM for OpenCL C compilation, enabling integration with standard GPU programming models. The architecture emphasizes performance through its RISC-V vector capabilities and a custom Verilator-based simulation framework.

Quick Start & Requirements

  • Installation: Clone the repository, then run make init to set up dependencies.
  • Prerequisites: Requires make, parallel, wget, cmake, ninja, mill, dtc, verilator, git, llvm, clang, lld, protobuf, antlr4, numactl. Java 17+ is recommended. Specific package managers are detailed for Arch Linux (pacman) and Ubuntu (apt-get).
  • IDE/Build: Use make idea or make bsp for IDE support, make verilog to generate Verilog, and make test to run simulations.
  • Documentation: Links to architecture docs, Chinese docs, software toolchain releases, and presentation slides are available within the README.

Highlighted Details

  • Features a GPGPU processor supporting the RISC-V Vector Extension (RVV).
  • Includes an OpenCL C compiler toolchain based on LLVM.
  • Employs a custom Verilator-based simulation framework to overcome chiseltest limitations.
  • Detailed formats for kernel metadata (.metadata) and data (.data) files are provided for kernel development.
  • Work accepted at IEEE ICCD 2024.

Maintenance & Community

The project actively calls for contributors, with contact information provided for those interested in hardware design, verification, or toolchain development. Community engagement is encouraged via GitHub pull requests and issue reporting. The project website is opengpgpu.org.cn. Design modules are inspired by or reused from other open-source projects like MIAOW, Sifive's cache, XiangShan, and RocketChip.

Licensing & Compatibility

The primary license is the Mulan Permissive Software License, Version 2 (Mulan PSL v2). Specific files (build.sc, common.sc, shell.nix, config.scala) are under Apache License 2.0. ALU.scala is dual-licensed under Apache 2.0 and BSD 3-Clause. These licenses are generally permissive, but users should review Mulan PSL v2 for specific commercial use implications.

Limitations & Caveats

The project acknowledges significant areas for improvement in its RVV compiler toolchain, verification environment, and hardware design. Some setup tutorial commands may be outdated. The project is actively seeking contributions, indicating ongoing development and potential for evolving APIs or features.

Health Check
Last Commit

1 week ago

Responsiveness

Inactive

Pull Requests (30d)
2
Issues (30d)
2
Star History
20 stars in the last 30 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Jason Knight Jason Knight(Director AI Compilers at NVIDIA; Cofounder of OctoML), and
3 more.

gpu.cpp by AnswerDotAI

0.1%
4k
C++ library for portable GPU computation using WebGPU
Created 1 year ago
Updated 3 weeks ago
Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems") and Ying Sheng Ying Sheng(Coauthor of SGLang).

fastllm by ztxz16

0.4%
4k
High-performance C++ LLM inference library
Created 2 years ago
Updated 1 week ago
Feedback? Help us improve.