Coverage for cuda / core / _memory / _buffer.pxd: 100.00%
0 statements
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-22 01:37 +0000
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-22 01:37 +0000
1# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2#
3# SPDX-License-Identifier: Apache-2.0
5from libc.stdint cimport uintptr_t
7from cuda.bindings cimport cydriver
8from cuda.core._resource_handles cimport DevicePtrHandle
9from cuda.core._stream cimport Stream
12cdef struct _MemAttrs:
13 int device_id
14 bint is_device_accessible
15 bint is_host_accessible
16 bint is_managed
19cdef class Buffer:
20 cdef:
21 DevicePtrHandle _h_ptr
22 MemoryResource _memory_resource
23 object _ipc_data
24 object _owner
25 _MemAttrs _mem_attrs
26 bint _mem_attrs_inited
27 object __weakref__
28 cdef public:
29 # Python code in _memory/_virtual_memory_resource.py needs to update
30 # this value, though it is technically private.
31 size_t _size
34cdef class MemoryResource:
35 pass
38# Helper function to create a Buffer from a DevicePtrHandle.
39# `cls` lets callers materialize Buffer subclasses (e.g. ManagedBuffer for
40# managed-memory allocations); defaults to Buffer.
41cdef Buffer Buffer_from_deviceptr_handle(
42 DevicePtrHandle h_ptr,
43 size_t size,
44 MemoryResource mr,
45 object ipc_descriptor = *,
46 type cls = *,
47)
49# Memory attribute query helpers (used by _managed_memory_ops)
50cdef void _init_mem_attrs(Buffer self)
51cdef int _query_memory_attrs(
52 _MemAttrs& out,
53 cydriver.CUdeviceptr ptr,
54) except -1 nogil