Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f92ee6c
Initial plan
Copilot Nov 16, 2025
5e08b07
Move install_gpu_driver.ps1 to ci/tools and update call sites
Copilot Nov 16, 2025
2219f3b
Update install_gpu_driver.ps1 to support GPU type detection and drive…
Copilot Nov 16, 2025
de5b109
Make nightly sections empty in ci/test-matrix.json
Copilot Nov 16, 2025
585e184
Expand Windows test matrix with driver mode support
Copilot Nov 16, 2025
de42011
Wire driver mode from test-matrix.json into Windows workflow
Copilot Nov 16, 2025
35fa159
Update install_gpu_driver.ps1 to match CCCL implementation with drive…
Copilot Nov 16, 2025
da32f6c
Simplify driver mode handling per review feedback
Copilot Nov 16, 2025
a4a65ad
Use GPU_TYPE env var instead of parsing JOB_RUNNER
Copilot Nov 16, 2025
16b0e3f
ensure each GPU kind are tested under two modes
leofang Nov 16, 2025
f789922
fix arch coverage
leofang Nov 16, 2025
f2ffbb1
make script more flexible; ensure cover 6 different GPUs, each with 2…
leofang Nov 16, 2025
0293947
Add driver mode verification and change v100 to rtxpro6000 for CUDA 13
Copilot Nov 17, 2025
1706a06
fix
leofang Nov 17, 2025
2393b68
merge
leofang Nov 17, 2025
e363f0e
ensure using CTK 12.x with V100 + driver mode check can fail
leofang Nov 17, 2025
6ed6f6c
avoid triggering module-level delattr (#1237)
leofang Nov 17, 2025
3370245
fix syntax
leofang Nov 17, 2025
c7abbdf
avoid testing Quadro + WDDM; make driver mode show up in pipeline names
leofang Nov 17, 2025
7dc0f91
add missing `test-cu12-ft` dep group
leofang Nov 17, 2025
1a118b7
Update external library bindings (#1243)
mdboom Nov 17, 2025
d93eb58
build: pixi.toml follow up for cuda-core and cuda-bindings (#1234)
cpcloud Nov 17, 2025
27b869e
Upgrade Cython dependency to 3.2 (#1245)
mdboom Nov 17, 2025
db8058d
Update Device constructor to accept Device or device ordinal. Update …
Andy-Jost Nov 17, 2025
40084f0
use default fetch-depth (1) to accelerate checkout (#1251)
leofang Nov 17, 2025
93199f3
bump version & add release notes (#1256)
leofang Nov 18, 2025
2607e0e
chore(deps): make cython version match pyproject.toml (#1252)
cpcloud Nov 18, 2025
c92d268
Fix: Remove duplicate try_site_packages() call in load_nvidia_dynamic…
rparolin Nov 18, 2025
85c0059
fix VMM on Windows
leofang Nov 18, 2025
f716719
Merge branch 'fix_vmm' into copilot/move-install-gpu-driver-script
leofang Nov 18, 2025
ca1aa74
[pre-commit.ci] auto code formatting
pre-commit-ci[bot] Nov 18, 2025
3781575
RTX cards cannot run MCDM, switch back to L4 for now
leofang Nov 18, 2025
da63359
fix silly typo
leofang Nov 18, 2025
6c8cbcb
fix stupid negation
leofang Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions .github/workflows/install_gpu_driver.ps1

This file was deleted.

6 changes: 1 addition & 5 deletions .github/workflows/test-wheel-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ jobs:
steps:
- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Validate Test Type
run: |
Expand Down Expand Up @@ -76,7 +74,7 @@ jobs:
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"

test:
name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }}
name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, ${{ matrix.GPU }}
needs: compute-matrix
strategy:
fail-fast: false
Expand All @@ -97,8 +95,6 @@ jobs:

- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0

- name: Setup proxy cache
uses: nv-gha-runners/setup-proxy-cache@main
Expand Down
22 changes: 15 additions & 7 deletions .github/workflows/test-wheel-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ jobs:
steps:
- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1

- name: Validate Test Type
run: |
Expand Down Expand Up @@ -65,7 +63,7 @@ jobs:
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"

test:
name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }}
name: py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, ${{ matrix.GPU }} (${{ matrix.DRIVER_MODE }})
# The build stage could fail but we want the CI to keep moving.
needs: compute-matrix
strategy:
Expand All @@ -76,19 +74,29 @@ jobs:
steps:
- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0

- name: Setup proxy cache
uses: nv-gha-runners/setup-proxy-cache@main
continue-on-error: true

- name: Update driver
env:
DRIVER_MODE: ${{ matrix.DRIVER_MODE }}
GPU_TYPE: ${{ matrix.GPU }}
run: |
.github/workflows/install_gpu_driver.ps1
ci/tools/install_gpu_driver.ps1

- name: Ensure GPU is working
run: nvidia-smi
run: |
nvidia-smi

$mode_output = nvidia-smi | Select-String -Pattern "${{ matrix.DRIVER_MODE }}"
Write-Output "Driver mode check: $mode_output"
if ("$mode_output" -eq "") {
Write-Error "Switching to driver mode ${{ matrix.DRIVER_MODE }} failed!"
exit 1
}
Write-Output "Driver mode verified: ${{ matrix.DRIVER_MODE }}"

- name: Set environment variables
env:
Expand Down
72 changes: 15 additions & 57 deletions ci/test-matrix.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"_description": "Test matrix configurations for CUDA Python CI workflows. This file consolidates the test matrices that were previously hardcoded in the workflow files. All GPU and ARCH values are hard-coded for each architecture: l4 GPU for amd64, a100 GPU for arm64.",
"_sorted_by": "Please keep matrices sorted in ascending order by [ARCH, PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]",
"_sorted_by": "Please keep matrices sorted in ascending order by [ARCH, PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]. Windows entries also include DRIVER_MODE.",
"_notes": "DRIVER: 'earliest' does not work with CUDA 12.9.1 and LOCAL_CTK: 0 does not work with CUDA 12.0.1",
"linux": {
"pull-request": [
Expand All @@ -25,48 +25,7 @@
{ "ARCH": "arm64", "PY_VER": "3.14", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.14t", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }
],
"nightly": [
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" },
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "earliest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" },
{ "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.10", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" },
{ "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.11", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" },
{ "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "earliest" },
{ "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.0.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest" },
{ "ARCH": "arm64", "PY_VER": "3.13", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest" }
],
"nightly": [],
"special_runners": {
"amd64": [
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "H100", "DRIVER": "latest" }
Expand All @@ -75,20 +34,19 @@
},
"windows": {
"pull-request": [
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.14", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.14", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.14t", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.14t", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "rtx2080", "DRIVER": "latest", "DRIVER_MODE": "WDDM" },
{ "ARCH": "amd64", "PY_VER": "3.10", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "rtxpro6000", "DRIVER": "latest", "DRIVER_MODE": "TCC" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "v100", "DRIVER": "latest", "DRIVER_MODE": "MCDM" },
{ "ARCH": "amd64", "PY_VER": "3.11", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "rtx4090", "DRIVER": "latest", "DRIVER_MODE": "WDDM" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest", "DRIVER_MODE": "MCDM" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "a100", "DRIVER": "latest", "DRIVER_MODE": "TCC" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest", "DRIVER_MODE": "TCC" },
{ "ARCH": "amd64", "PY_VER": "3.13", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "rtxpro6000", "DRIVER": "latest", "DRIVER_MODE": "MCDM" },
{ "ARCH": "amd64", "PY_VER": "3.14", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "v100", "DRIVER": "latest", "DRIVER_MODE": "TCC" },
{ "ARCH": "amd64", "PY_VER": "3.14", "CUDA_VER": "13.0.2", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest", "DRIVER_MODE": "MCDM" },
{ "ARCH": "amd64", "PY_VER": "3.14t", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest", "DRIVER_MODE": "TCC" },
{ "ARCH": "amd64", "PY_VER": "3.14t", "CUDA_VER": "13.0.2", "LOCAL_CTK": "0", "GPU": "a100", "DRIVER": "latest", "DRIVER_MODE": "MCDM" }
],
"nightly": [
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "0", "GPU": "l4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "11.8.0", "LOCAL_CTK": "1", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "0", "GPU": "t4", "DRIVER": "latest" },
{ "ARCH": "amd64", "PY_VER": "3.12", "CUDA_VER": "12.9.1", "LOCAL_CTK": "1", "GPU": "l4", "DRIVER": "latest" }
]
"nightly": []
}
}
82 changes: 82 additions & 0 deletions ci/tools/install_gpu_driver.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0

# Install the driver
function Install-Driver {

# Set the correct URL, filename, and arguments to the installer
# This driver is picked to support Windows 11 & CUDA 13.0
$version = '581.15'

# Get GPU type from environment variable
$gpu_type = $env:GPU_TYPE

$data_center_gpus = @('a100', 'h100', 'l4', 't4', 'v100', 'rtxa6000', 'rtx6000ada')
$desktop_gpus = @('rtx2080', 'rtx4090', 'rtxpro6000')

if ($data_center_gpus -contains $gpu_type) {
Write-Output "Data center GPU detected: $gpu_type"
$filename="$version-data-center-tesla-desktop-winserver-2022-2025-dch-international.exe"
$server_path="tesla/$version"
} elseif ($desktop_gpus -contains $gpu_type) {
Write-Output "Desktop GPU detected: $gpu_type"
$filename="$version-desktop-win10-win11-64bit-international-dch-whql.exe"
$server_path="Windows/$version"
} else {
Write-Output "Unknown GPU type: $gpu_type"
exit 1
}

$url="https://us.download.nvidia.com/$server_path/$filename"
$filepath="C:\NVIDIA-Driver\$filename"

Write-Output "Installing NVIDIA driver version $version for GPU type $gpu_type"
Write-Output "Download URL: $url"

# Silent install arguments
$install_args = '/s /noeula /noreboot';

# Create the folder for the driver download
if (!(Test-Path -Path 'C:\NVIDIA-Driver')) {
New-Item -Path 'C:\' -Name 'NVIDIA-Driver' -ItemType 'directory' | Out-Null
}

# Download the file to a specified directory
# Disabling progress bar due to https://github.com/GoogleCloudPlatform/compute-gpu-installation/issues/29
$ProgressPreference_tmp = $ProgressPreference
$ProgressPreference = 'SilentlyContinue'
Write-Output 'Downloading the driver installer...'
Invoke-WebRequest $url -OutFile $filepath
$ProgressPreference = $ProgressPreference_tmp
Write-Output 'Download complete!'

# Install the file with the specified path from earlier
Write-Output 'Running the driver installer...'
Start-Process -FilePath $filepath -ArgumentList $install_args -Wait
Write-Output 'Done!'

# Handle driver mode configuration
# This assumes we have the prior knowledge on which GPU can use which mode.
$driver_mode = $env:DRIVER_MODE
if ($driver_mode -eq "WDDM") {
Write-Output "Setting driver mode to WDDM..."
nvidia-smi -fdm 0
} elseif ($driver_mode -eq "TCC") {
Write-Output "Setting driver mode to TCC..."
nvidia-smi -fdm 1
} elseif ($driver_mode -eq "MCDM") {
Write-Output "Setting driver mode to MCDM..."
nvidia-smi -fdm 2
} else {
Write-Output "Unknown driver mode: $driver_mode"
exit 1
}
pnputil /disable-device /class Display
pnputil /enable-device /class Display
# Give it a minute to settle:
Start-Sleep -Seconds 5
}

# Run the functions
Install-Driver
7 changes: 5 additions & 2 deletions cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,15 @@ cdef void* load_library() except* with gil:
return <void*>handle


cdef int __check_or_init_cufile() except -1 nogil:
cdef int _init_cufile() except -1 nogil:
global __py_cufile_init

cdef void* handle = NULL

with gil, __symbol_lock:
# Recheck the flag after obtaining the locks
if __py_cufile_init:
return 0
# Load function
global __cuFileHandleRegister
__cuFileHandleRegister = dlsym(RTLD_DEFAULT, 'cuFileHandleRegister')
Expand Down Expand Up @@ -427,7 +430,7 @@ cdef inline int _check_or_init_cufile() except -1 nogil:
if __py_cufile_init:
return 0

return __check_or_init_cufile()
return _init_cufile()


cdef dict func_ptrs = None
Expand Down
8 changes: 6 additions & 2 deletions cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,16 @@ cdef void* load_library() except* with gil:
return <void*>handle


cdef int __check_or_init_nvjitlink() except -1 nogil:
cdef int _init_nvjitlink() except -1 nogil:
global __py_nvjitlink_init

cdef void* handle = NULL

with gil, __symbol_lock:
# Recheck the flag after obtaining the locks
if __py_nvjitlink_init:
return 0

# Load function
global __nvJitLinkCreate
__nvJitLinkCreate = dlsym(RTLD_DEFAULT, 'nvJitLinkCreate')
Expand Down Expand Up @@ -193,7 +197,7 @@ cdef inline int _check_or_init_nvjitlink() except -1 nogil:
if __py_nvjitlink_init:
return 0

return __check_or_init_nvjitlink()
return _init_nvjitlink()

cdef dict func_ptrs = None

Expand Down
8 changes: 6 additions & 2 deletions cuda_bindings/cuda/bindings/_internal/nvjitlink_windows.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,14 @@ cdef void* __nvJitLinkGetInfoLog = NULL
cdef void* __nvJitLinkVersion = NULL


cdef int __check_or_init_nvjitlink() except -1 nogil:
cdef int _init_nvjitlink() except -1 nogil:
global __py_nvjitlink_init

with gil, __symbol_lock:
# Recheck the flag after obtaining the locks
if __py_nvjitlink_init:
return 0

# Load library
handle = load_nvidia_dynamic_lib("nvJitLink")._handle_uint

Expand Down Expand Up @@ -151,7 +155,7 @@ cdef inline int _check_or_init_nvjitlink() except -1 nogil:
if __py_nvjitlink_init:
return 0

return __check_or_init_nvjitlink()
return _init_nvjitlink()


cdef dict func_ptrs = None
Expand Down
8 changes: 6 additions & 2 deletions cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,16 @@ cdef void* load_library() except* with gil:
return <void*>handle


cdef int __check_or_init_nvvm() except -1 nogil:
cdef int _init_nvvm() except -1 nogil:
global __py_nvvm_init

cdef void* handle = NULL

with gil, __symbol_lock:
# Recheck the flag after obtaining the locks
if __py_nvvm_init:
return 0

# Load function
global __nvvmGetErrorString
__nvvmGetErrorString = dlsym(RTLD_DEFAULT, 'nvvmGetErrorString')
Expand Down Expand Up @@ -185,7 +189,7 @@ cdef inline int _check_or_init_nvvm() except -1 nogil:
if __py_nvvm_init:
return 0

return __check_or_init_nvvm()
return _init_nvvm()


cdef dict func_ptrs = None
Expand Down
Loading