# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# This code was automatically generated across versions from 12.9.0 to 13.4.1. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=26d9c23bcf10595e40a03f65b7b7491e2fa5d7161458b6183c53353665bf6f52


# <<<< PREAMBLE CONTENT >>>>

from libc.stdint cimport (
    uint32_t,
    uint64_t,
)


# <<<< END OF PREAMBLE CONTENT >>>>

from libc.stdint cimport uint32_t, uint64_t


# Overridden types from _extras.h

# GL
ctypedef unsigned int GLenum
ctypedef unsigned int GLuint

# EGL
ctypedef void *EGLImageKHR
ctypedef void *EGLStreamKHR
ctypedef unsigned int EGLint
ctypedef void *EGLSyncKHR

# VDPAU
ctypedef uint32_t VdpDevice
ctypedef unsigned long long VdpGetProcAddress
ctypedef uint32_t VdpVideoSurface
ctypedef uint32_t VdpOutputSurface


# ENUMS
cdef extern from 'cuda.h':
    ctypedef enum CUipcMem_flags_enum:
        CU_IPC_MEM_LAZY_ENABLE_PEER_ACCESS
    ctypedef CUipcMem_flags_enum CUipcMem_flags

cdef extern from 'cuda.h':
    ctypedef enum CUmemAttach_flags_enum:
        CU_MEM_ATTACH_GLOBAL
        CU_MEM_ATTACH_HOST
        CU_MEM_ATTACH_SINGLE
    ctypedef CUmemAttach_flags_enum CUmemAttach_flags

cdef extern from 'cuda.h':
    ctypedef enum CUctx_flags_enum:
        CU_CTX_SCHED_AUTO
        CU_CTX_SCHED_SPIN
        CU_CTX_SCHED_YIELD
        CU_CTX_SCHED_BLOCKING_SYNC
        CU_CTX_BLOCKING_SYNC
        CU_CTX_SCHED_MASK
        CU_CTX_MAP_HOST
        CU_CTX_LMEM_RESIZE_TO_MAX
        CU_CTX_COREDUMP_ENABLE
        CU_CTX_USER_COREDUMP_ENABLE
        CU_CTX_SYNC_MEMOPS
        CU_CTX_FLAGS_MASK
    ctypedef CUctx_flags_enum CUctx_flags

cdef extern from 'cuda.h':
    ctypedef enum CUevent_sched_flags_enum:
        CU_EVENT_SCHED_AUTO
        CU_EVENT_SCHED_SPIN
        CU_EVENT_SCHED_YIELD
        CU_EVENT_SCHED_BLOCKING_SYNC
    ctypedef CUevent_sched_flags_enum CUevent_sched_flags

cdef extern from 'cuda.h':
    ctypedef enum cl_event_flags_enum:
        NVCL_EVENT_SCHED_AUTO
        NVCL_EVENT_SCHED_SPIN
        NVCL_EVENT_SCHED_YIELD
        NVCL_EVENT_SCHED_BLOCKING_SYNC
    ctypedef cl_event_flags_enum cl_event_flags

cdef extern from 'cuda.h':
    ctypedef enum cl_context_flags_enum:
        NVCL_CTX_SCHED_AUTO
        NVCL_CTX_SCHED_SPIN
        NVCL_CTX_SCHED_YIELD
        NVCL_CTX_SCHED_BLOCKING_SYNC
    ctypedef cl_context_flags_enum cl_context_flags

cdef extern from 'cuda.h':
    ctypedef enum CUstream_flags_enum:
        CU_STREAM_DEFAULT
        CU_STREAM_NON_BLOCKING
    ctypedef CUstream_flags_enum CUstream_flags

cdef extern from 'cuda.h':
    ctypedef enum CUevent_flags_enum:
        CU_EVENT_DEFAULT
        CU_EVENT_BLOCKING_SYNC
        CU_EVENT_DISABLE_TIMING
        CU_EVENT_INTERPROCESS
    ctypedef CUevent_flags_enum CUevent_flags

cdef extern from 'cuda.h':
    ctypedef enum CUevent_record_flags_enum:
        CU_EVENT_RECORD_DEFAULT
        CU_EVENT_RECORD_EXTERNAL
    ctypedef CUevent_record_flags_enum CUevent_record_flags

cdef extern from 'cuda.h':
    ctypedef enum CUevent_wait_flags_enum:
        CU_EVENT_WAIT_DEFAULT
        CU_EVENT_WAIT_EXTERNAL
    ctypedef CUevent_wait_flags_enum CUevent_wait_flags

cdef extern from 'cuda.h':
    ctypedef enum CUstreamWaitValue_flags_enum:
        CU_STREAM_WAIT_VALUE_GEQ
        CU_STREAM_WAIT_VALUE_EQ
        CU_STREAM_WAIT_VALUE_AND
        CU_STREAM_WAIT_VALUE_NOR
        CU_STREAM_WAIT_VALUE_FLUSH
    ctypedef CUstreamWaitValue_flags_enum CUstreamWaitValue_flags

cdef extern from 'cuda.h':
    ctypedef enum CUstreamWriteValue_flags_enum:
        CU_STREAM_WRITE_VALUE_DEFAULT
        CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER
    ctypedef CUstreamWriteValue_flags_enum CUstreamWriteValue_flags

cdef extern from 'cuda.h':
    ctypedef enum CUstreamBatchMemOpType_enum:
        CU_STREAM_MEM_OP_WAIT_VALUE_32
        CU_STREAM_MEM_OP_WRITE_VALUE_32
        CU_STREAM_MEM_OP_WAIT_VALUE_64
        CU_STREAM_MEM_OP_WRITE_VALUE_64
        CU_STREAM_MEM_OP_BARRIER
        CU_STREAM_MEM_OP_ATOMIC_REDUCTION
        CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES
    ctypedef CUstreamBatchMemOpType_enum CUstreamBatchMemOpType

cdef extern from 'cuda.h':
    ctypedef enum CUstreamMemoryBarrier_flags_enum:
        CU_STREAM_MEMORY_BARRIER_TYPE_SYS
        CU_STREAM_MEMORY_BARRIER_TYPE_GPU
    ctypedef CUstreamMemoryBarrier_flags_enum CUstreamMemoryBarrier_flags

cdef extern from 'cuda.h':
    ctypedef enum CUoccupancy_flags_enum:
        CU_OCCUPANCY_DEFAULT
        CU_OCCUPANCY_DISABLE_CACHING_OVERRIDE
    ctypedef CUoccupancy_flags_enum CUoccupancy_flags

cdef extern from 'cuda.h':
    ctypedef enum CUstreamUpdateCaptureDependencies_flags_enum:
        CU_STREAM_ADD_CAPTURE_DEPENDENCIES
        CU_STREAM_SET_CAPTURE_DEPENDENCIES
    ctypedef CUstreamUpdateCaptureDependencies_flags_enum CUstreamUpdateCaptureDependencies_flags

cdef extern from 'cuda.h':
    ctypedef enum CUasyncNotificationType_enum:
        CU_ASYNC_NOTIFICATION_TYPE_OVER_BUDGET
    ctypedef CUasyncNotificationType_enum CUasyncNotificationType

cdef extern from 'cuda.h':
    ctypedef enum CUarray_format_enum:
        CU_AD_FORMAT_UNSIGNED_INT8
        CU_AD_FORMAT_UNSIGNED_INT16
        CU_AD_FORMAT_UNSIGNED_INT32
        CU_AD_FORMAT_SIGNED_INT8
        CU_AD_FORMAT_SIGNED_INT16
        CU_AD_FORMAT_SIGNED_INT32
        CU_AD_FORMAT_HALF
        CU_AD_FORMAT_FLOAT
        CU_AD_FORMAT_NV12
        CU_AD_FORMAT_UNORM_INT8X1
        CU_AD_FORMAT_UNORM_INT8X2
        CU_AD_FORMAT_UNORM_INT8X4
        CU_AD_FORMAT_UNORM_INT16X1
        CU_AD_FORMAT_UNORM_INT16X2
        CU_AD_FORMAT_UNORM_INT16X4
        CU_AD_FORMAT_SNORM_INT8X1
        CU_AD_FORMAT_SNORM_INT8X2
        CU_AD_FORMAT_SNORM_INT8X4
        CU_AD_FORMAT_SNORM_INT16X1
        CU_AD_FORMAT_SNORM_INT16X2
        CU_AD_FORMAT_SNORM_INT16X4
        CU_AD_FORMAT_BC1_UNORM
        CU_AD_FORMAT_BC1_UNORM_SRGB
        CU_AD_FORMAT_BC2_UNORM
        CU_AD_FORMAT_BC2_UNORM_SRGB
        CU_AD_FORMAT_BC3_UNORM
        CU_AD_FORMAT_BC3_UNORM_SRGB
        CU_AD_FORMAT_BC4_UNORM
        CU_AD_FORMAT_BC4_SNORM
        CU_AD_FORMAT_BC5_UNORM
        CU_AD_FORMAT_BC5_SNORM
        CU_AD_FORMAT_BC6H_UF16
        CU_AD_FORMAT_BC6H_SF16
        CU_AD_FORMAT_BC7_UNORM
        CU_AD_FORMAT_BC7_UNORM_SRGB
        CU_AD_FORMAT_P010
        CU_AD_FORMAT_P016
        CU_AD_FORMAT_NV16
        CU_AD_FORMAT_P210
        CU_AD_FORMAT_P216
        CU_AD_FORMAT_YUY2
        CU_AD_FORMAT_Y210
        CU_AD_FORMAT_Y216
        CU_AD_FORMAT_AYUV
        CU_AD_FORMAT_Y410
        CU_AD_FORMAT_Y416
        CU_AD_FORMAT_Y444_PLANAR8
        CU_AD_FORMAT_Y444_PLANAR10
        CU_AD_FORMAT_YUV444_8bit_SemiPlanar
        CU_AD_FORMAT_YUV444_16bit_SemiPlanar
        CU_AD_FORMAT_UNORM_INT_101010_2
        CU_AD_FORMAT_UINT8_PACKED_422
        CU_AD_FORMAT_UINT8_PACKED_444
        CU_AD_FORMAT_UINT8_SEMIPLANAR_420
        CU_AD_FORMAT_UINT16_SEMIPLANAR_420
        CU_AD_FORMAT_UINT8_SEMIPLANAR_422
        CU_AD_FORMAT_UINT16_SEMIPLANAR_422
        CU_AD_FORMAT_UINT8_SEMIPLANAR_444
        CU_AD_FORMAT_UINT16_SEMIPLANAR_444
        CU_AD_FORMAT_UINT8_PLANAR_420
        CU_AD_FORMAT_UINT16_PLANAR_420
        CU_AD_FORMAT_UINT8_PLANAR_422
        CU_AD_FORMAT_UINT16_PLANAR_422
        CU_AD_FORMAT_UINT8_PLANAR_444
        CU_AD_FORMAT_UINT16_PLANAR_444
        CU_AD_FORMAT_MAX
    ctypedef CUarray_format_enum CUarray_format

cdef extern from 'cuda.h':
    ctypedef enum CUaddress_mode_enum:
        CU_TR_ADDRESS_MODE_WRAP
        CU_TR_ADDRESS_MODE_CLAMP
        CU_TR_ADDRESS_MODE_MIRROR
        CU_TR_ADDRESS_MODE_BORDER
    ctypedef CUaddress_mode_enum CUaddress_mode

cdef extern from 'cuda.h':
    ctypedef enum CUfilter_mode_enum:
        CU_TR_FILTER_MODE_POINT
        CU_TR_FILTER_MODE_LINEAR
    ctypedef CUfilter_mode_enum CUfilter_mode

cdef extern from 'cuda.h':
    ctypedef enum CUdevice_attribute_enum:
        CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X
        CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y
        CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z
        CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X
        CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y
        CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z
        CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY
        CU_DEVICE_ATTRIBUTE_WARP_SIZE
        CU_DEVICE_ATTRIBUTE_MAX_PITCH
        CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_CLOCK_RATE
        CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT
        CU_DEVICE_ATTRIBUTE_GPU_OVERLAP
        CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT
        CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT
        CU_DEVICE_ATTRIBUTE_INTEGRATED
        CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY
        CU_DEVICE_ATTRIBUTE_COMPUTE_MODE
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES
        CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT
        CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS
        CU_DEVICE_ATTRIBUTE_ECC_ENABLED
        CU_DEVICE_ATTRIBUTE_PCI_BUS_ID
        CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID
        CU_DEVICE_ATTRIBUTE_TCC_DRIVER
        CU_DEVICE_ATTRIBUTE_MEMORY_CLOCK_RATE
        CU_DEVICE_ATTRIBUTE_GLOBAL_MEMORY_BUS_WIDTH
        CU_DEVICE_ATTRIBUTE_L2_CACHE_SIZE
        CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR
        CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT
        CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_CAN_TEX2D_GATHER
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_GATHER_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE
        CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
        CU_DEVICE_ATTRIBUTE_TEXTURE_PITCH_ALIGNMENT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE3D_DEPTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE1D_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACE2D_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_LINEAR_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_HEIGHT
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_LINEAR_PITCH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT
        CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR
        CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR
        CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH
        CU_DEVICE_ATTRIBUTE_STREAM_PRIORITIES_SUPPORTED
        CU_DEVICE_ATTRIBUTE_GLOBAL_L1_CACHE_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOCAL_L1_CACHE_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_MULTIPROCESSOR
        CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR
        CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY
        CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD
        CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID
        CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED
        CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO
        CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS
        CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS
        CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED
        CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM
        CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS_V1
        CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS_V1
        CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR_V1
        CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH
        CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH
        CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN
        CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES
        CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED
        CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES
        CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST
        CU_DEVICE_ATTRIBUTE_VIRTUAL_ADDRESS_MANAGEMENT_SUPPORTED
        CU_DEVICE_ATTRIBUTE_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_HANDLE_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MAX_BLOCKS_PER_MULTIPROCESSOR
        CU_DEVICE_ATTRIBUTE_GENERIC_COMPRESSION_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MAX_PERSISTING_L2_CACHE_SIZE
        CU_DEVICE_ATTRIBUTE_MAX_ACCESS_POLICY_WINDOW_SIZE
        CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_CUDA_VMM_SUPPORTED
        CU_DEVICE_ATTRIBUTE_RESERVED_SHARED_MEMORY_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_SPARSE_CUDA_ARRAY_SUPPORTED
        CU_DEVICE_ATTRIBUTE_READ_ONLY_HOST_REGISTER_SUPPORTED
        CU_DEVICE_ATTRIBUTE_TIMELINE_SEMAPHORE_INTEROP_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_SUPPORTED
        CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_FLUSH_WRITES_OPTIONS
        CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WRITES_ORDERING
        CU_DEVICE_ATTRIBUTE_MEMPOOL_SUPPORTED_HANDLE_TYPES
        CU_DEVICE_ATTRIBUTE_CLUSTER_LAUNCH
        CU_DEVICE_ATTRIBUTE_DEFERRED_MAPPING_CUDA_ARRAY_SUPPORTED
        CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS
        CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR
        CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED
        CU_DEVICE_ATTRIBUTE_IPC_EVENT_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MEM_SYNC_DOMAIN_COUNT
        CU_DEVICE_ATTRIBUTE_TENSOR_MAP_ACCESS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_FABRIC_SUPPORTED
        CU_DEVICE_ATTRIBUTE_UNIFIED_FUNCTION_POINTERS
        CU_DEVICE_ATTRIBUTE_NUMA_CONFIG
        CU_DEVICE_ATTRIBUTE_NUMA_ID
        CU_DEVICE_ATTRIBUTE_MULTICAST_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MPS_ENABLED
        CU_DEVICE_ATTRIBUTE_HOST_NUMA_ID
        CU_DEVICE_ATTRIBUTE_D3D12_CIG_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MEM_DECOMPRESS_ALGORITHM_MASK
        CU_DEVICE_ATTRIBUTE_MEM_DECOMPRESS_MAXIMUM_LENGTH
        CU_DEVICE_ATTRIBUTE_VULKAN_CIG_SUPPORTED
        CU_DEVICE_ATTRIBUTE_GPU_PCI_DEVICE_ID
        CU_DEVICE_ATTRIBUTE_GPU_PCI_SUBSYSTEM_ID
        CU_DEVICE_ATTRIBUTE_HOST_NUMA_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HOST_NUMA_MEMORY_POOLS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HOST_NUMA_MULTINODE_IPC_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HOST_MEMORY_POOLS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HOST_VIRTUAL_MEMORY_MANAGEMENT_SUPPORTED
        CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED
        CU_DEVICE_ATTRIBUTE_ONLY_PARTIAL_HOST_NATIVE_ATOMIC_SUPPORTED
        CU_DEVICE_ATTRIBUTE_ATOMIC_REDUCTION_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOCALITY_DOMAIN_COUNT
        CU_DEVICE_ATTRIBUTE_MAX_OVERSIZED_SHARED_MEMORY_PER_BLOCK
        CU_DEVICE_ATTRIBUTE_D3D12_CIG_STREAMS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_DMA_BUF_MMAP_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOGICAL_ENDPOINT_UNICAST_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOGICAL_ENDPOINT_MULTICAST_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOGICAL_ENDPOINT_COUNTED_OPS_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOGICAL_ENDPOINT_UNICAST_ACCESS_ON_OWNER_DEVICE_SUPPORTED
        CU_DEVICE_ATTRIBUTE_LOCALITY_DOMAIN_MULTIPROCESSOR_COUNT
        CU_DEVICE_ATTRIBUTE_LOGICAL_ENDPOINT_SUPPORTED_HANDLE_TYPES
        CU_DEVICE_ATTRIBUTE_GPU_DIRECT_RDMA_WITH_LOCALIZED_MEMORY_SUPPORTED
        CU_DEVICE_ATTRIBUTE_MAX
    ctypedef CUdevice_attribute_enum CUdevice_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUpointer_attribute_enum:
        CU_POINTER_ATTRIBUTE_CONTEXT
        CU_POINTER_ATTRIBUTE_MEMORY_TYPE
        CU_POINTER_ATTRIBUTE_DEVICE_POINTER
        CU_POINTER_ATTRIBUTE_HOST_POINTER
        CU_POINTER_ATTRIBUTE_P2P_TOKENS
        CU_POINTER_ATTRIBUTE_SYNC_MEMOPS
        CU_POINTER_ATTRIBUTE_BUFFER_ID
        CU_POINTER_ATTRIBUTE_IS_MANAGED
        CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL
        CU_POINTER_ATTRIBUTE_IS_LEGACY_CUDA_IPC_CAPABLE
        CU_POINTER_ATTRIBUTE_RANGE_START_ADDR
        CU_POINTER_ATTRIBUTE_RANGE_SIZE
        CU_POINTER_ATTRIBUTE_MAPPED
        CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES
        CU_POINTER_ATTRIBUTE_IS_GPU_DIRECT_RDMA_CAPABLE
        CU_POINTER_ATTRIBUTE_ACCESS_FLAGS
        CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE
        CU_POINTER_ATTRIBUTE_MAPPING_SIZE
        CU_POINTER_ATTRIBUTE_MAPPING_BASE_ADDR
        CU_POINTER_ATTRIBUTE_MEMORY_BLOCK_ID
        CU_POINTER_ATTRIBUTE_IS_HW_DECOMPRESS_CAPABLE
        CU_POINTER_ATTRIBUTE_LOCALITY_DOMAIN_ORDINAL
    ctypedef CUpointer_attribute_enum CUpointer_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUfunction_attribute_enum:
        CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK
        CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES
        CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES
        CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES
        CU_FUNC_ATTRIBUTE_NUM_REGS
        CU_FUNC_ATTRIBUTE_PTX_VERSION
        CU_FUNC_ATTRIBUTE_BINARY_VERSION
        CU_FUNC_ATTRIBUTE_CACHE_MODE_CA
        CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES
        CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT
        CU_FUNC_ATTRIBUTE_CLUSTER_SIZE_MUST_BE_SET
        CU_FUNC_ATTRIBUTE_REQUIRED_CLUSTER_WIDTH
        CU_FUNC_ATTRIBUTE_REQUIRED_CLUSTER_HEIGHT
        CU_FUNC_ATTRIBUTE_REQUIRED_CLUSTER_DEPTH
        CU_FUNC_ATTRIBUTE_NON_PORTABLE_CLUSTER_SIZE_ALLOWED
        CU_FUNC_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCE
        CU_FUNC_ATTRIBUTE_DEVICE_NODE_UPDATE_SUPPORTED
        CU_FUNC_ATTRIBUTE_SHARED_MEMORY_MODE
        CU_FUNC_ATTRIBUTE_MAX
    ctypedef CUfunction_attribute_enum CUfunction_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUfunc_cache_enum:
        CU_FUNC_CACHE_PREFER_NONE
        CU_FUNC_CACHE_PREFER_SHARED
        CU_FUNC_CACHE_PREFER_L1
        CU_FUNC_CACHE_PREFER_EQUAL
    ctypedef CUfunc_cache_enum CUfunc_cache

cdef extern from 'cuda.h':
    ctypedef enum CUsharedconfig_enum:
        CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE
        CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE
        CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE
    ctypedef CUsharedconfig_enum CUsharedconfig

cdef extern from 'cuda.h':
    ctypedef enum CUshared_carveout_enum:
        CU_SHAREDMEM_CARVEOUT_DEFAULT
        CU_SHAREDMEM_CARVEOUT_MAX_SHARED
        CU_SHAREDMEM_CARVEOUT_MAX_L1
    ctypedef CUshared_carveout_enum CUshared_carveout

cdef extern from 'cuda.h':
    ctypedef enum CUmemorytype_enum:
        CU_MEMORYTYPE_HOST
        CU_MEMORYTYPE_DEVICE
        CU_MEMORYTYPE_ARRAY
        CU_MEMORYTYPE_UNIFIED
    ctypedef CUmemorytype_enum CUmemorytype

cdef extern from 'cuda.h':
    ctypedef enum CUcomputemode_enum:
        CU_COMPUTEMODE_DEFAULT
        CU_COMPUTEMODE_PROHIBITED
        CU_COMPUTEMODE_EXCLUSIVE_PROCESS
    ctypedef CUcomputemode_enum CUcomputemode

cdef extern from 'cuda.h':
    ctypedef enum CUmem_advise_enum:
        CU_MEM_ADVISE_SET_READ_MOSTLY
        CU_MEM_ADVISE_UNSET_READ_MOSTLY
        CU_MEM_ADVISE_SET_PREFERRED_LOCATION
        CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION
        CU_MEM_ADVISE_SET_ACCESSED_BY
        CU_MEM_ADVISE_UNSET_ACCESSED_BY
    ctypedef CUmem_advise_enum CUmem_advise

cdef extern from 'cuda.h':
    ctypedef enum CUmem_range_attribute_enum:
        CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY
        CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION
        CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY
        CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION
        CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION_TYPE
        CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION_ID
        CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION_TYPE
        CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION_ID
    ctypedef CUmem_range_attribute_enum CUmem_range_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUjit_option_enum:
        CU_JIT_MAX_REGISTERS
        CU_JIT_THREADS_PER_BLOCK
        CU_JIT_WALL_TIME
        CU_JIT_INFO_LOG_BUFFER
        CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
        CU_JIT_ERROR_LOG_BUFFER
        CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
        CU_JIT_OPTIMIZATION_LEVEL
        CU_JIT_TARGET_FROM_CUCONTEXT
        CU_JIT_TARGET
        CU_JIT_FALLBACK_STRATEGY
        CU_JIT_GENERATE_DEBUG_INFO
        CU_JIT_LOG_VERBOSE
        CU_JIT_GENERATE_LINE_INFO
        CU_JIT_CACHE_MODE
        CU_JIT_NEW_SM3X_OPT
        CU_JIT_FAST_COMPILE
        CU_JIT_GLOBAL_SYMBOL_NAMES
        CU_JIT_GLOBAL_SYMBOL_ADDRESSES
        CU_JIT_GLOBAL_SYMBOL_COUNT
        CU_JIT_LTO
        CU_JIT_FTZ
        CU_JIT_PREC_DIV
        CU_JIT_PREC_SQRT
        CU_JIT_FMA
        CU_JIT_REFERENCED_KERNEL_NAMES
        CU_JIT_REFERENCED_KERNEL_COUNT
        CU_JIT_REFERENCED_VARIABLE_NAMES
        CU_JIT_REFERENCED_VARIABLE_COUNT
        CU_JIT_OPTIMIZE_UNUSED_DEVICE_VARIABLES
        CU_JIT_POSITION_INDEPENDENT_CODE
        CU_JIT_MIN_CTA_PER_SM
        CU_JIT_MAX_THREADS_PER_BLOCK
        CU_JIT_OVERRIDE_DIRECTIVE_VALUES
        CU_JIT_SPLIT_COMPILE
        CU_JIT_BINARY_LOADER_THREAD_COUNT
        CU_JIT_NUM_OPTIONS
    ctypedef CUjit_option_enum CUjit_option

cdef extern from 'cuda.h':
    ctypedef enum CUjit_target_enum:
        CU_TARGET_COMPUTE_30
        CU_TARGET_COMPUTE_32
        CU_TARGET_COMPUTE_35
        CU_TARGET_COMPUTE_37
        CU_TARGET_COMPUTE_50
        CU_TARGET_COMPUTE_52
        CU_TARGET_COMPUTE_53
        CU_TARGET_COMPUTE_60
        CU_TARGET_COMPUTE_61
        CU_TARGET_COMPUTE_62
        CU_TARGET_COMPUTE_70
        CU_TARGET_COMPUTE_72
        CU_TARGET_COMPUTE_75
        CU_TARGET_COMPUTE_80
        CU_TARGET_COMPUTE_86
        CU_TARGET_COMPUTE_87
        CU_TARGET_COMPUTE_89
        CU_TARGET_COMPUTE_90
        CU_TARGET_COMPUTE_100
        CU_TARGET_COMPUTE_110
        CU_TARGET_COMPUTE_103
        CU_TARGET_COMPUTE_107
        CU_TARGET_COMPUTE_120
        CU_TARGET_COMPUTE_121
        CU_TARGET_COMPUTE_90A
        CU_TARGET_COMPUTE_100A
        CU_TARGET_COMPUTE_110A
        CU_TARGET_COMPUTE_103A
        CU_TARGET_COMPUTE_107A
        CU_TARGET_COMPUTE_120A
        CU_TARGET_COMPUTE_121A
        CU_TARGET_COMPUTE_100F
        CU_TARGET_COMPUTE_110F
        CU_TARGET_COMPUTE_103F
        CU_TARGET_COMPUTE_107F
        CU_TARGET_COMPUTE_120F
        CU_TARGET_COMPUTE_121F
        CU_TARGET_COMPUTE_101
        CU_TARGET_COMPUTE_101A
        CU_TARGET_COMPUTE_101F
    ctypedef CUjit_target_enum CUjit_target

cdef extern from 'cuda.h':
    ctypedef enum CUjit_fallback_enum:
        CU_PREFER_PTX
        CU_PREFER_BINARY
    ctypedef CUjit_fallback_enum CUjit_fallback

cdef extern from 'cuda.h':
    ctypedef enum CUjit_cacheMode_enum:
        CU_JIT_CACHE_OPTION_NONE
        CU_JIT_CACHE_OPTION_CG
        CU_JIT_CACHE_OPTION_CA
    ctypedef CUjit_cacheMode_enum CUjit_cacheMode

cdef extern from 'cuda.h':
    ctypedef enum CUjitInputType_enum:
        CU_JIT_INPUT_CUBIN
        CU_JIT_INPUT_PTX
        CU_JIT_INPUT_FATBINARY
        CU_JIT_INPUT_OBJECT
        CU_JIT_INPUT_LIBRARY
        CU_JIT_INPUT_NVVM
        CU_JIT_NUM_INPUT_TYPES
    ctypedef CUjitInputType_enum CUjitInputType

cdef extern from 'cuda.h':
    ctypedef enum CUgraphicsRegisterFlags_enum:
        CU_GRAPHICS_REGISTER_FLAGS_NONE
        CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY
        CU_GRAPHICS_REGISTER_FLAGS_WRITE_DISCARD
        CU_GRAPHICS_REGISTER_FLAGS_SURFACE_LDST
        CU_GRAPHICS_REGISTER_FLAGS_TEXTURE_GATHER
    ctypedef CUgraphicsRegisterFlags_enum CUgraphicsRegisterFlags

cdef extern from 'cuda.h':
    ctypedef enum CUgraphicsMapResourceFlags_enum:
        CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE
        CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY
        CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD
    ctypedef CUgraphicsMapResourceFlags_enum CUgraphicsMapResourceFlags

cdef extern from 'cuda.h':
    ctypedef enum CUarray_cubemap_face_enum:
        CU_CUBEMAP_FACE_POSITIVE_X
        CU_CUBEMAP_FACE_NEGATIVE_X
        CU_CUBEMAP_FACE_POSITIVE_Y
        CU_CUBEMAP_FACE_NEGATIVE_Y
        CU_CUBEMAP_FACE_POSITIVE_Z
        CU_CUBEMAP_FACE_NEGATIVE_Z
    ctypedef CUarray_cubemap_face_enum CUarray_cubemap_face

cdef extern from 'cuda.h':
    ctypedef enum CUlimit_enum:
        CU_LIMIT_STACK_SIZE
        CU_LIMIT_PRINTF_FIFO_SIZE
        CU_LIMIT_MALLOC_HEAP_SIZE
        CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH
        CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT
        CU_LIMIT_MAX_L2_FETCH_GRANULARITY
        CU_LIMIT_PERSISTING_L2_CACHE_SIZE
        CU_LIMIT_SHMEM_SIZE
        CU_LIMIT_CIG_ENABLED
        CU_LIMIT_CIG_SHMEM_FALLBACK_ENABLED
        CU_LIMIT_PER_BLOCK_MEMORY_SIZE
        CU_LIMIT_MAX
    ctypedef CUlimit_enum CUlimit

cdef extern from 'cuda.h':
    ctypedef enum CUresourcetype_enum:
        CU_RESOURCE_TYPE_ARRAY
        CU_RESOURCE_TYPE_MIPMAPPED_ARRAY
        CU_RESOURCE_TYPE_LINEAR
        CU_RESOURCE_TYPE_PITCH2D
    ctypedef CUresourcetype_enum CUresourcetype

cdef extern from 'cuda.h':
    ctypedef enum CUaccessProperty_enum:
        CU_ACCESS_PROPERTY_NORMAL
        CU_ACCESS_PROPERTY_STREAMING
        CU_ACCESS_PROPERTY_PERSISTING
    ctypedef CUaccessProperty_enum CUaccessProperty

cdef extern from 'cuda.h':
    ctypedef enum CUgraphConditionalNodeType_enum:
        CU_GRAPH_COND_TYPE_IF
        CU_GRAPH_COND_TYPE_WHILE
        CU_GRAPH_COND_TYPE_SWITCH
    ctypedef CUgraphConditionalNodeType_enum CUgraphConditionalNodeType

cdef extern from 'cuda.h':
    ctypedef enum CUgraphNodeType_enum:
        CU_GRAPH_NODE_TYPE_KERNEL
        CU_GRAPH_NODE_TYPE_MEMCPY
        CU_GRAPH_NODE_TYPE_MEMSET
        CU_GRAPH_NODE_TYPE_HOST
        CU_GRAPH_NODE_TYPE_GRAPH
        CU_GRAPH_NODE_TYPE_EMPTY
        CU_GRAPH_NODE_TYPE_WAIT_EVENT
        CU_GRAPH_NODE_TYPE_EVENT_RECORD
        CU_GRAPH_NODE_TYPE_EXT_SEMAS_SIGNAL
        CU_GRAPH_NODE_TYPE_EXT_SEMAS_WAIT
        CU_GRAPH_NODE_TYPE_MEM_ALLOC
        CU_GRAPH_NODE_TYPE_MEM_FREE
        CU_GRAPH_NODE_TYPE_BATCH_MEM_OP
        CU_GRAPH_NODE_TYPE_CONDITIONAL
        CU_GRAPH_NODE_TYPE_RESERVED_16
    ctypedef CUgraphNodeType_enum CUgraphNodeType

cdef extern from 'cuda.h':
    ctypedef enum CUgraphDependencyType_enum:
        CU_GRAPH_DEPENDENCY_TYPE_DEFAULT
        CU_GRAPH_DEPENDENCY_TYPE_PROGRAMMATIC
    ctypedef CUgraphDependencyType_enum CUgraphDependencyType

cdef extern from 'cuda.h':
    ctypedef enum CUgraphInstantiateResult_enum:
        CUDA_GRAPH_INSTANTIATE_SUCCESS
        CUDA_GRAPH_INSTANTIATE_ERROR
        CUDA_GRAPH_INSTANTIATE_INVALID_STRUCTURE
        CUDA_GRAPH_INSTANTIATE_NODE_OPERATION_NOT_SUPPORTED
        CUDA_GRAPH_INSTANTIATE_MULTIPLE_CTXS_NOT_SUPPORTED
        CUDA_GRAPH_INSTANTIATE_CONDITIONAL_HANDLE_UNUSED
    ctypedef CUgraphInstantiateResult_enum CUgraphInstantiateResult

cdef extern from 'cuda.h':
    ctypedef enum CUsynchronizationPolicy_enum:
        CU_SYNC_POLICY_AUTO
        CU_SYNC_POLICY_SPIN
        CU_SYNC_POLICY_YIELD
        CU_SYNC_POLICY_BLOCKING_SYNC
    ctypedef CUsynchronizationPolicy_enum CUsynchronizationPolicy

cdef extern from 'cuda.h':
    ctypedef enum CUclusterSchedulingPolicy_enum:
        CU_CLUSTER_SCHEDULING_POLICY_DEFAULT
        CU_CLUSTER_SCHEDULING_POLICY_SPREAD
        CU_CLUSTER_SCHEDULING_POLICY_LOAD_BALANCING
        CU_CLUSTER_SCHEDULING_POLICY_RUBIN_DSMEM_LOCALITY
    ctypedef CUclusterSchedulingPolicy_enum CUclusterSchedulingPolicy

cdef extern from 'cuda.h':
    ctypedef enum CUlaunchMemSyncDomain_enum:
        CU_LAUNCH_MEM_SYNC_DOMAIN_DEFAULT
        CU_LAUNCH_MEM_SYNC_DOMAIN_REMOTE
    ctypedef CUlaunchMemSyncDomain_enum CUlaunchMemSyncDomain

cdef extern from 'cuda.h':
    ctypedef enum CUlaunchAttributeID_enum:
        CU_LAUNCH_ATTRIBUTE_IGNORE
        CU_LAUNCH_ATTRIBUTE_ACCESS_POLICY_WINDOW
        CU_LAUNCH_ATTRIBUTE_COOPERATIVE
        CU_LAUNCH_ATTRIBUTE_SYNCHRONIZATION_POLICY
        CU_LAUNCH_ATTRIBUTE_CLUSTER_DIMENSION
        CU_LAUNCH_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCE
        CU_LAUNCH_ATTRIBUTE_PROGRAMMATIC_STREAM_SERIALIZATION
        CU_LAUNCH_ATTRIBUTE_PROGRAMMATIC_EVENT
        CU_LAUNCH_ATTRIBUTE_PRIORITY
        CU_LAUNCH_ATTRIBUTE_MEM_SYNC_DOMAIN_MAP
        CU_LAUNCH_ATTRIBUTE_MEM_SYNC_DOMAIN
        CU_LAUNCH_ATTRIBUTE_PREFERRED_CLUSTER_DIMENSION
        CU_LAUNCH_ATTRIBUTE_LAUNCH_COMPLETION_EVENT
        CU_LAUNCH_ATTRIBUTE_DEVICE_UPDATABLE_KERNEL_NODE
        CU_LAUNCH_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT
        CU_LAUNCH_ATTRIBUTE_NVLINK_UTIL_CENTRIC_SCHEDULING
        CU_LAUNCH_ATTRIBUTE_PORTABLE_CLUSTER_SIZE_MODE
        CU_LAUNCH_ATTRIBUTE_SHARED_MEMORY_MODE
    ctypedef CUlaunchAttributeID_enum CUlaunchAttributeID

cdef extern from 'cuda.h':
    ctypedef enum CUstreamCaptureStatus_enum:
        CU_STREAM_CAPTURE_STATUS_NONE
        CU_STREAM_CAPTURE_STATUS_ACTIVE
        CU_STREAM_CAPTURE_STATUS_INVALIDATED
    ctypedef CUstreamCaptureStatus_enum CUstreamCaptureStatus

cdef extern from 'cuda.h':
    ctypedef enum CUstreamCaptureMode_enum:
        CU_STREAM_CAPTURE_MODE_GLOBAL
        CU_STREAM_CAPTURE_MODE_THREAD_LOCAL
        CU_STREAM_CAPTURE_MODE_RELAXED
    ctypedef CUstreamCaptureMode_enum CUstreamCaptureMode

cdef extern from 'cuda.h':
    ctypedef enum CUdriverProcAddress_flags_enum:
        CU_GET_PROC_ADDRESS_DEFAULT
        CU_GET_PROC_ADDRESS_LEGACY_STREAM
        CU_GET_PROC_ADDRESS_PER_THREAD_DEFAULT_STREAM
    ctypedef CUdriverProcAddress_flags_enum CUdriverProcAddress_flags

cdef extern from 'cuda.h':
    ctypedef enum CUdriverProcAddressQueryResult_enum:
        CU_GET_PROC_ADDRESS_SUCCESS
        CU_GET_PROC_ADDRESS_SYMBOL_NOT_FOUND
        CU_GET_PROC_ADDRESS_VERSION_NOT_SUFFICIENT
    ctypedef CUdriverProcAddressQueryResult_enum CUdriverProcAddressQueryResult

cdef extern from 'cuda.h':
    ctypedef enum CUexecAffinityType_enum:
        CU_EXEC_AFFINITY_TYPE_SM_COUNT
        CU_EXEC_AFFINITY_TYPE_MAX
    ctypedef CUexecAffinityType_enum CUexecAffinityType

cdef extern from 'cuda.h':
    ctypedef enum CUcigDataType_enum:
        CIG_DATA_TYPE_D3D12_COMMAND_QUEUE
        CIG_DATA_TYPE_NV_BLOB
    ctypedef CUcigDataType_enum CUcigDataType

cdef extern from 'cuda.h':
    ctypedef enum CUlibraryOption_enum:
        CU_LIBRARY_HOST_UNIVERSAL_FUNCTION_AND_DATA_TABLE
        CU_LIBRARY_BINARY_IS_PRESERVED
        CU_LIBRARY_NUM_OPTIONS
    ctypedef CUlibraryOption_enum CUlibraryOption

cdef extern from 'cuda.h':
    ctypedef enum cudaError_enum:
        CUDA_SUCCESS
        CUDA_ERROR_INVALID_VALUE
        CUDA_ERROR_OUT_OF_MEMORY
        CUDA_ERROR_NOT_INITIALIZED
        CUDA_ERROR_DEINITIALIZED
        CUDA_ERROR_PROFILER_DISABLED
        CUDA_ERROR_PROFILER_NOT_INITIALIZED
        CUDA_ERROR_PROFILER_ALREADY_STARTED
        CUDA_ERROR_PROFILER_ALREADY_STOPPED
        CUDA_ERROR_STUB_LIBRARY
        CUDA_ERROR_CALL_REQUIRES_NEWER_DRIVER
        CUDA_ERROR_DEVICE_UNAVAILABLE
        CUDA_ERROR_MULTICAST_RESOURCE_FULL
        CUDA_ERROR_NO_DEVICE
        CUDA_ERROR_INVALID_DEVICE
        CUDA_ERROR_DEVICE_NOT_LICENSED
        CUDA_ERROR_INVALID_IMAGE
        CUDA_ERROR_INVALID_CONTEXT
        CUDA_ERROR_CONTEXT_ALREADY_CURRENT
        CUDA_ERROR_MAP_FAILED
        CUDA_ERROR_UNMAP_FAILED
        CUDA_ERROR_ARRAY_IS_MAPPED
        CUDA_ERROR_ALREADY_MAPPED
        CUDA_ERROR_NO_BINARY_FOR_GPU
        CUDA_ERROR_ALREADY_ACQUIRED
        CUDA_ERROR_NOT_MAPPED
        CUDA_ERROR_NOT_MAPPED_AS_ARRAY
        CUDA_ERROR_NOT_MAPPED_AS_POINTER
        CUDA_ERROR_ECC_UNCORRECTABLE
        CUDA_ERROR_UNSUPPORTED_LIMIT
        CUDA_ERROR_CONTEXT_ALREADY_IN_USE
        CUDA_ERROR_PEER_ACCESS_UNSUPPORTED
        CUDA_ERROR_INVALID_PTX
        CUDA_ERROR_INVALID_GRAPHICS_CONTEXT
        CUDA_ERROR_NVLINK_UNCORRECTABLE
        CUDA_ERROR_JIT_COMPILER_NOT_FOUND
        CUDA_ERROR_UNSUPPORTED_PTX_VERSION
        CUDA_ERROR_JIT_COMPILATION_DISABLED
        CUDA_ERROR_UNSUPPORTED_EXEC_AFFINITY
        CUDA_ERROR_UNSUPPORTED_DEVSIDE_SYNC
        CUDA_ERROR_CONTAINED
        CUDA_ERROR_INSUFFICIENT_LOADER_VERSION
        CUDA_ERROR_INVALID_SOURCE
        CUDA_ERROR_FILE_NOT_FOUND
        CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND
        CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
        CUDA_ERROR_OPERATING_SYSTEM
        CUDA_ERROR_INVALID_HANDLE
        CUDA_ERROR_ILLEGAL_STATE
        CUDA_ERROR_LOSSY_QUERY
        CUDA_ERROR_NOT_FOUND
        CUDA_ERROR_NOT_READY
        CUDA_ERROR_ILLEGAL_ADDRESS
        CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES
        CUDA_ERROR_LAUNCH_TIMEOUT
        CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING
        CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
        CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
        CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE
        CUDA_ERROR_CONTEXT_IS_DESTROYED
        CUDA_ERROR_ASSERT
        CUDA_ERROR_TOO_MANY_PEERS
        CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED
        CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED
        CUDA_ERROR_HARDWARE_STACK_ERROR
        CUDA_ERROR_ILLEGAL_INSTRUCTION
        CUDA_ERROR_MISALIGNED_ADDRESS
        CUDA_ERROR_INVALID_ADDRESS_SPACE
        CUDA_ERROR_INVALID_PC
        CUDA_ERROR_LAUNCH_FAILED
        CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE
        CUDA_ERROR_TENSOR_MEMORY_LEAK
        CUDA_ERROR_NOT_PERMITTED
        CUDA_ERROR_NOT_SUPPORTED
        CUDA_ERROR_SYSTEM_NOT_READY
        CUDA_ERROR_SYSTEM_DRIVER_MISMATCH
        CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE
        CUDA_ERROR_MPS_CONNECTION_FAILED
        CUDA_ERROR_MPS_RPC_FAILURE
        CUDA_ERROR_MPS_SERVER_NOT_READY
        CUDA_ERROR_MPS_MAX_CLIENTS_REACHED
        CUDA_ERROR_MPS_MAX_CONNECTIONS_REACHED
        CUDA_ERROR_MPS_CLIENT_TERMINATED
        CUDA_ERROR_CDP_NOT_SUPPORTED
        CUDA_ERROR_CDP_VERSION_MISMATCH
        CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED
        CUDA_ERROR_STREAM_CAPTURE_INVALIDATED
        CUDA_ERROR_STREAM_CAPTURE_MERGE
        CUDA_ERROR_STREAM_CAPTURE_UNMATCHED
        CUDA_ERROR_STREAM_CAPTURE_UNJOINED
        CUDA_ERROR_STREAM_CAPTURE_ISOLATION
        CUDA_ERROR_STREAM_CAPTURE_IMPLICIT
        CUDA_ERROR_CAPTURED_EVENT
        CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD
        CUDA_ERROR_TIMEOUT
        CUDA_ERROR_GRAPH_EXEC_UPDATE_FAILURE
        CUDA_ERROR_EXTERNAL_DEVICE
        CUDA_ERROR_INVALID_CLUSTER_SIZE
        CUDA_ERROR_FUNCTION_NOT_LOADED
        CUDA_ERROR_INVALID_RESOURCE_TYPE
        CUDA_ERROR_INVALID_RESOURCE_CONFIGURATION
        CUDA_ERROR_KEY_ROTATION
        CUDA_ERROR_STREAM_DETACHED
        CUDA_ERROR_GRAPH_RECAPTURE_FAILURE
        CUDA_ERROR_FABRIC_NOT_READY
        CUDA_ERROR_UNKNOWN
    ctypedef cudaError_enum CUresult

cdef extern from 'cuda.h':
    ctypedef enum CUdevice_P2PAttribute_enum:
        CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK
        CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED
        CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED
        CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED
        CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED
        CU_DEVICE_P2P_ATTRIBUTE_ONLY_PARTIAL_NATIVE_ATOMIC_SUPPORTED
    ctypedef CUdevice_P2PAttribute_enum CUdevice_P2PAttribute

cdef extern from 'cuda.h':
    ctypedef enum CUresourceViewFormat_enum:
        CU_RES_VIEW_FORMAT_NONE
        CU_RES_VIEW_FORMAT_UINT_1X8
        CU_RES_VIEW_FORMAT_UINT_2X8
        CU_RES_VIEW_FORMAT_UINT_4X8
        CU_RES_VIEW_FORMAT_SINT_1X8
        CU_RES_VIEW_FORMAT_SINT_2X8
        CU_RES_VIEW_FORMAT_SINT_4X8
        CU_RES_VIEW_FORMAT_UINT_1X16
        CU_RES_VIEW_FORMAT_UINT_2X16
        CU_RES_VIEW_FORMAT_UINT_4X16
        CU_RES_VIEW_FORMAT_SINT_1X16
        CU_RES_VIEW_FORMAT_SINT_2X16
        CU_RES_VIEW_FORMAT_SINT_4X16
        CU_RES_VIEW_FORMAT_UINT_1X32
        CU_RES_VIEW_FORMAT_UINT_2X32
        CU_RES_VIEW_FORMAT_UINT_4X32
        CU_RES_VIEW_FORMAT_SINT_1X32
        CU_RES_VIEW_FORMAT_SINT_2X32
        CU_RES_VIEW_FORMAT_SINT_4X32
        CU_RES_VIEW_FORMAT_FLOAT_1X16
        CU_RES_VIEW_FORMAT_FLOAT_2X16
        CU_RES_VIEW_FORMAT_FLOAT_4X16
        CU_RES_VIEW_FORMAT_FLOAT_1X32
        CU_RES_VIEW_FORMAT_FLOAT_2X32
        CU_RES_VIEW_FORMAT_FLOAT_4X32
        CU_RES_VIEW_FORMAT_UNSIGNED_BC1
        CU_RES_VIEW_FORMAT_UNSIGNED_BC2
        CU_RES_VIEW_FORMAT_UNSIGNED_BC3
        CU_RES_VIEW_FORMAT_UNSIGNED_BC4
        CU_RES_VIEW_FORMAT_SIGNED_BC4
        CU_RES_VIEW_FORMAT_UNSIGNED_BC5
        CU_RES_VIEW_FORMAT_SIGNED_BC5
        CU_RES_VIEW_FORMAT_UNSIGNED_BC6H
        CU_RES_VIEW_FORMAT_SIGNED_BC6H
        CU_RES_VIEW_FORMAT_UNSIGNED_BC7
    ctypedef CUresourceViewFormat_enum CUresourceViewFormat

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapDataType_enum:
        CU_TENSOR_MAP_DATA_TYPE_UINT8
        CU_TENSOR_MAP_DATA_TYPE_UINT16
        CU_TENSOR_MAP_DATA_TYPE_UINT32
        CU_TENSOR_MAP_DATA_TYPE_INT32
        CU_TENSOR_MAP_DATA_TYPE_UINT64
        CU_TENSOR_MAP_DATA_TYPE_INT64
        CU_TENSOR_MAP_DATA_TYPE_FLOAT16
        CU_TENSOR_MAP_DATA_TYPE_FLOAT32
        CU_TENSOR_MAP_DATA_TYPE_FLOAT64
        CU_TENSOR_MAP_DATA_TYPE_BFLOAT16
        CU_TENSOR_MAP_DATA_TYPE_FLOAT32_FTZ
        CU_TENSOR_MAP_DATA_TYPE_TFLOAT32
        CU_TENSOR_MAP_DATA_TYPE_TFLOAT32_FTZ
        CU_TENSOR_MAP_DATA_TYPE_16U4_ALIGN8B
        CU_TENSOR_MAP_DATA_TYPE_16U4_ALIGN16B
        CU_TENSOR_MAP_DATA_TYPE_16U6_ALIGN16B
    ctypedef CUtensorMapDataType_enum CUtensorMapDataType

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapInterleave_enum:
        CU_TENSOR_MAP_INTERLEAVE_NONE
        CU_TENSOR_MAP_INTERLEAVE_16B
        CU_TENSOR_MAP_INTERLEAVE_32B
    ctypedef CUtensorMapInterleave_enum CUtensorMapInterleave

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapSwizzle_enum:
        CU_TENSOR_MAP_SWIZZLE_NONE
        CU_TENSOR_MAP_SWIZZLE_32B
        CU_TENSOR_MAP_SWIZZLE_64B
        CU_TENSOR_MAP_SWIZZLE_128B
        CU_TENSOR_MAP_SWIZZLE_128B_ATOM_32B
        CU_TENSOR_MAP_SWIZZLE_128B_ATOM_32B_FLIP_8B
        CU_TENSOR_MAP_SWIZZLE_128B_ATOM_64B
    ctypedef CUtensorMapSwizzle_enum CUtensorMapSwizzle

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapL2promotion_enum:
        CU_TENSOR_MAP_L2_PROMOTION_NONE
        CU_TENSOR_MAP_L2_PROMOTION_L2_64B
        CU_TENSOR_MAP_L2_PROMOTION_L2_128B
        CU_TENSOR_MAP_L2_PROMOTION_L2_256B
    ctypedef CUtensorMapL2promotion_enum CUtensorMapL2promotion

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapFloatOOBfill_enum:
        CU_TENSOR_MAP_FLOAT_OOB_FILL_NONE
        CU_TENSOR_MAP_FLOAT_OOB_FILL_NAN_REQUEST_ZERO_FMA
    ctypedef CUtensorMapFloatOOBfill_enum CUtensorMapFloatOOBfill

cdef extern from 'cuda.h':
    ctypedef enum CUtensorMapIm2ColWideMode_enum:
        CU_TENSOR_MAP_IM2COL_WIDE_MODE_W
        CU_TENSOR_MAP_IM2COL_WIDE_MODE_W128
    ctypedef CUtensorMapIm2ColWideMode_enum CUtensorMapIm2ColWideMode

cdef extern from 'cuda.h':
    ctypedef enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum:
        CU_POINTER_ATTRIBUTE_ACCESS_FLAG_NONE
        CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READ
        CU_POINTER_ATTRIBUTE_ACCESS_FLAG_READWRITE
    ctypedef CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS_enum CUDA_POINTER_ATTRIBUTE_ACCESS_FLAGS

cdef extern from 'cuda.h':
    ctypedef enum CUexternalMemoryHandleType_enum:
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF
        CU_EXTERNAL_MEMORY_HANDLE_TYPE_DMABUF_FD
    ctypedef CUexternalMemoryHandleType_enum CUexternalMemoryHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUexternalSemaphoreHandleType_enum:
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_NVSCISYNC
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_KEYED_MUTEX_KMT
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_FD
        CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TIMELINE_SEMAPHORE_WIN32
    ctypedef CUexternalSemaphoreHandleType_enum CUexternalSemaphoreHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUmemAllocationHandleType_enum:
        CU_MEM_HANDLE_TYPE_NONE
        CU_MEM_HANDLE_TYPE_POSIX_FILE_DESCRIPTOR
        CU_MEM_HANDLE_TYPE_WIN32
        CU_MEM_HANDLE_TYPE_WIN32_KMT
        CU_MEM_HANDLE_TYPE_FABRIC
        CU_MEM_HANDLE_TYPE_MAX
    ctypedef CUmemAllocationHandleType_enum CUmemAllocationHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUmemAccess_flags_enum:
        CU_MEM_ACCESS_FLAGS_PROT_NONE
        CU_MEM_ACCESS_FLAGS_PROT_READ
        CU_MEM_ACCESS_FLAGS_PROT_READWRITE
        CU_MEM_ACCESS_FLAGS_PROT_MAX
    ctypedef CUmemAccess_flags_enum CUmemAccess_flags

cdef extern from 'cuda.h':
    ctypedef enum CUmemLocationType_enum:
        CU_MEM_LOCATION_TYPE_INVALID
        CU_MEM_LOCATION_TYPE_NONE
        CU_MEM_LOCATION_TYPE_DEVICE
        CU_MEM_LOCATION_TYPE_HOST
        CU_MEM_LOCATION_TYPE_HOST_NUMA
        CU_MEM_LOCATION_TYPE_HOST_NUMA_CURRENT
        CU_MEM_LOCATION_TYPE_INVISIBLE
        CU_MEM_LOCATION_TYPE_DEVICE_LOCALITY_DOMAIN
        CU_MEM_LOCATION_TYPE_MAX
    ctypedef CUmemLocationType_enum CUmemLocationType

cdef extern from 'cuda.h':
    ctypedef enum CUmemAllocationType_enum:
        CU_MEM_ALLOCATION_TYPE_INVALID
        CU_MEM_ALLOCATION_TYPE_PINNED
        CU_MEM_ALLOCATION_TYPE_MANAGED
        CU_MEM_ALLOCATION_TYPE_MAX
    ctypedef CUmemAllocationType_enum CUmemAllocationType

cdef extern from 'cuda.h':
    ctypedef enum CUmemAllocationGranularity_flags_enum:
        CU_MEM_ALLOC_GRANULARITY_MINIMUM
        CU_MEM_ALLOC_GRANULARITY_RECOMMENDED
    ctypedef CUmemAllocationGranularity_flags_enum CUmemAllocationGranularity_flags

cdef extern from 'cuda.h':
    ctypedef enum CUmemRangeHandleType_enum:
        CU_MEM_RANGE_HANDLE_TYPE_DMA_BUF_FD
        CU_MEM_RANGE_HANDLE_TYPE_MAX
    ctypedef CUmemRangeHandleType_enum CUmemRangeHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUmemRangeFlags_enum:
        CU_MEM_RANGE_FLAG_DMA_BUF_MAPPING_TYPE_PCIE
    ctypedef CUmemRangeFlags_enum CUmemRangeFlags

cdef extern from 'cuda.h':
    ctypedef enum CUarraySparseSubresourceType_enum:
        CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_SPARSE_LEVEL
        CU_ARRAY_SPARSE_SUBRESOURCE_TYPE_MIPTAIL
    ctypedef CUarraySparseSubresourceType_enum CUarraySparseSubresourceType

cdef extern from 'cuda.h':
    ctypedef enum CUmemOperationType_enum:
        CU_MEM_OPERATION_TYPE_MAP
        CU_MEM_OPERATION_TYPE_UNMAP
    ctypedef CUmemOperationType_enum CUmemOperationType

cdef extern from 'cuda.h':
    ctypedef enum CUmemHandleType_enum:
        CU_MEM_HANDLE_TYPE_GENERIC
    ctypedef CUmemHandleType_enum CUmemHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUmemAllocationCompType_enum:
        CU_MEM_ALLOCATION_COMP_NONE
        CU_MEM_ALLOCATION_COMP_GENERIC
    ctypedef CUmemAllocationCompType_enum CUmemAllocationCompType

cdef extern from 'cuda.h':
    ctypedef enum CUmulticastGranularity_flags_enum:
        CU_MULTICAST_GRANULARITY_MINIMUM
        CU_MULTICAST_GRANULARITY_RECOMMENDED
    ctypedef CUmulticastGranularity_flags_enum CUmulticastGranularity_flags

cdef extern from 'cuda.h':
    ctypedef enum CUgraphExecUpdateResult_enum:
        CU_GRAPH_EXEC_UPDATE_SUCCESS
        CU_GRAPH_EXEC_UPDATE_ERROR
        CU_GRAPH_EXEC_UPDATE_ERROR_TOPOLOGY_CHANGED
        CU_GRAPH_EXEC_UPDATE_ERROR_NODE_TYPE_CHANGED
        CU_GRAPH_EXEC_UPDATE_ERROR_FUNCTION_CHANGED
        CU_GRAPH_EXEC_UPDATE_ERROR_PARAMETERS_CHANGED
        CU_GRAPH_EXEC_UPDATE_ERROR_NOT_SUPPORTED
        CU_GRAPH_EXEC_UPDATE_ERROR_UNSUPPORTED_FUNCTION_CHANGE
        CU_GRAPH_EXEC_UPDATE_ERROR_ATTRIBUTES_CHANGED
    ctypedef CUgraphExecUpdateResult_enum CUgraphExecUpdateResult

cdef extern from 'cuda.h':
    ctypedef enum CUmemPool_attribute_enum:
        CU_MEMPOOL_ATTR_REUSE_FOLLOW_EVENT_DEPENDENCIES
        CU_MEMPOOL_ATTR_REUSE_ALLOW_OPPORTUNISTIC
        CU_MEMPOOL_ATTR_REUSE_ALLOW_INTERNAL_DEPENDENCIES
        CU_MEMPOOL_ATTR_RELEASE_THRESHOLD
        CU_MEMPOOL_ATTR_RESERVED_MEM_CURRENT
        CU_MEMPOOL_ATTR_RESERVED_MEM_HIGH
        CU_MEMPOOL_ATTR_USED_MEM_CURRENT
        CU_MEMPOOL_ATTR_USED_MEM_HIGH
        CU_MEMPOOL_ATTR_ALLOCATION_TYPE
        CU_MEMPOOL_ATTR_EXPORT_HANDLE_TYPES
        CU_MEMPOOL_ATTR_LOCATION_ID
        CU_MEMPOOL_ATTR_LOCATION_TYPE
        CU_MEMPOOL_ATTR_MAX_POOL_SIZE
        CU_MEMPOOL_ATTR_HW_DECOMPRESS_ENABLED
        CU_MEMPOOL_ATTR_LOCALITY_DOMAIN_ID
    ctypedef CUmemPool_attribute_enum CUmemPool_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUmemcpyFlags_enum:
        CU_MEMCPY_FLAG_DEFAULT
        CU_MEMCPY_FLAG_PREFER_OVERLAP_WITH_COMPUTE
    ctypedef CUmemcpyFlags_enum CUmemcpyFlags

cdef extern from 'cuda.h':
    ctypedef enum CUmemcpySrcAccessOrder_enum:
        CU_MEMCPY_SRC_ACCESS_ORDER_INVALID
        CU_MEMCPY_SRC_ACCESS_ORDER_STREAM
        CU_MEMCPY_SRC_ACCESS_ORDER_DURING_API_CALL
        CU_MEMCPY_SRC_ACCESS_ORDER_ANY
        CU_MEMCPY_SRC_ACCESS_ORDER_MAX
    ctypedef CUmemcpySrcAccessOrder_enum CUmemcpySrcAccessOrder

cdef extern from 'cuda.h':
    ctypedef enum CUmemcpy3DOperandType_enum:
        CU_MEMCPY_OPERAND_TYPE_POINTER
        CU_MEMCPY_OPERAND_TYPE_ARRAY
        CU_MEMCPY_OPERAND_TYPE_MAX
    ctypedef CUmemcpy3DOperandType_enum CUmemcpy3DOperandType

cdef extern from 'cuda.h':
    ctypedef enum CUgraphMem_attribute_enum:
        CU_GRAPH_MEM_ATTR_USED_MEM_CURRENT
        CU_GRAPH_MEM_ATTR_USED_MEM_HIGH
        CU_GRAPH_MEM_ATTR_RESERVED_MEM_CURRENT
        CU_GRAPH_MEM_ATTR_RESERVED_MEM_HIGH
    ctypedef CUgraphMem_attribute_enum CUgraphMem_attribute

cdef extern from 'cuda.h':
    ctypedef enum CUgraphChildGraphNodeOwnership_enum:
        CU_GRAPH_CHILD_GRAPH_OWNERSHIP_CLONE
        CU_GRAPH_CHILD_GRAPH_OWNERSHIP_MOVE
        CU_GRAPH_CHILD_GRAPH_OWNERSHIP_INVALID
    ctypedef CUgraphChildGraphNodeOwnership_enum CUgraphChildGraphNodeOwnership

cdef extern from 'cuda.h':
    ctypedef enum CUflushGPUDirectRDMAWritesOptions_enum:
        CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_HOST
        CU_FLUSH_GPU_DIRECT_RDMA_WRITES_OPTION_MEMOPS
    ctypedef CUflushGPUDirectRDMAWritesOptions_enum CUflushGPUDirectRDMAWritesOptions

cdef extern from 'cuda.h':
    ctypedef enum CUGPUDirectRDMAWritesOrdering_enum:
        CU_GPU_DIRECT_RDMA_WRITES_ORDERING_NONE
        CU_GPU_DIRECT_RDMA_WRITES_ORDERING_OWNER
        CU_GPU_DIRECT_RDMA_WRITES_ORDERING_ALL_DEVICES
    ctypedef CUGPUDirectRDMAWritesOrdering_enum CUGPUDirectRDMAWritesOrdering

cdef extern from 'cuda.h':
    ctypedef enum CUflushGPUDirectRDMAWritesScope_enum:
        CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_OWNER
        CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TO_ALL_DEVICES
    ctypedef CUflushGPUDirectRDMAWritesScope_enum CUflushGPUDirectRDMAWritesScope

cdef extern from 'cuda.h':
    ctypedef enum CUflushGPUDirectRDMAWritesTarget_enum:
        CU_FLUSH_GPU_DIRECT_RDMA_WRITES_TARGET_CURRENT_CTX
    ctypedef CUflushGPUDirectRDMAWritesTarget_enum CUflushGPUDirectRDMAWritesTarget

cdef extern from 'cuda.h':
    ctypedef enum CUgraphDebugDot_flags_enum:
        CU_GRAPH_DEBUG_DOT_FLAGS_VERBOSE
        CU_GRAPH_DEBUG_DOT_FLAGS_RUNTIME_TYPES
        CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_MEMCPY_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_MEMSET_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_HOST_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_EVENT_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_SIGNAL_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_EXT_SEMAS_WAIT_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_KERNEL_NODE_ATTRIBUTES
        CU_GRAPH_DEBUG_DOT_FLAGS_HANDLES
        CU_GRAPH_DEBUG_DOT_FLAGS_MEM_ALLOC_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_MEM_FREE_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_BATCH_MEM_OP_NODE_PARAMS
        CU_GRAPH_DEBUG_DOT_FLAGS_EXTRA_TOPO_INFO
        CU_GRAPH_DEBUG_DOT_FLAGS_CONDITIONAL_NODE_PARAMS
    ctypedef CUgraphDebugDot_flags_enum CUgraphDebugDot_flags

cdef extern from 'cuda.h':
    ctypedef enum CUuserObject_flags_enum:
        CU_USER_OBJECT_NO_DESTRUCTOR_SYNC
    ctypedef CUuserObject_flags_enum CUuserObject_flags

cdef extern from 'cuda.h':
    ctypedef enum CUuserObjectRetain_flags_enum:
        CU_GRAPH_USER_OBJECT_MOVE
    ctypedef CUuserObjectRetain_flags_enum CUuserObjectRetain_flags

cdef extern from 'cuda.h':
    ctypedef enum CUgraphInstantiate_flags_enum:
        CUDA_GRAPH_INSTANTIATE_FLAG_AUTO_FREE_ON_LAUNCH
        CUDA_GRAPH_INSTANTIATE_FLAG_UPLOAD
        CUDA_GRAPH_INSTANTIATE_FLAG_DEVICE_LAUNCH
        CUDA_GRAPH_INSTANTIATE_FLAG_USE_NODE_PRIORITY
    ctypedef CUgraphInstantiate_flags_enum CUgraphInstantiate_flags

cdef extern from 'cuda.h':
    ctypedef enum CUdeviceNumaConfig_enum:
        CU_DEVICE_NUMA_CONFIG_NONE
        CU_DEVICE_NUMA_CONFIG_NUMA_NODE
    ctypedef CUdeviceNumaConfig_enum CUdeviceNumaConfig

cdef extern from 'cuda.h':
    ctypedef enum CUprocessState_enum:
        CU_PROCESS_STATE_RUNNING
        CU_PROCESS_STATE_LOCKED
        CU_PROCESS_STATE_CHECKPOINTED
        CU_PROCESS_STATE_FAILED
        CU_PROCESS_STATE_CHECKPOINTING
        CU_PROCESS_STATE_RESTORING
    ctypedef CUprocessState_enum CUprocessState

cdef extern from 'cuda.h':
    ctypedef enum CUmoduleLoadingMode_enum:
        CU_MODULE_EAGER_LOADING
        CU_MODULE_LAZY_LOADING
    ctypedef CUmoduleLoadingMode_enum CUmoduleLoadingMode

cdef extern from 'cuda.h':
    ctypedef enum CUmemDecompressAlgorithm_enum:
        CU_MEM_DECOMPRESS_UNSUPPORTED
        CU_MEM_DECOMPRESS_ALGORITHM_DEFLATE
        CU_MEM_DECOMPRESS_ALGORITHM_SNAPPY
        CU_MEM_DECOMPRESS_ALGORITHM_LZ4
    ctypedef CUmemDecompressAlgorithm_enum CUmemDecompressAlgorithm

cdef extern from 'cuda.h':
    ctypedef enum CUfunctionLoadingState_enum:
        CU_FUNCTION_LOADING_STATE_UNLOADED
        CU_FUNCTION_LOADING_STATE_LOADED
        CU_FUNCTION_LOADING_STATE_MAX
    ctypedef CUfunctionLoadingState_enum CUfunctionLoadingState

cdef extern from 'cuda.h':
    ctypedef enum CUcoredumpSettings_enum:
        CU_COREDUMP_ENABLE_ON_EXCEPTION
        CU_COREDUMP_TRIGGER_HOST
        CU_COREDUMP_LIGHTWEIGHT
        CU_COREDUMP_ENABLE_USER_TRIGGER
        CU_COREDUMP_FILE
        CU_COREDUMP_PIPE
        CU_COREDUMP_GENERATION_FLAGS
        CU_COREDUMP_MAX
    ctypedef CUcoredumpSettings_enum CUcoredumpSettings

cdef extern from 'cuda.h':
    ctypedef enum CUCoredumpGenerationFlags:
        CU_COREDUMP_DEFAULT_FLAGS
        CU_COREDUMP_SKIP_NONRELOCATED_ELF_IMAGES
        CU_COREDUMP_SKIP_GLOBAL_MEMORY
        CU_COREDUMP_SKIP_SHARED_MEMORY
        CU_COREDUMP_SKIP_LOCAL_MEMORY
        CU_COREDUMP_SKIP_ABORT
        CU_COREDUMP_SKIP_CONSTBANK_MEMORY
        CU_COREDUMP_GZIP_COMPRESS
        CU_COREDUMP_FAULTED_CONTEXTS_ONLY
        CU_COREDUMP_NO_ERRBAR_AT_EXIT
        CU_COREDUMP_LOG_ONLY
        CU_COREDUMP_LIGHTWEIGHT_FLAGS

cdef extern from 'cuda.h':
    ctypedef enum CUgreenCtxCreate_flags "CUgreenCtxCreate_flags":
        CU_GREEN_CTX_NONE
        CU_GREEN_CTX_DEFAULT_STREAM

cdef extern from 'cuda.h':
    ctypedef enum CUdevResourceType "CUdevResourceType":
        CU_DEV_RESOURCE_TYPE_INVALID
        CU_DEV_RESOURCE_TYPE_SM
        CU_DEV_RESOURCE_TYPE_WORKQUEUE_CONFIG
        CU_DEV_RESOURCE_TYPE_WORKQUEUE

cdef extern from 'cuda.h':
    ctypedef enum CUlogLevel_enum:
        CU_LOG_LEVEL_ERROR
        CU_LOG_LEVEL_WARNING
    ctypedef CUlogLevel_enum CUlogLevel

ctypedef enum CUeglFrameType_enum "CUeglFrameType_enum":
    CU_EGL_FRAME_TYPE_ARRAY "CU_EGL_FRAME_TYPE_ARRAY" = 0
    CU_EGL_FRAME_TYPE_PITCH "CU_EGL_FRAME_TYPE_PITCH" = 1
ctypedef CUeglFrameType_enum CUeglFrameType "CUeglFrameType"

ctypedef enum CUeglResourceLocationFlags_enum "CUeglResourceLocationFlags_enum":
    CU_EGL_RESOURCE_LOCATION_SYSMEM "CU_EGL_RESOURCE_LOCATION_SYSMEM" = 0x00
    CU_EGL_RESOURCE_LOCATION_VIDMEM "CU_EGL_RESOURCE_LOCATION_VIDMEM" = 0x01
ctypedef CUeglResourceLocationFlags_enum CUeglResourceLocationFlags "CUeglResourceLocationFlags"

ctypedef enum CUeglColorFormat_enum "CUeglColorFormat_enum":
    CU_EGL_COLOR_FORMAT_YUV420_PLANAR "CU_EGL_COLOR_FORMAT_YUV420_PLANAR" = 0x00
    CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR" = 0x01
    CU_EGL_COLOR_FORMAT_YUV422_PLANAR "CU_EGL_COLOR_FORMAT_YUV422_PLANAR" = 0x02
    CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR" = 0x03
    CU_EGL_COLOR_FORMAT_RGB "CU_EGL_COLOR_FORMAT_RGB" = 0x04
    CU_EGL_COLOR_FORMAT_BGR "CU_EGL_COLOR_FORMAT_BGR" = 0x05
    CU_EGL_COLOR_FORMAT_ARGB "CU_EGL_COLOR_FORMAT_ARGB" = 0x06
    CU_EGL_COLOR_FORMAT_RGBA "CU_EGL_COLOR_FORMAT_RGBA" = 0x07
    CU_EGL_COLOR_FORMAT_L "CU_EGL_COLOR_FORMAT_L" = 0x08
    CU_EGL_COLOR_FORMAT_R "CU_EGL_COLOR_FORMAT_R" = 0x09
    CU_EGL_COLOR_FORMAT_YUV444_PLANAR "CU_EGL_COLOR_FORMAT_YUV444_PLANAR" = 0x0A
    CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR" = 0x0B
    CU_EGL_COLOR_FORMAT_YUYV_422 "CU_EGL_COLOR_FORMAT_YUYV_422" = 0x0C
    CU_EGL_COLOR_FORMAT_UYVY_422 "CU_EGL_COLOR_FORMAT_UYVY_422" = 0x0D
    CU_EGL_COLOR_FORMAT_ABGR "CU_EGL_COLOR_FORMAT_ABGR" = 0x0E
    CU_EGL_COLOR_FORMAT_BGRA "CU_EGL_COLOR_FORMAT_BGRA" = 0x0F
    CU_EGL_COLOR_FORMAT_A "CU_EGL_COLOR_FORMAT_A" = 0x10
    CU_EGL_COLOR_FORMAT_RG "CU_EGL_COLOR_FORMAT_RG" = 0x11
    CU_EGL_COLOR_FORMAT_AYUV "CU_EGL_COLOR_FORMAT_AYUV" = 0x12
    CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR" = 0x13
    CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR" = 0x14
    CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR "CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR" = 0x15
    CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR "CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR" = 0x16
    CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR "CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR" = 0x17
    CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR "CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR" = 0x18
    CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR "CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR" = 0x19
    CU_EGL_COLOR_FORMAT_VYUY_ER "CU_EGL_COLOR_FORMAT_VYUY_ER" = 0x1A
    CU_EGL_COLOR_FORMAT_UYVY_ER "CU_EGL_COLOR_FORMAT_UYVY_ER" = 0x1B
    CU_EGL_COLOR_FORMAT_YUYV_ER "CU_EGL_COLOR_FORMAT_YUYV_ER" = 0x1C
    CU_EGL_COLOR_FORMAT_YVYU_ER "CU_EGL_COLOR_FORMAT_YVYU_ER" = 0x1D
    CU_EGL_COLOR_FORMAT_YUV_ER "CU_EGL_COLOR_FORMAT_YUV_ER" = 0x1E
    CU_EGL_COLOR_FORMAT_YUVA_ER "CU_EGL_COLOR_FORMAT_YUVA_ER" = 0x1F
    CU_EGL_COLOR_FORMAT_AYUV_ER "CU_EGL_COLOR_FORMAT_AYUV_ER" = 0x20
    CU_EGL_COLOR_FORMAT_YUV444_PLANAR_ER "CU_EGL_COLOR_FORMAT_YUV444_PLANAR_ER" = 0x21
    CU_EGL_COLOR_FORMAT_YUV422_PLANAR_ER "CU_EGL_COLOR_FORMAT_YUV422_PLANAR_ER" = 0x22
    CU_EGL_COLOR_FORMAT_YUV420_PLANAR_ER "CU_EGL_COLOR_FORMAT_YUV420_PLANAR_ER" = 0x23
    CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR_ER" = 0x24
    CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR_ER" = 0x25
    CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_ER" = 0x26
    CU_EGL_COLOR_FORMAT_YVU444_PLANAR_ER "CU_EGL_COLOR_FORMAT_YVU444_PLANAR_ER" = 0x27
    CU_EGL_COLOR_FORMAT_YVU422_PLANAR_ER "CU_EGL_COLOR_FORMAT_YVU422_PLANAR_ER" = 0x28
    CU_EGL_COLOR_FORMAT_YVU420_PLANAR_ER "CU_EGL_COLOR_FORMAT_YVU420_PLANAR_ER" = 0x29
    CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR_ER" = 0x2A
    CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR_ER" = 0x2B
    CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_ER" = 0x2C
    CU_EGL_COLOR_FORMAT_BAYER_RGGB "CU_EGL_COLOR_FORMAT_BAYER_RGGB" = 0x2D
    CU_EGL_COLOR_FORMAT_BAYER_BGGR "CU_EGL_COLOR_FORMAT_BAYER_BGGR" = 0x2E
    CU_EGL_COLOR_FORMAT_BAYER_GRBG "CU_EGL_COLOR_FORMAT_BAYER_GRBG" = 0x2F
    CU_EGL_COLOR_FORMAT_BAYER_GBRG "CU_EGL_COLOR_FORMAT_BAYER_GBRG" = 0x30
    CU_EGL_COLOR_FORMAT_BAYER10_RGGB "CU_EGL_COLOR_FORMAT_BAYER10_RGGB" = 0x31
    CU_EGL_COLOR_FORMAT_BAYER10_BGGR "CU_EGL_COLOR_FORMAT_BAYER10_BGGR" = 0x32
    CU_EGL_COLOR_FORMAT_BAYER10_GRBG "CU_EGL_COLOR_FORMAT_BAYER10_GRBG" = 0x33
    CU_EGL_COLOR_FORMAT_BAYER10_GBRG "CU_EGL_COLOR_FORMAT_BAYER10_GBRG" = 0x34
    CU_EGL_COLOR_FORMAT_BAYER12_RGGB "CU_EGL_COLOR_FORMAT_BAYER12_RGGB" = 0x35
    CU_EGL_COLOR_FORMAT_BAYER12_BGGR "CU_EGL_COLOR_FORMAT_BAYER12_BGGR" = 0x36
    CU_EGL_COLOR_FORMAT_BAYER12_GRBG "CU_EGL_COLOR_FORMAT_BAYER12_GRBG" = 0x37
    CU_EGL_COLOR_FORMAT_BAYER12_GBRG "CU_EGL_COLOR_FORMAT_BAYER12_GBRG" = 0x38
    CU_EGL_COLOR_FORMAT_BAYER14_RGGB "CU_EGL_COLOR_FORMAT_BAYER14_RGGB" = 0x39
    CU_EGL_COLOR_FORMAT_BAYER14_BGGR "CU_EGL_COLOR_FORMAT_BAYER14_BGGR" = 0x3A
    CU_EGL_COLOR_FORMAT_BAYER14_GRBG "CU_EGL_COLOR_FORMAT_BAYER14_GRBG" = 0x3B
    CU_EGL_COLOR_FORMAT_BAYER14_GBRG "CU_EGL_COLOR_FORMAT_BAYER14_GBRG" = 0x3C
    CU_EGL_COLOR_FORMAT_BAYER20_RGGB "CU_EGL_COLOR_FORMAT_BAYER20_RGGB" = 0x3D
    CU_EGL_COLOR_FORMAT_BAYER20_BGGR "CU_EGL_COLOR_FORMAT_BAYER20_BGGR" = 0x3E
    CU_EGL_COLOR_FORMAT_BAYER20_GRBG "CU_EGL_COLOR_FORMAT_BAYER20_GRBG" = 0x3F
    CU_EGL_COLOR_FORMAT_BAYER20_GBRG "CU_EGL_COLOR_FORMAT_BAYER20_GBRG" = 0x40
    CU_EGL_COLOR_FORMAT_YVU444_PLANAR "CU_EGL_COLOR_FORMAT_YVU444_PLANAR" = 0x41
    CU_EGL_COLOR_FORMAT_YVU422_PLANAR "CU_EGL_COLOR_FORMAT_YVU422_PLANAR" = 0x42
    CU_EGL_COLOR_FORMAT_YVU420_PLANAR "CU_EGL_COLOR_FORMAT_YVU420_PLANAR" = 0x43
    CU_EGL_COLOR_FORMAT_BAYER_ISP_RGGB "CU_EGL_COLOR_FORMAT_BAYER_ISP_RGGB" = 0x44
    CU_EGL_COLOR_FORMAT_BAYER_ISP_BGGR "CU_EGL_COLOR_FORMAT_BAYER_ISP_BGGR" = 0x45
    CU_EGL_COLOR_FORMAT_BAYER_ISP_GRBG "CU_EGL_COLOR_FORMAT_BAYER_ISP_GRBG" = 0x46
    CU_EGL_COLOR_FORMAT_BAYER_ISP_GBRG "CU_EGL_COLOR_FORMAT_BAYER_ISP_GBRG" = 0x47
    CU_EGL_COLOR_FORMAT_BAYER_BCCR "CU_EGL_COLOR_FORMAT_BAYER_BCCR" = 0x48
    CU_EGL_COLOR_FORMAT_BAYER_RCCB "CU_EGL_COLOR_FORMAT_BAYER_RCCB" = 0x49
    CU_EGL_COLOR_FORMAT_BAYER_CRBC "CU_EGL_COLOR_FORMAT_BAYER_CRBC" = 0x4A
    CU_EGL_COLOR_FORMAT_BAYER_CBRC "CU_EGL_COLOR_FORMAT_BAYER_CBRC" = 0x4B
    CU_EGL_COLOR_FORMAT_BAYER10_CCCC "CU_EGL_COLOR_FORMAT_BAYER10_CCCC" = 0x4C
    CU_EGL_COLOR_FORMAT_BAYER12_BCCR "CU_EGL_COLOR_FORMAT_BAYER12_BCCR" = 0x4D
    CU_EGL_COLOR_FORMAT_BAYER12_RCCB "CU_EGL_COLOR_FORMAT_BAYER12_RCCB" = 0x4E
    CU_EGL_COLOR_FORMAT_BAYER12_CRBC "CU_EGL_COLOR_FORMAT_BAYER12_CRBC" = 0x4F
    CU_EGL_COLOR_FORMAT_BAYER12_CBRC "CU_EGL_COLOR_FORMAT_BAYER12_CBRC" = 0x50
    CU_EGL_COLOR_FORMAT_BAYER12_CCCC "CU_EGL_COLOR_FORMAT_BAYER12_CCCC" = 0x51
    CU_EGL_COLOR_FORMAT_Y "CU_EGL_COLOR_FORMAT_Y" = 0x52
    CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_2020 "CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_2020" = 0x53
    CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_2020 "CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_2020" = 0x54
    CU_EGL_COLOR_FORMAT_YUV420_PLANAR_2020 "CU_EGL_COLOR_FORMAT_YUV420_PLANAR_2020" = 0x55
    CU_EGL_COLOR_FORMAT_YVU420_PLANAR_2020 "CU_EGL_COLOR_FORMAT_YVU420_PLANAR_2020" = 0x56
    CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_709 "CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_709" = 0x57
    CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_709 "CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_709" = 0x58
    CU_EGL_COLOR_FORMAT_YUV420_PLANAR_709 "CU_EGL_COLOR_FORMAT_YUV420_PLANAR_709" = 0x59
    CU_EGL_COLOR_FORMAT_YVU420_PLANAR_709 "CU_EGL_COLOR_FORMAT_YVU420_PLANAR_709" = 0x5A
    CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_709 "CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_709" = 0x5B
    CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_2020 "CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_2020" = 0x5C
    CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR_2020 "CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR_2020" = 0x5D
    CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR "CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR" = 0x5E
    CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR_709 "CU_EGL_COLOR_FORMAT_Y10V10U10_422_SEMIPLANAR_709" = 0x5F
    CU_EGL_COLOR_FORMAT_Y_ER "CU_EGL_COLOR_FORMAT_Y_ER" = 0x60
    CU_EGL_COLOR_FORMAT_Y_709_ER "CU_EGL_COLOR_FORMAT_Y_709_ER" = 0x61
    CU_EGL_COLOR_FORMAT_Y10_ER "CU_EGL_COLOR_FORMAT_Y10_ER" = 0x62
    CU_EGL_COLOR_FORMAT_Y10_709_ER "CU_EGL_COLOR_FORMAT_Y10_709_ER" = 0x63
    CU_EGL_COLOR_FORMAT_Y12_ER "CU_EGL_COLOR_FORMAT_Y12_ER" = 0x64
    CU_EGL_COLOR_FORMAT_Y12_709_ER "CU_EGL_COLOR_FORMAT_Y12_709_ER" = 0x65
    CU_EGL_COLOR_FORMAT_YUVA "CU_EGL_COLOR_FORMAT_YUVA" = 0x66
    CU_EGL_COLOR_FORMAT_YUV "CU_EGL_COLOR_FORMAT_YUV" = 0x67
    CU_EGL_COLOR_FORMAT_YVYU "CU_EGL_COLOR_FORMAT_YVYU" = 0x68
    CU_EGL_COLOR_FORMAT_VYUY "CU_EGL_COLOR_FORMAT_VYUY" = 0x69
    CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_ER" = 0x6A
    CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_709_ER "CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR_709_ER" = 0x6B
    CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR_ER" = 0x6C
    CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR_709_ER "CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR_709_ER" = 0x6D
    CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR_ER" = 0x6E
    CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR_709_ER "CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR_709_ER" = 0x6F
    CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR_ER "CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR_ER" = 0x70
    CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR_709_ER "CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR_709_ER" = 0x71
    CU_EGL_COLOR_FORMAT_UYVY_709 "CU_EGL_COLOR_FORMAT_UYVY_709" = 0x72
    CU_EGL_COLOR_FORMAT_UYVY_709_ER "CU_EGL_COLOR_FORMAT_UYVY_709_ER" = 0x73
    CU_EGL_COLOR_FORMAT_UYVY_2020 "CU_EGL_COLOR_FORMAT_UYVY_2020" = 0x74
    CU_EGL_COLOR_FORMAT_MAX "CU_EGL_COLOR_FORMAT_MAX"
ctypedef CUeglColorFormat_enum CUeglColorFormat "CUeglColorFormat"

ctypedef enum CUGLmap_flags_enum "CUGLmap_flags_enum":
    CU_GL_MAP_RESOURCE_FLAGS_NONE "CU_GL_MAP_RESOURCE_FLAGS_NONE" = 0x00
    CU_GL_MAP_RESOURCE_FLAGS_READ_ONLY "CU_GL_MAP_RESOURCE_FLAGS_READ_ONLY" = 0x01
    CU_GL_MAP_RESOURCE_FLAGS_WRITE_DISCARD "CU_GL_MAP_RESOURCE_FLAGS_WRITE_DISCARD" = 0x02
ctypedef CUGLmap_flags_enum CUGLmap_flags "CUGLmap_flags"

ctypedef enum CUoutput_mode_enum "CUoutput_mode_enum":
    CU_OUT_KEY_VALUE_PAIR "CU_OUT_KEY_VALUE_PAIR" = 0x00
    CU_OUT_CSV "CU_OUT_CSV" = 0x01
ctypedef CUoutput_mode_enum CUoutput_mode "CUoutput_mode"

cdef extern from 'cuda.h':
    ctypedef enum CUatomicOperation_enum:
        CU_ATOMIC_OPERATION_INTEGER_ADD
        CU_ATOMIC_OPERATION_INTEGER_MIN
        CU_ATOMIC_OPERATION_INTEGER_MAX
        CU_ATOMIC_OPERATION_INTEGER_INCREMENT
        CU_ATOMIC_OPERATION_INTEGER_DECREMENT
        CU_ATOMIC_OPERATION_AND
        CU_ATOMIC_OPERATION_OR
        CU_ATOMIC_OPERATION_XOR
        CU_ATOMIC_OPERATION_EXCHANGE
        CU_ATOMIC_OPERATION_CAS
        CU_ATOMIC_OPERATION_FLOAT_ADD
        CU_ATOMIC_OPERATION_FLOAT_MIN
        CU_ATOMIC_OPERATION_FLOAT_MAX
        CU_ATOMIC_OPERATION_MAX
    ctypedef CUatomicOperation_enum CUatomicOperation

cdef extern from 'cuda.h':
    ctypedef enum CUatomicOperationCapability_enum:
        CU_ATOMIC_CAPABILITY_SIGNED
        CU_ATOMIC_CAPABILITY_UNSIGNED
        CU_ATOMIC_CAPABILITY_REDUCTION
        CU_ATOMIC_CAPABILITY_SCALAR_32
        CU_ATOMIC_CAPABILITY_SCALAR_64
        CU_ATOMIC_CAPABILITY_SCALAR_128
        CU_ATOMIC_CAPABILITY_VECTOR_32x4
    ctypedef CUatomicOperationCapability_enum CUatomicOperationCapability

cdef extern from 'cuda.h':
    ctypedef enum CUstreamAtomicReductionOpType_enum:
        CU_STREAM_ATOMIC_REDUCTION_OP_OR
        CU_STREAM_ATOMIC_REDUCTION_OP_AND
        CU_STREAM_ATOMIC_REDUCTION_OP_ADD
    ctypedef CUstreamAtomicReductionOpType_enum CUstreamAtomicReductionOpType

cdef extern from 'cuda.h':
    ctypedef enum CUstreamAtomicReductionDataType_enum:
        CU_STREAM_ATOMIC_REDUCTION_UNSIGNED_32
        CU_STREAM_ATOMIC_REDUCTION_UNSIGNED_64
    ctypedef CUstreamAtomicReductionDataType_enum CUstreamAtomicReductionDataType

cdef extern from 'cuda.h':
    ctypedef enum CUdevSmResourceGroup_flags "CUdevSmResourceGroup_flags":
        CU_DEV_SM_RESOURCE_GROUP_DEFAULT
        CU_DEV_SM_RESOURCE_GROUP_BACKFILL
        CU_DEV_SM_RESOURCE_GROUP_LOCALITY_DOMAIN_ID

cdef extern from 'cuda.h':
    ctypedef enum CUdevSmResourceSplitByCount_flags "CUdevSmResourceSplitByCount_flags":
        CU_DEV_SM_RESOURCE_SPLIT_IGNORE_SM_COSCHEDULING
        CU_DEV_SM_RESOURCE_SPLIT_MAX_POTENTIAL_CLUSTER_SIZE

cdef extern from 'cuda.h':
    ctypedef enum CUdevWorkqueueConfigScope "CUdevWorkqueueConfigScope":
        CU_WORKQUEUE_SCOPE_DEVICE_CTX
        CU_WORKQUEUE_SCOPE_GREEN_CTX_BALANCED

cdef extern from 'cuda.h':
    ctypedef enum CUhostTaskSyncMode_enum:
        CU_HOST_TASK_BLOCKING
        CU_HOST_TASK_SPINWAIT
    ctypedef CUhostTaskSyncMode_enum CUhostTaskSyncMode

cdef extern from 'cuda.h':
    ctypedef enum CUlaunchAttributePortableClusterMode_enum:
        CU_LAUNCH_PORTABLE_CLUSTER_MODE_DEFAULT
        CU_LAUNCH_PORTABLE_CLUSTER_MODE_REQUIRE_PORTABLE
        CU_LAUNCH_PORTABLE_CLUSTER_MODE_ALLOW_NON_PORTABLE
    ctypedef CUlaunchAttributePortableClusterMode_enum CUlaunchAttributePortableClusterMode

cdef extern from 'cuda.h':
    ctypedef enum CUsharedMemoryMode_enum:
        CU_SHARED_MEMORY_MODE_DEFAULT
        CU_SHARED_MEMORY_MODE_REQUIRE_PORTABLE
        CU_SHARED_MEMORY_MODE_ALLOW_NON_PORTABLE
        CU_SHARED_MEMORY_MODE_ALLOW_OVERSIZED_SHARED_MEMORY
        CU_SHARED_MEMORY_MODE_PREFER_OVERSIZED_SHARED_MEMORY
    ctypedef CUsharedMemoryMode_enum CUsharedMemoryMode

cdef extern from 'cuda.h':
    ctypedef enum CUstreamCigDataType_enum:
        STREAM_CIG_DATA_TYPE_D3D12_COMMAND_LIST
    ctypedef CUstreamCigDataType_enum CUstreamCigDataType

cdef extern from 'cuda.h':
    ctypedef enum CUlogicalEndpointIpcHandleType_enum:
        CU_LOGICAL_ENDPOINT_IPC_HANDLE_TYPE_NONE
        CU_LOGICAL_ENDPOINT_IPC_HANDLE_TYPE_FABRIC
    ctypedef CUlogicalEndpointIpcHandleType_enum CUlogicalEndpointIpcHandleType

cdef extern from 'cuda.h':
    ctypedef enum CUlogicalEndpointType_enum:
        CU_LOGICAL_ENDPOINT_TYPE_INVALID
        CU_LOGICAL_ENDPOINT_TYPE_UNICAST
        CU_LOGICAL_ENDPOINT_TYPE_MULTICAST
    ctypedef CUlogicalEndpointType_enum CUlogicalEndpointType

cdef extern from 'cuda.h':
    ctypedef enum CUlogicalEndpointFlag_enum:
        CU_LOGICAL_ENDPOINT_FLAG_NONE
        CU_LOGICAL_ENDPOINT_FLAG_COUNTED_OPS
    ctypedef CUlogicalEndpointFlag_enum CUlogicalEndpointFlag

cdef extern from 'cuda.h':
    ctypedef enum CUgraphRecaptureStatus_enum:
        CU_GRAPH_RECAPTURE_ELIGIBLE_FOR_UPDATE
        CU_GRAPH_RECAPTURE_INELIGIBLE_FOR_UPDATE
        CU_GRAPH_RECAPTURE_ERROR
    ctypedef CUgraphRecaptureStatus_enum CUgraphRecaptureStatus

cdef extern from 'cuda.h':
    ctypedef enum CUcliqueType_enum:
        CU_CLIQUE_TYPE_UNICAST_POINTER
        CU_CLIQUE_TYPE_MULTICAST_POINTER
        CU_CLIQUE_TYPE_UNICAST_LOGICAL_ENDPOINT
        CU_CLIQUE_TYPE_MULTICAST_LOGICAL_ENDPOINT
    ctypedef CUcliqueType_enum CUcliqueType
cdef enum: _CURESULT_INTERNAL_LOADING_ERROR = CUresult.CUDA_ERROR_NOT_FOUND
cdef enum: CUDA_VERSION = 13040


# TYPES
cdef extern from 'cuda.h':
    ctypedef uint32_t cuuint32_t 'cuuint32_t'


cdef extern from 'cuda.h':
    ctypedef uint64_t cuuint64_t 'cuuint64_t'


cdef extern from 'cuda.h':
    ctypedef unsigned long long CUdeviceptr_v2 'CUdeviceptr_v2'


cdef extern from 'cuda.h':
    ctypedef int CUdevice_v1 'CUdevice_v1'


cdef extern from 'cuda.h':
    ctypedef unsigned long long CUtexObject_v1 'CUtexObject_v1'


cdef extern from 'cuda.h':
    ctypedef unsigned long long CUsurfObject_v1 'CUsurfObject_v1'


cdef extern from 'cuda.h':
    cdef struct CUmemFabricHandle_st:
        unsigned char data[64]
    ctypedef CUmemFabricHandle_st CUmemFabricHandle_v1

cdef extern from 'cuda.h':
    cdef struct CUipcEventHandle_st:
        char reserved[64]
    ctypedef CUipcEventHandle_st CUipcEventHandle_v1

cdef extern from 'cuda.h':
    cdef struct CUipcMemHandle_st:
        char reserved[64]
    ctypedef CUipcMemHandle_st CUipcMemHandle_v1

cdef extern from 'cuda.h':
    cdef struct CUdevprop_st:
        int maxThreadsPerBlock
        int maxThreadsDim[3]
        int maxGridSize[3]
        int sharedMemPerBlock
        int totalConstantMemory
        int SIMDWidth
        int memPitch
        int regsPerBlock
        int clockRate
        int textureAlign
    ctypedef CUdevprop_st CUdevprop_v1

cdef extern from 'cuda.h':
    cdef struct CUaccessPolicyWindow_st:
        void* base_ptr
        size_t num_bytes
        float hitRatio
        CUaccessProperty hitProp
        CUaccessProperty missProp
    ctypedef CUaccessPolicyWindow_st CUaccessPolicyWindow_v1

cdef extern from 'cuda.h':
    ctypedef CUlaunchAttributeID CUkernelNodeAttrID 'CUkernelNodeAttrID'


cdef extern from 'cuda.h':
    ctypedef CUlaunchAttributeID CUstreamAttrID 'CUstreamAttrID'


cdef extern from 'cuda.h':
    cdef struct CUexecAffinitySmCount_st:
        unsigned int val
    ctypedef CUexecAffinitySmCount_st CUexecAffinitySmCount_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_ARRAY_DESCRIPTOR_st:
        size_t Width
        size_t Height
        CUarray_format Format
        unsigned int NumChannels
    ctypedef CUDA_ARRAY_DESCRIPTOR_st CUDA_ARRAY_DESCRIPTOR_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_ARRAY3D_DESCRIPTOR_st:
        size_t Width
        size_t Height
        size_t Depth
        CUarray_format Format
        unsigned int NumChannels
        unsigned int Flags
    ctypedef CUDA_ARRAY3D_DESCRIPTOR_st CUDA_ARRAY3D_DESCRIPTOR_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_ARRAY_MEMORY_REQUIREMENTS_st:
        size_t size
        size_t alignment
        unsigned int reserved[4]
    ctypedef CUDA_ARRAY_MEMORY_REQUIREMENTS_st CUDA_ARRAY_MEMORY_REQUIREMENTS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_TEXTURE_DESC_st:
        CUaddress_mode addressMode[3]
        CUfilter_mode filterMode
        unsigned int flags
        unsigned int maxAnisotropy
        CUfilter_mode mipmapFilterMode
        float mipmapLevelBias
        float minMipmapLevelClamp
        float maxMipmapLevelClamp
        float borderColor[4]
        int reserved[12]
    ctypedef CUDA_TEXTURE_DESC_st CUDA_TEXTURE_DESC_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_RESOURCE_VIEW_DESC_st:
        CUresourceViewFormat format
        size_t width
        size_t height
        size_t depth
        unsigned int firstMipmapLevel
        unsigned int lastMipmapLevel
        unsigned int firstLayer
        unsigned int lastLayer
        unsigned int reserved[16]
    ctypedef CUDA_RESOURCE_VIEW_DESC_st CUDA_RESOURCE_VIEW_DESC_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st:
        unsigned long long p2pToken
        unsigned int vaSpaceToken
    ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_st CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st:
        unsigned long long offset
        unsigned long long size
        unsigned int flags
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1

cdef extern from 'cuda.h':
    ctypedef unsigned long long CUmemGenericAllocationHandle_v1 'CUmemGenericAllocationHandle_v1'


cdef extern from 'cuda.h':
    cdef struct CUmulticastObjectProp_st:
        unsigned int numDevices
        size_t size
        unsigned long long handleTypes
        unsigned long long flags
    ctypedef CUmulticastObjectProp_st CUmulticastObjectProp_v1

cdef extern from 'cuda.h':
    cdef struct CUmemPoolPtrExportData_st:
        unsigned char reserved[64]
    ctypedef CUmemPoolPtrExportData_st CUmemPoolPtrExportData_v1

cdef extern from 'cuda.h':
    cdef struct CUoffset3D_st:
        size_t x
        size_t y
        size_t z
    ctypedef CUoffset3D_st CUoffset3D_v1

cdef extern from 'cuda.h':
    cdef struct CUextent3D_st:
        size_t width
        size_t height
        size_t depth
    ctypedef CUextent3D_st CUextent3D_v1

cdef extern from 'cuda.h':
    ctypedef unsigned int CUlogIterator 'CUlogIterator'


cdef extern from 'cuda.h':
    ctypedef struct CUctx_st:
        pass
    ctypedef CUctx_st* CUcontext 'CUcontext'


cdef extern from 'cuda.h':
    ctypedef struct CUmod_st:
        pass
    ctypedef CUmod_st* CUmodule 'CUmodule'


cdef extern from 'cuda.h':
    ctypedef struct CUfunc_st:
        pass
    ctypedef CUfunc_st* CUfunction 'CUfunction'


cdef extern from 'cuda.h':
    ctypedef struct CUlib_st:
        pass
    ctypedef CUlib_st* CUlibrary 'CUlibrary'


cdef extern from 'cuda.h':
    ctypedef struct CUkern_st:
        pass
    ctypedef CUkern_st* CUkernel 'CUkernel'


cdef extern from 'cuda.h':
    ctypedef struct CUarray_st:
        pass
    ctypedef CUarray_st* CUarray 'CUarray'


cdef extern from 'cuda.h':
    ctypedef struct CUmipmappedArray_st:
        pass
    ctypedef CUmipmappedArray_st* CUmipmappedArray 'CUmipmappedArray'


cdef extern from 'cuda.h':
    ctypedef struct CUtexref_st:
        pass
    ctypedef CUtexref_st* CUtexref 'CUtexref'


cdef extern from 'cuda.h':
    ctypedef struct CUsurfref_st:
        pass
    ctypedef CUsurfref_st* CUsurfref 'CUsurfref'


cdef extern from 'cuda.h':
    ctypedef struct CUevent_st:
        pass
    ctypedef CUevent_st* CUevent 'CUevent'


cdef extern from 'cuda.h':
    ctypedef struct CUstream_st:
        pass
    ctypedef CUstream_st* CUstream 'CUstream'


cdef extern from 'cuda.h':
    ctypedef struct CUgraphicsResource_st:
        pass
    ctypedef CUgraphicsResource_st* CUgraphicsResource 'CUgraphicsResource'


cdef extern from 'cuda.h':
    ctypedef struct CUextMemory_st:
        pass
    ctypedef CUextMemory_st* CUexternalMemory 'CUexternalMemory'


cdef extern from 'cuda.h':
    ctypedef struct CUextSemaphore_st:
        pass
    ctypedef CUextSemaphore_st* CUexternalSemaphore 'CUexternalSemaphore'


cdef extern from 'cuda.h':
    ctypedef struct CUgraph_st:
        pass
    ctypedef CUgraph_st* CUgraph 'CUgraph'


cdef extern from 'cuda.h':
    ctypedef struct CUgraphNode_st:
        pass
    ctypedef CUgraphNode_st* CUgraphNode 'CUgraphNode'


cdef extern from 'cuda.h':
    ctypedef struct CUgraphExec_st:
        pass
    ctypedef CUgraphExec_st* CUgraphExec 'CUgraphExec'


cdef extern from 'cuda.h':
    ctypedef struct CUmemPoolHandle_st:
        pass
    ctypedef CUmemPoolHandle_st* CUmemoryPool 'CUmemoryPool'


cdef extern from 'cuda.h':
    ctypedef struct CUuserObject_st:
        pass
    ctypedef CUuserObject_st* CUuserObject 'CUuserObject'


cdef extern from 'cuda.h':
    ctypedef struct CUgraphDeviceUpdatableNode_st:
        pass
    ctypedef CUgraphDeviceUpdatableNode_st* CUgraphDeviceNode 'CUgraphDeviceNode'


cdef extern from 'cuda.h':
    ctypedef struct CUasyncCallbackEntry_st:
        pass
    ctypedef CUasyncCallbackEntry_st* CUasyncCallbackHandle 'CUasyncCallbackHandle'


cdef extern from 'cuda.h':
    ctypedef struct CUgreenCtx_st:
        pass
    ctypedef CUgreenCtx_st* CUgreenCtx 'CUgreenCtx'


cdef extern from 'cuda.h':
    ctypedef struct CUlinkState_st:
        pass
    ctypedef CUlinkState_st* CUlinkState 'CUlinkState'


cdef extern from 'cuda.h':
    ctypedef struct CUdevResourceDesc_st:
        pass
    ctypedef CUdevResourceDesc_st* CUdevResourceDesc 'CUdevResourceDesc'


cdef extern from 'cuda.h':
    ctypedef struct CUlogsCallbackEntry_st:
        pass
    ctypedef CUlogsCallbackEntry_st* CUlogsCallbackHandle 'CUlogsCallbackHandle'


cdef extern from 'cuda.h':
    ctypedef struct CUcoredumpCallbackEntry_st:
        pass
    ctypedef CUcoredumpCallbackEntry_st* CUcoredumpCallbackHandle 'CUcoredumpCallbackHandle'


cdef extern from 'cuda.h':
    ctypedef struct CUIcheckpointOperation_st:
        pass
    ctypedef CUIcheckpointOperation_st* CUcheckpointOperationHandle 'CUcheckpointOperationHandle'


cdef extern from 'cuda.h':
    cdef struct CUuuid_st:
        char bytes[16]
    ctypedef CUuuid_st CUuuid

cdef extern from 'cuda.h':
    ctypedef struct CUstreamMemOpFlushRemoteWritesParams_st 'CUstreamMemOpFlushRemoteWritesParams_st':
        CUstreamBatchMemOpType operation
        unsigned int flags

cdef extern from 'cuda.h':
    ctypedef struct CUstreamMemOpMemoryBarrierParams_st 'CUstreamMemOpMemoryBarrierParams_st':
        CUstreamBatchMemOpType operation
        unsigned int flags

cdef struct cuda_bindings_driver__anon_pod3:
    unsigned long long bytesOverBudget

cdef extern from 'cuda.h':
    ctypedef void (*CUhostFn 'CUhostFn')(
        void* userData
    )


cdef extern from 'cuda.h':
    cdef struct CUgraphEdgeData_st:
        unsigned char from_port
        unsigned char to_port
        unsigned char type
        unsigned char reserved[5]
    ctypedef CUgraphEdgeData_st CUgraphEdgeData

cdef extern from 'cuda.h':
    cdef struct CUlaunchMemSyncDomainMap_st:
        unsigned char default_
        unsigned char remote
    ctypedef CUlaunchMemSyncDomainMap_st CUlaunchMemSyncDomainMap

cdef struct cuda_bindings_driver__anon_pod5:
    unsigned int x
    unsigned int y
    unsigned int z

cdef struct cuda_bindings_driver__anon_pod8:
    unsigned int x
    unsigned int y
    unsigned int z

cdef extern from 'cuda.h':
    cdef struct CUctxCigParam_st:
        CUcigDataType sharedDataType
        void* sharedData
    ctypedef CUctxCigParam_st CUctxCigParam

cdef extern from 'cuda.h':
    cdef struct CUlibraryHostUniversalFunctionAndDataTable_st:
        void* functionTable
        size_t functionWindowSize
        void* dataTable
        size_t dataWindowSize
    ctypedef CUlibraryHostUniversalFunctionAndDataTable_st CUlibraryHostUniversalFunctionAndDataTable

cdef struct cuda_bindings_driver__anon_pod11:
    unsigned int width
    unsigned int height
    unsigned int depth

cdef struct cuda_bindings_driver__anon_pod17:
    int reserved[32]

cdef struct cuda_bindings_driver__anon_pod19:
    void* handle
    void* name

cdef struct cuda_bindings_driver__anon_pod21:
    void* handle
    void* name

cdef struct cuda_bindings_driver__anon_pod23:
    unsigned long long value

cdef union cuda_bindings_driver__anon_pod24:
    void* fence
    unsigned long long reserved

cdef struct cuda_bindings_driver__anon_pod25:
    unsigned long long key

cdef struct cuda_bindings_driver__anon_pod27:
    unsigned long long value

cdef union cuda_bindings_driver__anon_pod28:
    void* fence
    unsigned long long reserved

cdef struct cuda_bindings_driver__anon_pod29:
    unsigned long long key
    unsigned int timeoutMs

cdef struct cuda_bindings_driver__anon_pod34:
    unsigned int level
    unsigned int layer
    unsigned int offsetX
    unsigned int offsetY
    unsigned int offsetZ
    unsigned int extentWidth
    unsigned int extentHeight
    unsigned int extentDepth

cdef struct cuda_bindings_driver__anon_pod35:
    unsigned int layer
    unsigned long long offset
    unsigned long long size

cdef struct cuda_bindings_driver__anon_pod38:
    unsigned char deviceId
    unsigned char localityDomainId

cdef struct cuda_bindings_driver__anon_pod39:
    unsigned char compressionType
    unsigned char gpuDirectRDMACapable
    unsigned short usage
    unsigned char reserved[4]

cdef extern from 'cuda.h':
    cdef struct CUdevSmResource_st:
        unsigned int smCount
        unsigned int minSmPartitionSize
        unsigned int smCoscheduledAlignment
        unsigned int flags
        unsigned int localityDomainId
    ctypedef CUdevSmResource_st CUdevSmResource

cdef extern from 'cuda.h':
    cdef struct CUdevWorkqueueResource_st:
        unsigned char reserved[40]
    ctypedef CUdevWorkqueueResource_st CUdevWorkqueueResource

cdef extern from 'cuda.h':
    cdef struct CU_DEV_SM_RESOURCE_GROUP_PARAMS_st:
        unsigned int smCount
        unsigned int coscheduledSmCount
        unsigned int preferredCoscheduledSmCount
        unsigned int flags
        unsigned int localityDomainId
        unsigned int reserved[11]
    ctypedef CU_DEV_SM_RESOURCE_GROUP_PARAMS_st CU_DEV_SM_RESOURCE_GROUP_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUstreamCigParam_st:
        CUstreamCigDataType streamSharedDataType
        void* streamSharedData
    ctypedef CUstreamCigParam_st CUstreamCigParam

cdef extern from 'cuda.h':
    cdef struct CUlogicalEndpointFabricHandle_st:
        unsigned char data[64]
    ctypedef CUlogicalEndpointFabricHandle_st CUlogicalEndpointFabricHandle

cdef struct cuda_bindings_driver__anon_pod48:
    unsigned int numDevices

cdef extern from 'cuda.h':
    cdef struct CUcliqueInfo_st:
        CUcliqueType type
        unsigned int id
    ctypedef CUcliqueInfo_st CUcliqueInfo

cdef extern from 'cuda.h':
    ctypedef size_t (*CUoccupancyB2DSize 'CUoccupancyB2DSize')(
        int blockSize
    )


cdef extern from 'cuda.h':
    ctypedef void (*CUlogsCallback 'CUlogsCallback')(
        void* data,
        CUlogLevel logLevel,
        char* message,
        size_t length
    )


cdef extern from 'cuda.h':
    ctypedef cuuint32_t CUlogicalEndpointId 'CUlogicalEndpointId'


cdef extern from 'cuda.h':
    cdef struct CUmemDecompressParams_st:
        size_t srcNumBytes
        size_t dstNumBytes
        cuuint32_t* dstActBytes
        void* src
        void* dst
        CUmemDecompressAlgorithm algo
        unsigned char padding[20]
    ctypedef CUmemDecompressParams_st CUmemDecompressParams

cdef extern from 'cuda.h':
    ctypedef cuuint64_t CUgraphConditionalHandle 'CUgraphConditionalHandle'


cdef extern from 'cuda.h':
    cdef struct CUtensorMap_st:
        cuuint64_t opaque[16]
    ctypedef CUtensorMap_st CUtensorMap

cdef extern from 'cuda.h':
    cdef struct CUcheckpointLockArgs_st:
        unsigned int timeoutMs
        unsigned int reserved0
        cuuint64_t reserved1[7]
    ctypedef CUcheckpointLockArgs_st CUcheckpointLockArgs

cdef extern from 'cuda.h':
    cdef struct CUcheckpointUnlockArgs_st:
        cuuint64_t reserved[8]
    ctypedef CUcheckpointUnlockArgs_st CUcheckpointUnlockArgs

cdef extern from 'cuda.h':
    ctypedef CUdeviceptr_v2 CUdeviceptr 'CUdeviceptr'


cdef extern from 'cuda.h':
    ctypedef CUdevice_v1 CUdevice 'CUdevice'


cdef extern from 'cuda.h':
    ctypedef CUtexObject_v1 CUtexObject 'CUtexObject'


cdef extern from 'cuda.h':
    ctypedef CUsurfObject_v1 CUsurfObject 'CUsurfObject'


cdef extern from 'cuda.h':
    ctypedef CUmemFabricHandle_v1 CUmemFabricHandle 'CUmemFabricHandle'


cdef extern from 'cuda.h':
    ctypedef CUipcEventHandle_v1 CUipcEventHandle 'CUipcEventHandle'


cdef extern from 'cuda.h':
    ctypedef CUipcMemHandle_v1 CUipcMemHandle 'CUipcMemHandle'


cdef extern from 'cuda.h':
    ctypedef CUdevprop_v1 CUdevprop 'CUdevprop'


cdef extern from 'cuda.h':
    ctypedef CUaccessPolicyWindow_v1 CUaccessPolicyWindow 'CUaccessPolicyWindow'


cdef extern from 'cuda.h':
    ctypedef CUexecAffinitySmCount_v1 CUexecAffinitySmCount 'CUexecAffinitySmCount'


cdef extern from 'cuda.h':
    ctypedef CUDA_ARRAY_DESCRIPTOR_v2 CUDA_ARRAY_DESCRIPTOR 'CUDA_ARRAY_DESCRIPTOR'


cdef extern from 'cuda.h':
    ctypedef CUDA_ARRAY3D_DESCRIPTOR_v2 CUDA_ARRAY3D_DESCRIPTOR 'CUDA_ARRAY3D_DESCRIPTOR'


cdef extern from 'cuda.h':
    ctypedef CUDA_ARRAY_MEMORY_REQUIREMENTS_v1 CUDA_ARRAY_MEMORY_REQUIREMENTS 'CUDA_ARRAY_MEMORY_REQUIREMENTS'


cdef extern from 'cuda.h':
    ctypedef CUDA_TEXTURE_DESC_v1 CUDA_TEXTURE_DESC 'CUDA_TEXTURE_DESC'


cdef extern from 'cuda.h':
    ctypedef CUDA_RESOURCE_VIEW_DESC_v1 CUDA_RESOURCE_VIEW_DESC 'CUDA_RESOURCE_VIEW_DESC'


cdef extern from 'cuda.h':
    ctypedef CUDA_POINTER_ATTRIBUTE_P2P_TOKENS_v1 CUDA_POINTER_ATTRIBUTE_P2P_TOKENS 'CUDA_POINTER_ATTRIBUTE_P2P_TOKENS'


cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 CUDA_EXTERNAL_MEMORY_BUFFER_DESC 'CUDA_EXTERNAL_MEMORY_BUFFER_DESC'


cdef extern from 'cuda.h':
    ctypedef CUmemGenericAllocationHandle_v1 CUmemGenericAllocationHandle 'CUmemGenericAllocationHandle'


cdef extern from 'cuda.h':
    ctypedef CUmulticastObjectProp_v1 CUmulticastObjectProp 'CUmulticastObjectProp'


cdef extern from 'cuda.h':
    ctypedef CUmemPoolPtrExportData_v1 CUmemPoolPtrExportData 'CUmemPoolPtrExportData'


cdef extern from 'cuda.h':
    ctypedef CUoffset3D_v1 CUoffset3D 'CUoffset3D'


cdef extern from 'cuda.h':
    ctypedef CUextent3D_v1 CUextent3D 'CUextent3D'


cdef extern from 'cuda.h':
    cdef struct CUDA_KERNEL_NODE_PARAMS_st:
        CUfunction func
        unsigned int gridDimX
        unsigned int gridDimY
        unsigned int gridDimZ
        unsigned int blockDimX
        unsigned int blockDimY
        unsigned int blockDimZ
        unsigned int sharedMemBytes
        void** kernelParams
        void** extra
    ctypedef CUDA_KERNEL_NODE_PARAMS_st CUDA_KERNEL_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_KERNEL_NODE_PARAMS_v2_st:
        CUfunction func
        unsigned int gridDimX
        unsigned int gridDimY
        unsigned int gridDimZ
        unsigned int blockDimX
        unsigned int blockDimY
        unsigned int blockDimZ
        unsigned int sharedMemBytes
        void** kernelParams
        void** extra
        CUkernel kern
        CUcontext ctx
    ctypedef CUDA_KERNEL_NODE_PARAMS_v2_st CUDA_KERNEL_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_KERNEL_NODE_PARAMS_v3_st:
        CUfunction func
        unsigned int gridDimX
        unsigned int gridDimY
        unsigned int gridDimZ
        unsigned int blockDimX
        unsigned int blockDimY
        unsigned int blockDimZ
        unsigned int sharedMemBytes
        void** kernelParams
        void** extra
        CUkernel kern
        CUcontext ctx
    ctypedef CUDA_KERNEL_NODE_PARAMS_v3_st CUDA_KERNEL_NODE_PARAMS_v3

cdef struct cuda_bindings_driver__anon_pod13:
    CUarray hArray

cdef struct cuda_bindings_driver__anon_pod14:
    CUmipmappedArray hMipmappedArray

cdef union cuda_bindings_driver__anon_pod32:
    CUmipmappedArray mipmap
    CUarray array

cdef struct cuda_bindings_driver__anon_pod6:
    CUevent event
    int flags
    int triggerAtBlockStart

cdef struct cuda_bindings_driver__anon_pod7:
    CUevent event
    int flags

cdef extern from 'cuda.h':
    cdef struct CUDA_EVENT_WAIT_NODE_PARAMS_st:
        CUevent event
    ctypedef CUDA_EVENT_WAIT_NODE_PARAMS_st CUDA_EVENT_WAIT_NODE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUDA_LAUNCH_PARAMS_st:
        CUfunction function
        unsigned int gridDimX
        unsigned int gridDimY
        unsigned int gridDimZ
        unsigned int blockDimX
        unsigned int blockDimY
        unsigned int blockDimZ
        unsigned int sharedMemBytes
        CUstream hStream
        void** kernelParams
    ctypedef CUDA_LAUNCH_PARAMS_st CUDA_LAUNCH_PARAMS_v1

cdef extern from 'cuda.h':
    ctypedef void (*CUstreamCallback 'CUstreamCallback')(
        CUstream hStream,
        CUresult status,
        void* userData
    )


cdef extern from 'cuda.h':
    cdef struct CUDA_CHILD_GRAPH_NODE_PARAMS_st:
        CUgraph graph
        CUgraphChildGraphNodeOwnership ownership
    ctypedef CUDA_CHILD_GRAPH_NODE_PARAMS_st CUDA_CHILD_GRAPH_NODE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUDA_GRAPH_INSTANTIATE_PARAMS_st:
        cuuint64_t flags
        CUstream hUploadStream
        CUgraphNode hErrNode_out
        CUgraphInstantiateResult result_out
    ctypedef CUDA_GRAPH_INSTANTIATE_PARAMS_st CUDA_GRAPH_INSTANTIATE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUgraphExecUpdateResultInfo_st:
        CUgraphExecUpdateResult result
        CUgraphNode errorNode
        CUgraphNode errorFromNode
    ctypedef CUgraphExecUpdateResultInfo_st CUgraphExecUpdateResultInfo_v1

cdef struct cuda_bindings_driver__anon_pod9:
    int deviceUpdatable
    CUgraphDeviceNode devNode

cdef extern from 'cuda.h':
    cdef struct CUcheckpointGpuPair_st:
        CUuuid oldUuid
        CUuuid newUuid
    ctypedef CUcheckpointGpuPair_st CUcheckpointGpuPair

cdef union cuda_bindings_driver__anon_pod2:
    cuda_bindings_driver__anon_pod3 overBudget

cdef extern from 'cuda.h':
    cdef struct CUDA_HOST_NODE_PARAMS_st:
        CUhostFn fn
        void* userData
    ctypedef CUDA_HOST_NODE_PARAMS_st CUDA_HOST_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_ARRAY_SPARSE_PROPERTIES_st:
        cuda_bindings_driver__anon_pod11 tileExtent
        unsigned int miptailFirstLevel
        unsigned long long miptailSize
        unsigned int flags
        unsigned int reserved[4]
    ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_st CUDA_ARRAY_SPARSE_PROPERTIES_v1

cdef union cuda_bindings_driver__anon_pod18:
    int fd
    cuda_bindings_driver__anon_pod19 win32
    void* nvSciBufObject

cdef union cuda_bindings_driver__anon_pod20:
    int fd
    cuda_bindings_driver__anon_pod21 win32
    void* nvSciSyncObj

cdef struct cuda_bindings_driver__anon_pod22:
    cuda_bindings_driver__anon_pod23 fence
    cuda_bindings_driver__anon_pod24 nvSciSync
    cuda_bindings_driver__anon_pod25 keyedMutex
    unsigned int reserved[12]

cdef struct cuda_bindings_driver__anon_pod26:
    cuda_bindings_driver__anon_pod27 fence
    cuda_bindings_driver__anon_pod28 nvSciSync
    cuda_bindings_driver__anon_pod29 keyedMutex
    unsigned int reserved[10]

cdef union cuda_bindings_driver__anon_pod33:
    cuda_bindings_driver__anon_pod34 sparseLevel
    cuda_bindings_driver__anon_pod35 miptail

cdef extern from 'cuda.h':
    cdef struct CUstreamCigCaptureParams_st:
        CUstreamCigParam* streamCigParams
    ctypedef CUstreamCigCaptureParams_st CUstreamCigCaptureParams

cdef extern from 'cuda.h':
    ctypedef struct CUDA_CONDITIONAL_NODE_PARAMS 'CUDA_CONDITIONAL_NODE_PARAMS':
        CUgraphConditionalHandle handle
        CUgraphConditionalNodeType type
        unsigned int size
        CUgraph* phGraph_out
        CUcontext ctx

cdef extern from 'cuda.h':
    ctypedef struct CUstreamMemOpWaitValueParams_st 'CUstreamMemOpWaitValueParams_st':
        CUstreamBatchMemOpType operation
        CUdeviceptr address
        cuuint32_t value
        cuuint64_t value64
        unsigned int flags
        CUdeviceptr alias

cdef extern from 'cuda.h':
    ctypedef struct CUstreamMemOpWriteValueParams_st 'CUstreamMemOpWriteValueParams_st':
        CUstreamBatchMemOpType operation
        CUdeviceptr address
        cuuint32_t value
        cuuint64_t value64
        unsigned int flags
        CUdeviceptr alias

cdef extern from 'cuda.h':
    ctypedef struct CUstreamMemOpAtomicReductionParams_st 'CUstreamMemOpAtomicReductionParams_st':
        CUstreamBatchMemOpType operation
        unsigned int flags
        CUstreamAtomicReductionOpType reductionOp
        CUstreamAtomicReductionDataType dataType
        CUdeviceptr address
        cuuint64_t value
        CUdeviceptr alias

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMSET_NODE_PARAMS_st:
        CUdeviceptr dst
        size_t pitch
        unsigned int value
        unsigned int elementSize
        size_t width
        size_t height
    ctypedef CUDA_MEMSET_NODE_PARAMS_st CUDA_MEMSET_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMSET_NODE_PARAMS_v2_st:
        CUdeviceptr dst
        size_t pitch
        unsigned int value
        unsigned int elementSize
        size_t width
        size_t height
        CUcontext ctx
    ctypedef CUDA_MEMSET_NODE_PARAMS_v2_st CUDA_MEMSET_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMCPY2D_st:
        size_t srcXInBytes
        size_t srcY
        CUmemorytype srcMemoryType
        void* srcHost
        CUdeviceptr srcDevice
        CUarray srcArray
        size_t srcPitch
        size_t dstXInBytes
        size_t dstY
        CUmemorytype dstMemoryType
        void* dstHost
        CUdeviceptr dstDevice
        CUarray dstArray
        size_t dstPitch
        size_t WidthInBytes
        size_t Height
    ctypedef CUDA_MEMCPY2D_st CUDA_MEMCPY2D_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMCPY3D_st:
        size_t srcXInBytes
        size_t srcY
        size_t srcZ
        size_t srcLOD
        CUmemorytype srcMemoryType
        void* srcHost
        CUdeviceptr srcDevice
        CUarray srcArray
        void* reserved0
        size_t srcPitch
        size_t srcHeight
        size_t dstXInBytes
        size_t dstY
        size_t dstZ
        size_t dstLOD
        CUmemorytype dstMemoryType
        void* dstHost
        CUdeviceptr dstDevice
        CUarray dstArray
        void* reserved1
        size_t dstPitch
        size_t dstHeight
        size_t WidthInBytes
        size_t Height
        size_t Depth
    ctypedef CUDA_MEMCPY3D_st CUDA_MEMCPY3D_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMCPY3D_PEER_st:
        size_t srcXInBytes
        size_t srcY
        size_t srcZ
        size_t srcLOD
        CUmemorytype srcMemoryType
        void* srcHost
        CUdeviceptr srcDevice
        CUarray srcArray
        CUcontext srcContext
        size_t srcPitch
        size_t srcHeight
        size_t dstXInBytes
        size_t dstY
        size_t dstZ
        size_t dstLOD
        CUmemorytype dstMemoryType
        void* dstHost
        CUdeviceptr dstDevice
        CUarray dstArray
        CUcontext dstContext
        size_t dstPitch
        size_t dstHeight
        size_t WidthInBytes
        size_t Height
        size_t Depth
    ctypedef CUDA_MEMCPY3D_PEER_st CUDA_MEMCPY3D_PEER_v1

cdef struct cuda_bindings_driver__anon_pod15:
    CUdeviceptr devPtr
    CUarray_format format
    unsigned int numChannels
    size_t sizeInBytes

cdef struct cuda_bindings_driver__anon_pod16:
    CUdeviceptr devPtr
    CUarray_format format
    unsigned int numChannels
    size_t width
    size_t height
    size_t pitchInBytes

cdef extern from 'cuda.h':
    cdef struct CUDA_MEM_FREE_NODE_PARAMS_st:
        CUdeviceptr dptr
    ctypedef CUDA_MEM_FREE_NODE_PARAMS_st CUDA_MEM_FREE_NODE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUcheckpointCustomStoragePerDeviceData_st:
        CUdeviceptr devPtr
        size_t size
        CUstream stream
    ctypedef CUcheckpointCustomStoragePerDeviceData_st CUcheckpointCustomStoragePerDeviceData

cdef extern from 'cuda.h':
    cdef struct CUdevWorkqueueConfigResource_st:
        CUdevice device
        unsigned int wqConcurrencyLimit
        CUdevWorkqueueConfigScope sharingScope
    ctypedef CUdevWorkqueueConfigResource_st CUdevWorkqueueConfigResource

cdef struct cuda_bindings_driver__anon_pod47:
    CUdevice device

cdef extern from 'cuda.h':
    ctypedef void (*CUcoredumpStatusCallback 'CUcoredumpStatusCallback')(
        void* userData,
        int pid,
        CUdevice dev
    )


cdef union cuda_bindings_driver__anon_pod10:
    CUexecAffinitySmCount smCount

cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st:
        unsigned long long offset
        CUDA_ARRAY3D_DESCRIPTOR arrayDesc
        unsigned int numLevels
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1

cdef union cuda_bindings_driver__anon_pod36:
    CUmemGenericAllocationHandle memHandle

cdef struct cuda_bindings_driver__anon_pod42:
    CUarray array
    CUoffset3D offset

cdef extern from 'cuda.h':
    ctypedef CUDA_KERNEL_NODE_PARAMS_v2 CUDA_KERNEL_NODE_PARAMS 'CUDA_KERNEL_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUDA_LAUNCH_PARAMS_v1 CUDA_LAUNCH_PARAMS 'CUDA_LAUNCH_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUgraphExecUpdateResultInfo_v1 CUgraphExecUpdateResultInfo 'CUgraphExecUpdateResultInfo'


cdef extern from 'cuda.h':
    cdef union CUlaunchAttributeValue_union:
        char pad[64]
        CUaccessPolicyWindow accessPolicyWindow
        int cooperative
        CUsynchronizationPolicy syncPolicy
        cuda_bindings_driver__anon_pod5 clusterDim
        CUclusterSchedulingPolicy clusterSchedulingPolicyPreference
        int programmaticStreamSerializationAllowed
        cuda_bindings_driver__anon_pod6 programmaticEvent
        cuda_bindings_driver__anon_pod7 launchCompletionEvent
        int priority
        CUlaunchMemSyncDomainMap memSyncDomainMap
        CUlaunchMemSyncDomain memSyncDomain
        cuda_bindings_driver__anon_pod8 preferredClusterDim
        cuda_bindings_driver__anon_pod9 deviceUpdatableKernelNode
        unsigned int sharedMemCarveout
        unsigned int nvlinkUtilCentricScheduling
        CUlaunchAttributePortableClusterMode portableClusterSizeMode
        CUsharedMemoryMode sharedMemoryMode
    ctypedef CUlaunchAttributeValue_union CUlaunchAttributeValue

cdef extern from 'cuda.h':
    cdef struct CUDA_HOST_NODE_PARAMS_v2_st:
        CUhostFn fn
        void* userData
        unsigned int syncMode
        CUcontext ctx
        CUgreenCtx gCtx
    ctypedef CUDA_HOST_NODE_PARAMS_v2_st CUDA_HOST_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_EVENT_RECORD_NODE_PARAMS_st:
        CUevent event
        CUcontext ctx
        CUgreenCtx gCtx
    ctypedef CUDA_EVENT_RECORD_NODE_PARAMS_st CUDA_EVENT_RECORD_NODE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUasyncNotificationInfo_st:
        CUasyncNotificationType type
        cuda_bindings_driver__anon_pod2 info
    ctypedef CUasyncNotificationInfo_st CUasyncNotificationInfo

cdef extern from 'cuda.h':
    ctypedef CUDA_HOST_NODE_PARAMS_v1 CUDA_HOST_NODE_PARAMS 'CUDA_HOST_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUDA_ARRAY_SPARSE_PROPERTIES_v1 CUDA_ARRAY_SPARSE_PROPERTIES 'CUDA_ARRAY_SPARSE_PROPERTIES'


cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st:
        CUexternalMemoryHandleType type
        cuda_bindings_driver__anon_pod18 handle
        unsigned long long size
        unsigned int flags
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st:
        CUexternalSemaphoreHandleType type
        cuda_bindings_driver__anon_pod20 handle
        unsigned int flags
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st:
        cuda_bindings_driver__anon_pod22 params
        unsigned int flags
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st:
        cuda_bindings_driver__anon_pod26 params
        unsigned int flags
        unsigned int reserved[16]
    ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUmemLocation_st:
        CUmemLocationType type
        int id
        cuda_bindings_driver__anon_pod38 localized
    ctypedef CUmemLocation_st CUmemLocation_v1

cdef extern from 'cuda.h':
    cdef union CUstreamBatchMemOpParams_union:
        CUstreamBatchMemOpType operation
        CUstreamMemOpWaitValueParams_st waitValue
        CUstreamMemOpWriteValueParams_st writeValue
        CUstreamMemOpFlushRemoteWritesParams_st flushRemoteWrites
        CUstreamMemOpMemoryBarrierParams_st memoryBarrier
        CUstreamMemOpAtomicReductionParams_st atomicReduction
        cuuint64_t pad[6]
    ctypedef CUstreamBatchMemOpParams_union CUstreamBatchMemOpParams_v1

cdef extern from 'cuda.h':
    ctypedef CUDA_MEMSET_NODE_PARAMS_v1 CUDA_MEMSET_NODE_PARAMS 'CUDA_MEMSET_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUDA_MEMCPY2D_v2 CUDA_MEMCPY2D 'CUDA_MEMCPY2D'


cdef extern from 'cuda.h':
    ctypedef CUDA_MEMCPY3D_v2 CUDA_MEMCPY3D 'CUDA_MEMCPY3D'


cdef extern from 'cuda.h':
    ctypedef CUDA_MEMCPY3D_PEER_v1 CUDA_MEMCPY3D_PEER 'CUDA_MEMCPY3D_PEER'


cdef union cuda_bindings_driver__anon_pod12:
    cuda_bindings_driver__anon_pod13 array
    cuda_bindings_driver__anon_pod14 mipmap
    cuda_bindings_driver__anon_pod15 linear
    cuda_bindings_driver__anon_pod16 pitch2D
    cuda_bindings_driver__anon_pod17 reserved

cdef extern from 'cuda.h':
    cdef struct CUcheckpointCustomStorageInfo_st:
        CUcheckpointOperationHandle handle
        CUcheckpointCustomStoragePerDeviceData* perDeviceData
        unsigned int deviceCount
    ctypedef CUcheckpointCustomStorageInfo_st CUcheckpointCustomStorageInfo

cdef extern from 'cuda.h':
    cdef struct CUexecAffinityParam_st:
        CUexecAffinityType type
        cuda_bindings_driver__anon_pod10 param
    ctypedef CUexecAffinityParam_st CUexecAffinityParam_v1

cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC 'CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC'


cdef extern from 'cuda.h':
    cdef struct CUarrayMapInfo_st:
        CUresourcetype resourceType
        cuda_bindings_driver__anon_pod32 resource
        CUarraySparseSubresourceType subresourceType
        cuda_bindings_driver__anon_pod33 subresource
        CUmemOperationType memOperationType
        CUmemHandleType memHandleType
        cuda_bindings_driver__anon_pod36 memHandle
        unsigned long long offset
        unsigned int deviceBitMask
        unsigned int flags
        unsigned int reserved[2]
    ctypedef CUarrayMapInfo_st CUarrayMapInfo_v1

cdef extern from 'cuda.h':
    ctypedef CUlaunchAttributeValue CUkernelNodeAttrValue_v1 'CUkernelNodeAttrValue_v1'


cdef extern from 'cuda.h':
    ctypedef CUlaunchAttributeValue CUstreamAttrValue_v1 'CUstreamAttrValue_v1'


cdef extern from 'cuda.h':
    cdef struct CUlaunchAttribute_st:
        CUlaunchAttributeID id
        CUlaunchAttributeValue value
    ctypedef CUlaunchAttribute_st CUlaunchAttribute

cdef extern from 'cuda.h':
    ctypedef void (*CUasyncCallback 'CUasyncCallback')(
        CUasyncNotificationInfo* info,
        void* userData,
        CUasyncCallbackHandle callback
    )


cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 CUDA_EXTERNAL_MEMORY_HANDLE_DESC 'CUDA_EXTERNAL_MEMORY_HANDLE_DESC'


cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_v1 CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC 'CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC'


cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS 'CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_v1 CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS 'CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUmemLocation_v1 CUmemLocation 'CUmemLocation'


cdef extern from 'cuda.h':
    ctypedef CUstreamBatchMemOpParams_v1 CUstreamBatchMemOpParams 'CUstreamBatchMemOpParams'


cdef extern from 'cuda.h':
    cdef struct CUDA_MEMCPY_NODE_PARAMS_st:
        int flags
        int reserved
        CUcontext copyCtx
        CUDA_MEMCPY3D copyParams
    ctypedef CUDA_MEMCPY_NODE_PARAMS_st CUDA_MEMCPY_NODE_PARAMS

cdef extern from 'cuda.h':
    cdef struct CUDA_RESOURCE_DESC_st:
        CUresourcetype resType
        cuda_bindings_driver__anon_pod12 res
        unsigned int flags
    ctypedef CUDA_RESOURCE_DESC_st CUDA_RESOURCE_DESC_v1

cdef extern from 'cuda.h':
    cdef struct CUcheckpointCheckpointArgs_st:
        CUcheckpointCustomStorageInfo** customStorageInfo_out
        char reserved[56]
    ctypedef CUcheckpointCheckpointArgs_st CUcheckpointCheckpointArgs

cdef extern from 'cuda.h':
    cdef struct CUcheckpointRestoreArgs_st:
        CUcheckpointGpuPair* gpuPairs
        unsigned int gpuPairsCount
        unsigned int padding0
        CUcheckpointCustomStorageInfo** customStorageInfo_out
        char reserved[40]
    ctypedef CUcheckpointRestoreArgs_st CUcheckpointRestoreArgs

cdef extern from 'cuda.h':
    cdef struct CUdevResource_st:
        CUdevResourceType type
        unsigned char _internal_padding[92]
        CUdevSmResource sm
        CUdevWorkqueueConfigResource wqConfig
        CUdevWorkqueueResource wq
        unsigned char _oversize[40]
        CUdevResource_st* nextResource
    ctypedef CUdevResource_st CUdevResource_v1

cdef extern from 'cuda.h':
    cdef struct CUlogicalEndpointProp_struct:
        CUlogicalEndpointType type
        cuda_bindings_driver__anon_pod47 unicast
        cuda_bindings_driver__anon_pod48 multicast
        unsigned long long size
        unsigned int ipcHandleTypes
        unsigned int flags
    ctypedef CUlogicalEndpointProp_struct CUlogicalEndpointProp

cdef extern from 'cuda.h':
    ctypedef CUexecAffinityParam_v1 CUexecAffinityParam 'CUexecAffinityParam'


cdef extern from 'cuda.h':
    ctypedef CUarrayMapInfo_v1 CUarrayMapInfo 'CUarrayMapInfo'


cdef extern from 'cuda.h':
    ctypedef CUkernelNodeAttrValue_v1 CUkernelNodeAttrValue 'CUkernelNodeAttrValue'


cdef extern from 'cuda.h':
    ctypedef CUstreamAttrValue_v1 CUstreamAttrValue 'CUstreamAttrValue'


cdef extern from 'cuda.h':
    cdef struct CUlaunchConfig_st:
        unsigned int gridDimX
        unsigned int gridDimY
        unsigned int gridDimZ
        unsigned int blockDimX
        unsigned int blockDimY
        unsigned int blockDimZ
        unsigned int sharedMemBytes
        CUstream hStream
        CUlaunchAttribute* attrs
        unsigned int numAttrs
    ctypedef CUlaunchConfig_st CUlaunchConfig

cdef extern from 'cuda.h':
    cdef struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st:
        CUexternalSemaphore* extSemArray
        CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* paramsArray
        unsigned int numExtSems
    ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st:
        CUexternalSemaphore* extSemArray
        CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* paramsArray
        unsigned int numExtSems
        CUcontext ctx
        CUgreenCtx gCtx
    ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_st:
        CUexternalSemaphore* extSemArray
        CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* paramsArray
        unsigned int numExtSems
    ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_st CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st:
        CUexternalSemaphore* extSemArray
        CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* paramsArray
        unsigned int numExtSems
        CUcontext ctx
        CUgreenCtx gCtx
    ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUmemAllocationProp_st:
        CUmemAllocationType type
        CUmemAllocationHandleType requestedHandleTypes
        CUmemLocation location
        void* win32HandleMetaData
        cuda_bindings_driver__anon_pod39 allocFlags
    ctypedef CUmemAllocationProp_st CUmemAllocationProp_v1

cdef extern from 'cuda.h':
    cdef struct CUmemAccessDesc_st:
        CUmemLocation location
        CUmemAccess_flags flags
    ctypedef CUmemAccessDesc_st CUmemAccessDesc_v1

cdef extern from 'cuda.h':
    cdef struct CUmemPoolProps_st:
        CUmemAllocationType allocType
        CUmemAllocationHandleType handleTypes
        CUmemLocation location
        void* win32SecurityAttributes
        size_t maxSize
        unsigned short usage
        unsigned char gpuDirectRDMACapable
        unsigned char reserved[53]
    ctypedef CUmemPoolProps_st CUmemPoolProps_v1

cdef extern from 'cuda.h':
    cdef struct CUmemcpyAttributes_st:
        CUmemcpySrcAccessOrder srcAccessOrder
        CUmemLocation srcLocHint
        CUmemLocation dstLocHint
        unsigned int flags
    ctypedef CUmemcpyAttributes_st CUmemcpyAttributes_v1

cdef struct cuda_bindings_driver__anon_pod41:
    CUdeviceptr ptr
    size_t rowLength
    size_t layerHeight
    CUmemLocation locHint

cdef extern from 'cuda.h':
    cdef struct CUDA_BATCH_MEM_OP_NODE_PARAMS_v1_st:
        CUcontext ctx
        unsigned int count
        CUstreamBatchMemOpParams* paramArray
        unsigned int flags
    ctypedef CUDA_BATCH_MEM_OP_NODE_PARAMS_v1_st CUDA_BATCH_MEM_OP_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_BATCH_MEM_OP_NODE_PARAMS_v2_st:
        CUcontext ctx
        unsigned int count
        CUstreamBatchMemOpParams* paramArray
        unsigned int flags
    ctypedef CUDA_BATCH_MEM_OP_NODE_PARAMS_v2_st CUDA_BATCH_MEM_OP_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    ctypedef CUDA_RESOURCE_DESC_v1 CUDA_RESOURCE_DESC 'CUDA_RESOURCE_DESC'


cdef extern from 'cuda.h':
    ctypedef CUdevResource_v1 CUdevResource 'CUdevResource'


cdef extern from 'cuda.h':
    cdef struct CUctxCreateParams_st:
        CUexecAffinityParam* execAffinityParams
        int numExecAffinityParams
        CUctxCigParam* cigParams
    ctypedef CUctxCreateParams_st CUctxCreateParams

cdef extern from 'cuda.h':
    ctypedef CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v1 CUDA_EXT_SEM_SIGNAL_NODE_PARAMS 'CUDA_EXT_SEM_SIGNAL_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUDA_EXT_SEM_WAIT_NODE_PARAMS_v1 CUDA_EXT_SEM_WAIT_NODE_PARAMS 'CUDA_EXT_SEM_WAIT_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUmemAllocationProp_v1 CUmemAllocationProp 'CUmemAllocationProp'


cdef extern from 'cuda.h':
    ctypedef CUmemAccessDesc_v1 CUmemAccessDesc 'CUmemAccessDesc'


cdef extern from 'cuda.h':
    ctypedef CUmemPoolProps_v1 CUmemPoolProps 'CUmemPoolProps'


cdef extern from 'cuda.h':
    ctypedef CUmemcpyAttributes_v1 CUmemcpyAttributes 'CUmemcpyAttributes'


cdef union cuda_bindings_driver__anon_pod40:
    cuda_bindings_driver__anon_pod41 ptr
    cuda_bindings_driver__anon_pod42 array

cdef extern from 'cuda.h':
    ctypedef CUDA_BATCH_MEM_OP_NODE_PARAMS_v1 CUDA_BATCH_MEM_OP_NODE_PARAMS 'CUDA_BATCH_MEM_OP_NODE_PARAMS'


cdef extern from 'cuda.h':
    cdef struct CUDA_MEM_ALLOC_NODE_PARAMS_v1_st:
        CUmemPoolProps poolProps
        CUmemAccessDesc* accessDescs
        size_t accessDescCount
        size_t bytesize
        CUdeviceptr dptr
    ctypedef CUDA_MEM_ALLOC_NODE_PARAMS_v1_st CUDA_MEM_ALLOC_NODE_PARAMS_v1

cdef extern from 'cuda.h':
    cdef struct CUDA_MEM_ALLOC_NODE_PARAMS_v2_st:
        CUmemPoolProps poolProps
        CUmemAccessDesc* accessDescs
        size_t accessDescCount
        size_t bytesize
        CUdeviceptr dptr
    ctypedef CUDA_MEM_ALLOC_NODE_PARAMS_v2_st CUDA_MEM_ALLOC_NODE_PARAMS_v2

cdef extern from 'cuda.h':
    cdef struct CUmemcpy3DOperand_st:
        CUmemcpy3DOperandType type
        cuda_bindings_driver__anon_pod40 op
    ctypedef CUmemcpy3DOperand_st CUmemcpy3DOperand_v1

cdef extern from 'cuda.h':
    ctypedef CUDA_MEM_ALLOC_NODE_PARAMS_v1 CUDA_MEM_ALLOC_NODE_PARAMS 'CUDA_MEM_ALLOC_NODE_PARAMS'


cdef extern from 'cuda.h':
    ctypedef CUmemcpy3DOperand_v1 CUmemcpy3DOperand 'CUmemcpy3DOperand'


cdef extern from 'cuda.h':
    cdef struct CUgraphNodeParams_st:
        CUgraphNodeType type
        int reserved0[3]
        long long reserved1[29]
        CUDA_KERNEL_NODE_PARAMS_v3 kernel
        CUDA_MEMCPY_NODE_PARAMS memcpy
        CUDA_MEMSET_NODE_PARAMS_v2 memset
        CUDA_HOST_NODE_PARAMS_v2 host
        CUDA_CHILD_GRAPH_NODE_PARAMS graph
        CUDA_EVENT_WAIT_NODE_PARAMS eventWait
        CUDA_EVENT_RECORD_NODE_PARAMS eventRecord
        CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2 extSemSignal
        CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2 extSemWait
        CUDA_MEM_ALLOC_NODE_PARAMS_v2 alloc
        CUDA_MEM_FREE_NODE_PARAMS free
        CUDA_BATCH_MEM_OP_NODE_PARAMS_v2 memOp
        CUDA_CONDITIONAL_NODE_PARAMS conditional
        char asBytes[232]
        long long reserved2
    ctypedef CUgraphNodeParams_st CUgraphNodeParams

cdef extern from 'cuda.h':
    cdef struct CUDA_MEMCPY3D_BATCH_OP_st:
        CUmemcpy3DOperand src
        CUmemcpy3DOperand dst
        CUextent3D extent
        CUmemcpySrcAccessOrder srcAccessOrder
        unsigned int flags
    ctypedef CUDA_MEMCPY3D_BATCH_OP_st CUDA_MEMCPY3D_BATCH_OP_v1

cdef extern from 'cuda.h':
    ctypedef CUresult (*CUgraphRecaptureCallback 'CUgraphRecaptureCallback')(
        void* data,
        CUgraphNode node,
        const CUgraphNodeParams* originalParams,
        const CUgraphNodeParams* recaptureParams,
        CUgraphRecaptureStatus status
    )


cdef extern from 'cuda.h':
    ctypedef CUDA_MEMCPY3D_BATCH_OP_v1 CUDA_MEMCPY3D_BATCH_OP 'CUDA_MEMCPY3D_BATCH_OP'



# Defining the types here in this way is not necessary to work, but we need to
# define them as 'cdef extern from ""' to be ABI-backward-compatible with the
# old cython-gen based bindings.
cdef extern from "":
    cdef struct CUeglStreamConnection_st:
        pass
ctypedef CUeglStreamConnection_st* CUeglStreamConnection

cdef union anon_union16:
    CUarray pArray[3]
    void* pPitch[3]

cdef struct CUeglFrame_st:
    anon_union16 frame
    unsigned int width
    unsigned int height
    unsigned int depth
    unsigned int pitch
    unsigned int planeCount
    unsigned int numChannels
    CUeglFrameType frameType
    CUeglColorFormat eglColorFormat
    CUarray_format cuFormat

ctypedef CUeglFrame_st CUeglFrame_v1

ctypedef CUeglFrame_v1 CUeglFrame

cdef enum CUGLDeviceList_enum:
    CU_GL_DEVICE_LIST_ALL = 1
    CU_GL_DEVICE_LIST_CURRENT_FRAME = 2
    CU_GL_DEVICE_LIST_NEXT_FRAME = 3

ctypedef CUGLDeviceList_enum CUGLDeviceList


# FUNCS
cdef CUresult cuGetErrorString(CUresult error, const char** pStr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGetErrorName(CUresult error, const char** pStr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuInit(unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDriverGetVersion(int* driverVersion) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGet(CUdevice* device, int ordinal) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetCount(int* count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetName(char* name, int len, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetUuid(CUuuid* uuid, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetLuid(char* luid, unsigned int* deviceNodeMask, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceTotalMem(size_t* bytes, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetTexture1DLinearMaxWidth(size_t* maxWidthInElements, CUarray_format format, unsigned numChannels, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetAttribute(int* pi, CUdevice_attribute attrib, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetNvSciSyncAttributes(void* nvSciSyncAttrList, CUdevice dev, int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceSetMemPool(CUdevice dev, CUmemoryPool pool) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetMemPool(CUmemoryPool* pool, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetDefaultMemPool(CUmemoryPool* pool_out, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetExecAffinitySupport(int* pi, CUexecAffinityType type, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFlushGPUDirectRDMAWrites(CUflushGPUDirectRDMAWritesTarget target, CUflushGPUDirectRDMAWritesScope scope) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetProperties(CUdevprop* prop, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceComputeCapability(int* major, int* minor, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevicePrimaryCtxRetain(CUcontext* pctx, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevicePrimaryCtxRelease(CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevicePrimaryCtxSetFlags(CUdevice dev, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevicePrimaryCtxGetState(CUdevice dev, unsigned int* flags, int* active) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevicePrimaryCtxReset(CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxCreate_v2(CUcontext* pctx, unsigned int flags, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxCreate_v3(CUcontext* pctx, CUexecAffinityParam* paramsArray, int numParams, unsigned int flags, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxCreate(CUcontext* pctx, CUctxCreateParams* ctxCreateParams, unsigned int flags, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxDestroy(CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxPushCurrent(CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxPopCurrent(CUcontext* pctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSetCurrent(CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetCurrent(CUcontext* pctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetDevice(CUdevice* device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetFlags(unsigned int* flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSetFlags(unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetId(CUcontext ctx, unsigned long long* ctxId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSynchronize() except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSetLimit(CUlimit limit, size_t value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetLimit(size_t* pvalue, CUlimit limit) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetCacheConfig(CUfunc_cache* pconfig) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSetCacheConfig(CUfunc_cache config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetApiVersion(CUcontext ctx, unsigned int* version) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetStreamPriorityRange(int* leastPriority, int* greatestPriority) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxResetPersistingL2Cache() except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetExecAffinity(CUexecAffinityParam* pExecAffinity, CUexecAffinityType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxRecordEvent(CUcontext hCtx, CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxWaitEvent(CUcontext hCtx, CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxAttach(CUcontext* pctx, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxDetach(CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetSharedMemConfig(CUsharedconfig* pConfig) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSetSharedMemConfig(CUsharedconfig config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleLoad(CUmodule* module, const char* fname) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleLoadData(CUmodule* module, const void* image) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleLoadDataEx(CUmodule* module, const void* image, unsigned int numOptions, CUjit_option* options, void** optionValues) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleLoadFatBinary(CUmodule* module, const void* fatCubin) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleUnload(CUmodule hmod) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetLoadingMode(CUmoduleLoadingMode* mode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetFunction(CUfunction* hfunc, CUmodule hmod, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetFunctionCount(unsigned int* count, CUmodule mod) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleEnumerateFunctions(CUfunction* functions, unsigned int numFunctions, CUmodule mod) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetGlobal(CUdeviceptr* dptr, size_t* bytes, CUmodule hmod, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLinkCreate(unsigned int numOptions, CUjit_option* options, void** optionValues, CUlinkState* stateOut) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLinkAddData(CUlinkState state, CUjitInputType type, void* data, size_t size, const char* name, unsigned int numOptions, CUjit_option* options, void** optionValues) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLinkAddFile(CUlinkState state, CUjitInputType type, const char* path, unsigned int numOptions, CUjit_option* options, void** optionValues) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLinkComplete(CUlinkState state, void** cubinOut, size_t* sizeOut) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLinkDestroy(CUlinkState state) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetTexRef(CUtexref* pTexRef, CUmodule hmod, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuModuleGetSurfRef(CUsurfref* pSurfRef, CUmodule hmod, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryLoadData(CUlibrary* library, const void* code, CUjit_option* jitOptions, void** jitOptionsValues, unsigned int numJitOptions, CUlibraryOption* libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryLoadFromFile(CUlibrary* library, const char* fileName, CUjit_option* jitOptions, void** jitOptionsValues, unsigned int numJitOptions, CUlibraryOption* libraryOptions, void** libraryOptionValues, unsigned int numLibraryOptions) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryUnload(CUlibrary library) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetKernel(CUkernel* pKernel, CUlibrary library, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetKernelCount(unsigned int* count, CUlibrary lib) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryEnumerateKernels(CUkernel* kernels, unsigned int numKernels, CUlibrary lib) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetModule(CUmodule* pMod, CUlibrary library) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetFunction(CUfunction* pFunc, CUkernel kernel) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetLibrary(CUlibrary* pLib, CUkernel kernel) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetGlobal(CUdeviceptr* dptr, size_t* bytes, CUlibrary library, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetManaged(CUdeviceptr* dptr, size_t* bytes, CUlibrary library, const char* name) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLibraryGetUnifiedFunction(void** fptr, CUlibrary library, const char* symbol) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetAttribute(int* pi, CUfunction_attribute attrib, CUkernel kernel, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelSetAttribute(CUfunction_attribute attrib, int val, CUkernel kernel, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelSetCacheConfig(CUkernel kernel, CUfunc_cache config, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetName(const char** name, CUkernel hfunc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetParamInfo(CUkernel kernel, size_t paramIndex, size_t* paramOffset, size_t* paramSize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetInfo(size_t* free, size_t* total) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAlloc(CUdeviceptr* dptr, size_t bytesize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAllocPitch(CUdeviceptr* dptr, size_t* pPitch, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemFree(CUdeviceptr dptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetAddressRange(CUdeviceptr* pbase, size_t* psize, CUdeviceptr dptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAllocHost(void** pp, size_t bytesize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemFreeHost(void* p) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemHostAlloc(void** pp, size_t bytesize, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemHostGetDevicePointer(CUdeviceptr* pdptr, void* p, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemHostGetFlags(unsigned int* pFlags, void* p) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAllocManaged(CUdeviceptr* dptr, size_t bytesize, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceRegisterAsyncNotification(CUdevice device, CUasyncCallback callbackFunc, void* userData, CUasyncCallbackHandle* callback) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceUnregisterAsyncNotification(CUdevice device, CUasyncCallbackHandle callback) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetByPCIBusId(CUdevice* dev, const char* pciBusId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetPCIBusId(char* pciBusId, int len, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuIpcGetEventHandle(CUipcEventHandle* pHandle, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuIpcOpenEventHandle(CUevent* phEvent, CUipcEventHandle handle) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuIpcGetMemHandle(CUipcMemHandle* pHandle, CUdeviceptr dptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuIpcOpenMemHandle(CUdeviceptr* pdptr, CUipcMemHandle handle, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuIpcCloseMemHandle(CUdeviceptr dptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemHostRegister(void* p, size_t bytesize, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemHostUnregister(void* p) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy(CUdeviceptr dst, CUdeviceptr src, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyPeer(CUdeviceptr dstDevice, CUcontext dstContext, CUdeviceptr srcDevice, CUcontext srcContext, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyHtoD(CUdeviceptr dstDevice, const void* srcHost, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyDtoH(void* dstHost, CUdeviceptr srcDevice, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyDtoD(CUdeviceptr dstDevice, CUdeviceptr srcDevice, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyDtoA(CUarray dstArray, size_t dstOffset, CUdeviceptr srcDevice, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyAtoD(CUdeviceptr dstDevice, CUarray srcArray, size_t srcOffset, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyHtoA(CUarray dstArray, size_t dstOffset, const void* srcHost, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyAtoH(void* dstHost, CUarray srcArray, size_t srcOffset, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyAtoA(CUarray dstArray, size_t dstOffset, CUarray srcArray, size_t srcOffset, size_t ByteCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy2D(const CUDA_MEMCPY2D* pCopy) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy2DUnaligned(const CUDA_MEMCPY2D* pCopy) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3D(const CUDA_MEMCPY3D* pCopy) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3DPeer(const CUDA_MEMCPY3D_PEER* pCopy) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyAsync(CUdeviceptr dst, CUdeviceptr src, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyPeerAsync(CUdeviceptr dstDevice, CUcontext dstContext, CUdeviceptr srcDevice, CUcontext srcContext, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyHtoDAsync(CUdeviceptr dstDevice, const void* srcHost, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyDtoHAsync(void* dstHost, CUdeviceptr srcDevice, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyDtoDAsync(CUdeviceptr dstDevice, CUdeviceptr srcDevice, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyHtoAAsync(CUarray dstArray, size_t dstOffset, const void* srcHost, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyAtoHAsync(void* dstHost, CUarray srcArray, size_t srcOffset, size_t ByteCount, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy2DAsync(const CUDA_MEMCPY2D* pCopy, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3DAsync(const CUDA_MEMCPY3D* pCopy, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3DPeerAsync(const CUDA_MEMCPY3D_PEER* pCopy, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD8(CUdeviceptr dstDevice, unsigned char uc, size_t N) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD16(CUdeviceptr dstDevice, unsigned short us, size_t N) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD32(CUdeviceptr dstDevice, unsigned int ui, size_t N) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D8(CUdeviceptr dstDevice, size_t dstPitch, unsigned char uc, size_t Width, size_t Height) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D16(CUdeviceptr dstDevice, size_t dstPitch, unsigned short us, size_t Width, size_t Height) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D32(CUdeviceptr dstDevice, size_t dstPitch, unsigned int ui, size_t Width, size_t Height) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD8Async(CUdeviceptr dstDevice, unsigned char uc, size_t N, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD16Async(CUdeviceptr dstDevice, unsigned short us, size_t N, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD32Async(CUdeviceptr dstDevice, unsigned int ui, size_t N, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D8Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned char uc, size_t Width, size_t Height, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D16Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned short us, size_t Width, size_t Height, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemsetD2D32Async(CUdeviceptr dstDevice, size_t dstPitch, unsigned int ui, size_t Width, size_t Height, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayCreate(CUarray* pHandle, const CUDA_ARRAY_DESCRIPTOR* pAllocateArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayGetDescriptor(CUDA_ARRAY_DESCRIPTOR* pArrayDescriptor, CUarray hArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayGetSparseProperties(CUDA_ARRAY_SPARSE_PROPERTIES* sparseProperties, CUarray array) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMipmappedArrayGetSparseProperties(CUDA_ARRAY_SPARSE_PROPERTIES* sparseProperties, CUmipmappedArray mipmap) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayGetMemoryRequirements(CUDA_ARRAY_MEMORY_REQUIREMENTS* memoryRequirements, CUarray array, CUdevice device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMipmappedArrayGetMemoryRequirements(CUDA_ARRAY_MEMORY_REQUIREMENTS* memoryRequirements, CUmipmappedArray mipmap, CUdevice device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayGetPlane(CUarray* pPlaneArray, CUarray hArray, unsigned int planeIdx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArrayDestroy(CUarray hArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArray3DCreate(CUarray* pHandle, const CUDA_ARRAY3D_DESCRIPTOR* pAllocateArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuArray3DGetDescriptor(CUDA_ARRAY3D_DESCRIPTOR* pArrayDescriptor, CUarray hArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMipmappedArrayCreate(CUmipmappedArray* pHandle, const CUDA_ARRAY3D_DESCRIPTOR* pMipmappedArrayDesc, unsigned int numMipmapLevels) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMipmappedArrayGetLevel(CUarray* pLevelArray, CUmipmappedArray hMipmappedArray, unsigned int level) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMipmappedArrayDestroy(CUmipmappedArray hMipmappedArray) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetHandleForAddressRange(void* handle, CUdeviceptr dptr, size_t size, CUmemRangeHandleType handleType, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemBatchDecompressAsync(CUmemDecompressParams* paramsArray, size_t count, unsigned int flags, size_t* errorIndex, CUstream stream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAddressReserve(CUdeviceptr* ptr, size_t size, size_t alignment, CUdeviceptr addr, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAddressFree(CUdeviceptr ptr, size_t size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemCreate(CUmemGenericAllocationHandle* handle, size_t size, const CUmemAllocationProp* prop, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemRelease(CUmemGenericAllocationHandle handle) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemMap(CUdeviceptr ptr, size_t size, size_t offset, CUmemGenericAllocationHandle handle, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemMapArrayAsync(CUarrayMapInfo* mapInfoList, unsigned int count, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemUnmap(CUdeviceptr ptr, size_t size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemSetAccess(CUdeviceptr ptr, size_t size, const CUmemAccessDesc* desc, size_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetAccess(unsigned long long* flags, const CUmemLocation* location, CUdeviceptr ptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemExportToShareableHandle(void* shareableHandle, CUmemGenericAllocationHandle handle, CUmemAllocationHandleType handleType, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemImportFromShareableHandle(CUmemGenericAllocationHandle* handle, void* osHandle, CUmemAllocationHandleType shHandleType) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetAllocationGranularity(size_t* granularity, const CUmemAllocationProp* prop, CUmemAllocationGranularity_flags option) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetAllocationPropertiesFromHandle(CUmemAllocationProp* prop, CUmemGenericAllocationHandle handle) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemRetainAllocationHandle(CUmemGenericAllocationHandle* handle, void* addr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemFreeAsync(CUdeviceptr dptr, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAllocAsync(CUdeviceptr* dptr, size_t bytesize, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolTrimTo(CUmemoryPool pool, size_t minBytesToKeep) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolSetAttribute(CUmemoryPool pool, CUmemPool_attribute attr, void* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolGetAttribute(CUmemoryPool pool, CUmemPool_attribute attr, void* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolSetAccess(CUmemoryPool pool, const CUmemAccessDesc* map, size_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolGetAccess(CUmemAccess_flags* flags, CUmemoryPool memPool, CUmemLocation* location) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolCreate(CUmemoryPool* pool, const CUmemPoolProps* poolProps) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolDestroy(CUmemoryPool pool) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAllocFromPoolAsync(CUdeviceptr* dptr, size_t bytesize, CUmemoryPool pool, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolExportToShareableHandle(void* handle_out, CUmemoryPool pool, CUmemAllocationHandleType handleType, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolImportFromShareableHandle(CUmemoryPool* pool_out, void* handle, CUmemAllocationHandleType handleType, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolExportPointer(CUmemPoolPtrExportData* shareData_out, CUdeviceptr ptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPoolImportPointer(CUdeviceptr* ptr_out, CUmemoryPool pool, CUmemPoolPtrExportData* shareData) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastCreate(CUmemGenericAllocationHandle* mcHandle, const CUmulticastObjectProp* prop) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastAddDevice(CUmemGenericAllocationHandle mcHandle, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastBindMem(CUmemGenericAllocationHandle mcHandle, size_t mcOffset, CUmemGenericAllocationHandle memHandle, size_t memOffset, size_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastBindAddr(CUmemGenericAllocationHandle mcHandle, size_t mcOffset, CUdeviceptr memptr, size_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastUnbind(CUmemGenericAllocationHandle mcHandle, CUdevice dev, size_t mcOffset, size_t size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastGetGranularity(size_t* granularity, const CUmulticastObjectProp* prop, CUmulticastGranularity_flags option) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuPointerGetAttribute(void* data, CUpointer_attribute attribute, CUdeviceptr ptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPrefetchAsync(CUdeviceptr devPtr, size_t count, CUmemLocation location, unsigned int flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemAdvise(CUdeviceptr devPtr, size_t count, CUmem_advise advice, CUmemLocation location) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemRangeGetAttribute(void* data, size_t dataSize, CUmem_range_attribute attribute, CUdeviceptr devPtr, size_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemRangeGetAttributes(void** data, size_t* dataSizes, CUmem_range_attribute* attributes, size_t numAttributes, CUdeviceptr devPtr, size_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuPointerSetAttribute(const void* value, CUpointer_attribute attribute, CUdeviceptr ptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuPointerGetAttributes(unsigned int numAttributes, CUpointer_attribute* attributes, void** data, CUdeviceptr ptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamCreate(CUstream* phStream, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamCreateWithPriority(CUstream* phStream, unsigned int flags, int priority) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetPriority(CUstream hStream, int* priority) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetDevice(CUstream hStream, CUdevice* device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetFlags(CUstream hStream, unsigned int* flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetId(CUstream hStream, unsigned long long* streamId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetCtx(CUstream hStream, CUcontext* pctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetCtx_v2(CUstream hStream, CUcontext* pCtx, CUgreenCtx* pGreenCtx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamWaitEvent(CUstream hStream, CUevent hEvent, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamAddCallback(CUstream hStream, CUstreamCallback callback, void* userData, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamBeginCapture(CUstream hStream, CUstreamCaptureMode mode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamBeginCaptureToGraph(CUstream hStream, CUgraph hGraph, const CUgraphNode* dependencies, const CUgraphEdgeData* dependencyData, size_t numDependencies, CUstreamCaptureMode mode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuThreadExchangeStreamCaptureMode(CUstreamCaptureMode* mode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamEndCapture(CUstream hStream, CUgraph* phGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamIsCapturing(CUstream hStream, CUstreamCaptureStatus* captureStatus) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetCaptureInfo_v2(CUstream hStream, CUstreamCaptureStatus* captureStatus_out, cuuint64_t* id_out, CUgraph* graph_out, const CUgraphNode** dependencies_out, size_t* numDependencies_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetCaptureInfo(CUstream hStream, CUstreamCaptureStatus* captureStatus_out, cuuint64_t* id_out, CUgraph* graph_out, const CUgraphNode** dependencies_out, const CUgraphEdgeData** edgeData_out, size_t* numDependencies_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamUpdateCaptureDependencies(CUstream hStream, CUgraphNode* dependencies, const CUgraphEdgeData* dependencyData, size_t numDependencies, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamAttachMemAsync(CUstream hStream, CUdeviceptr dptr, size_t length, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamQuery(CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamSynchronize(CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamDestroy(CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamCopyAttributes(CUstream dst, CUstream src) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetAttribute(CUstream hStream, CUstreamAttrID attr, CUstreamAttrValue* value_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamSetAttribute(CUstream hStream, CUstreamAttrID attr, const CUstreamAttrValue* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventCreate(CUevent* phEvent, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventRecord(CUevent hEvent, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventRecordWithFlags(CUevent hEvent, CUstream hStream, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventQuery(CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventSynchronize(CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventDestroy(CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventElapsedTime(float* pMilliseconds, CUevent hStart, CUevent hEnd) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuImportExternalMemory(CUexternalMemory* extMem_out, const CUDA_EXTERNAL_MEMORY_HANDLE_DESC* memHandleDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuExternalMemoryGetMappedBuffer(CUdeviceptr* devPtr, CUexternalMemory extMem, const CUDA_EXTERNAL_MEMORY_BUFFER_DESC* bufferDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuExternalMemoryGetMappedMipmappedArray(CUmipmappedArray* mipmap, CUexternalMemory extMem, const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* mipmapDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDestroyExternalMemory(CUexternalMemory extMem) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuImportExternalSemaphore(CUexternalSemaphore* extSem_out, const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* semHandleDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSignalExternalSemaphoresAsync(const CUexternalSemaphore* extSemArray, const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* paramsArray, unsigned int numExtSems, CUstream stream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuWaitExternalSemaphoresAsync(const CUexternalSemaphore* extSemArray, const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* paramsArray, unsigned int numExtSems, CUstream stream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDestroyExternalSemaphore(CUexternalSemaphore extSem) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamWaitValue32(CUstream stream, CUdeviceptr addr, cuuint32_t value, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamWaitValue64(CUstream stream, CUdeviceptr addr, cuuint64_t value, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamWriteValue32(CUstream stream, CUdeviceptr addr, cuuint32_t value, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamWriteValue64(CUstream stream, CUdeviceptr addr, cuuint64_t value, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamBatchMemOp(CUstream stream, unsigned int count, CUstreamBatchMemOpParams* paramArray, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncGetAttribute(int* pi, CUfunction_attribute attrib, CUfunction hfunc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncSetAttribute(CUfunction hfunc, CUfunction_attribute attrib, int value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncSetCacheConfig(CUfunction hfunc, CUfunc_cache config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncGetModule(CUmodule* hmod, CUfunction hfunc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncGetName(const char** name, CUfunction hfunc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncGetParamInfo(CUfunction func, size_t paramIndex, size_t* paramOffset, size_t* paramSize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncIsLoaded(CUfunctionLoadingState* state, CUfunction function) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncLoad(CUfunction function) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchKernel(CUfunction f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream, void** kernelParams, void** extra) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchKernelEx(const CUlaunchConfig* config, CUfunction f, void** kernelParams, void** extra) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchCooperativeKernel(CUfunction f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream, void** kernelParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchCooperativeKernelMultiDevice(CUDA_LAUNCH_PARAMS* launchParamsList, unsigned int numDevices, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchHostFunc(CUstream hStream, CUhostFn fn, void* userData) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncSetBlockShape(CUfunction hfunc, int x, int y, int z) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncSetSharedSize(CUfunction hfunc, unsigned int bytes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuParamSetSize(CUfunction hfunc, unsigned int numbytes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuParamSeti(CUfunction hfunc, int offset, unsigned int value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuParamSetf(CUfunction hfunc, int offset, float value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuParamSetv(CUfunction hfunc, int offset, void* ptr, unsigned int numbytes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunch(CUfunction f) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchGrid(CUfunction f, int grid_width, int grid_height) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchGridAsync(CUfunction f, int grid_width, int grid_height, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuParamSetTexRef(CUfunction hfunc, int texunit, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncSetSharedMemConfig(CUfunction hfunc, CUsharedconfig config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphCreate(CUgraph* phGraph, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddKernelNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_KERNEL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphKernelNodeGetParams(CUgraphNode hNode, CUDA_KERNEL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphKernelNodeSetParams(CUgraphNode hNode, const CUDA_KERNEL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddMemcpyNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_MEMCPY3D* copyParams, CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemcpyNodeGetParams(CUgraphNode hNode, CUDA_MEMCPY3D* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemcpyNodeSetParams(CUgraphNode hNode, const CUDA_MEMCPY3D* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddMemsetNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_MEMSET_NODE_PARAMS* memsetParams, CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemsetNodeGetParams(CUgraphNode hNode, CUDA_MEMSET_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemsetNodeSetParams(CUgraphNode hNode, const CUDA_MEMSET_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddHostNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_HOST_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphHostNodeGetParams(CUgraphNode hNode, CUDA_HOST_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphHostNodeSetParams(CUgraphNode hNode, const CUDA_HOST_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddChildGraphNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, CUgraph childGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphChildGraphNodeGetGraph(CUgraphNode hNode, CUgraph* phGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddEmptyNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddEventRecordNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphEventRecordNodeGetEvent(CUgraphNode hNode, CUevent* event_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphEventRecordNodeSetEvent(CUgraphNode hNode, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddEventWaitNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphEventWaitNodeGetEvent(CUgraphNode hNode, CUevent* event_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphEventWaitNodeSetEvent(CUgraphNode hNode, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddExternalSemaphoresSignalNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExternalSemaphoresSignalNodeGetParams(CUgraphNode hNode, CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* params_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExternalSemaphoresSignalNodeSetParams(CUgraphNode hNode, const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddExternalSemaphoresWaitNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_EXT_SEM_WAIT_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExternalSemaphoresWaitNodeGetParams(CUgraphNode hNode, CUDA_EXT_SEM_WAIT_NODE_PARAMS* params_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExternalSemaphoresWaitNodeSetParams(CUgraphNode hNode, const CUDA_EXT_SEM_WAIT_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddBatchMemOpNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, const CUDA_BATCH_MEM_OP_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphBatchMemOpNodeGetParams(CUgraphNode hNode, CUDA_BATCH_MEM_OP_NODE_PARAMS* nodeParams_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphBatchMemOpNodeSetParams(CUgraphNode hNode, const CUDA_BATCH_MEM_OP_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecBatchMemOpNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_BATCH_MEM_OP_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddMemAllocNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, CUDA_MEM_ALLOC_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemAllocNodeGetParams(CUgraphNode hNode, CUDA_MEM_ALLOC_NODE_PARAMS* params_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddMemFreeNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, size_t numDependencies, CUdeviceptr dptr) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphMemFreeNodeGetParams(CUgraphNode hNode, CUdeviceptr* dptr_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGraphMemTrim(CUdevice device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetGraphMemAttribute(CUdevice device, CUgraphMem_attribute attr, void* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceSetGraphMemAttribute(CUdevice device, CUgraphMem_attribute attr, void* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphClone(CUgraph* phGraphClone, CUgraph originalGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeFindInClone(CUgraphNode* phNode, CUgraphNode hOriginalNode, CUgraph hClonedGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetType(CUgraphNode hNode, CUgraphNodeType* type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphGetNodes(CUgraph hGraph, CUgraphNode* nodes, size_t* numNodes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphGetRootNodes(CUgraph hGraph, CUgraphNode* rootNodes, size_t* numRootNodes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphGetEdges(CUgraph hGraph, CUgraphNode* from_, CUgraphNode* to, CUgraphEdgeData* edgeData, size_t* numEdges) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetDependencies(CUgraphNode hNode, CUgraphNode* dependencies, CUgraphEdgeData* edgeData, size_t* numDependencies) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetDependentNodes(CUgraphNode hNode, CUgraphNode* dependentNodes, CUgraphEdgeData* edgeData, size_t* numDependentNodes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddDependencies(CUgraph hGraph, const CUgraphNode* from_, const CUgraphNode* to, const CUgraphEdgeData* edgeData, size_t numDependencies) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphRemoveDependencies(CUgraph hGraph, const CUgraphNode* from_, const CUgraphNode* to, const CUgraphEdgeData* edgeData, size_t numDependencies) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphDestroyNode(CUgraphNode hNode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphInstantiate(CUgraphExec* phGraphExec, CUgraph hGraph, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphInstantiateWithParams(CUgraphExec* phGraphExec, CUgraph hGraph, CUDA_GRAPH_INSTANTIATE_PARAMS* instantiateParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecGetFlags(CUgraphExec hGraphExec, cuuint64_t* flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecKernelNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_KERNEL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecMemcpyNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_MEMCPY3D* copyParams, CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecMemsetNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_MEMSET_NODE_PARAMS* memsetParams, CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecHostNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_HOST_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecChildGraphNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, CUgraph childGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecEventRecordNodeSetEvent(CUgraphExec hGraphExec, CUgraphNode hNode, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecEventWaitNodeSetEvent(CUgraphExec hGraphExec, CUgraphNode hNode, CUevent event) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecExternalSemaphoresSignalNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_EXT_SEM_SIGNAL_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecExternalSemaphoresWaitNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, const CUDA_EXT_SEM_WAIT_NODE_PARAMS* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeSetEnabled(CUgraphExec hGraphExec, CUgraphNode hNode, unsigned int isEnabled) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetEnabled(CUgraphExec hGraphExec, CUgraphNode hNode, unsigned int* isEnabled) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphUpload(CUgraphExec hGraphExec, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphLaunch(CUgraphExec hGraphExec, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecDestroy(CUgraphExec hGraphExec) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphDestroy(CUgraph hGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecUpdate(CUgraphExec hGraphExec, CUgraph hGraph, CUgraphExecUpdateResultInfo* resultInfo) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphKernelNodeCopyAttributes(CUgraphNode dst, CUgraphNode src) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphKernelNodeGetAttribute(CUgraphNode hNode, CUkernelNodeAttrID attr, CUkernelNodeAttrValue* value_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphKernelNodeSetAttribute(CUgraphNode hNode, CUkernelNodeAttrID attr, const CUkernelNodeAttrValue* value) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphDebugDotPrint(CUgraph hGraph, const char* path, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuUserObjectCreate(CUuserObject* object_out, void* ptr, CUhostFn destroy, unsigned int initialRefcount, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuUserObjectRetain(CUuserObject object, unsigned int count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuUserObjectRelease(CUuserObject object, unsigned int count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphRetainUserObject(CUgraph graph, CUuserObject object, unsigned int count, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphReleaseUserObject(CUgraph graph, CUuserObject object, unsigned int count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddNode(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, const CUgraphEdgeData* dependencyData, size_t numDependencies, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeSetParams(CUgraphNode hNode, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecNodeSetParams(CUgraphExec hGraphExec, CUgraphNode hNode, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphConditionalHandleCreate(CUgraphConditionalHandle* pHandle_out, CUgraph hGraph, CUcontext ctx, unsigned int defaultLaunchValue, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxActiveBlocksPerMultiprocessor(int* numBlocks, CUfunction func, int blockSize, size_t dynamicSMemSize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int* numBlocks, CUfunction func, int blockSize, size_t dynamicSMemSize, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxPotentialBlockSize(int* minGridSize, int* blockSize, CUfunction func, CUoccupancyB2DSize blockSizeToDynamicSMemSize, size_t dynamicSMemSize, int blockSizeLimit) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxPotentialBlockSizeWithFlags(int* minGridSize, int* blockSize, CUfunction func, CUoccupancyB2DSize blockSizeToDynamicSMemSize, size_t dynamicSMemSize, int blockSizeLimit, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyAvailableDynamicSMemPerBlock(size_t* dynamicSmemSize, CUfunction func, int numBlocks, int blockSize) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxPotentialClusterSize(int* clusterSize, CUfunction func, const CUlaunchConfig* config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuOccupancyMaxActiveClusters(int* numClusters, CUfunction func, const CUlaunchConfig* config) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetArray(CUtexref hTexRef, CUarray hArray, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetMipmappedArray(CUtexref hTexRef, CUmipmappedArray hMipmappedArray, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetAddress(size_t* ByteOffset, CUtexref hTexRef, CUdeviceptr dptr, size_t bytes) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetAddress2D(CUtexref hTexRef, const CUDA_ARRAY_DESCRIPTOR* desc, CUdeviceptr dptr, size_t Pitch) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetFormat(CUtexref hTexRef, CUarray_format fmt, int NumPackedComponents) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetAddressMode(CUtexref hTexRef, int dim, CUaddress_mode am) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetFilterMode(CUtexref hTexRef, CUfilter_mode fm) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetMipmapFilterMode(CUtexref hTexRef, CUfilter_mode fm) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetMipmapLevelBias(CUtexref hTexRef, float bias) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetMipmapLevelClamp(CUtexref hTexRef, float minMipmapLevelClamp, float maxMipmapLevelClamp) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetMaxAnisotropy(CUtexref hTexRef, unsigned int maxAniso) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetBorderColor(CUtexref hTexRef, float* pBorderColor) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefSetFlags(CUtexref hTexRef, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetAddress(CUdeviceptr* pdptr, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetArray(CUarray* phArray, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetMipmappedArray(CUmipmappedArray* phMipmappedArray, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetAddressMode(CUaddress_mode* pam, CUtexref hTexRef, int dim) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetFilterMode(CUfilter_mode* pfm, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetFormat(CUarray_format* pFormat, int* pNumChannels, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetMipmapFilterMode(CUfilter_mode* pfm, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetMipmapLevelBias(float* pbias, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetMipmapLevelClamp(float* pminMipmapLevelClamp, float* pmaxMipmapLevelClamp, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetMaxAnisotropy(int* pmaxAniso, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetBorderColor(float* pBorderColor, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefGetFlags(unsigned int* pFlags, CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefCreate(CUtexref* pTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexRefDestroy(CUtexref hTexRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSurfRefSetArray(CUsurfref hSurfRef, CUarray hArray, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSurfRefGetArray(CUarray* phArray, CUsurfref hSurfRef) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexObjectCreate(CUtexObject* pTexObject, const CUDA_RESOURCE_DESC* pResDesc, const CUDA_TEXTURE_DESC* pTexDesc, const CUDA_RESOURCE_VIEW_DESC* pResViewDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexObjectDestroy(CUtexObject texObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexObjectGetResourceDesc(CUDA_RESOURCE_DESC* pResDesc, CUtexObject texObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexObjectGetTextureDesc(CUDA_TEXTURE_DESC* pTexDesc, CUtexObject texObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTexObjectGetResourceViewDesc(CUDA_RESOURCE_VIEW_DESC* pResViewDesc, CUtexObject texObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSurfObjectCreate(CUsurfObject* pSurfObject, const CUDA_RESOURCE_DESC* pResDesc) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSurfObjectDestroy(CUsurfObject surfObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuSurfObjectGetResourceDesc(CUDA_RESOURCE_DESC* pResDesc, CUsurfObject surfObject) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTensorMapEncodeTiled(CUtensorMap* tensorMap, CUtensorMapDataType tensorDataType, cuuint32_t tensorRank, void* globalAddress, const cuuint64_t* globalDim, const cuuint64_t* globalStrides, const cuuint32_t* boxDim, const cuuint32_t* elementStrides, CUtensorMapInterleave interleave, CUtensorMapSwizzle swizzle, CUtensorMapL2promotion l2Promotion, CUtensorMapFloatOOBfill oobFill) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTensorMapEncodeIm2col(CUtensorMap* tensorMap, CUtensorMapDataType tensorDataType, cuuint32_t tensorRank, void* globalAddress, const cuuint64_t* globalDim, const cuuint64_t* globalStrides, const int* pixelBoxLowerCorner, const int* pixelBoxUpperCorner, cuuint32_t channelsPerPixel, cuuint32_t pixelsPerColumn, const cuuint32_t* elementStrides, CUtensorMapInterleave interleave, CUtensorMapSwizzle swizzle, CUtensorMapL2promotion l2Promotion, CUtensorMapFloatOOBfill oobFill) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTensorMapEncodeIm2colWide(CUtensorMap* tensorMap, CUtensorMapDataType tensorDataType, cuuint32_t tensorRank, void* globalAddress, const cuuint64_t* globalDim, const cuuint64_t* globalStrides, int pixelBoxLowerCornerWidth, int pixelBoxUpperCornerWidth, cuuint32_t channelsPerPixel, cuuint32_t pixelsPerColumn, const cuuint32_t* elementStrides, CUtensorMapInterleave interleave, CUtensorMapIm2ColWideMode mode, CUtensorMapSwizzle swizzle, CUtensorMapL2promotion l2Promotion, CUtensorMapFloatOOBfill oobFill) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuTensorMapReplaceAddress(CUtensorMap* tensorMap, void* globalAddress) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceCanAccessPeer(int* canAccessPeer, CUdevice dev, CUdevice peerDev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxEnablePeerAccess(CUcontext peerContext, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxDisablePeerAccess(CUcontext peerContext) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetP2PAttribute(int* value, CUdevice_P2PAttribute attrib, CUdevice srcDevice, CUdevice dstDevice) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsUnregisterResource(CUgraphicsResource resource) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsSubResourceGetMappedArray(CUarray* pArray, CUgraphicsResource resource, unsigned int arrayIndex, unsigned int mipLevel) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsResourceGetMappedMipmappedArray(CUmipmappedArray* pMipmappedArray, CUgraphicsResource resource) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsResourceGetMappedPointer(CUdeviceptr* pDevPtr, size_t* pSize, CUgraphicsResource resource) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsResourceSetMapFlags(CUgraphicsResource resource, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsMapResources(unsigned int count, CUgraphicsResource* resources, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsUnmapResources(unsigned int count, CUgraphicsResource* resources, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGetProcAddress(const char* symbol, void** pfn, int cudaVersion, cuuint64_t flags, CUdriverProcAddressQueryResult* symbolStatus) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpGetAttribute(CUcoredumpSettings attrib, void* value, size_t* size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpGetAttributeGlobal(CUcoredumpSettings attrib, void* value, size_t* size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpSetAttribute(CUcoredumpSettings attrib, void* value, size_t* size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpSetAttributeGlobal(CUcoredumpSettings attrib, void* value, size_t* size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGetExportTable(const void** ppExportTable, const CUuuid* pExportTableId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxCreate(CUgreenCtx* phCtx, CUdevResourceDesc desc, CUdevice dev, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxDestroy(CUgreenCtx hCtx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxFromGreenCtx(CUcontext* pContext, CUgreenCtx hCtx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetDevResource(CUdevice device, CUdevResource* resource, CUdevResourceType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetDevResource(CUcontext hCtx, CUdevResource* resource, CUdevResourceType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxGetDevResource(CUgreenCtx hCtx, CUdevResource* resource, CUdevResourceType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevSmResourceSplitByCount(CUdevResource* result, unsigned int* nbGroups, const CUdevResource* input, CUdevResource* remainder, unsigned int flags, unsigned int minCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevResourceGenerateDesc(CUdevResourceDesc* phDesc, CUdevResource* resources, unsigned int nbResources) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxRecordEvent(CUgreenCtx hCtx, CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxWaitEvent(CUgreenCtx hCtx, CUevent hEvent) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetGreenCtx(CUstream hStream, CUgreenCtx* phCtx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxStreamCreate(CUstream* phStream, CUgreenCtx greenCtx, unsigned int flags, int priority) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogsRegisterCallback(CUlogsCallback callbackFunc, void* userData, CUlogsCallbackHandle* callback_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogsUnregisterCallback(CUlogsCallbackHandle callback) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogsCurrent(CUlogIterator* iterator_out, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogsDumpToFile(CUlogIterator* iterator, const char* pathToFile, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogsDumpToMemory(CUlogIterator* iterator, char* buffer, size_t* size, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessGetRestoreThreadId(int pid, int* tid) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessGetState(int pid, CUprocessState* state) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessLock(int pid, CUcheckpointLockArgs* args) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessCheckpoint(int pid, CUcheckpointCheckpointArgs* args) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessRestore(int pid, CUcheckpointRestoreArgs* args) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointProcessUnlock(int pid, CUcheckpointUnlockArgs* args) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsEGLRegisterImage(CUgraphicsResource* pCudaResource, EGLImageKHR image, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamConsumerConnect(CUeglStreamConnection* conn, EGLStreamKHR stream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamConsumerConnectWithFlags(CUeglStreamConnection* conn, EGLStreamKHR stream, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamConsumerDisconnect(CUeglStreamConnection* conn) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamConsumerAcquireFrame(CUeglStreamConnection* conn, CUgraphicsResource* pCudaResource, CUstream* pStream, unsigned int timeout) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamConsumerReleaseFrame(CUeglStreamConnection* conn, CUgraphicsResource pCudaResource, CUstream* pStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamProducerConnect(CUeglStreamConnection* conn, EGLStreamKHR stream, EGLint width, EGLint height) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamProducerDisconnect(CUeglStreamConnection* conn) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamProducerPresentFrame(CUeglStreamConnection* conn, CUeglFrame eglframe, CUstream* pStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEGLStreamProducerReturnFrame(CUeglStreamConnection* conn, CUeglFrame* eglframe, CUstream* pStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsResourceGetMappedEglFrame(CUeglFrame* eglFrame, CUgraphicsResource resource, unsigned int index, unsigned int mipLevel) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuEventCreateFromEGLSync(CUevent* phEvent, EGLSyncKHR eglSync, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsGLRegisterBuffer(CUgraphicsResource* pCudaResource, GLuint buffer, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsGLRegisterImage(CUgraphicsResource* pCudaResource, GLuint image, GLenum target, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLGetDevices(unsigned int* pCudaDeviceCount, CUdevice* pCudaDevices, unsigned int cudaDeviceCount, CUGLDeviceList deviceList) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLCtxCreate(CUcontext* pCtx, unsigned int Flags, CUdevice device) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLInit() except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLRegisterBufferObject(GLuint buffer) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLMapBufferObject(CUdeviceptr* dptr, size_t* size, GLuint buffer) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLUnmapBufferObject(GLuint buffer) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLUnregisterBufferObject(GLuint buffer) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLSetBufferObjectMapFlags(GLuint buffer, unsigned int Flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLMapBufferObjectAsync(CUdeviceptr* dptr, size_t* size, GLuint buffer, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGLUnmapBufferObjectAsync(GLuint buffer, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuProfilerInitialize(const char* configFile, const char* outputFile, CUoutput_mode outputMode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuProfilerStart() except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuProfilerStop() except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuVDPAUGetDevice(CUdevice* pDevice, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuVDPAUCtxCreate(CUcontext* pCtx, unsigned int flags, CUdevice device, VdpDevice vdpDevice, VdpGetProcAddress* vdpGetProcAddress) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsVDPAURegisterVideoSurface(CUgraphicsResource* pCudaResource, VdpVideoSurface vdpSurface, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphicsVDPAURegisterOutputSurface(CUgraphicsResource* pCudaResource, VdpOutputSurface vdpSurface, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetHostAtomicCapabilities(unsigned int* capabilities, const CUatomicOperation* operations, unsigned int count, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxGetDevice_v2(CUdevice* device, CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCtxSynchronize_v2(CUcontext ctx) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyBatchAsync(CUdeviceptr* dsts, CUdeviceptr* srcs, size_t* sizes, size_t count, CUmemcpyAttributes* attrs, size_t* attrsIdxs, size_t numAttrs, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3DBatchAsync(size_t numOps, CUDA_MEMCPY3D_BATCH_OP* opList, unsigned long long flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetDefaultMemPool(CUmemoryPool* pool_out, CUmemLocation* location, CUmemAllocationType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetMemPool(CUmemoryPool* pool, CUmemLocation* location, CUmemAllocationType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemSetMemPool(CUmemLocation* location, CUmemAllocationType type, CUmemoryPool pool) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemPrefetchBatchAsync(CUdeviceptr* dptrs, size_t* sizes, size_t count, CUmemLocation* prefetchLocs, size_t* prefetchLocIdxs, size_t numPrefetchLocs, unsigned long long flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemDiscardBatchAsync(CUdeviceptr* dptrs, size_t* sizes, size_t count, unsigned long long flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemDiscardAndPrefetchBatchAsync(CUdeviceptr* dptrs, size_t* sizes, size_t count, CUmemLocation* prefetchLocs, size_t* prefetchLocIdxs, size_t numPrefetchLocs, unsigned long long flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetP2PAtomicCapabilities(unsigned int* capabilities, const CUatomicOperation* operations, unsigned int count, CUdevice srcDevice, CUdevice dstDevice) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGreenCtxGetId(CUgreenCtx greenCtx, unsigned long long* greenCtxId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastBindMem_v2(CUmemGenericAllocationHandle mcHandle, CUdevice dev, size_t mcOffset, CUmemGenericAllocationHandle memHandle, size_t memOffset, size_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMulticastBindAddr_v2(CUmemGenericAllocationHandle mcHandle, CUdevice dev, size_t mcOffset, CUdeviceptr memptr, size_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetContainingGraph(CUgraphNode hNode, CUgraph* phGraph) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetLocalId(CUgraphNode hNode, unsigned int* nodeId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetToolsId(CUgraphNode hNode, unsigned long long* toolsNodeId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphGetId(CUgraph hGraph, unsigned int* graphId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphExecGetId(CUgraphExec hGraphExec, unsigned int* graphId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDevSmResourceSplit(CUdevResource* result, unsigned int nbGroups, const CUdevResource* input, CUdevResource* remainder, unsigned int flags, CU_DEV_SM_RESOURCE_GROUP_PARAMS* groupParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamGetDevResource(CUstream hStream, CUdevResource* resource, CUdevResourceType type) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuKernelGetParamCount(CUkernel kernel, size_t* paramCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpyWithAttributesAsync(CUdeviceptr dst, CUdeviceptr src, size_t size, CUmemcpyAttributes* attr, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemcpy3DWithAttributesAsync(CUDA_MEMCPY3D_BATCH_OP* op, unsigned long long flags, CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamBeginCaptureToCig(CUstream hStream, CUstreamCigCaptureParams* streamCigCaptureParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamEndCaptureToCig(CUstream hStream) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuFuncGetParamCount(CUfunction func, size_t* paramCount) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLaunchHostFunc_v2(CUstream hStream, CUhostFn fn, void* userData, unsigned int syncMode) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeGetParams(CUgraphNode hNode, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpRegisterStartCallback(CUcoredumpStatusCallback callback, void* userData, CUcoredumpCallbackHandle* callbackOut) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpRegisterCompleteCallback(CUcoredumpStatusCallback callback, void* userData, CUcoredumpCallbackHandle* callbackOut) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpDeregisterStartCallback(CUcoredumpCallbackHandle callback) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCoredumpDeregisterCompleteCallback(CUcoredumpCallbackHandle callback) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointIdReserve(CUlogicalEndpointId* baseLeId, cuuint32_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointIdRelease(CUlogicalEndpointId baseLeId, cuuint32_t count) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointCreate(CUlogicalEndpointId leId, const CUlogicalEndpointProp* prop) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointAddDevice(CUlogicalEndpointId leId, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointDestroy(CUlogicalEndpointId leId) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointBindAddr(CUlogicalEndpointId leId, CUdevice dev, cuuint64_t offset, void* ptr, cuuint64_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointBindMem(CUlogicalEndpointId leId, CUdevice dev, cuuint64_t offset, CUmemGenericAllocationHandle memHandle, cuuint64_t memOffset, cuuint64_t size, unsigned long long flags) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointUnbind(CUlogicalEndpointId leId, CUdevice dev, cuuint64_t offset, cuuint64_t size) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointExport(void* handle, CUlogicalEndpointId leId, CUlogicalEndpointIpcHandleType handleType) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointImport(CUlogicalEndpointId leId, const void* handle, CUlogicalEndpointIpcHandleType handleType) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointGetLimits(cuuint64_t* bindAlignment, cuuint64_t* maxSize, const CUlogicalEndpointProp* prop) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuLogicalEndpointQuery(CUlogicalEndpointId leId, cuuint32_t count, int* queryStatus) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuStreamBeginRecaptureToGraph(CUstream hStream, CUstreamCaptureMode mode, CUgraph hGraph, CUgraphRecaptureCallback callbackFunc, void* userData) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetFabricClusterUuid(CUuuid* uuid, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetCliqueCount(size_t* count, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuDeviceGetCliqueInfo(CUcliqueInfo* cliqueInfo, size_t* count, CUdevice dev) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuMemGetLocationInfo(CUdeviceptr ptr, size_t size, size_t summaryGranularity, size_t samplingGranularity, CUmemLocation* location_out) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphAddNode_v3(CUgraphNode* phGraphNode, CUgraph hGraph, const CUgraphNode* dependencies, const CUgraphEdgeData* dependencyData, size_t numDependencies, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuGraphNodeSetParams_v2(CUgraphNode hNode, CUgraphNodeParams* nodeParams) except ?CUDA_ERROR_NOT_FOUND nogil
cdef CUresult cuCheckpointOperationComplete(CUcheckpointOperationHandle handle) except ?CUDA_ERROR_NOT_FOUND nogil


# TODO: Extract these defines somehow?

cdef enum: CU_IPC_HANDLE_SIZE = 64

cdef enum: CU_STREAM_LEGACY = 1

cdef enum: CU_STREAM_PER_THREAD = 2

cdef enum: CU_COMPUTE_ACCELERATED_TARGET_BASE = 65536

cdef enum: CU_COMPUTE_FAMILY_TARGET_BASE = 131072

cdef enum: CU_GRAPH_COND_ASSIGN_DEFAULT = 1

cdef enum: CU_GRAPH_KERNEL_NODE_PORT_DEFAULT = 0

cdef enum: CU_GRAPH_KERNEL_NODE_PORT_PROGRAMMATIC = 1

cdef enum: CU_GRAPH_KERNEL_NODE_PORT_LAUNCH_ORDER = 2

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_COOPERATIVE = 2

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_CLUSTER_DIMENSION = 4

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCE = 5

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_PRIORITY = 8

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_MEM_SYNC_DOMAIN_MAP = 9

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_MEM_SYNC_DOMAIN = 10

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_PREFERRED_CLUSTER_DIMENSION = 11

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_DEVICE_UPDATABLE_KERNEL_NODE = 13

cdef enum: CU_KERNEL_NODE_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT = 14

cdef enum: CU_STREAM_ATTRIBUTE_ACCESS_POLICY_WINDOW = 1

cdef enum: CU_STREAM_ATTRIBUTE_SYNCHRONIZATION_POLICY = 3

cdef enum: CU_STREAM_ATTRIBUTE_PRIORITY = 8

cdef enum: CU_STREAM_ATTRIBUTE_MEM_SYNC_DOMAIN_MAP = 9

cdef enum: CU_STREAM_ATTRIBUTE_MEM_SYNC_DOMAIN = 10

cdef enum: CU_MEMHOSTALLOC_PORTABLE = 1

cdef enum: CU_MEMHOSTALLOC_DEVICEMAP = 2

cdef enum: CU_MEMHOSTALLOC_WRITECOMBINED = 4

cdef enum: CU_MEMHOSTREGISTER_PORTABLE = 1

cdef enum: CU_MEMHOSTREGISTER_DEVICEMAP = 2

cdef enum: CU_MEMHOSTREGISTER_IOMEMORY = 4

cdef enum: CU_MEMHOSTREGISTER_READ_ONLY = 8

cdef enum: CU_ARRAY_SPARSE_PROPERTIES_SINGLE_MIPTAIL = 1

cdef enum: CU_TENSOR_MAP_NUM_QWORDS = 16

cdef enum: CUDA_EXTERNAL_MEMORY_DEDICATED = 1

cdef enum: CUDA_EXTERNAL_SEMAPHORE_SIGNAL_SKIP_NVSCIBUF_MEMSYNC = 1

cdef enum: CUDA_EXTERNAL_SEMAPHORE_WAIT_SKIP_NVSCIBUF_MEMSYNC = 2

cdef enum: CUDA_NVSCISYNC_ATTR_SIGNAL = 1

cdef enum: CUDA_NVSCISYNC_ATTR_WAIT = 2

cdef enum: CU_MEM_CREATE_USAGE_TILE_POOL = 1

cdef enum: CU_MEM_CREATE_USAGE_HW_DECOMPRESS = 2

cdef enum: CU_MEM_CREATE_USAGE_GPU_DIRECT_RDMA_OVER_PCIE = 4

cdef enum: CU_MEM_POOL_CREATE_USAGE_HW_DECOMPRESS = 2

cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC = 1

cdef enum: CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC = 2

cdef enum: CUDA_ARRAY3D_LAYERED = 1

cdef enum: CUDA_ARRAY3D_2DARRAY = 1

cdef enum: CUDA_ARRAY3D_SURFACE_LDST = 2

cdef enum: CUDA_ARRAY3D_CUBEMAP = 4

cdef enum: CUDA_ARRAY3D_TEXTURE_GATHER = 8

cdef enum: CUDA_ARRAY3D_DEPTH_TEXTURE = 16

cdef enum: CUDA_ARRAY3D_COLOR_ATTACHMENT = 32

cdef enum: CUDA_ARRAY3D_SPARSE = 64

cdef enum: CUDA_ARRAY3D_DEFERRED_MAPPING = 128

cdef enum: CUDA_ARRAY3D_VIDEO_ENCODE_DECODE = 256

cdef enum: CU_TRSA_OVERRIDE_FORMAT = 1

cdef enum: CU_TRSF_READ_AS_INTEGER = 1

cdef enum: CU_TRSF_NORMALIZED_COORDINATES = 2

cdef enum: CU_TRSF_SRGB = 16

cdef enum: CU_TRSF_DISABLE_TRILINEAR_OPTIMIZATION = 32

cdef enum: CU_TRSF_SEAMLESS_CUBEMAP = 64

cdef enum: CU_LAUNCH_KERNEL_REQUIRED_BLOCK_DIM = 1

cdef enum: CU_LAUNCH_PARAM_END_AS_INT = 0

cdef enum: CU_LAUNCH_PARAM_END = 0

cdef enum: CU_LAUNCH_PARAM_BUFFER_POINTER_AS_INT = 1

cdef enum: CU_LAUNCH_PARAM_BUFFER_POINTER = 1

cdef enum: CU_LAUNCH_PARAM_BUFFER_SIZE_AS_INT = 2

cdef enum: CU_LAUNCH_PARAM_BUFFER_SIZE = 2

cdef enum: CU_PARAM_TR_DEFAULT = -1

cdef enum: CU_DEVICE_CPU = -1

cdef enum: CU_DEVICE_INVALID = -2

cdef enum: MAX_PLANES = 3

cdef enum: CUDA_EGL_INFINITE_TIMEOUT = 4294967295

cdef enum: RESOURCE_ABI_VERSION = 1

cdef enum: RESOURCE_ABI_EXTERNAL_BYTES = 42
