Skip to content

Commit

Permalink
VM Updates for Patch Tuesday, March 2023 (#30223)
Browse files Browse the repository at this point in the history
  • Loading branch information
BillyONeal committed Mar 21, 2023
1 parent e249dfb commit 6146b48
Show file tree
Hide file tree
Showing 23 changed files with 173 additions and 51 deletions.
1 change: 0 additions & 1 deletion ports/cctag/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
)

if("cuda" IN_LIST FEATURES)
include("${CURRENT_INSTALLED_DIR}/share/cuda/vcpkg_find_cuda.cmake")
vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT)
message(STATUS "CUDA_TOOLKIT_ROOT ${CUDA_TOOLKIT_ROOT}")
endif()
Expand Down
2 changes: 1 addition & 1 deletion ports/cctag/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "cctag",
"version-semver": "1.0.2",
"port-version": 2,
"port-version": 3,
"maintainers": "alicevision-team@googlegroups.com",
"description": "Computer vision library for detecting CCTag markers made up of concentric circles",
"homepage": "https://github.com/alicevision/CCTag",
Expand Down
8 changes: 5 additions & 3 deletions ports/cuda/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@

#note: this port must be kept in sync with CUDNN and NCCL ports: every time one is upgraded, the other must be too

include(${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake)
include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake")

vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT)

file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled)
1 change: 1 addition & 0 deletions ports/cuda/vcpkg-port-config.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake")
2 changes: 1 addition & 1 deletion ports/cuda/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "cuda",
"version": "10.1",
"port-version": 12,
"port-version": 13,
"description": "A parallel computing platform and programming model",
"homepage": "https://developer.nvidia.com/cuda-toolkit",
"license": null,
Expand Down
1 change: 0 additions & 1 deletion ports/cudnn/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
set(MINIMUM_CUDNN_VERSION "7.6.5")

include("${CURRENT_INSTALLED_DIR}/share/cuda/vcpkg_find_cuda.cmake")
vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT OUT_CUDA_VERSION CUDA_VERSION)

# Try to find CUDNN if it exists; only download if it doesn't exist
Expand Down
2 changes: 1 addition & 1 deletion ports/cudnn/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "cudnn",
"version": "7.6.5",
"port-version": 8,
"port-version": 9,
"description": "NVIDIA's cuDNN deep neural network acceleration library.",
"homepage": "https://developer.nvidia.com/cudnn",
"license": null,
Expand Down
25 changes: 25 additions & 0 deletions ports/popsift/144.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From 7b664e27ca2865f3e06101d50415f2943d2de58c Mon Sep 17 00:00:00 2001
From: Azhng <archer.xn@gmail.com>
Date: Tue, 21 Feb 2023 19:24:57 +0000
Subject: [PATCH] add required thrust include for s_filtergrid.cu

---
src/popsift/s_filtergrid.cu | 2 ++
1 file changed, 2 insertions(+)

diff --git a/src/popsift/s_filtergrid.cu b/src/popsift/s_filtergrid.cu
index 301c6a96..a766c2de 100644
--- a/src/popsift/s_filtergrid.cu
+++ b/src/popsift/s_filtergrid.cu
@@ -19,9 +19,11 @@
#if ! POPSIFT_IS_DEFINED(POPSIFT_DISABLE_GRID_FILTER)

#include <thrust/copy.h>
+#include <thrust/count.h>
#include <thrust/device_vector.h>
#include <thrust/execution_policy.h>
#include <thrust/host_vector.h>
+#include <thrust/iterator/constant_iterator.h>
#include <thrust/iterator/discard_iterator.h>
#include <thrust/sequence.h>
#include <thrust/sort.h>
49 changes: 49 additions & 0 deletions ports/popsift/cuda_12_1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
diff --git a/cmake/ChooseCudaCC.cmake b/cmake/ChooseCudaCC.cmake
index d9bc6c2..0ac4fa9 100755
--- a/cmake/ChooseCudaCC.cmake
+++ b/cmake/ChooseCudaCC.cmake
@@ -65,7 +65,8 @@ function(chooseCudaCC SUPPORTED_CC SUPPORTED_GENCODE_FLAGS)

set(CC_LIST_BY_SYSTEM_PROCESSOR "")
if(CMAKE_SYSTEM_PROCESSOR IN_LIST OTHER_SUPPORTED_PROCESSORS)
- list(APPEND CC_LIST_BY_SYSTEM_PROCESSOR "20;21;30;35;50;52;60;61;70;75;80;86")
+ # 87 is intentionally omitted, see discussion in https://github.com/alicevision/popsift/pull/146
+ list(APPEND CC_LIST_BY_SYSTEM_PROCESSOR "20;21;30;35;50;52;60;61;70;75;80;86;89;90")
endif()
if(CMAKE_SYSTEM_PROCESSOR IN_LIST TEGRA_SUPPORTED_PROCESSORS)
list(APPEND CC_LIST_BY_SYSTEM_PROCESSOR "32;53;62;72")
@@ -78,10 +79,20 @@ function(chooseCudaCC SUPPORTED_CC SUPPORTED_GENCODE_FLAGS)
# Default setting of the CUDA CC versions to compile.
# Shortening the lists saves a lot of compile time.
#
- set(CUDA_MIN_CC 20)
- set(CUDA_MAX_CC 86)
- if(CUDA_VERSION_MAJOR GREATER_EQUAL 11)
+
+ # The current version last time this list was updated was CUDA 12.1.
+ if(CUDA_VERSION VERSION_GREATER_EQUAL 12)
+ set(CUDA_MIN_CC 50)
+ set(CUDA_MAX_CC 90)
+ elseif(CUDA_VERSION VERSION_GREATER_EQUAL 11.8)
+ set(CUDA_MIN_CC 35)
+ set(CUDA_MAX_CC 90)
+ elseif(CUDA_VERSION VERSION_GREATER_EQUAL 11.1)
+ set(CUDA_MIN_CC 35)
+ set(CUDA_MAX_CC 86)
+ elseif(CUDA_VERSION_MAJOR GREATER_EQUAL 11)
set(CUDA_MIN_CC 35)
+ set(CUDA_MAX_CC 80)
elseif(CUDA_VERSION_MAJOR GREATER_EQUAL 10)
set(CUDA_MIN_CC 30)
set(CUDA_MAX_CC 75)
@@ -89,8 +100,10 @@ function(chooseCudaCC SUPPORTED_CC SUPPORTED_GENCODE_FLAGS)
set(CUDA_MIN_CC 30)
set(CUDA_MAX_CC 72)
elseif(CUDA_VERSION_MAJOR GREATER_EQUAL 8)
+ set(CUDA_MIN_CC 20)
set(CUDA_MAX_CC 62)
elseif(CUDA_VERSION_MAJOR GREATER_EQUAL 7)
+ set(CUDA_MIN_CC 20)
set(CUDA_MAX_CC 53)
else()
message(FATAL_ERROR "We do not support a CUDA SDK below version 7.0")
3 changes: 2 additions & 1 deletion ports/popsift/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ vcpkg_from_github(
HEAD_REF develop
PATCHES
fix_missing_thrust_include.patch
144.patch
cuda_12_1.patch
)

include("${CURRENT_INSTALLED_DIR}/share/cuda/vcpkg_find_cuda.cmake")
vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT)

vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
Expand Down
2 changes: 1 addition & 1 deletion ports/popsift/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "popsift",
"version": "0.9",
"port-version": 4,
"port-version": 5,
"description": "PopSift is an implementation of the SIFT algorithm in CUDA.",
"homepage": "https://github.com/alicevision/popsift",
"supports": "!(uwp | arm | arm64 | android | x86)",
Expand Down
6 changes: 3 additions & 3 deletions scripts/azure-pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# SPDX-License-Identifier: MIT
#
variables:
windows-pool: 'PrWin-2023-02-14'
linux-pool: 'PrLin-2023-02-14'
windows-pool: 'PrWin-2023-03-15'
linux-pool: 'PrLin-2023-03-15'
osx-pool: 'PrOsx-2022-02-04'

parameters:
Expand All @@ -14,7 +14,7 @@ parameters:
- name: tripletPattern
displayName: 'Enable triplets which contain this substring'
type: string
default: ''
default: '-'

jobs:
- template: windows/azure-pipelines.yml
Expand Down
4 changes: 2 additions & 2 deletions scripts/azure-pipelines/linux/provision-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ APT_PACKAGES="$APT_PACKAGES haskell-stack"
APT_PACKAGES="$APT_PACKAGES python-yaml"

## CUDA
APT_PACKAGES="$APT_PACKAGES 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 \
APT_PACKAGES="$APT_PACKAGES cuda-compiler-12-1 cuda-libraries-dev-12-1 cuda-driver-dev-12-1 \
cuda-cudart-dev-12-1 libcublas-12-1 libcurand-dev-12-1 cuda-nvml-dev-12-1 libcudnn8-dev libnccl2 \
libnccl-dev"

## PowerShell
Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/create-image.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ $VMSize = 'Standard_D8a_v4'
$ProtoVMName = 'PROTOTYPE'
$WindowsServerSku = '2022-datacenter'
$ErrorActionPreference = 'Stop'
$CudnnBaseUrl = 'https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-8.3.2.44_cuda11.5-archive.zip'
$CudnnBaseUrl = 'https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip'

$ProgressActivity = 'Creating Windows Image'
$TotalProgress = 18
Expand Down
60 changes: 51 additions & 9 deletions scripts/azure-pipelines/windows/deploy-cuda.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,66 @@

# REPLACE WITH $CudnnUrl

$CudnnLocalZipPath = "$PSScriptRoot\cudnn-windows-x86_64-8.3.2.44_cuda11.5-archive.zip"
$CudnnLocalZipPath = "$PSScriptRoot\cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip"

$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/11.6.0/network_installers/cuda_11.6.0_windows_network.exe'
$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/12.1.0/network_installers/cuda_12.1.0_windows_network.exe'

$CudaFeatures = 'nvcc_11.6 cuobjdump_11.6 nvprune_11.6 cupti_11.6 memcheck_11.6 nvdisasm_11.6 nvprof_11.6 ' + `
'visual_studio_integration_11.6 visual_profiler_11.6 visual_profiler_11.6 cublas_11.6 cublas_dev_11.6 ' + `
'cudart_11.6 cufft_11.6 cufft_dev_11.6 curand_11.6 curand_dev_11.6 cusolver_11.6 cusolver_dev_11.6 ' + `
'cusparse_11.6 cusparse_dev_11.6 npp_11.6 npp_dev_11.6 nvrtc_11.6 nvrtc_dev_11.6 nvml_dev_11.6 ' + `
'occupancy_calculator_11.6 thrust_11.6 '
# https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
# Intentionally omitted:
# demo_suite_12.1
# documentation_12.1
# nvvm_samples_12.1
# Display.Driver

$destination = "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v11.6"
$CudaInstallerArgs = @(
'-s',
'cublas_12.1',
'cublas_dev_12.1',
'cuda_profiler_api_12.1',
'cudart_12.1',
'cufft_12.1',
'cufft_dev_12.1',
'cuobjdump_12.1',
'cupti_12.1',
'curand_12.1',
'curand_dev_12.1',
'cusolver_12.1',
'cusolver_dev_12.1',
'cusparse_12.1',
'cusparse_dev_12.1',
'cuxxfilt_12.1',
'npp_12.1',
'npp_dev_12.1',
'nsight_compute_12.1',
'nsight_systems_12.1',
'nsight_vse_12.1',
'nvcc_12.1',
'nvdisasm_12.1',
'nvjitlink_12.1',
'nvjpeg_12.1',
'nvjpeg_dev_12.1',
'nvml_dev_12.1',
'nvprof_12.1',
'nvprune_12.1',
'nvrtc_12.1',
'nvrtc_dev_12.1',
'nvtx_12.1',
'occupancy_calculator_12.1',
'opencl_12.1',
'sanitizer_12.1',
'thrust_12.1',
'visual_profiler_12.1',
'visual_studio_integration_12.1'
)

$destination = "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v12.1"

try {
Write-Host 'Downloading CUDA...'
[string]$installerPath = Get-TempFilePath -Extension 'exe'
curl.exe -L -o $installerPath -s -S $CudaUrl
Write-Host 'Installing CUDA...'
$proc = Start-Process -FilePath $installerPath -ArgumentList @('-s ' + $CudaFeatures) -Wait -PassThru
$proc = Start-Process -FilePath $installerPath -ArgumentList $CudaInstallerArgs -Wait -PassThru
$exitCode = $proc.ExitCode
if ($exitCode -eq 0) {
Write-Host 'Installation successful!'
Expand Down
23 changes: 2 additions & 21 deletions scripts/azure-pipelines/windows/deploy-inteloneapi.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,7 @@

# REPLACE WITH UTILITY-PREFIX.ps1

# Seems like only the HPC kit is really needed?
#$oneAPIBaseUrl = 'https://registrationcenter-download.intel.com/akdlm/irc_nas/17768/w_BaseKit_p_2021.2.0.2871_offline.exe'
$oneAPIHPCUrl = 'https://registrationcenter-download.intel.com/akdlm/irc_nas/18578/w_HPCKit_p_2022.1.3.145_offline.exe'

# Possible oneAPI Base components:
#intel.oneapi.win.vtune 2021.1.1-68 true Intel® VTune(TM) Profiler
#intel.oneapi.win.tbb.devel 2021.1.1-133 true Intel® oneAPI Threading Building Blocks
#intel.oneapi.win.dnnl 2021.1.1-44 true Intel® oneAPI Deep Neural Network Library
#intel.oneapi.win.mkl.devel 2021.1.1-52 true Intel® oneAPI Math Kernel Library
#intel.oneapi.win.vpl 2021.1.1-76 true Intel® oneAPI Video Processing Library
#intel.oneapi.win.dpcpp_debugger 10.0.0-2213 true Intel® Distribution for GDB*
#intel.oneapi.win.ipp.devel 2021.1.1-47 true Intel® Integrated Performance Primitives
#intel.oneapi.win.ippcp 2021.1.1-53 true Intel® Integrated Performance Primitives Cryptography
#intel.oneapi.win.dpcpp-compiler 2021.1.1-191 true Intel® oneAPI DPC++/C++ Compiler
#intel.oneapi.win.dpcpp-library 2021.1.1-191 true Intel® oneAPI DPC++ Library
#intel.oneapi.win.dpcpp_ct.common 2021.1.1-54 true Intel® DPC++ Compatibility Tool
#intel.oneapi.win.dal.devel 2021.1.1-71 true Intel® oneAPI Data Analytics Library
#intel.oneapi.win.python3 2021.1.1-46 true Intel® Distribution for Python*
#intel.oneapi.win.advisor 2021.1.1-53 true Intel® Advisor
#$oneAPIBaseComponents = 'intel.oneapi.win.dpcpp-compiler:intel.oneapi.win.dpcpp-library:intel.oneapi.win.mkl.devel:intel.oneapi.win.ipp.devel:intel.oneapi.win.ippcp:intel.oneapi.win.dal.devel:intel.oneapi.win.dnnl:intel.oneapi.win.vpl:intel.oneapi.win.tbb.devel'
$oneAPIBaseUrl = 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19085/w_HPCKit_p_2023.0.0.25931_offline.exe'
$oneAPIHPCComponents = 'intel.oneapi.win.cpp-compiler:intel.oneapi.win.ifort-compiler'

<#
Expand Down Expand Up @@ -71,4 +52,4 @@ Function InstallInteloneAPI {
}
}

InstallInteloneAPI -Url $oneAPIHPCUrl -Components $oneAPIHPCComponents
InstallInteloneAPI -Url $oneAPIBaseUrl -Components $oneAPIHPCComponents
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/deploy-pwsh.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@

# REPLACE WITH UTILITY-PREFIX.ps1

$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/PowerShell-7.3.1-win-x64.msi'
$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.3/PowerShell-7.3.3-win-x64.msi'
InstallMSI -Url $PwshUrl -Name 'PowerShell Core'
3 changes: 3 additions & 0 deletions scripts/ci.baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@

# Add new items alphabetically

# Broken with CUDA 12; needs update to 3.8.3 and https://github.com/arrayfire/arrayfire/issues/3349 fixed
arrayfire:x64-linux=fail
# Fails with "fatal error LNK1322: cannot avoid potential ARM hazard" even with /Gy
allegro5:arm64-windows=fail
# Cross compiling CI machine cannot run gen_test_char to generate apr_escape_test_char.h
Expand Down Expand Up @@ -733,6 +735,7 @@ pmdk:x64-uwp=fail
pmdk:x64-windows-static=fail
pmdk:x86-windows=fail
popsift:x64-windows-static-md=fail
popsift:x64-linux=fail # segfaults :(
portable-snippets:arm-uwp=fail
# Not yet ready for these platforms.
qbittorrent:x64-osx=fail
Expand Down
8 changes: 4 additions & 4 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -1390,7 +1390,7 @@
},
"cctag": {
"baseline": "1.0.2",
"port-version": 2
"port-version": 3
},
"cctz": {
"baseline": "2.3",
Expand Down Expand Up @@ -1890,11 +1890,11 @@
},
"cuda": {
"baseline": "10.1",
"port-version": 12
"port-version": 13
},
"cudnn": {
"baseline": "7.6.5",
"port-version": 8
"port-version": 9
},
"cunit": {
"baseline": "2.1.3",
Expand Down Expand Up @@ -6182,7 +6182,7 @@
},
"popsift": {
"baseline": "0.9",
"port-version": 4
"port-version": 5
},
"portable-snippets": {
"baseline": "2019-09-20",
Expand Down
5 changes: 5 additions & 0 deletions versions/c-/cctag.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a54aac960d7c5e10bf85b66fb8e1cd9a7a384f64",
"version-semver": "1.0.2",
"port-version": 3
},
{
"git-tree": "e9166dee873ce930a3c5e12b544dc47583343221",
"version-semver": "1.0.2",
Expand Down
5 changes: 5 additions & 0 deletions versions/c-/cuda.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "d7709c275f8ce58e6d1b4c71b8d37fba4a9a0377",
"version": "10.1",
"port-version": 13
},
{
"git-tree": "85508d056c8d9e006b455ee71e29ab015abd8d63",
"version": "10.1",
Expand Down
5 changes: 5 additions & 0 deletions versions/c-/cudnn.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "77f6c8d8f5669619fde9b2bc596a406d0fee2839",
"version": "7.6.5",
"port-version": 9
},
{
"git-tree": "b29eb71b5187d6f0991ede2a56e2fda57e6cb520",
"version": "7.6.5",
Expand Down
Loading

0 comments on commit 6146b48

Please sign in to comment.