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
- 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
$ ./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 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.