No description
Find a file
2024-08-21 05:48:01 -04:00
ci FpNew RTL fix 2024-06-14 16:29:52 -07:00
docs minor update 2024-06-03 19:55:03 -07:00
hw Fixed rtlsim of vote and shfl 2024-08-21 05:45:49 -04:00
kernel No changes 2024-08-02 14:04:38 -04:00
miscs Docker update 2024-06-13 02:14:54 -07:00
perf/cache enabling Makefile configuration with build folder support 2024-03-30 02:28:39 -07:00
runtime merge fix 2024-06-11 09:31:13 -07:00
sim Fixed simx for vote and shfl 2024-08-21 05:48:01 -04:00
tests Added test for vote 2024-07-15 13:30:54 -04:00
third_party riscv tests refactoring 2024-05-28 10:46:31 -07:00
.gitignore enabling Makefile configuration with build folder support 2024-03-30 02:28:39 -07:00
.gitmodules Vortex 2.0 changes: 2023-10-19 20:51:22 -07:00
.travis.yml travis update for pocl 64-bit testing 2024-06-13 09:41:58 -07:00
config.mk.in adding support for build install target 2024-05-21 17:02:32 -07:00
configure adding support for build install target 2024-05-21 17:02:32 -07:00
LICENSE Vortex 2.0 changes: 2023-10-19 20:51:22 -07:00
Makefile.in minor update 2024-06-03 20:35:26 -07:00
README.md FpNew RTL fix 2024-06-14 16:29:52 -07:00

Build Status

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

# By default, the toolchain default install location is the /opt folder and can be overridden by setting --tooldir.
$ 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.