Skip to content

Commit b9a5e1a

Browse files
authored
ci: run unit-tests-cudf-pandas on branch-25.06 workflow (#18692)
Support for Python 3.13 was added in #18648, however the `cudf-pandas-unit-test` job requires some extra attention to refactor how it pulls in compatible versions of Pandas (Python 3.13 support was added to Pandas in version 2.2.3). Until someone has time to investigate and fix that, moving this job away from the Python 3.13 workflows to get nightlies passing. Authors: - Gil Forsyth (https://github.com/gforsyth) - David Wendt (https://github.com/davidwendt) - Bradley Dice (https://github.com/bdice) Approvers: - Bradley Dice (https://github.com/bdice) - GALI PREM SAGAR (https://github.com/galipremsagar) - Vyas Ramasubramani (https://github.com/vyasr) URL: #18692
1 parent 6d50e29 commit b9a5e1a

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

.github/workflows/pr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ jobs:
318318
unit-tests-cudf-pandas:
319319
needs: [wheel-build-cudf, changed-files]
320320
secrets: inherit
321-
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@python-3.13
321+
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.06
322322
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cudf_pandas
323323
with:
324324
# This selects "ARCH=amd64 + the latest supported Python + CUDA".

python/cudf/cudf/utils/gpu_utils.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2020-2024, NVIDIA CORPORATION.
1+
# Copyright (c) 2020-2025, NVIDIA CORPORATION.
22

33

44
def validate_setup():
@@ -15,7 +15,10 @@ def validate_setup():
1515

1616
import warnings
1717

18-
from cuda.bindings.runtime import cudaDeviceAttr, cudaError_t
18+
from cuda.bindings.runtime import (
19+
cudaDeviceAttr,
20+
cudaError_t,
21+
)
1922

2023
from rmm._cuda.gpu import (
2124
CUDARuntimeError,
@@ -30,7 +33,6 @@ def validate_setup():
3033

3134
notify_caller_errors = {
3235
cudaError_t.cudaErrorInitializationError,
33-
cudaError_t.cudaErrorInsufficientDriver,
3436
cudaError_t.cudaErrorInvalidDeviceFunction,
3537
cudaError_t.cudaErrorInvalidDevice,
3638
cudaError_t.cudaErrorStartupFailure,
@@ -53,12 +55,23 @@ def validate_setup():
5355
except CUDARuntimeError as e:
5456
if e.status in notify_caller_errors:
5557
raise e
58+
59+
# We must distinguish between "CPU only" and "the driver is
60+
# insufficient for the runtime".
61+
if e.status == cudaError_t.cudaErrorInsufficientDriver:
62+
# cudaDriverGetVersion() returns 0 when ``libcuda.so`` is
63+
# missing. Otherwise there is a CUDA driver but it is
64+
# insufficient for the runtime, so we re-raise the original
65+
# exception
66+
if driverGetVersion() != 0:
67+
raise e
68+
5669
# If there is no GPU detected, set `gpus_count` to -1
5770
gpus_count = -1
5871
except RuntimeError as e:
59-
# getDeviceCount() can raise a RuntimeError
60-
# when ``libcuda.so`` is missing.
61-
# We don't want this to propagate up to the user.
72+
# When using cuda-python < 12.9, getDeviceCount() can raise a
73+
# RuntimeError if ``libcuda.so`` is missing. We don't want this to
74+
# propagate up to the user.
6275
warnings.warn(str(e))
6376
return
6477

0 commit comments

Comments
 (0)