CUDA 封装器
模块: polygraphy.cuda
- class MemcpyKind[source]
- 基类: - object- 枚举不同类型的复制操作。 - HostToHost = c_int(0)
- 从主机内存复制到主机内存 
 - HostToDevice = c_int(1)
- 从主机内存复制到设备内存 
 - DeviceToHost = c_int(2)
- 从设备内存复制到主机内存 
 - DeviceToDevice = c_int(3)
- 从设备内存复制到设备内存 
 
- class Cuda[source]
- 基类: - object- 注意:不要手动构造此类。请使用 - wrapper()函数来获取全局封装器。- 封装器,用于公开底层 CUDA 功能。 - malloc(nbytes)[source]
- 在 GPU 上分配内存。 - 参数:
- nbytes (int) – 要分配的字节数。 
- 返回:
- 已分配区域的内存地址,即设备指针。 
- 返回类型:
- int 
- 抛出:
- PolygraphyException – 如果在分配期间遇到错误。 
 
 - free(ptr)[source]
- 释放 GPU 上分配的内存。 - 参数:
- ptr (int) – 内存地址,即设备指针。 
- 抛出:
- PolygraphyException – 如果在释放期间遇到错误。 
 
 - memcpy(dst, src, nbytes, kind, stream_ptr=None)[source]
- 在主机和设备内存之间复制数据。 - 参数:
- dst (int) – 目标内存地址,即指针。 
- src (int) – 源内存地址,即指针。 
- nbytes (int) – 要复制的字节数。 
- kind (MemcpyKind) – 要执行的复制类型。 
- stream_ptr (int) – CUDA 流的内存地址,即指针。如果未提供,则执行同步复制。 
 
- 抛出:
- PolygraphyException – 如果在复制期间遇到错误。 
 
 
- class DeviceView(ptr, shape, dtype)[source]
- 基类: - object- GPU 内存区域的只读视图。 - 参数:
- ptr (int) – 指向内存区域的指针。 
- shape (Tuple[int]) – 区域的形状。 
- dtype (DataType) – 区域的数据类型。 
 
 - ptr
- 底层 GPU 内存的内存地址 - 类型:
- int 
 
 - shape
- 设备缓冲区的形状 - 类型:
- Tuple[int] 
 
 - property nbytes
- 内存区域中的字节数。 
 
- class DeviceArray(shape=None, dtype=None)[source]
- 基类: - DeviceView- GPU 上的数组。 - 参数:
- shape (Tuple[int]) – 缓冲区的初始形状。 
- dtype (DataType) – 缓冲区的数据类型。 
 
 - copy_to(host_buffer, stream=None)
- 从此设备缓冲区复制到提供的主机缓冲区。 - 参数:
- host_buffer (Union[numpy.ndarray, torch.Tensor]) – 要复制到的主机缓冲区。缓冲区在内存中必须是连续的(参见 np.ascontiguousarray 或 torch.Tensor.contiguous),并且足够大以容纳设备缓冲区。 
- stream (Stream) – Stream 实例。如果未提供流,则执行同步复制。 
 
- 返回:
- 主机缓冲区 
- 返回类型:
- np.ndarray 
 
 - property dtype
 - property nbytes
- 内存区域中的字节数。 
 - numpy()
- 创建一个新的 NumPy 数组,其中包含此设备缓冲区的内容。 - 返回:
- 新创建的 NumPy 数组。 
- 返回类型:
- np.ndarray 
 
 - ptr
- 底层 GPU 内存的内存地址 - 类型:
- int 
 
 - shape
- 设备缓冲区的形状 - 类型:
- Tuple[int] 
 
 - static raw(shape=None)[source]
- 创建指定形状的无类型设备数组。 - 参数:
- shape (Tuple[int]) – 缓冲区的初始形状,以字节为单位。例如,形状为 - (4, 4)将分配一个 16 字节的数组。
- 返回:
- 原始设备数组。 
- 返回类型:
 
 - resize(shape)[source]
- 调整数组大小或将其重塑为指定的形状。 - 如果已分配的内存区域足够大,则不会执行重新分配。 - 参数:
- shape (Tuple[int]) – 新形状。 
- 返回:
- self 
- 返回类型:
 
 - copy_from(host_buffer, stream=None)[source]
- 从提供的主机缓冲区复制到此设备缓冲区。 - 参数:
- host_buffer (Union[numpy.ndarray, torch.Tensor]) – 要从中复制的主机缓冲区。缓冲区在内存中必须是连续的(参见 np.ascontiguousarray 或 torch.Tensor.contiguous),并且不大于此设备缓冲区。 
- stream (Stream) – Stream 实例。如果未提供流,则执行同步复制。 
 
- 返回:
- self 
- 返回类型: