Repository navigation
51 lines (48 loc) · 1.66 KB
/
Copy pathsimulated-gpu.yml
File metadata and controls
51 lines (48 loc) · 1.66 KB
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
name: Tests on a simulated GPU
# GitHub's runners have no GPU, so ccpp.yml builds GPUJPEG but cannot run
# anything that encodes or decodes. PantheonSim simulates an NVIDIA T4 on the
# runner's CPU, so the unit tests and the regression suite run here, on every
# push and pull request. It checks results, not speed; a real GPU is still the
# final word.
on:
push:
branches:
- devel
- master
- run_tests
paths:
- '.github/workflows/simulated-gpu.yml'
- '**.c'
- '**.cpp'
- '**.cu'
- '**.h'
- '**.hpp'
- '**.m'
- '**.mm'
- 'CMakeLists.txt'
pull_request:
# The simulated-GPU job reads the repository and nothing else. The
# simulator's action uses no token or secrets, and installs packages only from
# Ubuntu and NVIDIA.
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@main
- name: Simulated GPU (NVIDIA T4) and Ubuntu's CUDA toolkit
uses: pantheongpu/setup-pantheonsim@052a0ac31bf6ec72a471d51aae29b7cbd090c6bf # v0.1.1
with:
gpu: nvidia/t4
- name: Tools the regression suite compares images with
run: sudo apt-get install -y imagemagick ffmpeg
# The simulator stands in for the CUDA runtime at run time, so the library
# links the shared one; 75 carries PTX for the simulated T4.
- name: Build
run: |
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_ARCHITECTURES=75 \
-DCMAKE_CUDA_RUNTIME_LIBRARY=Shared -DENABLE_FPNGE=ON
cmake --build build --parallel
- name: Unit and regression tests on the simulated GPU
run: ctest --test-dir build --output-on-failure