[ci] Update NVIDIA driver packages to v530 in docker images (#13912)
These driver packages are shared between CUDA and Vulkan. This is a
preparation step for updating CUDA to 12.1.1, which requires the driver
version to be >=525.60.13.
Progress towards https://github.com/openxla/iree/issues/13830
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 733b67e..5d13636 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -295,7 +295,7 @@
--env CTEST_PARALLEL_LEVEL=2 \
--gpus all \
--env NVIDIA_DRIVER_CAPABILITIES=all \
- gcr.io/iree-oss/nvidia@sha256:f8c6680f435615256c9df7521d41ad49f13bbb34e2dd16a271a620e9dc8637e7 \
+ gcr.io/iree-oss/nvidia@sha256:4c113db4f62cf19aa6aebdccc86e3b6407edee075f6ffc0ffe732e115a4ae7e5 \
bash -euo pipefail -c \
"./build_tools/scripts/check_cuda.sh
./build_tools/scripts/check_vulkan.sh
@@ -420,7 +420,7 @@
--env IREE_NVIDIA_GPU_TESTS_DISABLE=0 \
--gpus all \
--env NVIDIA_DRIVER_CAPABILITIES=all \
- gcr.io/iree-oss/frontends-nvidia@sha256:808f57962267eb1752c3200348421a22eca1770c737922ee2b933585d16f014d \
+ gcr.io/iree-oss/frontends-nvidia@sha256:bc217d1a226f778e44874b989d6ead3a3085f04643a40aa301f5d30661356d07 \
bash -euo pipefail -c \
"./build_tools/scripts/check_cuda.sh
./build_tools/scripts/check_vulkan.sh
diff --git a/.github/workflows/run_iree_dispatch_profiler.yml b/.github/workflows/run_iree_dispatch_profiler.yml
index 03593ea..010d11e 100644
--- a/.github/workflows/run_iree_dispatch_profiler.yml
+++ b/.github/workflows/run_iree_dispatch_profiler.yml
@@ -62,7 +62,7 @@
mkdir "${RESULTS_DIR}"
./build_tools/github_actions/docker_run.sh \
--gpus all \
- gcr.io/iree-oss/nvidia-bleeding-edge@sha256:e020d5c748f293674ab5f63533d6bf2a6a83b4c3045da10f76aa2ef2236f008b \
+ gcr.io/iree-oss/nvidia-bleeding-edge@sha256:8a5ea90aeb795bd62cfce55af8fb933b1f764f3690ae369e906c490ad0b132d9 \
./experimental/dispatch_profiler/profile_all.sh "${BUILD_DIR}/install/bin" \
"${RESULTS_DIR}"
- name: "Uploading results"
diff --git a/build_tools/benchmarks/run_benchmarks.sh b/build_tools/benchmarks/run_benchmarks.sh
index 8267afd..8463aca 100755
--- a/build_tools/benchmarks/run_benchmarks.sh
+++ b/build_tools/benchmarks/run_benchmarks.sh
@@ -33,7 +33,7 @@
${DOCKER_WRAPPER} \
--gpus all \
--env NVIDIA_DRIVER_CAPABILITIES=all \
- gcr.io/iree-oss/nvidia-bleeding-edge@sha256:e020d5c748f293674ab5f63533d6bf2a6a83b4c3045da10f76aa2ef2236f008b \
+ gcr.io/iree-oss/nvidia-bleeding-edge@sha256:8a5ea90aeb795bd62cfce55af8fb933b1f764f3690ae369e906c490ad0b132d9 \
./build_tools/benchmarks/run_benchmarks_on_linux.py \
--normal_benchmark_tool_dir="${NORMAL_BENCHMARK_TOOLS_DIR}" \
--traced_benchmark_tool_dir="${TRACED_BENCHMARK_TOOLS_DIR}" \
diff --git a/build_tools/docker/dockerfiles/frontends-nvidia.Dockerfile b/build_tools/docker/dockerfiles/frontends-nvidia.Dockerfile
index 2109bf1..c640759 100644
--- a/build_tools/docker/dockerfiles/frontends-nvidia.Dockerfile
+++ b/build_tools/docker/dockerfiles/frontends-nvidia.Dockerfile
@@ -13,9 +13,9 @@
# We use .deb files that we host because we have to pin the version exactly to
# match the host machine and packages routinely dissapear from the Ubuntu
# apt repositories.
-ARG NVIDIA_GL_DEB="libnvidia-gl-460_460.39-0ubuntu0.18.04.1_amd64.deb"
-ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-460_460.39-0ubuntu0.18.04.1_amd64.deb"
-ARG NVIDIA_COMMON_DEB="libnvidia-common-460_460.39-0ubuntu0.18.04.1_all.deb"
+ARG NVIDIA_GL_DEB="libnvidia-gl-530_530.41.03-0ubuntu0.20.04.2_amd64.deb"
+ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-530_530.41.03-0ubuntu0.20.04.2_amd64.deb"
+ARG NVIDIA_COMMON_DEB="libnvidia-common-530_530.41.03-0ubuntu0.20.04.2_all.deb"
WORKDIR /install-nvidia
RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_COMMON_DEB}" \
diff --git a/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile b/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile
index 9af3c29..190aa98 100644
--- a/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile
+++ b/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile
@@ -12,13 +12,13 @@
# We use .deb files that we host because we have to pin the version and packages
# routinely dissapear from the Ubuntu apt repositories. The versions need to be
# compatible with the host driver (usually <= host driver version).
-ARG NVIDIA_GL_DEB="libnvidia-gl-515-server_515.86.01-0ubuntu0.22.04.1_amd64.deb"
-ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-515-server_515.86.01-0ubuntu0.22.04.1_amd64.deb"
-ARG NVIDIA_COMMON_DEB="libnvidia-common-515-server_515.86.01-0ubuntu0.22.04.1_all.deb"
+ARG NVIDIA_GL_DEB="libnvidia-gl-530_530.41.03-0ubuntu0.22.04.2_amd64.deb"
+ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-530_530.41.03-0ubuntu0.22.04.2_amd64.deb"
+ARG NVIDIA_COMMON_DEB="libnvidia-common-530_530.41.03-0ubuntu0.22.04.2_all.deb"
ARG NVIDIA_EGL_WAYLAND_DEB="libnvidia-egl-wayland1_1.1.9-1.1_amd64.deb"
-FROM gcr.io/iree-oss/base-bleeding-edge@sha256:3ea6d37221a452058a7f5a5c25b4f8a82625e4b98c9e638ebdf19bb21917e6fd AS fetch-nvidia
+FROM gcr.io/iree-oss/base-bleeding-edge@sha256:37f776a1bed43be618b98ef234a7562bd624192668aca301f63b66e5874d38ae AS fetch-nvidia
ARG NVIDIA_COMMON_DEB
ARG NVIDIA_GL_DEB
ARG NVIDIA_COMPUTE_DEB
@@ -39,7 +39,7 @@
# - nvidia/vulkan (https://hub.docker.com/r/nvidia/vulkan):
# does not support Ubuntu 22.04.
# This allows to share configuration with base CMake.
-FROM gcr.io/iree-oss/base-bleeding-edge@sha256:3ea6d37221a452058a7f5a5c25b4f8a82625e4b98c9e638ebdf19bb21917e6fd AS final
+FROM gcr.io/iree-oss/base-bleeding-edge@sha256:37f776a1bed43be618b98ef234a7562bd624192668aca301f63b66e5874d38ae AS final
ARG NVIDIA_COMMON_DEB
ARG NVIDIA_GL_DEB
ARG NVIDIA_COMPUTE_DEB
@@ -52,7 +52,9 @@
"/fetch-nvidia/${NVIDIA_EGL_WAYLAND_DEB}" \
/tmp/
-RUN apt-get install "/tmp/${NVIDIA_COMMON_DEB}" \
+# The local .deb files have dependencies that requires apt-get update to locate.
+RUN apt-get update \
+ && apt-get -y install "/tmp/${NVIDIA_COMMON_DEB}" \
"/tmp/${NVIDIA_GL_DEB}" \
"/tmp/${NVIDIA_COMPUTE_DEB}" \
"/tmp/${NVIDIA_EGL_WAYLAND_DEB}"
diff --git a/build_tools/docker/dockerfiles/nvidia.Dockerfile b/build_tools/docker/dockerfiles/nvidia.Dockerfile
index 569beb4..d8103e4 100644
--- a/build_tools/docker/dockerfiles/nvidia.Dockerfile
+++ b/build_tools/docker/dockerfiles/nvidia.Dockerfile
@@ -11,9 +11,9 @@
# We use .deb files that we host because we have to pin the version and packages
# routinely dissapear from the Ubuntu apt repositories. The versions need to be
# compatible with the host driver (usually <= host driver version).
-ARG NVIDIA_GL_DEB="libnvidia-gl-460_460.39-0ubuntu0.18.04.1_amd64.deb"
-ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-460_460.39-0ubuntu0.18.04.1_amd64.deb"
-ARG NVIDIA_COMMON_DEB="libnvidia-common-460_460.39-0ubuntu0.18.04.1_all.deb"
+ARG NVIDIA_GL_DEB="libnvidia-gl-530_530.41.03-0ubuntu0.20.04.2_amd64.deb"
+ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-530_530.41.03-0ubuntu0.20.04.2_amd64.deb"
+ARG NVIDIA_COMMON_DEB="libnvidia-common-530_530.41.03-0ubuntu0.20.04.2_all.deb"
FROM gcr.io/iree-oss/base@sha256:7dbb7e97e0baa6d4512822b5cd4f601d840a6f950f67c2df497a24cae64a0595 AS fetch-nvidia
@@ -30,12 +30,11 @@
# Set up the image and working directory by inheriting the base CMake
# configuration.
# Note that we don't start from NVIDIA's docker base:
-# - nvidia/cuda (https://hub.docker.com/r/nvidia/cuda):
-# it's.. for CUDA.
-# - nvidia/vulkan (https://hub.docker.com/r/nvidia/vulkan):
-# does not support Ubuntu 18.04.
-# This allows to share configuration with base CMake, but it also means we need
-# to MATCH the driver version between the host machine and the docker image.
+# - nvidia/cuda (https://hub.docker.com/r/nvidia/cuda), or
+# - nvidia/vulkan (https://hub.docker.com/r/nvidia/vulkan).
+# This allows to share configuration with base CMake and better control the
+# installed packages. But it does mean we need to carefully manage the MATCHING
+# of the driver version between the host machine and the docker image.
FROM gcr.io/iree-oss/base@sha256:7dbb7e97e0baa6d4512822b5cd4f601d840a6f950f67c2df497a24cae64a0595 AS final
ARG NVIDIA_COMMON_DEB
ARG NVIDIA_GL_DEB
diff --git a/build_tools/docker/prod_digests.txt b/build_tools/docker/prod_digests.txt
index b9f7cfc..6445e04 100644
--- a/build_tools/docker/prod_digests.txt
+++ b/build_tools/docker/prod_digests.txt
@@ -2,11 +2,11 @@
gcr.io/iree-oss/swiftshader@sha256:c9be5cbc8467499ae71ec80f3af87b72e746e8903cd52c0be9bb5f7261acc521
gcr.io/iree-oss/samples@sha256:5e64a8f4b3c64e133ceae9028aaa7a843dd58f6b773917d32d25473d4aef3faa
gcr.io/iree-oss/frontends@sha256:95c23cc732e4f5b0b005816108c65cea7b024f186be9cdd22defdd6e68384298
-gcr.io/iree-oss/frontends-nvidia@sha256:808f57962267eb1752c3200348421a22eca1770c737922ee2b933585d16f014d
+gcr.io/iree-oss/frontends-nvidia@sha256:bc217d1a226f778e44874b989d6ead3a3085f04643a40aa301f5d30661356d07
gcr.io/iree-oss/frontends-swiftshader@sha256:e7a5909dd95784ffb69d58ea120f2cd650479e91a83e6f55e1076181c4ca7463
gcr.io/iree-oss/gradle-android@sha256:b600d09ab54827eca4e268ea8243e5186f51507a5a1308bff82a266bd3b5746a
gcr.io/iree-oss/riscv@sha256:396546eaa5f144454c7b83c74ad0d6a96170556a9c164c7c97aa793ff83c446e
-gcr.io/iree-oss/nvidia@sha256:f8c6680f435615256c9df7521d41ad49f13bbb34e2dd16a271a620e9dc8637e7
+gcr.io/iree-oss/nvidia@sha256:4c113db4f62cf19aa6aebdccc86e3b6407edee075f6ffc0ffe732e115a4ae7e5
gcr.io/iree-oss/emscripten@sha256:28c8878131fa8161cb2d1ae22dd99fe30ec3440ddd8299d006bc52b4c5f2dea3
gcr.io/iree-oss/android@sha256:0acf806428fda9a89c928becf8f3f560131f3906bd9466a633466594d4690430
gcr.io/iree-oss/manylinux2014_x86_64-release@sha256:794513562cca263480c0c169c708eec9ff70abfe279d6dc44e115b04488b9ab5
@@ -16,4 +16,4 @@
gcr.io/iree-oss/mmperf@sha256:fa4c29028413081636965bbaead40287e4a3dd403d8992b6b9269bd9d999de75
gcr.io/iree-oss/convperf@sha256:8a32b97be7c8817aa12bf669fce4dd1f20d0b01b7aa6f4dbb618e27541d1231d
gcr.io/iree-oss/perf@sha256:8f4dfc8cf779f6499215a5c4ff2c7608ac3329f23f6ddcf6025e1868e1584222
-gcr.io/iree-oss/nvidia-bleeding-edge@sha256:e020d5c748f293674ab5f63533d6bf2a6a83b4c3045da10f76aa2ef2236f008b
+gcr.io/iree-oss/nvidia-bleeding-edge@sha256:8a5ea90aeb795bd62cfce55af8fb933b1f764f3690ae369e906c490ad0b132d9
diff --git a/build_tools/github_actions/runner/gcp/image_setup.sh b/build_tools/github_actions/runner/gcp/image_setup.sh
index 8c46d45..b0e7317 100644
--- a/build_tools/github_actions/runner/gcp/image_setup.sh
+++ b/build_tools/github_actions/runner/gcp/image_setup.sh
@@ -314,8 +314,8 @@
bash -c "${script_dir}/check_cuda.sh && ${script_dir}/check_vulkan.sh"
}
- check_docker gcr.io/iree-oss/nvidia@sha256:f8c6680f435615256c9df7521d41ad49f13bbb34e2dd16a271a620e9dc8637e7
- check_docker gcr.io/iree-oss/frontends-nvidia@sha256:808f57962267eb1752c3200348421a22eca1770c737922ee2b933585d16f014d
+ check_docker gcr.io/iree-oss/nvidia@sha256:4c113db4f62cf19aa6aebdccc86e3b6407edee075f6ffc0ffe732e115a4ae7e5
+ check_docker gcr.io/iree-oss/frontends-nvidia@sha256:bc217d1a226f778e44874b989d6ead3a3085f04643a40aa301f5d30661356d07
# Remove the docker images we've fetched. We might want to pre-fetch Docker
# images into the VM image, but that should be a separate decision.