NVIDIA / NVIDIA/cuda-python

EPIC: Tests that never run in CI

Open
#2,077 4 comments 0 reactions 1 assignee View on GitHub

@mdboom is already working on this.

Since May 20, 2026.

CI/CD cuda.bindings cuda.core cuda.pathfinder EPIC experiment P1 test triage
Dominant language
Cython
Stars
3.4k
Forks
329
Avg merge
1d 23h
Merged PRs (30d)
116

Description

#1969 adds a step to CI that will analyze the logs to find all tests that are skipped in our CI under all configurations. The complete list of tests (as of today) is copy-pasted below.

This issue is to start a discussion about what to do about them.

Removal

I am not advocating a rush to remove them -- they often do run when QA runs them on different platforms than we have in CI. However, some of these may be low-value and we could consider removing on a case-by-case basis. Bitrotting of tests is as much a concern as bitrotting of production code.

Annotation

I think it would be helpful to add a comment to all of these tests that they are not covered in CI. That would be a helpful signal when editing a test, or seeing a failure in QA, that it is not well-covered. An agent could easily take this list and create all those comments -- we can remove the comments if any of the tests are reworked to run in CI. The existing tool that analyses logs for skipped tests could surface the fact that a test has an annotation that it always skips when that is no longer the case.

Hardware/platform coverage

Does this list point at any hardware that would help us get better coverage? As we determine /what kinds/ of hardware to add, this may be helpful in determining what would provide the most value.

Software coverage

I think some of these aren't covered because they require a dependency, such as pytorch. That's a heavy dependency we probably don't want to test with /everywhere/, but maybe we could add it in a few configurations to get more test coverage.

Always skipped tests

  • cuda_bindings/tests/nvml/test_device.py::test_device_vgpu_get_heterogeneous_mode
  • cuda_bindings/tests/nvml/test_device.py::test_get_nv_link_supported_bw_modes
  • cuda_bindings/tests/nvml/test_device.py::test_read_write_prm
  • cuda_bindings/tests/nvml/test_device.py::test_set_power_management_limit
  • cuda_bindings/tests/nvml/test_pci.py::test_bridge_chip_info
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_attributes
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_cpu_affinity_within_scope[<AffinityScope.NODE:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_cpu_affinity_within_scope[<AffinityScope.SOCKET:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_memory_affinity[<AffinityScope.NODE:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_memory_affinity[<AffinityScope.SOCKET:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_P2P_ATOMICS:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_P2P_SUPPORTED:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_SLI_BRIDGE:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_SYSMEM_ACCESS:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_SYSMEM_ATOMICS:
  • cuda_bindings/tests/nvml/test_pynvml.py::test_device_get_nvlink_capability[<NvLinkCapability.NVLINK_CAP_VALID:
  • cuda_bindings/tests/test_examples.py::test_example[C://actions-runner//_work//cuda-python//cuda-python//cuda_bindings//tests//..//examples//0_Introduction//simple_p2p.py]
  • cuda_bindings/tests/test_examples.py::test_example[C://actions-runner//_work//cuda-python//cuda-python//cuda_bindings//tests//..//examples//0_Introduction//system_wide_atomics.py]
  • cuda_bindings/tests/test_examples.py::test_example[C://actions-runner//_work//cuda-python//cuda-python//cuda_bindings//tests//..//examples//extra//iso_fd_modelling.py]
  • cuda_bindings/tests/test_graphics_apis.py::test_cuda_gl_register_image_smoketest[<cudaGraphicsRegisterFlags.cudaGraphicsRegisterFlagsNone:
  • cuda_bindings/tests/test_graphics_apis.py::test_cuda_gl_register_image_smoketest[<cudaGraphicsRegisterFlags.cudaGraphicsRegisterFlagsWriteDiscard:
  • cuda_bindings/tests/test_utils.py::test_check_nvvm_compiler_options_no_libnvvm
  • cuda_core/tests/example_tests/test_basic_examples.py::test_example[gl_interop_plasma.py]
  • cuda_core/tests/example_tests/test_basic_examples.py::test_example[jit_lto_fractal.py]
  • cuda_core/tests/example_tests/test_basic_examples.py::test_example[pytorch_example.py]
  • cuda_core/tests/example_tests/test_basic_examples.py::test_example[simple_multi_gpu_example.py]
  • cuda_core/tests/graph/test_graph_definition.py::test_node_attrs[empty]
  • cuda_core/tests/graph/test_graph_definition.py::test_node_attrs[host_callback_cfunc]
  • cuda_core/tests/graph/test_graph_definition.py::test_node_attrs_preserved_by_nodes[empty]
  • cuda_core/tests/graph/test_graph_definition.py::test_node_attrs_preserved_by_nodes[host_callback_cfunc]
  • cuda_core/tests/memory/test_managed_ops.py::TestManagedBuffer::test_preferred_location_roundtrip_host_numa
  • cuda_core/tests/system/test_system_device.py::test_auto_boosted_clocks_enabled
  • cuda_core/tests/system/test_system_device.py::test_clock
  • cuda_core/tests/system/test_system_device.py::test_device_attributes
  • cuda_core/tests/system/test_system_device.py::test_numa_node_id
  • cuda_core/tests/system/test_system_device.py::test_nvlink
  • cuda_core/tests/system/test_system_device.py::test_temperature
  • cuda_core/tests/test_checkpoint.py::TestCheckpointGpuMigration::test_rotation_migrates_context
  • cuda_core/tests/test_checkpoint.py::TestCheckpointGpuMigration::test_swap_identical_gpus
  • cuda_core/tests/test_graphics.py::TestErrorHandling::test_close_while_mapped_passes_stream_override
  • cuda_core/tests/test_graphics.py::TestFromGLBuffer::test_close_is_idempotent
  • cuda_core/tests/test_graphics.py::TestFromGLBuffer::test_register_default_flags
  • cuda_core/tests/test_graphics.py::TestFromGLBuffer::test_register_write_discard
  • cuda_core/tests/test_graphics.py::TestFromGLImage::test_register_image
  • cuda_core/tests/test_graphics.py::TestMapUnmap::test_from_gl_buffer_with_stream_context_manager
  • cuda_core/tests/test_graphics.py::TestMapUnmap::test_strided_memory_view_from_mapped_buffer
  • cuda_core/tests/test_linker.py::test_linker_link_ptx_culink
  • cuda_core/tests/test_linker.py::test_linker_options_as_bytes_driver_not_supported
  • cuda_core/tests/test_managed_memory_warning.py::test_warning_emitted
  • cuda_core/tests/test_managed_memory_warning.py::test_warning_emitted_only_once
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-release_threshold-int-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-reserved_mem_current-int-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-reserved_mem_high-int-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-reuse_allow_internal_dependencies-bool-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-reuse_allow_opportunistic-bool-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-reuse_follow_event_dependencies-bool-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-used_mem_current-int-True]
  • cuda_core/tests/test_memory.py::test_mempool_attributes[ManagedMR-used_mem_high-int-True]
  • cuda_core/tests/test_memory_peer_access.py::test_peer_access_transitions
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[0]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[120]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[128]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[277]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[32]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[64]
  • cuda_core/tests/test_module.py::test_occupancy_max_potential_block_size_b2dsize[96]
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_alloc_node-<AllocNode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_empty_node-<EmptyNode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_free_node-<FreeNode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_memcpy_node-<MemcpyNode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_memset_node-<MemsetNode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_object_code_ptx-<ObjectCode
  • cuda_core/tests/test_object_protocols.py::test_repr_format[sample_program_ptx-<Program
  • cuda_core/tests/test_program.py::test_cpp_program_with_various_options[options31]
  • cuda_core/tests/test_program.py::test_nvvm_program_numba_debug
  • cuda_core/tests/test_tensor_map.py::TestTensorMapIm2colWide::test_from_im2col_wide_3d
  • cuda_core/tests/test_tensor_map.py::TestTensorMapIm2colWide::test_from_im2col_wide_4d
  • cuda_core/tests/test_tensor_map.py::TestTensorMapIm2colWide::test_from_im2col_wide_5d
  • cuda_core/tests/test_tensor_map.py::TestTensorMapIm2colWide::test_from_im2col_wide_rank_validation
  • cuda_core/tests/test_utils.py::TestViewCudaArrayInterfaceGPU::test_cuda_array_interface_gpu[NOTSET]
  • cuda_core/tests/test_utils.py::TestViewGPU::test_args_viewable_as_strided_memory_gpu[NOTSET]
  • cuda_core/tests/test_utils.py::TestViewGPU::test_strided_memory_view_cpu[NOTSET]
  • cuda_core/tests/test_utils.py::TestViewGPU::test_strided_memory_view_init[NOTSET]
  • cuda_pathfinder/tests/test_driver_lib_loading.py::test_real_load_driver_lib[nvcudla]
  • cuda_pathfinder/tests/test_load_nvidia_dynamic_lib.py::test_load_nvidia_dynamic_lib[nvcudla]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.