No description
Find a file
2024-08-06 17:25:35 -07:00
.github/workflows minor update 2024-07-31 14:51:34 -07:00
ci fixed minor typo 2024-08-06 13:11:28 -07:00
docs reset GRPs only in debug mode 2024-07-28 17:40:03 -07:00
hw minor updates 2024-08-06 12:58:58 -07:00
kernel fixed kernel lib dependency 2024-08-06 17:20:01 -07:00
miscs Dockerfile update 2024-07-23 16:01:00 -07:00
perf/cache enabling Makefile configuration with build folder support 2024-03-30 02:28:39 -07:00
runtime Merge branch 'develop' 2024-08-04 14:17:08 -07:00
sim fixed memory block size configuration 2024-08-06 12:46:19 -07:00
tests Updated prints and code spacing 2024-08-04 23:39:13 -07:00
third_party ramulator build fix 2024-07-24 23:27:16 -07:00
.gitignore Added *.cache to gitignore 2024-07-22 20:46:28 -07:00
.gitmodules Ramulator 2.0 with HBM 2.0 support 2024-07-21 06:57:13 -07:00
config.mk.in minor update 2024-07-30 02:42:25 -07:00
configure minor update 2024-07-30 02:42:25 -07:00
LICENSE Vortex 2.0 changes: 2023-10-19 20:51:22 -07:00
Makefile.in minor update 2024-07-30 02:42:25 -07:00
README.md Capitalize S in "set enviroment vairables" 2024-07-25 16:40:19 -07:00

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
../configure --xlen=32 --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.