Shortcuts

torch.cuda

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

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

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

CUDA 语义 提供了更多关于使用 CUDA 的详细信息。

StreamContext

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

can_device_access_peer

检查两个设备之间的对等访问是否可能。

当前BLAS句柄

返回当前 cuBLAS 句柄的 cublasHandle_t 指针

当前设备

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

当前流

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

默认流

返回给定设备的默认 Stream

设备

上下文管理器,用于更改所选设备。

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 调试模式的当前值。

初始化

初始化 PyTorch 的 CUDA 状态。

ipc_collect

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

is_available

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

is_initialized

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

memory_usage

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

set_device

设置当前设备。

set_stream

设置当前流。这是一个设置流的封装API。

设置同步调试模式

设置用于 CUDA 同步操作的调试模式。

stream

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

同步

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

利用率

返回在过去采样周期内,GPU上有一个或多个内核执行的时间百分比,如nvidia-smi所示。

温度

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

power_draw

返回GPU传感器在mW(毫瓦)下的平均功耗

clock_rate

返回过去采样周期内GPU SM的时钟速度,单位为赫兹(Hz),由nvidia-smi提供。

OutOfMemoryError

当 CUDA 内存不足时引发的异常

随机数生成器

获取随机数生成器状态

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

get_rng_state_all

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

设置随机数生成器状态

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

set_rng_state_all

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

manual_seed

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

manual_seed_all

设置在所有GPU上生成随机数的种子。

种子

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

seed_all

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

初始种子

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

通信集体

comm.broadcast

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

comm.broadcast_coalesced

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

comm.reduce_add

从多个GPU中汇总张量。

comm.scatter

在多个GPU上分散张量。

comm.gather

从多个GPU设备收集张量。

流和事件

CUDA 流的一个包装器。

外部流

围绕外部分配的CUDA流进行的封装。

事件

围绕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内存,以字节为单位。

最大内存分配

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

reset_max_memory_allocated

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

memory_reserved

返回由缓存分配器管理的指定设备的当前GPU内存,单位为字节。

最大保留内存

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

set_per_process_memory_fraction

设置进程的内存占用比例。

memory_cached

已弃用;请参阅 memory_reserved()

max_memory_cached

已弃用;请参阅max_memory_reserved()

reset_max_memory_cached

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

重置峰值内存统计

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

caching_allocator_alloc

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

caching_allocator_delete

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

get_allocator_backend

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

CUDAPluggableAllocator

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

change_current_allocator

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

NVIDIA 工具扩展 (NVTX)

nvtx.mark

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

nvtx.range_push

将一个范围推入嵌套范围跨度的堆栈中。

nvtx.range_pop

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

Jiterator (测试版)

jiterator._create_jit_fn

创建一个由jiterator生成的cuda内核用于元素操作。

jiterator._create_multi_output_jit_fn

创建一个由jiterator生成的cuda内核,用于支持返回一个或多个输出的元素操作。

流净化器(原型)

CUDA Sanitizer 是一个用于检测 PyTorch 中流之间同步错误的原型工具。 请参阅 文档 以了解如何使用它。