From 308f2410c2ba150423be651d91452353ff491dec Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Mon, 11 Jul 2022 16:45:03 -0700 Subject: [PATCH 01/10] Update Ubuntu to 22.04. --- scripts/azure-pipelines/linux/create-image.ps1 | 4 ++-- scripts/azure-pipelines/linux/provision-image.sh | 12 +++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/scripts/azure-pipelines/linux/create-image.ps1 b/scripts/azure-pipelines/linux/create-image.ps1 index 932d25aecde22b..a1690ee9ec05ea 100644 --- a/scripts/azure-pipelines/linux/create-image.ps1 +++ b/scripts/azure-pipelines/linux/create-image.ps1 @@ -88,8 +88,8 @@ $VM = Add-AzVMNetworkInterface -VM $VM -Id $Nic.Id $VM = Set-AzVMSourceImage ` -VM $VM ` -PublisherName 'Canonical' ` - -Offer '0001-com-ubuntu-server-focal' ` - -Skus '20_04-lts' ` + -Offer '0001-com-ubuntu-server-jammy' ` + -Skus '22_04-lts' ` -Version latest $VM = Set-AzVMBootDiagnostic -VM $VM -Disable diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index 35ed5931277004..a7133096c4008d 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -16,6 +16,9 @@ APT_PACKAGES="at curl unzip tar libxt-dev gperf libxaw7-dev cifs-utils \ xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full \ pkg-config meson nasm cmake ninja-build" +# CUDA tooling +APT_PACKAGES="$APT_PACKAGES nvidia-cudnn nvidia-cuda-toolkit" + # Additionally required by qt5-base APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \ libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-util0-dev" @@ -64,15 +67,6 @@ apt-get -y install $APT_PACKAGES # Install the latest Haskell stack for bond curl -sSL https://get.haskellstack.org/ | sh -# Install CUDA -wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin -mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 -apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub -add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" -apt-get -y update -apt-get install -y --no-install-recommends cuda-compiler-11-6 cuda-libraries-dev-11-6 cuda-driver-dev-11-6 \ - cuda-cudart-dev-11-6 libcublas-11-6 libcurand-dev-11-6 cuda-nvml-dev-11-6 libcudnn8-dev libnccl2 libnccl-dev - # Install PowerShell wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb From 6543c43964ff49678839cd58be7ca5efc20cc778 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Mon, 11 Jul 2022 16:47:32 -0700 Subject: [PATCH 02/10] Add libxtst-dev from https://github.com/microsoft/vcpkg/pull/24934 --- scripts/azure-pipelines/linux/provision-image.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index a7133096c4008d..e3cba12855dbff 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -59,6 +59,9 @@ APT_PACKAGES="$APT_PACKAGES libxdamage-dev" # Additionally required by gtk3 and at-spi2-atk APT_PACKAGES="$APT_PACKAGES libdbus-1-dev" +# Additionally required by at-spi2-atk +APT_PACKAGES="$APT_PACKAGES libxtst-dev" + # Additionally required/installed by Azure DevOps Scale Set Agents APT_PACKAGES="$APT_PACKAGES liblttng-ust0 libkrb5-3 zlib1g libicu66" From 600b8c90e1725eccc896da24737aa11a217c7861 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Mon, 11 Jul 2022 17:01:40 -0700 Subject: [PATCH 03/10] Add standard prereqs. --- scripts/azure-pipelines/linux/provision-image.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index e3cba12855dbff..a750c6a033283a 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -7,9 +7,13 @@ export DEBIAN_FRONTEND=noninteractive apt-get -y update apt-get -y dist-upgrade + +# Install vcpkg prerequisites +APT_PACKAGES="git curl zip unzip tar" + # Install common build dependencies -APT_PACKAGES="at curl unzip tar libxt-dev gperf libxaw7-dev cifs-utils \ - build-essential g++ gfortran zip libx11-dev libxkbcommon-x11-dev libxi-dev \ +APT_PACKAGES="$APT_PACKAGES at libxt-dev gperf libxaw7-dev cifs-utils \ + build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev \ libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev \ libxcursor-dev yasm libnuma1 libnuma-dev python-six python3-six python-yaml \ flex libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev \ From 687fc71c42339b55af91d04f0ebc0dad5a4989b9 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Mon, 11 Jul 2022 17:10:02 -0700 Subject: [PATCH 04/10] Update some package references for Ubuntu 22.04. --- scripts/azure-pipelines/linux/provision-image.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index a750c6a033283a..7d50bad274f3c1 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -15,7 +15,7 @@ APT_PACKAGES="git curl zip unzip tar" APT_PACKAGES="$APT_PACKAGES at libxt-dev gperf libxaw7-dev cifs-utils \ build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev \ libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev \ - libxcursor-dev yasm libnuma1 libnuma-dev python-six python3-six python-yaml \ + libxcursor-dev yasm libnuma1 libnuma-dev \ flex libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev \ xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full \ pkg-config meson nasm cmake ninja-build" @@ -29,7 +29,7 @@ APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \ # Additionally required by qt5-base for qt5-x11extras APT_PACKAGES="$APT_PACKAGES libxkbcommon-dev libxcb-keysyms1-dev \ - libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev \ + libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev \ libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev" @@ -67,7 +67,7 @@ APT_PACKAGES="$APT_PACKAGES libdbus-1-dev" APT_PACKAGES="$APT_PACKAGES libxtst-dev" # Additionally required/installed by Azure DevOps Scale Set Agents -APT_PACKAGES="$APT_PACKAGES liblttng-ust0 libkrb5-3 zlib1g libicu66" +APT_PACKAGES="$APT_PACKAGES libkrb5-3 zlib1g libicu70" apt-get -y install $APT_PACKAGES From 4d1bc9f12eb9790b11e362d33a9271827f5b07f9 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Tue, 12 Jul 2022 00:28:15 +0000 Subject: [PATCH 05/10] [cuda] Update to search in /usr/bin as used on Ubuntu 22.04. --- ports/cuda/vcpkg.json | 2 +- ports/cuda/vcpkg_find_cuda.cmake | 2 ++ versions/baseline.json | 2 +- versions/c-/cuda.json | 5 +++++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ports/cuda/vcpkg.json b/ports/cuda/vcpkg.json index 61a3ce96ce8540..4a17ad81e6111e 100644 --- a/ports/cuda/vcpkg.json +++ b/ports/cuda/vcpkg.json @@ -1,7 +1,7 @@ { "name": "cuda", "version": "10.1", - "port-version": 10, + "port-version": 11, "description": "A parallel computing platform and programming model", "homepage": "https://developer.nvidia.com/cuda-toolkit", "license": null, diff --git a/ports/cuda/vcpkg_find_cuda.cmake b/ports/cuda/vcpkg_find_cuda.cmake index 64b7585404c89f..a6265b78b7192a 100644 --- a/ports/cuda/vcpkg_find_cuda.cmake +++ b/ports/cuda/vcpkg_find_cuda.cmake @@ -42,6 +42,8 @@ function(vcpkg_find_cuda) endif() endforeach() + vcpkg_list(APPEND CUDA_PATHS /usr/bin) + find_program(NVCC NAMES nvcc PATHS diff --git a/versions/baseline.json b/versions/baseline.json index 6ab0ac49dd0744..9ff559084ed4cb 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1750,7 +1750,7 @@ }, "cuda": { "baseline": "10.1", - "port-version": 10 + "port-version": 11 }, "cudnn": { "baseline": "7.6.5", diff --git a/versions/c-/cuda.json b/versions/c-/cuda.json index 53553cb146522e..05fbc129641cad 100644 --- a/versions/c-/cuda.json +++ b/versions/c-/cuda.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "1d190177076c48287897d233ae2fa8c241f28f40", + "version": "10.1", + "port-version": 11 + }, { "git-tree": "4e8939c3547a570a73098c091da7b9e28f71015c", "version": "10.1", From f76e452b98483210f64ecbdf0a0229d02ac0ec20 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Tue, 12 Jul 2022 01:05:30 +0000 Subject: [PATCH 06/10] [cudnn] Add where ubuntu 22.04 puts it. --- ports/cudnn/FindCUDNN.cmake | 2 +- ports/cudnn/portfile.cmake | 2 +- ports/cudnn/vcpkg.json | 2 +- versions/baseline.json | 2 +- versions/c-/cudnn.json | 5 +++++ 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ports/cudnn/FindCUDNN.cmake b/ports/cudnn/FindCUDNN.cmake index c90f3a79189d95..178cdaf02f2328 100644 --- a/ports/cudnn/FindCUDNN.cmake +++ b/ports/cudnn/FindCUDNN.cmake @@ -25,7 +25,7 @@ include(FindPackageHandleStandardArgs) find_path(CUDNN_INCLUDE_DIR NAMES cudnn.h cudnn_v8.h cudnn_v7.h - HINTS $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} /usr/include + HINTS $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} /usr/include /usr/include/x86_64-linux-gnu/ PATH_SUFFIXES cuda/include include) find_library(CUDNN_LIBRARY NAMES cudnn cudnn8 cudnn7 HINTS $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} /usr/lib/x86_64-linux-gnu/ /usr/ diff --git a/ports/cudnn/portfile.cmake b/ports/cudnn/portfile.cmake index b5ebb3239d24c7..f53dc53566198b 100644 --- a/ports/cudnn/portfile.cmake +++ b/ports/cudnn/portfile.cmake @@ -5,7 +5,7 @@ vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT OUT_CUDA_VERSION CUDA_VE # Try to find CUDNN if it exists; only download if it doesn't exist find_path(CUDNN_INCLUDE_DIR NAMES cudnn.h cudnn_v8.h cudnn_v7.h - HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} /usr/include + HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} /usr/include /usr/include/x86_64-linux-gnu/ PATH_SUFFIXES cuda/include include) message(STATUS "CUDNN_INCLUDE_DIR: ${CUDNN_INCLUDE_DIR}") find_library(CUDNN_LIBRARY NAMES cudnn cudnn8 cudnn7 diff --git a/ports/cudnn/vcpkg.json b/ports/cudnn/vcpkg.json index 2918c45688babf..36ba88bfc0e4fa 100644 --- a/ports/cudnn/vcpkg.json +++ b/ports/cudnn/vcpkg.json @@ -1,7 +1,7 @@ { "name": "cudnn", "version": "7.6.5", - "port-version": 7, + "port-version": 8, "description": "NVIDIA's cuDNN deep neural network acceleration library.", "homepage": "https://developer.nvidia.com/cudnn", "license": null, diff --git a/versions/baseline.json b/versions/baseline.json index 9ff559084ed4cb..efc55002d73446 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1754,7 +1754,7 @@ }, "cudnn": { "baseline": "7.6.5", - "port-version": 7 + "port-version": 8 }, "cunit": { "baseline": "2.1.3", diff --git a/versions/c-/cudnn.json b/versions/c-/cudnn.json index 3ef9d240d946b3..1acfa99d4cd86e 100644 --- a/versions/c-/cudnn.json +++ b/versions/c-/cudnn.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "b29eb71b5187d6f0991ede2a56e2fda57e6cb520", + "version": "7.6.5", + "port-version": 8 + }, { "git-tree": "cfd70db6f58e45dc96c44a61833d821d987c1588", "version": "7.6.5", From b37446637307818f2dceb2826040a4eed93cd515 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Mon, 11 Jul 2022 18:20:26 -0700 Subject: [PATCH 07/10] Add update-nvidia-cudnn calls. --- scripts/azure-pipelines/linux/provision-image.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index 7d50bad274f3c1..7afd7cbc6f5e92 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -74,6 +74,10 @@ apt-get -y install $APT_PACKAGES # Install the latest Haskell stack for bond curl -sSL https://get.haskellstack.org/ | sh +# Start up cudnn +update-nvidia-cudnn -d +update-nvidia-cudnn -u + # Install PowerShell wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb From 27c63e33735175d1a6ac492bd2abd7e14dbe2218 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Wed, 13 Jul 2022 16:51:38 -0700 Subject: [PATCH 08/10] Update powershell to 7.2.5 --- scripts/azure-pipelines/windows/deploy-pwsh.ps1 | 2 +- scripts/vcpkgTools.xml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/azure-pipelines/windows/deploy-pwsh.ps1 b/scripts/azure-pipelines/windows/deploy-pwsh.ps1 index a2a3f4853e8773..e0577d20a474cd 100644 --- a/scripts/azure-pipelines/windows/deploy-pwsh.ps1 +++ b/scripts/azure-pipelines/windows/deploy-pwsh.ps1 @@ -5,5 +5,5 @@ # REPLACE WITH UTILITY-PREFIX.ps1 -$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.2.4/PowerShell-7.2.4-win-x64.msi' +$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.2.5/PowerShell-7.2.5-win-x64.msi' InstallMSI -Url $PwshUrl -Name 'PowerShell Core' diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml index 9b32fe40643276..4f555dd817e4ab 100644 --- a/scripts/vcpkgTools.xml +++ b/scripts/vcpkgTools.xml @@ -194,11 +194,11 @@ ninja-freebsd-1.8.2.zip - 7.2.4 + 7.2.5 pwsh.exe - https://github.com/PowerShell/PowerShell/releases/download/v7.2.4/PowerShell-7.2.4-win-x86.zip - 4f337c66e03124cfc1e96a56a943ccd24f9a22f588fa461bea9e14733acf06acddd873860b10843c92251257a64fbfac967ae77c084960aaf6b14522435b7769 - PowerShell-7.2.4-win-x86.zip + https://github.com/PowerShell/PowerShell/releases/download/v7.2.5/PowerShell-7.2.5-win-x86.zip + 75b549db2500a5510eae3ec595540b42726c1b049f382c7683b6f0ed26dddd219e2ac67e9902358615f96c7884eda63ec3d0ca558b7b92f4604fdc61322ca4dd + PowerShell-7.2.5-win-x86.zip 16.15.1 From 61c2b3f8a0834f5c5dde7b854f4b14cd067b075f Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Thu, 14 Jul 2022 00:25:53 +0000 Subject: [PATCH 09/10] Re-add NCCL installation from CUDA official sources. --- scripts/azure-pipelines/linux/provision-image.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index 7afd7cbc6f5e92..8c78f485f8fb57 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -78,6 +78,14 @@ curl -sSL https://get.haskellstack.org/ | sh update-nvidia-cudnn -d update-nvidia-cudnn -u +# Install nccl +wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin +mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 +apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub +add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" +apt-get -y update +apt-get install --no-install-recommends libnccl2 libnccl-dev + # Install PowerShell wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb From 0e009b10bf5ba1f6a2f52ceb16930847e1e12e69 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Thu, 14 Jul 2022 10:53:47 -0700 Subject: [PATCH 10/10] Update pools. --- scripts/azure-pipelines/azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/azure-pipelines/azure-pipelines.yml b/scripts/azure-pipelines/azure-pipelines.yml index be5120ad4f71f5..12e0354af74ceb 100644 --- a/scripts/azure-pipelines/azure-pipelines.yml +++ b/scripts/azure-pipelines/azure-pipelines.yml @@ -2,8 +2,8 @@ # SPDX-License-Identifier: MIT # variables: - windows-pool: 'PrWin-2022-06-15' - linux-pool: 'PrLin-2022-06-15' + windows-pool: 'PrWin-2022-07-14' + linux-pool: 'PrLin-2022-07-14' osx-pool: 'PrOsx-2022-02-04' parameters: