@@ -9,22 +9,34 @@ inputs:
99 python-version :
1010 description : ' Version of python to set up'
1111 required : false
12- default : ' 3.10'
12+ default : ' 3.14'
13+ use-ccache :
14+ description : ' Whether to enable ccache'
15+ required : false
16+ default : ' true'
1317
1418runs :
1519 using : " composite"
1620 steps :
17- - name : Use ccache
18- uses : hendrikmuhs/ccache-action@v1.2
19- with :
20- key : ccache-${{ runner.os }}-${{ runner.arch }}-${{ inputs.toolkit }}-py${{ inputs.python-version }}
21- max-size : 1GB
22-
2321 - name : Install common dependencies
2422 shell : bash
2523 run : |
24+ echo "::group::Install common dependencies"
2625 sudo apt-get update
27- sudo apt-get install -y libblas-dev liblapack-dev liblapacke-dev zip
26+ sudo apt-get install -y --no-install-recommends \
27+ zip \
28+ libblas-dev liblapack-dev liblapacke-dev \
29+ openmpi-bin openmpi-common libopenmpi-dev
30+ echo "::endgroup::"
31+
32+ - name : Use ccache
33+ if : ${{ inputs.use-ccache == 'true' }}
34+ uses : hendrikmuhs/ccache-action@v1.2
35+ with :
36+ key : ccache-${{ runner.os }}-${{ runner.arch }}-${{ inputs.toolkit }}
37+ max-size : 1GB
38+ # ccache-action bug: running "apt-get update" fails on large arm runner.
39+ update-package-index : false
2840
2941 - uses : actions/setup-python@v6
3042 with :
@@ -33,16 +45,14 @@ runs:
3345 - name : Setup Python venv
3446 shell : bash
3547 run : |
48+ echo "::group::Setup Python venv"
3649 python -m venv .venv
3750 source .venv/bin/activate
38- pip install setuptools cmake nanobind==2.4.0
51+ pip install setuptools cmake typing_extensions
3952 echo PATH=$PATH >> $GITHUB_ENV
40- # Make cmake search .venv for nanobind
53+ # Search python packages in .venv
4154 echo PYTHONPATH=`python -c 'import sys; print(sys.path[-1])'` >> $GITHUB_ENV
42-
43- - name : Install MPI
44- shell : bash
45- run : sudo apt-get install -y openmpi-bin openmpi-common libopenmpi-dev
55+ echo "::endgroup::"
4656
4757 - name : Install CUDA toolkit
4858 if : ${{ startsWith(inputs.toolkit, 'cuda') }}
@@ -53,34 +63,31 @@ runs:
5363 # https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html
5464 PACKAGES : |
5565 {
56- "cuda-12.6": "libcudnn9-dev-cuda-12 cuda-toolkit -12-6",
57- "cuda-12.9": "libcudnn9-dev-cuda-12 cuda-toolkit -12-9",
58- "cuda-13.0": "libcudnn9-dev-cuda-13 cuda-toolkit -13-0"
66+ "cuda-12.6": "libcudnn9-dev-cuda-12 cuda-compiler-12-6 cuda-libraries-dev -12-6",
67+ "cuda-12.9": "libcudnn9-dev-cuda-12 cuda-compiler-12-9 cuda-libraries-dev -12-9",
68+ "cuda-13.0": "libcudnn9-dev-cuda-13 cuda-compiler-13-0 cuda-libraries-dev -13-0"
5969 }
6070 run : |
71+ echo "::group::Install CUDA toolkit"
6172 # The CUDA binaries are hosted in the "sbsa" repo, the "arm64" repo is
6273 # Jetson specific. SBSA means Arm Server Base System Architecture.
6374 ARCH=${{ runner.arch == 'arm64' && 'sbsa' || 'x86_64' }}
6475 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/$ARCH/cuda-keyring_1.1-1_all.deb
6576 sudo dpkg -i cuda-keyring_1.1-1_all.deb
6677 sudo apt-get update
67- sudo apt-get install -y \
78+ sudo apt-get install -y --no-install-recommends \
6879 libnccl2 libnccl-dev \
6980 ${{ fromJson(env.PACKAGES)[inputs.toolkit] }}
7081 echo "/usr/local/${{ inputs.toolkit }}/bin" >> $GITHUB_PATH
82+ echo "::endgroup::"
7183
7284 - name : CUDA packages and driver report
7385 if : ${{ startsWith(inputs.toolkit, 'cuda') }}
7486 shell : bash
7587 run : |
76- sudo apt-get install -y ubuntu-drivers-common dkms
77- echo "NVIDIA Driver Packages Available:"
78- sudo ubuntu-drivers list --gpgpu
79- echo "NVIDIA Driver Version:"
80- cat /proc/driver/nvidia/version || echo "nvidia driver not found"
81- echo "Installed NVIDIA and CUDA packages:"
88+ echo "::group::Installed NVIDIA and CUDA packages"
8289 dpkg -l | egrep "cuda|nvidia" -i
83- echo "DKMS Status :"
84- dkms status || echo "dkms not found "
85- echo "NVIDIA-SMI Status:"
86- nvidia-smi || echo "nvidia-smi not found "
90+ echo "::endgroup: :"
91+ echo "::group::NVIDIA-SMI Status "
92+ nvidia-smi || true
93+ echo "::endgroup:: "
0 commit comments