diff --git a/amd64.env b/amd64.env index f1a068d50b7..de625ec5f14 100644 --- a/amd64.env +++ b/amd64.env @@ -3,7 +3,7 @@ rmw_implementation=rmw_cyclonedds_cpp base_image=ros:humble-ros-base-jammy autoware_base_image=ghcr.io/autowarefoundation/autoware-base:latest autoware_base_cuda_image=ghcr.io/autowarefoundation/autoware-base:cuda-latest -cuda_version=12.3 -cudnn_version=8.9.5.29-1+cuda12.2 -tensorrt_version=8.6.1.6-1+cuda12.0 +cuda_version=12.6 +cudnn_version=8.9.7.29-1+cuda12.2 +tensorrt_version=10.7.0.23-1+cuda12.6 pre_commit_clang_format_version=17.0.5 diff --git a/ansible/roles/cuda/README.md b/ansible/roles/cuda/README.md index d669c573e91..3d168703b80 100644 --- a/ansible/roles/cuda/README.md +++ b/ansible/roles/cuda/README.md @@ -1,6 +1,6 @@ # cuda -This role installs [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) following [this page](https://developer.nvidia.com/cuda-12-3-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_network) and [this page](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions). +This role installs [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) following [this page](https://developer.nvidia.com/cuda-12-4-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_network) and [this page](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions). This role also registers Vulkan, OpenGL, and OpenCL GPU vendors for future use. @@ -15,7 +15,7 @@ This role also registers Vulkan, OpenGL, and OpenCL GPU vendors for future use. ### Version compatibility -Autoware currently uses CUDA `12.3` and from this [CUDA Application Compatibility Support Matrix](https://docs.nvidia.com/deploy/cuda-compatibility/#use-the-right-compat-package) that only the NVIDIA driver version `545` is compatible with this version of CUDA. +Autoware currently uses CUDA `12.6` which corresponds to the NVIDIA driver version `560` and is minimum required driver version. #### 🛠️ For Advanced Users @@ -42,7 +42,7 @@ 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-toolkit-${cuda_version_dashed} -sudo apt-get install -y cuda-drivers-545 +sudo apt-get install -y cuda-drivers-560 ``` Perform the post installation actions: diff --git a/ansible/roles/tensorrt/README.md b/ansible/roles/tensorrt/README.md index 2a6c7d39232..26d1233fe07 100644 --- a/ansible/roles/tensorrt/README.md +++ b/ansible/roles/tensorrt/README.md @@ -11,34 +11,63 @@ This role installs TensorRT and cuDNN following [the official NVIDIA TensorRT In ## Manual Installation +### AMD64 + ```bash # For the environment variables wget -O /tmp/amd64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/amd64.env && source /tmp/amd64.env sudo apt-get install -y \ libcudnn8=${cudnn_version} \ -libnvinfer8=${tensorrt_version} \ -libnvinfer-plugin8=${tensorrt_version} \ -libnvparsers8=${tensorrt_version} \ -libnvonnxparsers8=${tensorrt_version} \ +libnvinfer10=${tensorrt_version} \ +libnvinfer-plugin10=${tensorrt_version} \ +libnvonnxparsers10=${tensorrt_version} \ libcudnn8-dev=${cudnn_version} \ libnvinfer-dev=${tensorrt_version} \ libnvinfer-plugin-dev=${tensorrt_version} \ libnvinfer-headers-dev=${tensorrt_version} \ libnvinfer-headers-plugin-dev=${tensorrt_version} \ -libnvparsers-dev=${tensorrt_version} \ libnvonnxparsers-dev=${tensorrt_version} sudo apt-mark hold \ libcudnn8 \ -libnvinfer8 \ -libnvinfer-plugin8 \ -libnvparsers8 \ -libnvonnxparsers8 \ +libnvinfer10 \ +libnvinfer-plugin10 \ +libnvonnxparsers10 \ libcudnn8-dev \ libnvinfer-dev \ libnvinfer-plugin-dev \ -libnvparsers-dev \ +libnvonnxparsers-dev \ +libnvinfer-headers-dev \ +libnvinfer-headers-plugin-dev +``` + +### ARM64 + +```bash +# For the environment variables +wget -O /tmp/arm64.env https://raw.githubusercontent.com/autowarefoundation/autoware/main/arm64.env && source /tmp/arm64.env + +sudo apt-get install -y \ +libcudnn9-cuda-12=${cudnn_version} \ +libnvinfer10=${tensorrt_version} \ +libnvinfer-plugin10=${tensorrt_version} \ +libnvonnxparsers10=${tensorrt_version} \ +libcudnn9-dev-cuda-12=${cudnn_version} \ +libnvinfer-dev=${tensorrt_version} \ +libnvinfer-plugin-dev=${tensorrt_version} \ +libnvinfer-headers-dev=${tensorrt_version} \ +libnvinfer-headers-plugin-dev=${tensorrt_version} \ +libnvonnxparsers-dev=${tensorrt_version} + +sudo apt-mark hold \ +libcudnn9-cuda-12 \ +libnvinfer10 \ +libnvinfer-plugin10 \ +libnvonnxparsers10 \ +libcudnn9-dev-cuda-12 \ +libnvinfer-dev \ +libnvinfer-plugin-dev \ libnvonnxparsers-dev \ libnvinfer-headers-dev \ libnvinfer-headers-plugin-dev diff --git a/ansible/roles/tensorrt/tasks/main.yaml b/ansible/roles/tensorrt/tasks/main.yaml index 816ba7dad4b..c49aff90dc0 100644 --- a/ansible/roles/tensorrt/tasks/main.yaml +++ b/ansible/roles/tensorrt/tasks/main.yaml @@ -2,11 +2,10 @@ become: true ansible.builtin.apt: name: - - libcudnn8={{ cudnn_version }} - - libnvinfer8={{ tensorrt_version }} - - libnvinfer-plugin8={{ tensorrt_version }} - - libnvparsers8={{ tensorrt_version }} - - libnvonnxparsers8={{ tensorrt_version }} + - "{{ 'libcudnn9-cuda-12=' + cudnn_version if ansible_architecture == 'aarch64' else 'libcudnn8=' + cudnn_version }}" + - libnvinfer10={{ tensorrt_version }} + - libnvinfer-plugin10={{ tensorrt_version }} + - libnvonnxparsers10={{ tensorrt_version }} allow_change_held_packages: true allow_downgrade: true update_cache: true @@ -15,12 +14,11 @@ become: true ansible.builtin.apt: name: - - libcudnn8-dev={{ cudnn_version }} + - "{{ 'libcudnn9-dev-cuda-12=' + cudnn_version if ansible_architecture == 'aarch64' else 'libcudnn8-dev=' + cudnn_version }}" - libnvinfer-dev={{ tensorrt_version }} - libnvinfer-plugin-dev={{ tensorrt_version }} - libnvinfer-headers-dev={{ tensorrt_version }} - libnvinfer-headers-plugin-dev={{ tensorrt_version }} - - libnvparsers-dev={{ tensorrt_version }} - libnvonnxparsers-dev={{ tensorrt_version }} allow_change_held_packages: true allow_downgrade: true @@ -34,11 +32,11 @@ name: "{{ item }}" selection: hold with_items: + - "{{ 'libcudnn9-cuda-12' if ansible_architecture == 'aarch64' else 'libcudnn8' }}" - libcudnn8 - - libnvinfer8 - - libnvinfer-plugin8 - - libnvparsers8 - - libnvonnxparsers8 + - libnvinfer10 + - libnvinfer-plugin10 + - libnvonnxparsers10 - name: Prevent CUDA-related Dev packages from upgrading become: true @@ -46,11 +44,10 @@ name: "{{ item }}" selection: hold with_items: - - libcudnn8-dev + - "{{ 'libcudnn9-dev-cuda-12' if ansible_architecture == 'aarch64' else 'libcudnn8-dev' }}" - libnvinfer-dev - libnvinfer-plugin-dev - libnvinfer-headers-dev - libnvinfer-headers-plugin-dev - - libnvparsers-dev - libnvonnxparsers-dev when: install_devel == 'y' diff --git a/arm64.env b/arm64.env index efd9db194da..32dd2dc0469 100644 --- a/arm64.env +++ b/arm64.env @@ -1,3 +1,3 @@ # Override amd64's settings -cudnn_version=8.9.6.50-1+cuda12.2 -tensorrt_version=8.6.2.2-1+cuda12.0 +cudnn_version=9.3.0.75-1 +tensorrt_version=10.3.0.30-1+cuda12.5