cuda-python icon indicating copy to clipboard operation
cuda-python copied to clipboard

Pathfinder CI test case coverage improvements

Open brandon-b-miller opened this issue 4 months ago • 4 comments

cuda.pathfinder is currently tested in CI for two CTK installation modes: a system CTK and one whose components are individually provided via wheels. Generally, pathfinder seems to be tested wherever cuda.bindings and cuda.core are tested.

Instead, cuda.pathfinder ought to have its own matrix of CI jobs that test the four installation modes that are supported: a system install, a wheel install, a conda install, and a local install of the ctk at a nonstandard directory the user points to via CUDA_HOME.

The solution might look like removing the pathfinder tests from the existing jobs and assigning a dedicated CI workflow to pathfinder that runs pathfinder tests across all the CTK installation modes. Existing testing coverage of cuda-core and cuda-bindings could be maintained if desired.

brandon-b-miller avatar Oct 07 '25 13:10 brandon-b-miller

cc @rwgk

brandon-b-miller avatar Oct 07 '25 13:10 brandon-b-miller

Test matrix:

  • 1-site-packages
    • 1-linux-64
      • cu12
      • cu13
    • 2-linux-aarch64
      • cu12
      • cu13
    • 3-win-64
      • cu12
      • cu13
  • 2-local-ctk
    • 1-linux-64
      • cu12
      • cu13
    • 2-linux-aarch64
      • cu12
      • cu13
    • 3-win-64
      • cu12
      • cu13
  • 3-conda-ctk
    • 1-linux-64
      • cu12
      • cu13
    • 2-linux-aarch64
      • cu12
      • cu13
    • 3-win-64
      • cu12
      • cu13

for pkgsys in ("1-site-packages", "2-local-ctk", "3-conda-ctk"):
    print(f"* {pkgsys}")
    for arch in ("1-linux-64", "2-linux-aarch64", "3-win-64"):
        print(f"    * {arch}")
        for cumajor in ("12", "13"):
            print(f"        * cu{cumajor}")

rwgk avatar Oct 28 '25 21:10 rwgk

Commands to set up environments:

  • site-packages (identical on all platforms)
cd cuda_pathfinder/
pip install -v -e . --group test-cu13
pip install -v -e . --group test-cu12

  • local-ctk
cuda_13.0.2_580.95.05_linux.run
cuda_13.0.2_580.95.05_linux_sbsa.run
cuda_13.0.2_windows.exe
cuda_12.9.1_575.57.08_linux.run
cuda_12.9.1_575.57.08_linux_sbsa.run
cuda_12.9.1_576.57_windows.exe
cd cuda_pathfinder/
pip install -v -e . --group test

  • conda-ctk
toolshed/conda_create_for_pathfinder_testing.sh 13.0.2
toolshed/conda_create_for_pathfinder_testing.sh 12.9.1
toolshed/conda_create_for_pathfinder_testing.ps1 13.0.2
toolshed/conda_create_for_pathfinder_testing.ps1 12.9.1
cd cuda_pathfinder/
pip install -v -e . --group test

rwgk avatar Oct 28 '25 21:10 rwgk

Commands for testing:

export CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS=all_must_work
export CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS=all_must_work
cd cuda_pathfinder/
pytest -ra -s -v tests/
$env:CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS = "all_must_work"
$env:CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS = "all_must_work"
cd cuda_pathfinder\
pytest -ra -s -v tests\

For local-ctk testing: CUDA_HOME must be set in the environment

rwgk avatar Oct 28 '25 21:10 rwgk