9651cc6bc5f895d2474a4f330bf586c18b77678f
Need to use DCACHE_NOSM_TAG_WIDTH instead of DCACHE_TAG_WIDTH; otherwise, the `ASSIGN_VX_MEM_BUS_IF macro in VX_smem_unit.sv does assignment of packed structs with different widths for the tag field, resulting in misaligned bit error. This results in wrong memory addresses for the core requests.
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 shared 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
Supported OS Platforms
- Ubuntu 18.04
- Centos 7
Toolchain Dependencies
Install development tools
$ sudo apt-get install build-essential
$ sudo apt-get install git
Install Vortex codebase
$ git clone --recursive https://github.com/vortexgpgpu/vortex.git
$ cd Vortex
Install prebuilt toolchain
By default, the toolchain will install to /opt folder.
You can install the toolchain to a different directory by overriding TOOLDIR (e.g. export TOOLDIR=$HOME/tools).
$ ./ci/toolchain_install.sh --all
$ source ./ci/toolchain_env.sh
Build Vortex sources
$ make -s
Quick demo running vecadd OpenCL kernel on 2 cores
$ ./ci/blackbox.sh --cores=2 --app=vecadd
Description
Languages
C++
30%
PostScript
29.1%
SystemVerilog
13.3%
Verilog
12.7%
C
8.4%
Other
6.4%