Skip to content

Conversation

cpcloud
Copy link
Contributor

@cpcloud cpcloud commented Oct 6, 2025

Add a pixi setup to cuda_pathfinder.

Copy link
Contributor

copy-pr-bot bot commented Oct 6, 2025

Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@cpcloud cpcloud changed the title pixi chore(dev-deps): add pixi setup for cuda_pathfinder Oct 6, 2025
@cpcloud cpcloud requested a review from kkraus14 October 6, 2025 16:38
"nvidia-cufftmp-cu12; sys_platform != 'win32'",
"nvidia-libmathdx-cu12",
]
cu12-ext = [
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is splitting out -ext important technically?

In the long run, it's possible that some of the libs will add support for win32. What would we do then? Move those to the non-ext group?

I'd have a preference for keeping nvidia in the names, e.g. nvidia_cu12 or nvidia-cu12. In the back of my mind: 1. It's more explicit/readable. 2. Maybe/maybe-not we'll have non-nvidia wheels in the future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is splitting out -ext important technically?

Yes, because pixi cannot solve the environment's dependencies without it. Pixi doesn't know anything about markers, for example.

In the long run, it's possible that some of the libs will add support for win32. What would we do then? Move those to the non-ext group?

Yep.

I'd have a preference for keeping nvidia in the names, e.g. nvidia_cu12 or nvidia-cu12. In the back of my mind: 1. It's more explicit/readable. 2. Maybe/maybe-not we'll have non-nvidia wheels in the future.

I find the nvidia unnecessarily verbose. I don't see what help this additional information provides that makes development easier or anything more clear. On the other hand, more typing is concretely more annoying :)

Can we wait for those wheels to show up before solving a problem we don't yet have?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming is very important to me. I realize I have a reputation to err on the more explicit side, but I'm holding on to the believe it's actually helpful for people not immersed in the context. Imagine someone not on our team looking at cu12 here, there isn't much they can mentally attach to. Such super stingy naming forces people to look around more than they have to otherwise. Similarly, it's much more likely to send AIs down a rabbit hole. It's also much more difficult to pin-point references to super short names, especially cu12 or similar will have many unrelated matches.

How about (not sure about underscore vs minus, any works for me): nvidia_wheels_cu12

Also, ext doesn't tell anything about the reason for the splitting. At the moment I understand only: we need this for pixi. What could be terse hints that make sense here? pixi is probably too specific? Does win32 make sense? Other things to come to mind: restricted, partially, platform? But I don't know enough about the technicalities enforcing the splitting to know what make sense; just "ext" leaves people with "for unspecified reasons split out", which I'd strongly prefer to avoid.

I'm hoping we can find a healthy compromise, that gives readers/AIs a reasonable chance to get on the right track at a glance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a preference for underscores versus dashes.

Such super stingy naming forces people to look around more than they have to otherwise.

Perhaps, but let's try and be more concrete. Here's my thinking.

My goal with this PR, and the pixi work in general, is to get devs the ability to run the test suite as soon as humanly possible.

To that end, naming a collection of dependencies nvidia_wheels_cu12 provides no information that furthers that goal that I can see. There are multiple pieces of information in that name that are irrelevant for running the test suite and getting started contributing to the codebase IMO. Since these environments are designed to be run with pixi run -e <environment> giving them long names makes things more annoying to use. I really really want this stuff to be easy to use regularly. Long names are directly opposed to that goal.

Here's some thoughts on the proposed naming components and some questions.

  1. nvidia refers to something, I'm not sure what exactly, perhaps the source of the dependencies? How does that help clarify anything except what company built the wheel? Is that information useful for the purposes of development?
  2. wheels refers to a packaging implementation detail that seems like it actively harms initial understanding by providing an unnecessary level of detail. At the level of "run the test suite", I don't really care about whether a thing is a wheel or not. In fact, this is even worse in that you can easily mislead developers if some part of that list is built from source for some reason. Should we then name things nvidia_maybe_wheels_if_not_built_from_source? I really hope not.

Regarding ext, we can call that extended, which is what I am trying to convey there. Definitely open to different naming, but I am trying to keep things short for a reason.

I'm being intentionally vague with that name, to allow for eventual elimination of that set of environments. A comment would suffice here IMO.

In general I find the practice of "name everything with very specific and forget about the length of names" actively harms development by making the amount of stuff I have to sift through that much greater. I still have to ask someone what anything means if I'm new to the codebase.

I also don't care about optimizing for AI digestibility. As of now, it's primarily humans that still have to read all this code and there's plenty to do there without having to consider AI. Again, this feels like solving a problem we (as developers of this library) do not have.

How should we proceed?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My goal with this PR, and the pixi work in general, is to get devs the ability to run the test suite as soon as humanly possible.

That's a good goal.

How should we proceed?

Could you please fix up the .github/workflows/test-wheel-*.yml files? ― I'm actually not sure what the new commands will look like. Seeing that would help me understand better.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding ext, ...
A comment would suffice here IMO.

Yes, I agree. ext is fine. I see from the changes in the .yml files and the toolshed/ directory that it doesn't appear there.

kkraus14
kkraus14 previously approved these changes Oct 6, 2025
@rwgk
Copy link
Collaborator

rwgk commented Oct 6, 2025

I think we still need to update these:

.github/workflows/test-wheel-linux.yml:          pip install --only-binary=:all: -v . --group "test_nvidia_wheels_cu${TEST_CUDA_MAJOR}" --group test_nvidia_wheels_host
.github/workflows/test-wheel-windows.yml:          pip install --only-binary=:all: -v . --group "test_nvidia_wheels_cu${TEST_CUDA_MAJOR}" --group test_nvidia_wheels_host
toolshed/collect_site_packages_dll_files.ps1:pip install --only-binary=:all: -e '.[test,test_nvidia_wheels_cu12,test_nvidia_wheels_host]'
toolshed/collect_site_packages_dll_files.ps1:pip install --only-binary=:all: -e '.[test,test_nvidia_wheels_cu13,test_nvidia_wheels_host]'
toolshed/collect_site_packages_so_files.sh:pip install --only-binary=:all: -e . --group test --group test_nvidia_wheels_cu12 --group test_nvidia_wheels_host
toolshed/collect_site_packages_so_files.sh:pip install --only-binary=:all: -e . --group test --group test_nvidia_wheels_cu13 --group test_nvidia_wheels_host

@rwgk
Copy link
Collaborator

rwgk commented Oct 6, 2025

I forgot to add: Please don't worry about testing the toolshed/ changes. Best-effort adjustments will be great. I can do the manual testing on my end.

set -euo pipefail
pushd cuda_pathfinder
pip install --only-binary=:all: -v . --group "test_nvidia_wheels_cu${TEST_CUDA_MAJOR}" --group test_nvidia_wheels_host
pip install --only-binary=:all: -v . --group "cu${TEST_CUDA_MAJOR}" --group host
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that I see that -ext doesn't appear here, could this work?

pip install --only-binary=:all: -v . --group "test-cu${TEST_CUDA_MAJOR}"

And then in pyproject.toml we pull in cu12-host just like we pull in cu12-ext?

That would be strictly better IMO than the status quo with two --group arguments.

But TBH I'm scratching my head a bit ... how does the --group feature work?

What I mean:

cu12 = {...}
cu12-ext = {{ include-group = "cu12" }, ...}

What surprises me: you have cu12 here, not cu12-ext.

But I'm getting the sense the include-group feature allows us to have just one --group here while still having a nice structure in the pyproject.toml file for clarity?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, I will use the *-ext groups wherever we are pip install-ing things.

"nvidia-cufftmp-cu12; sys_platform != 'win32'",
"nvidia-libmathdx-cu12",
]
cu12-ext = [
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding ext, ...
A comment would suffice here IMO.

Yes, I agree. ext is fine. I see from the changes in the .yml files and the toolshed/ directory that it doesn't appear there.

@rwgk
Copy link
Collaborator

rwgk commented Oct 7, 2025

I just added commit 0e132de to see what you think.

It works for me. Does it also work for pixi?

My goal with this PR, and the pixi work in general, is to get devs the ability to run the test suite as soon as humanly possible.

It's really easy to remember now, e.g. --group test-cu13, and that's the only argument needed (vs three --group before).

@cpcloud
Copy link
Contributor Author

cpcloud commented Oct 7, 2025

It doesn't work for pixi, because the test-cu*'s dependencies are solved altogether for all supported platforms, and pixi doesn't know anything about markers. Segmenting the groups into pixi features allows overriding the supported platform and features allow optionally overriding the solve-group which allows each group to be solved independently.

The way I originally had it was the best compromise I could come up with. Ideally pixi would support markers, so it could figure out which platforms to solve for given the platform I'm running on, but that's not the case today.

@rwgk
Copy link
Collaborator

rwgk commented Oct 7, 2025

Hm, I need to learn how pixi works, and how I can test locally myself; also so I don't break pixi in the future when making changes in pathfinder.

At the moment I don't understand why cu12-ext works, but test-cu12 doesn't.

It'd be great if we could meet and you show me how it works.

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

Local testing at commit 9ac1364 (Make pixi run -e cu13-linux-64 -- pytest -v tests/ work for real.)

$ export CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS=all_must_work
$ export CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS=all_must_work
rwgk-win11.localdomain:~/forked/cuda-python/cuda_pathfinder $ pixi run -e cu12-linux-64 -- pytest -v tests/
========================================================================== test session starts ===========================================================================
platform linux -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- /home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/bin/python3.14
cachedir: .pytest_cache
rootdir: /home/rgrossekunst/forked/cuda-python
configfile: pytest.ini
collected 79 items

tests/test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                                     [  1%]
tests/test_find_nvidia_headers.py::test_find_libname_nvshmem PASSED                                                                                                [  2%]
tests/test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                                     [  3%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                                              [  5%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                                            [  6%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                                            [  7%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                                             [  8%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                                            [ 10%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                                          [ 11%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                                          [ 12%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                                               [ 13%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                                              [ 15%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                                          [ 16%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                                         [ 17%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                                            [ 18%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                                             [ 20%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                                              [ 21%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufile] PASSED                                                                                            [ 22%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                                    [ 24%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                                     [ 25%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                                  [ 26%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                                [ 27%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                                         [ 29%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                                          [ 30%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                                  [ 31%]
tests/test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                                               [ 32%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                                 [ 34%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                                               [ 35%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                                              [ 36%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                                  [ 37%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                                   [ 39%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                                 [ 40%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                                               [ 41%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                                  [ 43%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                                 [ 44%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                                 [ 45%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                                               [ 46%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                                             [ 48%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                                               [ 49%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                                   [ 50%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                                 [ 51%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                                 [ 53%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                                [ 54%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                                  [ 55%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                                  [ 56%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                                  [ 58%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                                 [ 59%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                                 [ 60%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                                 [ 62%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                                   [ 63%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                                 [ 64%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                                 [ 65%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufile] PASSED                                                                                 [ 67%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasmp] PASSED                                                                               [ 68%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudss] PASSED                                                                                  [ 69%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftMp] PASSED                                                                                [ 70%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[mathdx] PASSED                                                                                 [ 72%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nccl] PASSED                                                                                   [ 73%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvshmem_host] PASSED                                                                           [ 74%]
tests/test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                                          [ 75%]
tests/test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                                  [ 77%]
tests/test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                                [ 78%]
tests/test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                                         [ 79%]
tests/test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                                           [ 81%]
tests/test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                                      [ 82%]
tests/test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference SKIPPED (Windows-specific case-folding check)                                        [ 83%]
tests/test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                                [ 84%]
tests/test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                                           [ 86%]
tests/test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible PASSED                                                                           [ 87%]
tests/test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                                   [ 88%]
tests/test_utils_env_vars.py::test_paths_differ_samefile PASSED                                                                                                    [ 89%]
tests/test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                                         [ 91%]
tests/test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                                     [ 92%]
tests/test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                                     [ 93%]
tests/test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                                            [ 94%]
tests/test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                                  [ 96%]
tests/test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                                      [ 97%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                                      [ 98%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                                             [100%]

============================================================================== INFO summary ==============================================================================
INFO test_find_libname_nvshmem: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvshmem/include'
INFO test_find_ctk_headers[cccl]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_cccl/include'
INFO test_find_ctk_headers[cublas]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cublas/include'
INFO test_find_ctk_headers[cudart]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_runtime/include'
INFO test_find_ctk_headers[cufft]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufft/include'
INFO test_find_ctk_headers[curand]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/curand/include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cusolver/include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cusparse/include'
INFO test_find_ctk_headers[npp]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_nvcc/include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvfatbin/include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvjitlink/include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvjpeg/include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_nvrtc/include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_nvcc/nvvm/include'
INFO test_find_ctk_headers[cufile]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufile/include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_runtime/lib/libcudart.so.12
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvfatbin/lib/libnvfatbin.so.12
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.12
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cuda_nvcc/nvvm/lib64/libnvvm.so
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cublas/lib/libcublas.so.12
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cublas/lib/libcublasLt.so.12
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufft/lib/libcufft.so.11
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufft/lib/libcufftw.so.11
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/curand/lib/libcurand.so.10
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cusolver/lib/libcusolver.so.11
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cusolver/lib/libcusolverMg.so.11
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cusparse/lib/libcusparse.so.12
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppc.so.12
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppial.so.12
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppicc.so.12
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppidei.so.12
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppif.so.12
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppig.so.12
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppim.so.12
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppist.so.12
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppisu.so.12
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnppitc.so.12
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/npp/lib/libnpps.so.12
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cublas/lib/libnvblas.so.12
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvjpeg/lib/libnvjpeg.so.12
INFO test_load_nvidia_dynamic_lib[cufile]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufile/lib/libcufile.so.0
INFO test_load_nvidia_dynamic_lib[cublasmp]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cublasmp/cu12/lib/libcublasmp.so.0
INFO test_load_nvidia_dynamic_lib[cudss]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cu12/lib/libcudss.so.0
INFO test_load_nvidia_dynamic_lib[cufftMp]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cufftmp/cu12/lib/libcufftMp.so.11
INFO test_load_nvidia_dynamic_lib[mathdx]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/cu12/lib/libmathdx.so.0
INFO test_load_nvidia_dynamic_lib[nccl]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nccl/lib/libnccl.so.2
INFO test_load_nvidia_dynamic_lib[nvshmem_host]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-64/lib/python3.14/site-packages/nvidia/nvshmem/lib/libnvshmem_host.so.3
===================================================================== 78 passed, 1 skipped in 3.96s ======================================================================
rwgk-win11.localdomain:~/forked/cuda-python/cuda_pathfinder $ pixi run -e cu13-linux-64 -- pytest -v tests/
========================================================================== test session starts ===========================================================================
platform linux -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- /home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/bin/python3.14
cachedir: .pytest_cache
rootdir: /home/rgrossekunst/forked/cuda-python
configfile: pytest.ini
collected 77 items

tests/test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                                     [  1%]
tests/test_find_nvidia_headers.py::test_find_libname_nvshmem PASSED                                                                                                [  2%]
tests/test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                                     [  3%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                                              [  5%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                                            [  6%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                                            [  7%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                                             [  9%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                                            [ 10%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                                          [ 11%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                                          [ 12%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                                               [ 14%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                                              [ 15%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                                          [ 16%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                                         [ 18%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                                            [ 19%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                                             [ 20%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                                              [ 22%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufile] PASSED                                                                                            [ 23%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                                    [ 24%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                                     [ 25%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                                  [ 27%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                                [ 28%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                                         [ 29%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                                          [ 31%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                                  [ 32%]
tests/test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                                               [ 33%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                                 [ 35%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                                               [ 36%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                                              [ 37%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                                  [ 38%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                                   [ 40%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                                 [ 41%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                                               [ 42%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                                  [ 44%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                                 [ 45%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                                 [ 46%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                                               [ 48%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                                             [ 49%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                                               [ 50%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                                   [ 51%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                                 [ 53%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                                 [ 54%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                                [ 55%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                                  [ 57%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                                  [ 58%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                                  [ 59%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                                 [ 61%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                                 [ 62%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                                 [ 63%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                                   [ 64%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                                 [ 66%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                                 [ 67%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufile] PASSED                                                                                 [ 68%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasmp] PASSED                                                                               [ 70%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudss] PASSED                                                                                  [ 71%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nccl] PASSED                                                                                   [ 72%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvshmem_host] PASSED                                                                           [ 74%]
tests/test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                                          [ 75%]
tests/test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                                  [ 76%]
tests/test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                                [ 77%]
tests/test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                                         [ 79%]
tests/test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                                           [ 80%]
tests/test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                                      [ 81%]
tests/test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference SKIPPED (Windows-specific case-folding check)                                        [ 83%]
tests/test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                                [ 84%]
tests/test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                                           [ 85%]
tests/test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible PASSED                                                                           [ 87%]
tests/test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                                   [ 88%]
tests/test_utils_env_vars.py::test_paths_differ_samefile PASSED                                                                                                    [ 89%]
tests/test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                                         [ 90%]
tests/test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                                     [ 92%]
tests/test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                                     [ 93%]
tests/test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                                            [ 94%]
tests/test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                                  [ 96%]
tests/test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                                      [ 97%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                                      [ 98%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                                             [100%]

============================================================================== INFO summary ==============================================================================
INFO test_find_libname_nvshmem: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/nvshmem/include'
INFO test_find_ctk_headers[cccl]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include/cccl'
INFO test_find_ctk_headers[cublas]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cudart]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cufft]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[curand]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[npp]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cufile]: hdr_dir='/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcudart.so.13
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvfatbin.so.13
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvJitLink.so.13
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvrtc.so.13
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvvm.so.4
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcublas.so.13
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcublasLt.so.13
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufft.so.12
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufftw.so.12
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcurand.so.10
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusolver.so.12
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusolverMg.so.12
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusparse.so.12
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppc.so.13
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppial.so.13
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppicc.so.13
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppidei.so.13
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppif.so.13
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppig.so.13
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppim.so.13
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppist.so.13
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppisu.so.13
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppitc.so.13
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnpps.so.13
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvblas.so.13
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvjpeg.so.13
INFO test_load_nvidia_dynamic_lib[cufile]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufile.so.0
INFO test_load_nvidia_dynamic_lib[cublasmp]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cublasmp/cu13/lib/libcublasmp.so.0
INFO test_load_nvidia_dynamic_lib[cudss]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/cu13/lib/libcudss.so.0
INFO test_load_nvidia_dynamic_lib[nccl]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/nccl/lib/libnccl.so.2
INFO test_load_nvidia_dynamic_lib[nvshmem_host]: abs_path=/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-64/lib/python3.14/site-packages/nvidia/nvshmem/lib/libnvshmem_host.so.3
===================================================================== 76 passed, 1 skipped in 3.70s ======================================================================

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

/ok to test

Copy link

github-actions bot commented Oct 9, 2025

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

Local testing at commit 9ac1364 (Make pixi run -e cu13-linux-64 -- pytest -v tests/ work for real.)

Testing: cu12-linux-aarch64, cu13-linux-aarch64

NOTE: The linux-aarch64-specific aspect is that nvpl_fft should be installed (by pixi) and the nvpl_fft subtest should pass (it does, see below).

$ export CUDA_PATHFINDER_TEST_LOAD_NVIDIA_DYNAMIC_LIB_STRICTNESS=all_must_work
$ export CUDA_PATHFINDER_TEST_FIND_NVIDIA_HEADERS_STRICTNESS=all_must_work
mgx-c2g2-pvt-66.cl1u1.colossus.nvidia.com:/wrk/forked/cuda-python/cuda_pathfinder $ pixi clean && pixi clean && rm -f pixi.lock && pixi clean && pixi run -e cu12-linux-aarch64 -- pytest -v tests/ && pixi run -e cu13-linux-aarch64 -- pytest -v tests/
Folder "/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs" was already clean.
Folder "/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs" was already clean.
Folder "/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs" was already clean.
========================================================================== test session starts ===========================================================================
platform linux -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- /wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/bin/python3.14
cachedir: .pytest_cache
rootdir: /wrk/forked/cuda-python
configfile: pytest.ini
collected 80 items

tests/test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                                     [  1%]
tests/test_find_nvidia_headers.py::test_find_libname_nvshmem PASSED                                                                                                [  2%]
tests/test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                                     [  3%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                                              [  5%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                                            [  6%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                                            [  7%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                                             [  8%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                                            [ 10%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                                          [ 11%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                                          [ 12%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                                               [ 13%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                                              [ 15%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                                          [ 16%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                                         [ 17%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                                            [ 18%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                                             [ 20%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                                              [ 21%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufile] PASSED                                                                                            [ 22%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                                    [ 23%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                                     [ 25%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                                  [ 26%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                                [ 27%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                                         [ 28%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                                          [ 30%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                                  [ 31%]
tests/test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                                               [ 32%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                                 [ 33%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                                               [ 35%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                                              [ 36%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                                  [ 37%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                                   [ 38%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                                 [ 40%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                                               [ 41%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                                  [ 42%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                                 [ 43%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                                 [ 45%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                                               [ 46%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                                             [ 47%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                                               [ 48%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                                   [ 50%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                                 [ 51%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                                 [ 52%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                                [ 53%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                                  [ 55%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                                  [ 56%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                                  [ 57%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                                 [ 58%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                                 [ 60%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                                 [ 61%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                                   [ 62%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                                 [ 63%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                                 [ 65%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufile] PASSED                                                                                 [ 66%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasmp] PASSED                                                                               [ 67%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudss] PASSED                                                                                  [ 68%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftMp] PASSED                                                                                [ 70%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[mathdx] PASSED                                                                                 [ 71%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nccl] PASSED                                                                                   [ 72%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvpl_fftw] PASSED                                                                              [ 73%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvshmem_host] PASSED                                                                           [ 75%]
tests/test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                                          [ 76%]
tests/test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                                  [ 77%]
tests/test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                                [ 78%]
tests/test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                                         [ 80%]
tests/test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                                           [ 81%]
tests/test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                                      [ 82%]
tests/test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference SKIPPED (Windows-specific case-folding check)                                        [ 83%]
tests/test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                                [ 85%]
tests/test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                                           [ 86%]
tests/test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible PASSED                                                                           [ 87%]
tests/test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                                   [ 88%]
tests/test_utils_env_vars.py::test_paths_differ_samefile PASSED                                                                                                    [ 90%]
tests/test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                                         [ 91%]
tests/test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                                     [ 92%]
tests/test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                                     [ 93%]
tests/test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                                            [ 95%]
tests/test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                                  [ 96%]
tests/test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                                      [ 97%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                                      [ 98%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                                             [100%]

============================================================================== INFO summary ==============================================================================
INFO test_find_libname_nvshmem: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvshmem/include'
INFO test_find_ctk_headers[cccl]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_cccl/include'
INFO test_find_ctk_headers[cublas]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cublas/include'
INFO test_find_ctk_headers[cudart]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_runtime/include'
INFO test_find_ctk_headers[cufft]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufft/include'
INFO test_find_ctk_headers[curand]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/curand/include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cusolver/include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cusparse/include'
INFO test_find_ctk_headers[npp]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_nvcc/include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvfatbin/include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvjitlink/include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvjpeg/include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_nvrtc/include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_nvcc/nvvm/include'
INFO test_find_ctk_headers[cufile]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufile/include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_runtime/lib/libcudart.so.12
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvfatbin/lib/libnvfatbin.so.12
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.12
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cuda_nvcc/nvvm/lib64/libnvvm.so
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cublas/lib/libcublas.so.12
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cublas/lib/libcublasLt.so.12
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufft/lib/libcufft.so.11
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufft/lib/libcufftw.so.11
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/curand/lib/libcurand.so.10
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cusolver/lib/libcusolver.so.11
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cusolver/lib/libcusolverMg.so.11
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cusparse/lib/libcusparse.so.12
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppc.so.12
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppial.so.12
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppicc.so.12
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppidei.so.12
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppif.so.12
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppig.so.12
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppim.so.12
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppist.so.12
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppisu.so.12
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnppitc.so.12
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/npp/lib/libnpps.so.12
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cublas/lib/libnvblas.so.12
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvjpeg/lib/libnvjpeg.so.12
INFO test_load_nvidia_dynamic_lib[cufile]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufile/lib/libcufile.so.0
INFO test_load_nvidia_dynamic_lib[cublasmp]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cublasmp/cu12/lib/libcublasmp.so.0
INFO test_load_nvidia_dynamic_lib[cudss]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cu12/lib/libcudss.so.0
INFO test_load_nvidia_dynamic_lib[cufftMp]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cufftmp/cu12/lib/libcufftMp.so.11
INFO test_load_nvidia_dynamic_lib[mathdx]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/cu12/lib/libmathdx.so.0
INFO test_load_nvidia_dynamic_lib[nccl]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nccl/lib/libnccl.so.2
INFO test_load_nvidia_dynamic_lib[nvpl_fftw]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvpl/lib/libnvpl_fftw.so.0
INFO test_load_nvidia_dynamic_lib[nvshmem_host]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu12-linux-aarch64/lib/python3.14/site-packages/nvidia/nvshmem/lib/libnvshmem_host.so.3
===================================================================== 79 passed, 1 skipped in 5.61s ======================================================================
========================================================================== test session starts ===========================================================================
platform linux -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- /wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/bin/python3.14
cachedir: .pytest_cache
rootdir: /wrk/forked/cuda-python
configfile: pytest.ini
collected 78 items

tests/test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                                     [  1%]
tests/test_find_nvidia_headers.py::test_find_libname_nvshmem PASSED                                                                                                [  2%]
tests/test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                                     [  3%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                                              [  5%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                                            [  6%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                                            [  7%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                                             [  8%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                                            [ 10%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                                          [ 11%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                                          [ 12%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                                               [ 14%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                                              [ 15%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                                          [ 16%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                                         [ 17%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                                            [ 19%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                                             [ 20%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                                              [ 21%]
tests/test_find_nvidia_headers.py::test_find_ctk_headers[cufile] PASSED                                                                                            [ 23%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                                    [ 24%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                                     [ 25%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                                  [ 26%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                                [ 28%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                                         [ 29%]
tests/test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                                          [ 30%]
tests/test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                                  [ 32%]
tests/test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                                               [ 33%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                                 [ 34%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                                               [ 35%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                                              [ 37%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                                  [ 38%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                                   [ 39%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                                 [ 41%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                                               [ 42%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                                  [ 43%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                                 [ 44%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                                 [ 46%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                                               [ 47%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                                             [ 48%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                                               [ 50%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                                   [ 51%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                                 [ 52%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                                 [ 53%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                                [ 55%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                                  [ 56%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                                  [ 57%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                                  [ 58%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                                 [ 60%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                                 [ 61%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                                 [ 62%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                                   [ 64%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                                 [ 65%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                                 [ 66%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufile] PASSED                                                                                 [ 67%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasmp] PASSED                                                                               [ 69%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudss] PASSED                                                                                  [ 70%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nccl] PASSED                                                                                   [ 71%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvpl_fftw] PASSED                                                                              [ 73%]
tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvshmem_host] PASSED                                                                           [ 74%]
tests/test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                                          [ 75%]
tests/test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                                  [ 76%]
tests/test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                                [ 78%]
tests/test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                                         [ 79%]
tests/test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                                           [ 80%]
tests/test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                                      [ 82%]
tests/test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference SKIPPED (Windows-specific case-folding check)                                        [ 83%]
tests/test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                                [ 84%]
tests/test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                                           [ 85%]
tests/test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible PASSED                                                                           [ 87%]
tests/test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                                   [ 88%]
tests/test_utils_env_vars.py::test_paths_differ_samefile PASSED                                                                                                    [ 89%]
tests/test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                                         [ 91%]
tests/test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                                     [ 92%]
tests/test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                                     [ 93%]
tests/test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                                            [ 94%]
tests/test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                                  [ 96%]
tests/test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                                      [ 97%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                                      [ 98%]
tests/test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                                             [100%]

============================================================================== INFO summary ==============================================================================
INFO test_find_libname_nvshmem: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/nvshmem/include'
INFO test_find_ctk_headers[cccl]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include/cccl'
INFO test_find_ctk_headers[cublas]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cudart]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cufft]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[curand]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[npp]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_find_ctk_headers[cufile]: hdr_dir='/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcudart.so.13
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvfatbin.so.13
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvJitLink.so.13
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvrtc.so.13
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvvm.so.4
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcublas.so.13
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcublasLt.so.13
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufft.so.12
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufftw.so.12
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcurand.so.10
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusolver.so.12
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusolverMg.so.12
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcusparse.so.12
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppc.so.13
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppial.so.13
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppicc.so.13
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppidei.so.13
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppif.so.13
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppig.so.13
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppim.so.13
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppist.so.13
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppisu.so.13
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnppitc.so.13
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnpps.so.13
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvblas.so.13
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libnvjpeg.so.13
INFO test_load_nvidia_dynamic_lib[cufile]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcufile.so.0
INFO test_load_nvidia_dynamic_lib[cublasmp]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cublasmp/cu13/lib/libcublasmp.so.0
INFO test_load_nvidia_dynamic_lib[cudss]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/cu13/lib/libcudss.so.0
INFO test_load_nvidia_dynamic_lib[nccl]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/nccl/lib/libnccl.so.2
INFO test_load_nvidia_dynamic_lib[nvpl_fftw]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvpl/lib/libnvpl_fftw.so.0
INFO test_load_nvidia_dynamic_lib[nvshmem_host]: abs_path=/wrk/forked/cuda-python/cuda_pathfinder/.pixi/envs/cu13-linux-aarch64/lib/python3.14/site-packages/nvidia/nvshmem/lib/libnvshmem_host.so.3
===================================================================== 77 passed, 1 skipped in 5.32s ======================================================================

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

I'm starting to test under Windows (still at commit 9ac1364).

I installed pixi like this:

winget install prefix-dev.pixi

Success:

PS C:\Users\rgrossekunst> pixi --version
pixi 0.56.0

First trial:

PS C:\Users\rgrossekunst> cd C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder
PS C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder> pixi run -e cu12-win-64 --verbose test
 INFO pixi_core::lock_file::outdated: environment 'default' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-linux-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-linux-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-linux-aarch64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-linux-aarch64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-win-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-win-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-win-64' 'linux-aarch64' in 2s 379ms 240us 800ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-win-64' 'linux-aarch64' in 2s 379ms 682us 600ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-linux-aarch64' 'linux-aarch64' in 2s 380ms 500ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-linux-aarch64' 'linux-aarch64' in 2s 380ms 393us 500ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'default' 'linux-aarch64' in 2s 380ms 587us 500ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-linux-64' 'linux-aarch64' in 2s 381ms 14us 200ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-linux-64' 'linux-aarch64' in 2s 381ms 477us 500ns
 INFO resolve_pypi{group=cu12-linux-64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
⠐ fetching repodata    [━━━━━━━━━━━━━━━━━───] 97.35 MiB/115.18 MiB @ 51.3 MiB/s
▪ solving              [━━━━━━━━━╾──────────]  7/15
⠲ updating lock-file   [00:00:02] [────────────────────────────────────────]    0/45
thread 'main2' panicked at C:\a\pixi\pixi\crates\pixi_core\src\lock_file\resolve\build_dispatch.rs:439:17:
Error:   × failed to solve the pypi requirements of environment 'cu12-linux-64' for platform 'linux-aarch64'
  ╰─▶ build dispatch initialization failed: there is no compatible Python interpreter for 'win-64'

PS C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder>

This is the dreaded there is no compatible Python interpreter error I've been up against a lot while experimenting yesterday.

@cpcloud
Copy link
Contributor Author

cpcloud commented Oct 9, 2025

That usually means there's some kind of specification that is too broad that is including win-64 in the aarch64 solve.

@cpcloud
Copy link
Contributor Author

cpcloud commented Oct 9, 2025

Taking a look.

@cpcloud
Copy link
Contributor Author

cpcloud commented Oct 9, 2025

Oh, I see. You're on windows, nevermind what I said then!

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

Without changing anything, this works:

pixi run -e cu13-win-64 --verbose -- pytest -v tests

See below. — Hypothesis(!): pixi is again stumbling over the cuda-toolkit[...] meta-package. — I'll try a change similar to commit 9ac1364.


PS C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder> pixi run -e cu13-win-64 --verbose -- pytest -v tests
 INFO pixi_core::lock_file::update: the lock-file is up-to-date
 INFO pixi_task::executable_task: Checking if task can be skipped
 INFO pixi_core::environment::conda_metadata: No update needed for the prefix file.
 INFO pixi_install_pypi: Nothing to do - finished in 0ms
 INFO pixi_core::lock_file::update: Installed environment 'cu13-win-64' in 19.127ms
================================================================== test session starts ==================================================================
platform win32 -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\python.exe
cachedir: .pytest_cache
rootdir: C:\Users\rgrossekunst\forked\cuda-python
configfile: pytest.ini
collected 71 items

tests\test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                     [  1%]
tests\test_find_nvidia_headers.py::test_find_libname_nvshmem SKIPPED (nvshmem has no Windows support.)                                             [  2%]
tests\test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                     [  4%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                              [  5%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                            [  7%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                            [  8%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                             [  9%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                            [ 11%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                          [ 12%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                          [ 14%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                               [ 15%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                              [ 16%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                          [ 18%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                         [ 19%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                            [ 21%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                             [ 22%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                              [ 23%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                    [ 25%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                     [ 26%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                  [ 28%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                [ 29%]
tests\test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                         [ 30%]
tests\test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                          [ 32%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                  [ 33%]
tests\test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                               [ 35%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                 [ 36%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                               [ 38%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                              [ 39%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                  [ 40%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                   [ 42%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                 [ 43%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                               [ 45%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                  [ 46%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                 [ 47%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                 [ 49%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                               [ 50%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                             [ 52%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                               [ 53%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                   [ 54%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                 [ 56%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                 [ 57%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                [ 59%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                  [ 60%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                  [ 61%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                  [ 63%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                 [ 64%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                 [ 66%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                 [ 67%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                   [ 69%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                 [ 70%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                 [ 71%]
tests\test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                          [ 73%]
tests\test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                  [ 74%]
tests\test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                [ 76%]
tests\test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                         [ 77%]
tests\test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                           [ 78%]
tests\test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                      [ 80%]
tests\test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference PASSED                                                               [ 81%]
tests\test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                [ 83%]
tests\test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                           [ 84%]
tests\test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible SKIPPED (Exercising symlinks intentionally omitted for simpl...) [ 85%]
tests\test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                   [ 87%]
tests\test_utils_env_vars.py::test_paths_differ_samefile SKIPPED (Exercising symlinks intentionally omitted for simplicity)                        [ 88%]
tests\test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                         [ 90%]
tests\test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                     [ 91%]
tests\test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                     [ 92%]
tests\test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                            [ 94%]
tests\test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                  [ 95%]
tests\test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                      [ 97%]
tests\test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                      [ 98%]
tests\test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                             [100%]

===================================================================== INFO summary ======================================================================
INFO test_find_libname_nvshmem: hdr_dir=None
INFO test_find_ctk_headers[cccl]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include\\cccl'
INFO test_find_ctk_headers[cublas]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[cudart]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[cufft]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[curand]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[npp]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu13-win-64\\Lib\\site-packages\\nvidia\\cu13\\include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cudart64_13.dll
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvfatbin_130_0.dll
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvJitLink_130_0.dll
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvrtc64_130_0.dll
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvvm64_40_0.dll
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cublas64_13.dll
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cublasLt64_13.dll
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cufft64_12.dll
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cufftw64_12.dll
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\curand64_10.dll
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cusolver64_12.dll
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cusolverMg64_12.dll
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\cusparse64_12.dll
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppc64_13.dll
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppial64_13.dll
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppicc64_13.dll
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppidei64_13.dll
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppif64_13.dll
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppig64_13.dll
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppim64_13.dll
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppist64_13.dll
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppisu64_13.dll
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nppitc64_13.dll
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\npps64_13.dll
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvblas64_13.dll
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64\Lib\site-packages\nvidia/cu13/bin/x86_64\nvjpeg64_13.dll
============================================================= 68 passed, 3 skipped in 3.44s =============================================================

…o commit 9ac1364 (with this pixi run -e cu12-win-64 --verbose -- pytest -v tests succeeds).
@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

Commit fa384e3 (Avoid use of cuda-toolkit meta-package also in cu12-common) does the trick!

I.e. cu12-win-64 works now, and I double-checked that cu13-win-64 still works, too.

PS C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder> pixi run -e cu12-win-64 --verbose -- pytest -v tests
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'default' for platform win-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'default' for platform linux-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'default' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-linux-64' for platform linux-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-linux-64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-linux-64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-linux-64' for platform linux-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-linux-aarch64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-linux-aarch64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-win-64' for platform linux-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-win-64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu12-win-64' for platform win-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-win-64' for platform win-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-win-64' for platform linux-64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO pixi_core::lock_file::outdated: the pypi dependencies of environment 'cu13-win-64' for platform linux-aarch64 are out of date because source tree hash for cuda-pathfinder does not match the hash in the lock-file
 INFO resolve_pypi{group=cu12-win-64 platform=win-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-win-64 platform=linux-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-win-64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-win-64 platform=linux-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-win-64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-win-64 platform=win-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-linux-64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-linux-64 platform=linux-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=default platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=default platform=linux-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=default platform=win-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-linux-64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-linux-64 platform=linux-64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-linux-aarch64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-linux-aarch64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu12-win-64 platform=win-64}: pixi_core::environment::conda_metadata: No update needed for the prefix file.
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'default' 'linux-aarch64' in 1s 305ms 237us 400ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'default' 'linux-64' in 1s 309ms 79us
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'default' 'win-64' in 1s 310ms 407us 200ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-win-64' 'win-64' in 1s 336ms 895us 800ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-win-64' 'linux-64' in 1s 336ms 970us 800ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-win-64' 'linux-aarch64' in 1s 338ms 266us 100ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-win-64' 'linux-64' in 1s 348ms 478us 800ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-win-64' 'linux-aarch64' in 1s 358ms 126us
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-win-64' 'win-64' in 1s 359ms 738us 600ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-linux-64' 'linux-aarch64' in 1s 365ms 228us 100ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-linux-64' 'linux-aarch64' in 1s 364ms 636us 300ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-linux-64' 'linux-64' in 1s 369ms 819us 600ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu13-linux-aarch64' 'linux-aarch64' in 1s 366ms 3us 200ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-linux-64' 'linux-64' in 1s 368ms 229us 500ns
 INFO pixi_core::lock_file::update: resolved pypi packages for environment 'cu12-linux-aarch64' 'linux-aarch64' in 1s 367ms 908us 800ns
 INFO pixi_task::executable_task: Checking if task can be skipped
 INFO pixi_core::environment::conda_metadata: No update needed for the prefix file.
 INFO pixi_install_pypi: Prepared 16 packages in 27.22s
 INFO pixi_install_pypi: Installed 22 packages in 464ms
 INFO pixi_install_pypi: finished in 27.70s
 INFO pixi_core::lock_file::update: Installed environment 'cu12-win-64' in 27.7141211s
================================================================== test session starts ==================================================================
platform win32 -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0 -- C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\python.exe
cachedir: .pytest_cache
rootdir: C:\Users\rgrossekunst\forked\cuda-python
configfile: pytest.ini
collected 72 items

tests\test_find_nvidia_headers.py::test_unknown_libname PASSED                                                                                     [  1%]
tests\test_find_nvidia_headers.py::test_find_libname_nvshmem SKIPPED (nvshmem has no Windows support.)                                             [  2%]
tests\test_find_nvidia_headers.py::test_supported_headers_site_packages_ctk_consistency PASSED                                                     [  4%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cccl] PASSED                                                                              [  5%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cublas] PASSED                                                                            [  6%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cudart] PASSED                                                                            [  8%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cufft] PASSED                                                                             [  9%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[curand] PASSED                                                                            [ 11%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cusolver] PASSED                                                                          [ 12%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[cusparse] PASSED                                                                          [ 13%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[npp] PASSED                                                                               [ 15%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvcc] PASSED                                                                              [ 16%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvfatbin] PASSED                                                                          [ 18%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvjitlink] PASSED                                                                         [ 19%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvjpeg] PASSED                                                                            [ 20%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvrtc] PASSED                                                                             [ 22%]
tests\test_find_nvidia_headers.py::test_find_ctk_headers[nvvm] PASSED                                                                              [ 23%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_sonames_consistency PASSED                                                    [ 25%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_dlls_consistency PASSED                                                     [ 26%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_linux_site_packages_libdirs_ctk_consistency PASSED                                  [ 27%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_site_packages_libdirs_ctk_consistency PASSED                                [ 29%]
tests\test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_LINUX_SONAMES] PASSED                                         [ 30%]
tests\test_load_nvidia_dynamic_lib.py::test_libname_dict_values_are_unique[SUPPORTED_WINDOWS_DLLS] PASSED                                          [ 31%]
tests\test_load_nvidia_dynamic_lib.py::test_supported_libnames_windows_libnames_requiring_os_add_dll_directory_consistency PASSED                  [ 33%]
tests\test_load_nvidia_dynamic_lib.py::test_runtime_error_on_non_64bit_python PASSED                                                               [ 34%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cudart] PASSED                                                                 [ 36%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvfatbin] PASSED                                                               [ 37%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvJitLink] PASSED                                                              [ 38%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvrtc] PASSED                                                                  [ 40%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvvm] PASSED                                                                   [ 41%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublas] PASSED                                                                 [ 43%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cublasLt] PASSED                                                               [ 44%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufft] PASSED                                                                  [ 45%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cufftw] PASSED                                                                 [ 47%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[curand] PASSED                                                                 [ 48%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolver] PASSED                                                               [ 50%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusolverMg] PASSED                                                             [ 51%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[cusparse] PASSED                                                               [ 52%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppc] PASSED                                                                   [ 54%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppial] PASSED                                                                 [ 55%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppicc] PASSED                                                                 [ 56%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppidei] PASSED                                                                [ 58%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppif] PASSED                                                                  [ 59%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppig] PASSED                                                                  [ 61%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppim] PASSED                                                                  [ 62%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppist] PASSED                                                                 [ 63%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppisu] PASSED                                                                 [ 65%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nppitc] PASSED                                                                 [ 66%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[npps] PASSED                                                                   [ 68%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvblas] PASSED                                                                 [ 69%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvjpeg] PASSED                                                                 [ 70%]
tests\test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[mathdx] PASSED                                                                 [ 72%]
tests\test_spawned_process_runner.py::test_rethrow_child_exception PASSED                                                                          [ 73%]
tests\test_utils_env_vars.py::test_returns_none_when_unset PASSED                                                                                  [ 75%]
tests\test_utils_env_vars.py::test_empty_cuda_home_preserved PASSED                                                                                [ 76%]
tests\test_utils_env_vars.py::test_prefers_cuda_home_over_cuda_path PASSED                                                                         [ 77%]
tests\test_utils_env_vars.py::test_uses_cuda_path_if_home_missing PASSED                                                                           [ 79%]
tests\test_utils_env_vars.py::test_no_warning_when_textually_equal_after_normalization PASSED                                                      [ 80%]
tests\test_utils_env_vars.py::test_no_warning_on_windows_case_only_difference PASSED                                                               [ 81%]
tests\test_utils_env_vars.py::test_warning_when_both_exist_and_are_different PASSED                                                                [ 83%]
tests\test_utils_env_vars.py::test_nonexistent_paths_fall_back_to_text_comparison PASSED                                                           [ 84%]
tests\test_utils_env_vars.py::test_samefile_equivalence_via_symlink_when_possible SKIPPED (Exercising symlinks intentionally omitted for simpl...) [ 86%]
tests\test_utils_env_vars.py::test_paths_differ_text_only PASSED                                                                                   [ 87%]
tests\test_utils_env_vars.py::test_paths_differ_samefile SKIPPED (Exercising symlinks intentionally omitted for simplicity)                        [ 88%]
tests\test_utils_find_sub_dirs.py::test_exact_match PASSED                                                                                         [ 90%]
tests\test_utils_find_sub_dirs.py::test_single_wildcard PASSED                                                                                     [ 91%]
tests\test_utils_find_sub_dirs.py::test_double_wildcard PASSED                                                                                     [ 93%]
tests\test_utils_find_sub_dirs.py::test_no_match PASSED                                                                                            [ 94%]
tests\test_utils_find_sub_dirs.py::test_empty_parent_paths PASSED                                                                                  [ 95%]
tests\test_utils_find_sub_dirs.py::test_empty_sub_dirs PASSED                                                                                      [ 97%]
tests\test_utils_find_sub_dirs.py::test_find_sub_dirs_sys_path_no_math PASSED                                                                      [ 98%]
tests\test_utils_find_sub_dirs.py::test_find_sub_dirs_all_sitepackages_no_match PASSED                                                             [100%]

===================================================================== INFO summary ======================================================================
INFO test_find_libname_nvshmem: hdr_dir=None
INFO test_find_ctk_headers[cccl]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cuda_cccl\\include'
INFO test_find_ctk_headers[cublas]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cublas\\include'
INFO test_find_ctk_headers[cudart]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cuda_runtime\\include'
INFO test_find_ctk_headers[cufft]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cufft\\include'
INFO test_find_ctk_headers[curand]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\curand\\include'
INFO test_find_ctk_headers[cusolver]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cusolver\\include'
INFO test_find_ctk_headers[cusparse]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cusparse\\include'
INFO test_find_ctk_headers[npp]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\npp\\include'
INFO test_find_ctk_headers[nvcc]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cuda_nvcc\\include'
INFO test_find_ctk_headers[nvfatbin]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\nvfatbin\\include'
INFO test_find_ctk_headers[nvjitlink]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\nvjitlink\\include'
INFO test_find_ctk_headers[nvjpeg]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\nvjpeg\\include'
INFO test_find_ctk_headers[nvrtc]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cuda_nvrtc\\include'
INFO test_find_ctk_headers[nvvm]: hdr_dir='C:\\Users\\rgrossekunst\\forked\\cuda-python\\cuda_pathfinder\\.pixi\\envs\\cu12-win-64\\Lib\\site-packages\\nvidia\\cuda_nvcc\\nvvm\\include'
INFO test_load_nvidia_dynamic_lib[cudart]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cuda_runtime/bin\cudart64_12.dll
INFO test_load_nvidia_dynamic_lib[nvfatbin]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/nvfatbin/bin\nvfatbin_120_0.dll
INFO test_load_nvidia_dynamic_lib[nvJitLink]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/nvjitlink/bin\nvJitLink_120_0.dll
INFO test_load_nvidia_dynamic_lib[nvrtc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cuda_nvrtc/bin\nvrtc64_120_0.dll
INFO test_load_nvidia_dynamic_lib[nvvm]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cuda_nvcc/nvvm/bin\nvvm64_40_0.dll
INFO test_load_nvidia_dynamic_lib[cublas]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cublas/bin\cublas64_12.dll
INFO test_load_nvidia_dynamic_lib[cublasLt]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cublas/bin\cublasLt64_12.dll
INFO test_load_nvidia_dynamic_lib[cufft]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cufft/bin\cufft64_11.dll
INFO test_load_nvidia_dynamic_lib[cufftw]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cufft/bin\cufftw64_11.dll
INFO test_load_nvidia_dynamic_lib[curand]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/curand/bin\curand64_10.dll
INFO test_load_nvidia_dynamic_lib[cusolver]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cusolver/bin\cusolver64_11.dll
INFO test_load_nvidia_dynamic_lib[cusolverMg]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cusolver/bin\cusolverMg64_11.dll
INFO test_load_nvidia_dynamic_lib[cusparse]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cusparse/bin\cusparse64_12.dll
INFO test_load_nvidia_dynamic_lib[nppc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppc64_12.dll
INFO test_load_nvidia_dynamic_lib[nppial]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppial64_12.dll
INFO test_load_nvidia_dynamic_lib[nppicc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppicc64_12.dll
INFO test_load_nvidia_dynamic_lib[nppidei]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppidei64_12.dll
INFO test_load_nvidia_dynamic_lib[nppif]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppif64_12.dll
INFO test_load_nvidia_dynamic_lib[nppig]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppig64_12.dll
INFO test_load_nvidia_dynamic_lib[nppim]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppim64_12.dll
INFO test_load_nvidia_dynamic_lib[nppist]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppist64_12.dll
INFO test_load_nvidia_dynamic_lib[nppisu]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppisu64_12.dll
INFO test_load_nvidia_dynamic_lib[nppitc]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\nppitc64_12.dll
INFO test_load_nvidia_dynamic_lib[npps]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/npp/bin\npps64_12.dll
INFO test_load_nvidia_dynamic_lib[nvblas]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cublas/bin\nvblas64_12.dll
INFO test_load_nvidia_dynamic_lib[nvjpeg]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/nvjpeg/bin\nvjpeg64_12.dll
INFO test_load_nvidia_dynamic_lib[mathdx]: abs_path=C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu12-win-64\Lib\site-packages\nvidia/cu12/bin\mathdx64_0.dll
============================================================= 69 passed, 3 skipped in 6.47s =============================================================

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

/ok to test

…13-linux, to resolve a regression observed under linux-64
@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

Unfortunately, commit fa384e3 causes a regression under linux-64. See below.

Fortunately it's an easy fix: commit 2715310 (avoid use of cuda-toolkit meta-package entirely)


rwgk-win11.localdomain:~/forked/cuda-python/cuda_pathfinder $ pixi clean && rm -f pixi.lock && pixi clean && pixi run -e cu12-linux-64 --verbose -- pytest tests/
Folder "/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs" was already clean.
Folder "/home/rgrossekunst/forked/cuda-python/cuda_pathfinder/.pixi/envs" was already clean.
 INFO pixi_core::lock_file::outdated: environment 'default' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-linux-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-linux-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-linux-aarch64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-linux-aarch64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu12-win-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::outdated: environment 'cu13-win-64' is out of date because it does not exist in the lock-file.
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-linux-64' 'linux-aarch64' in 1s 545ms 823us 456ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-linux-64' 'linux-aarch64' in 1s 545ms 901us 829ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-linux-aarch64' 'linux-aarch64' in 1s 545ms 994us 706ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'default' 'linux-aarch64' in 1s 546ms 46us 806ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-win-64' 'linux-aarch64' in 1s 546ms 138us 473ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu13-win-64' 'win-64' in 1s 546ms 187us 117ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-win-64' 'win-64' in 1s 546ms 197us 505ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'default' 'win-64' in 1s 546ms 275us 789ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-win-64' 'linux-aarch64' in 1s 546ms 334us 300ns
 INFO pixi_core::lock_file::update: resolved conda environment for environment 'cu12-linux-aarch64' 'linux-aarch64' in 1s 546ms 393us 255ns
 INFO resolve_pypi{group=cu12-linux-aarch64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
 INFO resolve_pypi{group=cu13-linux-aarch64 platform=linux-aarch64}: pixi_core::lock_file::resolve::pypi: there are no python packages installed by conda
⠴ fetching repodata    [━━━━━━──────────────] 12.79 MiB/45.50 MiB @ 42.5 MiB/s
▪ solving              [━━━━━━━━━━━━━╾──────] 10/15
⠉ updating lock-file   [00:00:01] [────────────────────────────────────────]    0/45
thread 'main2' panicked at /home/runner/work/pixi/pixi/crates/pixi_core/src/lock_file/resolve/build_dispatch.rs:439:17:
Error:   × failed to solve the pypi requirements of environment 'cu12-linux-aarch64' for platform 'linux-aarch64'
  ╰─▶ build dispatch initialization failed: there is no compatible Python interpreter for 'linux-64'

rwgk-win11.localdomain:~/forked/cuda-python/cuda_pathfinder $

@rwgk
Copy link
Collaborator

rwgk commented Oct 9, 2025

/ok to test

rwgk
rwgk previously approved these changes Oct 9, 2025
Copy link
Collaborator

@rwgk rwgk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cpcloud Ready to merge from my viewpoint!

Comment on lines +20 to 34
"nvidia-cublas-cu12",
"nvidia-cuda-cccl-cu12",
"nvidia-cuda-nvcc-cu12",
"nvidia-cuda-nvrtc-cu12",
"nvidia-cuda-runtime-cu12",
"nvidia-cufft-cu12",
"nvidia-curand-cu12",
"nvidia-cusolver-cu12",
"nvidia-cusparse-cu12",
"nvidia-npp-cu12",
"nvidia-nvfatbin-cu12",
"nvidia-nvjitlink-cu12",
"nvidia-nvjpeg-cu12",
"nvidia-cudss-cu12",
"nvidia-cufftmp-cu12; sys_platform != 'win32'",
"nvidia-libmathdx-cu12",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has the potential to now end up with different minor versions of these libraries whereas using cuda-toolkit[...]=12.* would guaranteed that the minor version of cuda-toolkit that was resolved would control the minor versions of all of the libraries.

Comment on lines 199 to 200
[tool.pixi.feature.test.tasks]
test = { cmd = ["$CONDA_PREFIX/bin/pytest", "$PIXI_PROJECT_ROOT/tests"] }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this path correct on windows as well?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great you asked. I tested locally before, but now double-checking, I was using

pixi run -e cu13-win-64 --verbose -- pytest -v tests

which bypasses [tool.pixi.feature.test.tasks].

This path does indeed not work:

PS C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder> pixi run -e cu13-win-64 test
✨ Pixi task (test in cu13-win-64): $CONDA_PREFIX/bin/pytest $PIXI_PROJECT_ROOT/tests
Error launching 'C:\Users\rgrossekunst\forked\cuda-python\cuda_pathfinder\.pixi\envs\cu13-win-64/bin/pytest': The system cannot find the path specified. (os error 3)

I changed it back now: commit 052d20c

…ONDA_PREFIX/bin` does not work under Windows).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants