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

1# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 

2# 

3# SPDX-License-Identifier: Apache-2.0 

4  

5from libc.stdint cimport uintptr_t 

6  

7from cuda.bindings cimport cydriver 

8from cuda.core._resource_handles cimport DevicePtrHandle 

9from cuda.core._stream cimport Stream 

10  

11  

12cdef struct _MemAttrs: 

13 int device_id 

14 bint is_device_accessible 

15 bint is_host_accessible 

16 bint is_managed 

17  

18  

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 

32  

33  

34cdef class MemoryResource: 

35 pass 

36  

37  

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) 

48  

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