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 graphics rasterizer, texture, and OM units.
- 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
- Centos 7
sudo apt-get install build-essential
sudo apt-get install binutils
sudo apt-get install python
sudo apt-get install uuid-dev
sudo apt-get install git
git clone --depth=1 --recursive https://github.com/vortexgpgpu/vortex.git
cd vortex
mkdir build
cd build
../configure --xlen=32 --tooldir=$HOME/tools
./ci/toolchain_install.sh --all
# should always run before using the toolchain!
source ./ci/toolchain_env.sh
make -s
CONFIGS="-DEXT_GFX_ENABLE" ./ci/blackbox.sh --driver=simx --app=draw3d --args="-ttekkaman.cgltrace -w256 -h256" --cores=2
The generated image will be written to tests/regression/draw3d/output.png
- 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 simply requires using --xlen=64 configure option.
../configure --xlen=32 --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 to get it propagated into your build folder.
../configure
- To debug the GPU, you can generate a "run.log" trace. see /docs/debugging.md for more information.
./ci/blackbox.sh --app=demo --debug=3
- For additional information, check out the /docs.