No description
Find a file
Blaise Tine 98b58606e5
Some checks failed
CI / setup (push) Has been cancelled
CI / build (32) (push) Has been cancelled
CI / build (64) (push) Has been cancelled
CI / tests (cache, 32) (push) Has been cancelled
CI / tests (cache, 64) (push) Has been cancelled
CI / tests (config1, 32) (push) Has been cancelled
CI / tests (config1, 64) (push) Has been cancelled
CI / tests (config2, 32) (push) Has been cancelled
CI / tests (config2, 64) (push) Has been cancelled
CI / tests (debug, 32) (push) Has been cancelled
CI / tests (debug, 64) (push) Has been cancelled
CI / tests (opencl, 32) (push) Has been cancelled
CI / tests (opencl, 64) (push) Has been cancelled
CI / tests (regression, 32) (push) Has been cancelled
CI / tests (regression, 64) (push) Has been cancelled
CI / tests (scope, 32) (push) Has been cancelled
CI / tests (scope, 64) (push) Has been cancelled
CI / tests (stress, 32) (push) Has been cancelled
CI / tests (stress, 64) (push) Has been cancelled
CI / tests (synthesis, 32) (push) Has been cancelled
CI / tests (synthesis, 64) (push) Has been cancelled
CI / tests (vm, 32) (push) Has been cancelled
CI / tests (vm, 64) (push) Has been cancelled
CI / complete (push) Has been cancelled
merge fixes
2024-10-24 02:18:00 -07:00
.github/workflows - Change STARTUP_ADDR to use the same 0x80000000 address 2024-10-03 15:19:39 -04:00
ci - Change STARTUP_ADDR to use the same 0x80000000 address 2024-10-03 15:19:39 -04:00
docs merge fixes 2024-10-24 02:18:00 -07:00
hw cleanup deleted files 2024-10-21 22:46:04 -07:00
kernel Merge branch 'develop' into tensor-core 2024-09-30 16:48:47 -04:00
miscs merge fixes 2024-10-24 02:18:00 -07:00
perf/cache enabling Makefile configuration with build folder support 2024-03-30 02:28:39 -07:00
runtime merged with master 2024-10-03 13:44:39 -04:00
sim merge fixes 2024-10-24 02:18:00 -07:00
tests merge fixes 2024-10-24 02:18:00 -07:00
third_party Merge branch 'master' into tensor-core 2024-10-04 12:58:51 -04:00
.gitignore merge 2024-08-23 17:44:24 -04:00
.gitmodules migration from fpnew to latest cvfpu core to resolve fpnew bugs and feature limitations 2024-08-29 00:48:51 -07:00
config.mk.in - Change STARTUP_ADDR to use the same 0x80000000 address 2024-10-03 15:19:39 -04:00
configure Update Virtual Memory testing 2024-09-20 08:58:11 -04:00
Dockerfile.dev add initial development and production dockerfiles 2024-10-09 12:32:49 -04:00
LICENSE Vortex 2.0 changes: 2023-10-19 20:51:22 -07:00
Makefile.in Update Virtual Memory testing 2024-09-20 08:58:11 -04:00
README.md merged with master 2024-10-03 13:44:39 -04: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, 22.04, 24.04
  • Centos 7

Toolchain Dependencies

Install Vortex codebase

	git clone --depth=1 --recursive https://github.com/vortexgpgpu/vortex.git
	cd vortex

Install system dependencies

# ensure dependent libraries are present
sudo ./ci/install_dependencies.sh

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 requires setting --xlen=64 configure option.
../configure --xlen=64 --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 without any options to get changes propagated to your build folder.
../configure
  • To debug the GPU, the simulation can generate a runtime trace for analysis. See /docs/debugging.md for more information.
./ci/blackbox.sh --app=demo --debug=3
  • For additional information, check out the /docs.