Blue-porcelain GPGPU
Blue-porcelain is a GPGPU design proposed by the Advanced Architecture Laboratory of Shanghai Jiao Tong University.
Directory structure
driver
: Host drivers repository.runtime
: Kernel Runtime software.sim
: Simulators repository.benchmarks
: Benchmarks for testing.ci
: Continuous integration scripts.
Build
Supported OS Platforms
- Ubuntu 18.04
Toolchain Dependencies
- gcc 7.5.0
- g++ 7.5.0
- GNU Make 4.1
- CUDA 10.2 Runtime
Install development tools
sudo apt-get install build-essential
sudo apt-get install git bc numdiff
Install codebase
git clone https://github.com/SJTU-ACALab/blue-porcelain.git
Setup Environment
Make sure that the CUDA_INSTALL_PATH is set to the location (e.g., /usr/local/cuda) where the CUDA Toolkit is installed and the $CUDA_INSTALL_PATH/bin
is in your PATH. You can add the following instructions to the .bashrc file (assume the CUDA Toolkit is installed in /usr/local/cuda):
export CUDA_INSTALL_PATH=/usr/local/cuda
export PATH=$CUDA_INSTALL_PATH/bin:$PATH
Build sources
source setup_environment
make -s
Run app
Before running a simulation for an application, make sure you have set up the environment. Then, just simply input the application execution command.
source setup_environment
./application
Run ci benchmark test
You can run our benchmark automatically under the ci
directory. Make sure you have set up the environment. Also, the integration test is supported by Python. Please install Python(3.6 ~ 3.9 is available) if you want to use this tool.
$ source setup_environment
$ cd ./ci
$ sh run.sh -a
-core
: set the sm core number(default is 1)
-a
: build both the simulation program and benchmark program
-b
: only build the simulation program
-bb
: only build the benchmark program
Docker
Build a docker image and run the regressions in the docker.
cd blue-porcelain
docker build -t acalab/gpgpu .
docker run -w /root/blue-porcelain/ci -it --rm acalab/gpgpu bash run.sh -a
OpenGPU GPGPU Platform
For more information about our Open GPGPU Platform, go here: https://gpgpuarch.org
License
License information can be found in the LICENSE file.
Third party license information can be found in the THIRDPARTY file.