From a08fc46bf5ab957b1b156c3dac517a76459dec20 Mon Sep 17 00:00:00 2001 From: Esteve Fernandez <33620+esteve@users.noreply.github.com> Date: Mon, 13 Nov 2023 14:01:43 +0100 Subject: [PATCH] build: update to CUDA 12.3 (#3956) * build: update to CUDA 12.3 Signed-off-by: Esteve Fernandez * build: cuDNN and TensorRT packages are installed in a separate Ansible script Signed-off-by: Esteve Fernandez --------- Signed-off-by: Esteve Fernandez --- amd64.env | 6 +++--- ansible/roles/cuda/README.md | 19 +++++-------------- ansible/roles/cuda/tasks/main.yaml | 27 +++++++++------------------ arm64.env | 2 ++ 4 files changed, 19 insertions(+), 35 deletions(-) diff --git a/amd64.env b/amd64.env index afa1725503..76a02c8e78 100644 --- a/amd64.env +++ b/amd64.env @@ -3,6 +3,6 @@ rmw_implementation=rmw_cyclonedds_cpp base_image=ubuntu:22.04 cuda_base_image=ubuntu:22.04 prebuilt_base_image=ubuntu:22.04 -cuda_version=11.6 -cudnn_version=8.4.1.50-1+cuda11.6 -tensorrt_version=8.4.2-1+cuda11.6 +cuda_version=12.3 +cudnn_version=8.9.5.29-1+cuda12.2 +tensorrt_version=8.6.1.6-1+cuda12.0 diff --git a/ansible/roles/cuda/README.md b/ansible/roles/cuda/README.md index 858031d578..b507557605 100644 --- a/ansible/roles/cuda/README.md +++ b/ansible/roles/cuda/README.md @@ -19,20 +19,11 @@ For Universe, the `cuda_version` version can also be found in: ```bash wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env -# Modified from: https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_network - -# A temporary workaround for Ubuntu 22.04 with the ubuntu2004 repository -if [[ "$(uname -m)" == "x86_64" ]]; then - liburcu6_url=http://archive.ubuntu.com/ubuntu -else - liburcu6_url=http://ports.ubuntu.com/ubuntu-ports -fi -sudo echo "deb $liburcu6_url focal main restricted" > /etc/apt/sources.list.d/focal.list - -# TODO: Use 22.04 in https://github.com/autowarefoundation/autoware/pull/3084. Currently, 20.04 is intentionally used. -os=ubuntu2004 -wget https://developer.download.nvidia.com/compute/cuda/repos/$os/$(uname -m)/cuda-keyring_1.0-1_all.deb -sudo dpkg -i cuda-keyring_1.0-1_all.deb +# From: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#network-repo-installation-for-ubuntu + +os=ubuntu2204 +wget https://developer.download.nvidia.com/compute/cuda/repos/$os/$(uname -m)/cuda-keyring_1.1-1_all.deb +sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update cuda_version_dashed=$(eval sed -e "s/[.]/-/g" <<< "${cuda_version}") sudo apt-get -y install cuda-${cuda_version_dashed} diff --git a/ansible/roles/cuda/tasks/main.yaml b/ansible/roles/cuda/tasks/main.yaml index 30e19d41d0..81dd8ada90 100644 --- a/ansible/roles/cuda/tasks/main.yaml +++ b/ansible/roles/cuda/tasks/main.yaml @@ -8,22 +8,6 @@ register: cuda_architecture changed_when: false -- name: (tmp for Ubuntu 22.04) Add liburcu6 repository into sources.list for amd64 - become: true - ansible.builtin.apt_repository: - repo: deb http://archive.ubuntu.com/ubuntu focal main restricted - filename: focal - state: present - when: cuda_architecture.stdout == "x86_64" - -- name: (tmp for Ubuntu 22.04) Add liburcu6 repository into sources.list for arm64 - become: true - ansible.builtin.apt_repository: - repo: deb http://ports.ubuntu.com/ubuntu-ports focal main restricted - filename: focal - state: present - when: cuda_architecture.stdout == "aarch64" - - name: Remove old /etc/apt/sources.list.d/cuda.list become: true ansible.builtin.file: @@ -33,7 +17,7 @@ - name: Install CUDA keyring become: true ansible.builtin.apt: - deb: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/{{ cuda_architecture.stdout }}/cuda-keyring_1.0-1_all.deb + deb: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/{{ cuda_architecture.stdout }}/cuda-keyring_1.1-1_all.deb update_cache: true - name: Get dash-case name of cuda_version @@ -50,13 +34,20 @@ - cuda-minimal-build-{{ cuda__dash_case_cuda_version.stdout }} - cuda-libraries-dev-{{ cuda__dash_case_cuda_version.stdout }} - cuda-nvml-dev-{{ cuda__dash_case_cuda_version.stdout }} - - cuda-nvprof-{{ cuda__dash_case_cuda_version.stdout }} - libnpp-dev-{{ cuda__dash_case_cuda_version.stdout }} - libcusparse-dev-{{ cuda__dash_case_cuda_version.stdout }} - libcublas-dev-{{ cuda__dash_case_cuda_version.stdout }} - libnccl-dev update_cache: true +- name: Install extra CUDA libraries for x86_64 + become: true + ansible.builtin.apt: + name: + - cuda-nvprof-{{ cuda__dash_case_cuda_version.stdout }} + update_cache: true + when: cuda_architecture.stdout == "x86_64" + - name: Install cuda-drivers become: true ansible.builtin.apt: diff --git a/arm64.env b/arm64.env index f9aba790b0..efd9db194d 100644 --- a/arm64.env +++ b/arm64.env @@ -1 +1,3 @@ # Override amd64's settings +cudnn_version=8.9.6.50-1+cuda12.2 +tensorrt_version=8.6.2.2-1+cuda12.0