Add SST integration into gpgpusim #18
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow with cmake build system | |
name: SST Integration Test | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the mydev branch | |
push: | |
branches-ignore: | |
- "gh-readonly-queue**" | |
pull_request: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
LLVM_INSTALL_PATH: ~/llvm-install | |
GPUAPPS_ROOT: ~/gpu-app-collection | |
RISCV_TOOLCHAIN_INSTALL_PATH: ~/riscv-gnu-install | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# Prepare CI environment | |
prepare-env: | |
runs-on: tgrogers-raid | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Check path | |
run: pwd | |
- name: Remove prior CI dirs | |
run: | | |
rm -rf ./env-setup | |
rm -rf ./llvm-project | |
rm -rf ./llvm-install | |
rm -rf ./riscv-gnu-toolchain | |
rm -rf ./riscv-gnu-install | |
- name: Prepare env-setup | |
run: git clone [email protected]:purdue-aalp/env-setup.git | |
- name: Preapre LLVM | |
run: | | |
git clone https://github.com/llvm/llvm-project.git | |
mkdir llvm-install | |
cd llvm-project | |
mkdir build && cd build | |
cmake -DLLVM_TARGETS_TO_BUILD="RISCV;X86;NVPTX" -DLLVM_DEFAULT_TARGET_TRIPLE=riscv64-unknown-linux-gnu -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_PATH ../llvm | |
cmake --build . -j8 | |
cmake --build . --target install | |
cd .. && cd .. | |
rm -rf ./llvm-project | |
- name: Prepare RISCV GCC | |
run: | | |
git clone https://github.com/riscv-collab/riscv-gnu-toolchain.git | |
mkdir riscv-gnu-install | |
cd riscv-gnu-toolchain | |
./configure --prefix=$RISCV_TOOLCHAIN_INSTALL_PATH | |
make linux -j8 | |
cd .. | |
rm -rf riscv-gnu-toolchain | |
- name: Setup GPU app collection | |
run: | | |
git clone https://github.com/accel-sim/gpu-app-collection.git | |
cd gpu-app-collection | |
git pull | |
git checkout sst_support | |
source ./src/setup_environment sst | |
rm gpucomputingsdk_4.2.9_linux.run | |
rm -rf 4.2 | |
cd .. | |
build-QV100: | |
needs: prepare-env | |
runs-on: tgrogers-raid | |
defaults: | |
run: | |
shell: bash | |
env: | |
CONFIG: QV100 | |
GPU_ARCH: sm_70 | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Build GPGPU-Sim in SST mode | |
run: | | |
source ./env-setup/11.7.0_env_setup.sh | |
source ./setup_environment sst | |
make -j4 | |
# Use personal repo for now | |
- name: Build SST-Core | |
run: | | |
source ./env-setup/11.7.0_env_setup.sh | |
git clone https://github.com/William-An/sst-core.git | |
cd sst-core | |
git pull | |
git checkout devel | |
./autogen.sh | |
./configure --prefix=`realpath ../sstcore-install` --disable-mpi --disable-mem-pools | |
make -j4 | |
make install | |
cd .. | |
rm -rf ./sst-core | |
# Use personal repo for now | |
- name: Build SST-Elements | |
run: | | |
source ./env-setup/11.7.0_env_setup.sh | |
git clone https://github.com/William-An/sst-elements.git | |
source ./setup_environment sst | |
cd sst-elements | |
git pull | |
git checkout balar-mmio-vanadis-llvm | |
./autogen.sh | |
./configure --prefix=`realpath ../sstelements-install` --with-sst-core=`realpath ../sstcore-install` --with-cuda=$CUDA_INSTALL_PATH --with-gpgpusim=$GPGPUSIM_ROOT | |
make -j4 | |
make install | |
- name: Balar Test | |
run: | | |
source ./env-setup/11.7.0_env_setup.sh | |
source ./setup_environment sst | |
source ./gpu-app-collection/src/setup_environment sst | |
./sstcore-install/bin/sst-test-elements -p ./sst-elements/src/sst/elements/balar/tests |