Hansung Kim a15f4fd483 [BUGFIX] Set mem_req_mask to 0 for fence
Fence instructions have address field set to X's which propagates to
cache_req_ready, causing issue stalls.  Fix this by setting req_mask to all-zero
so that they can be handled unaffected by x-propagation.

Setting req_valid to 0 does not fix the problem because the LSU only commits
instructions when they have a matching response coming back.
2024-02-01 22:44:33 -08:00
2023-11-10 02:57:42 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2020-08-25 07:10:45 -04:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2023-11-10 02:47:05 -08:00
2019-11-07 20:52:36 -05:00

Build Status codecov

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
No description provided
Readme Apache-2.0 314 MiB
Languages
C++ 30%
PostScript 29.1%
SystemVerilog 13.3%
Verilog 12.7%
C 8.4%
Other 6.4%