summaryrefslogtreecommitdiff
path: root/.github/workflows/sst_integration.yml
blob: 4a88bf30c435115c798e6d481a96d3c2e36fc2da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 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:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build-QV100:
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash
    strategy:
      matrix:
        # test_type: [simple, medium, long]
        test_type: [simple, medium]
    container:
      image: tgrogers/accel-sim_regress:SST-Integration-Ubuntu-22.04-cuda-11.7-llvm-18.1.8-riscv-gnu-2024.08.06-nightly
      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 ./setup_environment
          make -j4
      - name: Prepare SST dependencies
        run: |
          apt install -y openmpi-bin openmpi-common libtool libtool-bin autoconf python3 python3-dev automake build-essential git
      - name: Build SST-Core
        run: |
          git clone https://github.com/sstsimulator/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
      - name: Build SST-Elements
        run: |
          git clone https://github.com/sstsimulator/sst-elements.git
          source ./setup_environment
          cd sst-elements
          git pull
          git checkout devel
          ./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
      # Have to resource the gpu app
      # Also fake a SDK since rodinia 2.0 does not need this, speed things up on github
      - name: Balar Test
        run: |
          pip install testtools blessings pygments
          source ./setup_environment
          mkdir 4.2
          mkdir fake_sdk
          export NVIDIA_COMPUTE_SDK_LOCATION=$(readlink -f ./fake_sdk)
          source $GPUAPPS_ROOT/src/setup_environment sst
          rm -rf 4.2
          rm -f gpucomputingsdk_4.2.9_linux.run
          ./sstcore-install/bin/sst-test-elements -w "*balar*${{ matrix.test_type }}*"