mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-21 12:28:15 -04:00
No description
.github/workflows | ||
ci | ||
docs | ||
hw | ||
kernel | ||
miscs | ||
perf/cache | ||
runtime | ||
sim | ||
tests | ||
third_party | ||
.gitignore | ||
.gitmodules | ||
config.mk.in | ||
configure | ||
LICENSE | ||
Makefile.in | ||
README.md |
Vortex GPGPU
Vortex is a full-stack open-source RISC-V GPGPU.
Specifications
- 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
Directory structure
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.
Build Instructions
More detailed build instructions can be found here.
Supported OS Platforms
- Ubuntu 18.04, 20.04
- Centos 7
Toolchain Dependencies
Install development tools
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
Install Vortex codebase
git clone --depth=1 --recursive https://github.com/vortexgpgpu/vortex.git
cd vortex
Configure your build folder
mkdir build
cd build
# for 32bit
../configure --xlen=32 --tooldir=$HOME/tools
# for 64bit
../configure --xlen=64 --tooldir=$HOME/tools
Install prebuilt toolchain
./ci/toolchain_install.sh --all
set environment variables
# should always run before using the toolchain!
source ./ci/toolchain_env.sh
Building Vortex
make -s
Quick demo running vecadd OpenCL kernel on 2 cores
./ci/blackbox.sh --cores=2 --app=vecadd
Common Developer Tips
- 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.