NVIDIA / NVIDIA/cuda-python

EPIC: Tests that never run in CI

Aperta
#2,077 4 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@mdboom ci sta già lavorando.

Dal 20/5/2026.

CI/CD cuda.bindings cuda.core cuda.pathfinder EPIC experiment P1 test triage
Lingua principale
Cython
Stelle
3.4k
Fork
329
Merge medio
1g 21h
PR unite (30g)
113

Descrizione

#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]

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.