Vortex is a full-stack open-source RISC-V GPGPU.
-
Support RISC-V RV32IMAF and RV64IMAFD
-
Microarchitecture:
- configurable number of cores, warps, and threads.
- configurable number of ALU, FPU, LSU, and SFU units per core.
- configurable pipeline issue width.
- optional local memory, L1, L2, and L3 caches.
-
Software:
- OpenCL 1.2 Support.
-
Supported FPGAs:
- Altera Arria 10
- Altera Stratix 10
- Xilinx Alveo U50, U250, U280
- Xilinx Versal VCK5000
doc
: Documentation.hw
: Hardware sources.driver
: Host drivers repository.runtime
: Kernel Runtime software.sim
: Simulators repository.tests
: Tests repository.ci
: Continuous integration scripts.miscs
: Miscellaneous resources.
More detailed build instructions can be found here.
- Ubuntu 18.04, 20.04, 22.04, 24.04
- Centos 7
git clone --depth=1 --recursive https://github.com/vortexgpgpu/vortex.git
cd vortex
# ensure dependent libraries are present
sudo ./ci/install_dependencies.sh
mkdir build
cd build
# for 32bit
../configure --xlen=32 --tooldir=$HOME/tools
# for 64bit
../configure --xlen=64 --tooldir=$HOME/tools
./ci/toolchain_install.sh --all
# should always run before using the toolchain!
source ./ci/toolchain_env.sh
make -s
./ci/blackbox.sh --cores=2 --app=vecadd
- Installing Vortex kernel and runtime libraries to use with external tools requires passing --prefix= to the configure script.
../configure --xlen=32 --tooldir=$HOME/tools --prefix=<install-path>
make -s
make install
- Building Vortex 64-bit requires setting --xlen=64 configure option.
../configure --xlen=64 --tooldir=$HOME/tools
- Sourcing "./ci/toolchain_env.sh" is required everytime you start a new terminal. we recommend adding "source /ci/toolchain_env.sh" to your ~/.bashrc file to automate the process at login.
echo "source <build-path>/ci/toolchain_env.sh" >> ~/.bashrc
- Making changes to Makefiles in your source tree or adding new folders will require executing the "configure" script again without any options to get changes propagated to your build folder.
../configure
- To debug the GPU, the simulation can generate a runtime trace for analysis. See /docs/debugging.md for more information.
./ci/blackbox.sh --app=demo --debug=3
- For additional information, check out the /docs.