No description
Find a file
2020-06-23 14:34:23 -07:00
benchmarks merge fixes 2020-06-23 14:34:23 -07:00
docs fpga_synthesis merge 2020-06-23 12:41:26 -07:00
driver fpga_synthesis merge 2020-06-23 12:41:26 -07:00
emulator/include fpga_synthesis merge 2020-06-23 12:41:26 -07:00
evaluation refactoring fixes 2020-04-14 19:39:59 -04:00
hw refactoring 2020-06-23 10:59:30 -07:00
miscs merge fixes 2020-06-23 14:34:23 -07:00
rtl fpga_synthesis merge 2020-06-23 12:41:26 -07:00
runtime merge fixes 2020-06-23 14:34:23 -07:00
simX fpga_synthesis merge 2020-06-23 12:41:26 -07:00
LICENSE Create LICENSE 2020-01-11 11:00:37 -05:00
Makefile VX_pipeline refactoring + logic analyzer 2020-06-06 01:52:44 -04:00
README.md fpga_synthesis merge 2020-06-23 12:41:26 -07:00
TODO TODO update 2019-11-07 20:52:36 -05:00

Vortex RISC-V GPGPU

Vortex currently supported RISC-V RV32I ISA

/benchmarks containts test benchmarks

/docs contains documentation.

/hw constains hardware sources.

/driver contains the driver software.

/runtime contains the kernel runtime software.

/SimX contains a cycle-approximate simulator for Vortex.

/evaluation contains the synthesis/runtime reports.

Basic Instructions to run OpenCL Benchmarks on Vortex

Install development tools

$ sudo apt-get install build-essential
$ sudo apt-get install git

Install gnu-riscv-tools

$ export RISC_GNU_TOOLS_PATH=/opt/riscv-gnu-toolchain

$ sudo apt-get -y install \
    binutils build-essential libtool texinfo \
    gzip zip unzip patchutils curl git \
    make cmake ninja-build automake bison flex gperf \
    grep sed gawk python bc \
    zlib1g-dev libexpat1-dev libmpc-dev \
    libglib2.0-dev libfdt-dev libpixman-1-dev 
$ git clone https://github.com/riscv/riscv-gnu-toolchain
$ cd riscv-gnu-toolchain
$ git submodule update --init --recursive
$ mkdir build
$ cd build    
$ ../configure --prefix=$RISC_GNU_TOOLS_PATH --with-arch=rv32im --with-abi=ilp32
$ make -j`nproc`  
$ make -j`nproc` build-qemu

Install Verilator

You need into build the latest version using the instructions on their website
$ https://www.veripool.org/projects/verilator/wiki/Installing 

Install Vortex

$ git clone https://github.gatech.edu/casl/Vortex.git
$ cd Vortex
$ make

Run SGEMM OpenCL Benchmark

$ cd Vortex/benchmarks/opencl/sgemm
$ make

<<<<<<< HEAD $ make run

Basic Instructions to build the OpenCL Compiler for Vortex

Build LLVM for RiscV

$ git clone -b release/10.x https://github.com/llvm/llvm-project.git llvm
$ cd llvm
$ mkdir build
$ cd build
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_PROJECTS="clang" -DBUILD_SHARED_LIBS=True -DLLVM_USE_SPLIT_DWARF=True -DCMAKE_INSTALL_PREFIX=$RISC_GNU_TOOLS_PATH -DLLVM_OPTIMIZED_TABLEGEN=True -DLLVM_BUILD_TESTS=True -DDEFAULT_SYSROOT=$RISC_GNU_TOOLS_PATH/riscv32-unknown-elf -DLLVM_DEFAULT_TARGET_TRIPLE="riscv32-unknown-elf" -DLLVM_TARGETS_TO_BUILD="RISCV" ..
$ cmake --build . --target install

Build pocl for RISCV

$ git clone https://github.gatech.edu/casl/pocl.git
$ cd pocl
$ mkdir build
$ cd build 
$ export POCL_CC_PATH=$PWD/../drops_riscv_cc
$ export POCL_RT_PATH=$PWD/../drops_riscv_rt
$ cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$POCL_CC_PATH -DCMAKE_BUILD_TYPE=Debug -DWITH_LLVM_CONFIG=$RISC_GNU_TOOLS_PATH/bin/llvm-config -DNEWLIB_BSP=ON -DNEWLIB_DEVICE_ADDRESS_BIT=32 -DNEWLIB_DEVICE_MARCH=rv32im -DBUILD_TESTS=OFF -DPOCL_DEBUG_MESSAGES=ON ..
$ cmake --build . --target install
$ rm -rf *
$ cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$POCL_RT_PATH -DCMAKE_BUILD_TYPE=Debug -DOCS_AVAILABLE=OFF -DBUILD_SHARED_LIBS=OFF -DNEWLIB_BSP=ON -DNEWLIB_DEVICE_ADDRESS_BIT=32 -DNEWLIB_DEVICE_MARCH=rv32im -DBUILD_TESTS=OFF -DHOST_DEVICE_BUILD_HASH=basic-riscv32-unknown-elf -DCMAKE_TOOLCHAIN_FILE=../RISCV_newlib.cmake -DENABLE_TRACING=OFF -DENABLE_ICD=OFF -DPOCL_DEBUG_MESSAGES=ON ..
$ cmake --build . --target install

======= $ make run

fpga_synthesis