快捷方式

torch.cuda

此包添加了对 CUDA 张量类型的支持。

它实现了与 CPU 张量相同的函数,但它们利用 GPU 进行计算。

它是延迟初始化的,因此您始终可以导入它,并使用 is_available() 来确定您的系统是否支持 CUDA。

CUDA 语义 包含有关使用 CUDA 的更多详细信息。

StreamContext

选择给定流的上下文管理器。

can_device_access_peer

检查两个设备之间是否可以进行对等访问。

current_blas_handle

返回指向当前 cuBLAS 句柄的 cublasHandle_t 指针

current_device

返回当前选定设备的索引。

current_stream

返回给定设备的当前选定 Stream

cudart

检索 CUDA 运行时 API 模块。

default_stream

返回给定设备的默认 Stream

device

更改选定设备的上下文管理器。

device_count

返回可用的 GPU 数量。

device_of

将当前设备更改为给定对象的设备的上下文管理器。

get_arch_list

返回此库为其编译的 CUDA 架构列表。

get_device_capability

获取设备的 cuda 功能。

get_device_name

获取设备的名称。

get_device_properties

获取设备的属性。

get_gencode_flags

返回此库编译时使用的 NVCC gencode 标志。

get_sync_debug_mode

返回 cuda 同步操作的调试模式的当前值。

init

初始化 PyTorch 的 CUDA 状态。

ipc_collect

在 CUDA IPC 释放 GPU 内存后强制收集。

is_available

返回一个布尔值,指示 CUDA 是否当前可用。

is_initialized

返回 PyTorch 的 CUDA 状态是否已初始化。

memory_usage

返回过去采样周期内全局(设备)内存被读取或写入的时间百分比,由 nvidia-smi 给出。

set_device

设置当前设备。

set_stream

设置当前流。这是设置流的包装器 API。

set_sync_debug_mode

设置 cuda 同步操作的调试模式。

stream

围绕选择给定流的上下文管理器 StreamContext 进行包装。

synchronize

等待 CUDA 设备上所有流中的所有内核完成。

utilization

返回过去采样周期内 GPU 上执行了一个或多个内核的时间百分比,由 nvidia-smi 给出。

temperature

返回 GPU 传感器的平均温度(摄氏度)。

power_draw

返回 GPU 传感器的平均功耗(毫瓦)。

clock_rate

返回过去采样周期内 GPU SM 的时钟速度(赫兹),由 nvidia-smi 给出。

OutOfMemoryError

当设备内存不足时引发的异常

随机数生成器

get_rng_state

将指定 GPU 的随机数生成器状态作为 ByteTensor 返回。

get_rng_state_all

返回一个 ByteTensor 列表,表示所有设备的随机数状态。

set_rng_state

设置指定 GPU 的随机数生成器状态。

set_rng_state_all

设置所有设备的随机数生成器状态。

manual_seed

为当前 GPU 生成随机数设置种子。

manual_seed_all

为所有 GPU 生成随机数设置种子。

seed

为当前 GPU 生成随机数设置随机数种子。

seed_all

为所有 GPU 生成随机数设置随机数种子。

initial_seed

返回当前 GPU 的当前随机数种子。

通信集体操作

comm.broadcast

将张量广播到指定的 GPU 设备。

comm.broadcast_coalesced

将一系列张量广播到指定的 GPU。

comm.reduce_add

对来自多个 GPU 的张量求和。

comm.scatter

将张量散布到多个 GPU。

comm.gather

从多个 GPU 设备收集张量。

流和事件

Stream

CUDA 流的包装器。

ExternalStream

外部分配的 CUDA 流的包装器。

Event

CUDA 事件的包装器。

图形 (测试版)

is_current_stream_capturing

如果当前 CUDA 流正在进行 CUDA 图捕获,则返回 True,否则返回 False。

graph_pool_handle

返回表示图形内存池 ID 的不透明令牌。

CUDAGraph

CUDA 图的包装器。

graph

捕获 CUDA 工作到 torch.cuda.CUDAGraph 对象以供稍后重放的上下文管理器。

make_graphed_callables

接受可调用对象(函数或 nn.Module)并返回图形化版本。

内存管理

empty_cache

释放缓存分配器当前持有的所有未被占用的缓存内存,以便这些内存可以在其他 GPU 应用程序中使用,并在 nvidia-smi 中可见。

list_gpu_processes

返回给定设备上正在运行的进程及其 GPU 内存使用情况的可读打印输出。

mem_get_info

使用 cudaMemGetInfo 返回给定设备的全局空闲和总 GPU 内存。

memory_stats

返回给定设备的 CUDA 内存分配器统计信息的字典。

memory_summary

返回给定设备的当前内存分配器统计信息的可读打印输出。

memory_snapshot

返回所有设备上 CUDA 内存分配器状态的快照。

memory_allocated

返回给定设备上张量占用的当前 GPU 内存(以字节为单位)。

max_memory_allocated

返回给定设备上张量占用的最大 GPU 内存(以字节为单位)。

reset_max_memory_allocated

重置给定设备上跟踪张量占用最大 GPU 内存的起始点。

memory_reserved

返回给定设备上缓存分配器管理的当前 GPU 内存(以字节为单位)。

max_memory_reserved

返回给定设备上缓存分配器管理的最大 GPU 内存(以字节为单位)。

set_per_process_memory_fraction

设置进程的内存比例。

memory_cached

已弃用;请参阅 memory_reserved()

max_memory_cached

已弃用;请参阅 max_memory_reserved()

reset_max_memory_cached

重置给定设备上跟踪缓存分配器管理的最大 GPU 内存的起始点。

reset_peak_memory_stats

重置 CUDA 内存分配器跟踪的“峰值”统计信息。

caching_allocator_alloc

使用 CUDA 内存分配器执行内存分配。

caching_allocator_delete

删除使用 CUDA 内存分配器分配的内存。

get_allocator_backend

返回由 PYTORCH_CUDA_ALLOC_CONF 设置的活动分配器后端的描述字符串。

CUDAPluggableAllocator

从 so 文件加载的 CUDA 内存分配器。

change_current_allocator

将当前使用的内存分配器更改为提供的分配器。

MemPool

MemPool 表示缓存分配器中的一组内存。

MemPoolContext

MemPoolContext 保存当前活动的池并存储先前的池。

class torch.cuda.use_mem_pool(pool, device=None)[source]

将分配路由到给定池的上下文管理器。

参数

NVIDIA 工具扩展 (NVTX)

nvtx.mark

描述在某个时间点发生的瞬时事件。

nvtx.range_push

将范围推送到嵌套范围跨度的堆栈上。

nvtx.range_pop

从嵌套范围跨度的堆栈中弹出范围。

nvtx.range

上下文管理器/装饰器,在其作用域的开头推送 NVTX 范围,并在末尾弹出。

Jiterator (beta)

jiterator._create_jit_fn

为逐元素运算创建 jiterator 生成的 cuda 内核。

jiterator._create_multi_output_jit_fn

为支持返回一个或多个输出的逐元素运算创建 jiterator 生成的 cuda 内核。

TunableOp

某些操作可以使用多个库或多种技术来实现。例如,可以使用 cublas/cublasLt 库或 hipblas/hipblasLt 库分别为 CUDA 或 ROCm 实现 GEMM。如何知道哪种实现最快,应该选择哪种?这就是 TunableOp 提供的功能。某些运算符已使用多种策略作为可调运算符实现。在运行时,将分析所有策略,并为所有后续操作选择最快的策略。

有关如何使用它的信息,请参阅 文档

流清理程序 (原型)

CUDA 清理程序是一个用于检测 PyTorch 中流之间同步错误的原型工具。有关如何使用它的信息,请参阅 文档

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源