torch.cuda ¬
此包添加了对 CUDA 张量类型的支持。
它实现了与 CPU 张量相同的功能,但它们利用 GPU 进行计算。
它是懒加载的,所以您可以随时导入它,并使用 is_available()
来检查您的系统是否支持 CUDA。
CUDA 语义有更多关于使用 CUDA 的详细信息。
选择给定流的上下文管理器。 |
|
检查两个设备之间是否可以进行对等访问。 |
|
返回当前 cuBLAS 句柄的 cublasHandle_t 指针 |
|
返回当前选中设备的索引 |
|
返回给定设备当前选中的 |
|
获取 CUDA 运行时 API 模块 |
|
返回给定设备的默认 |
|
上下文管理器,用于更改所选设备。 |
|
返回可用的 GPU 数量。 |
|
返回由 nvidia-smi 或 amd-smi 给出的已用全局(设备)内存字节数。 |
|
当前设备上下文管理器,将当前设备更改为给定对象的设备。 |
|
返回此库编译的 CUDA 架构列表。 |
|
获取设备的 CUDA 能力。 |
|
获取设备的名称。 |
|
获取设备的属性。 |
|
返回此库编译时使用的 NVCC gencode 标志。 |
|
返回从外部分配的 CUDA 流中的 |
|
返回 cuda 同步操作调试模式的当前值。 |
|
初始化 PyTorch 的 CUDA 状态。 |
|
强制收集 CUDA IPC 释放后的 GPU 内存。 |
|
返回一个布尔值,指示 CUDA 当前是否可用。 |
|
返回 PyTorch 的 CUDA 状态是否已初始化。 |
|
返回一个布尔值,指示当前 CUDA/ROCm 设备是否支持 tf32 数据类型。 |
|
返回在过去样本期间,全局(设备)内存被读取或写入的时间百分比,由 nvidia-smi 提供。 |
|
设置当前设备。 |
|
设置当前流。这是一个包装 API,用于设置流。 |
|
设置 CUDA 同步操作的调试模式。 |
|
包装选择给定流的上下文管理器 StreamContext。 |
|
等待 CUDA 设备上所有流中的所有内核完成。 |
|
返回在过去采样期间,一个或多个内核在 GPU 上执行的时间百分比,由 nvidia-smi 提供。 |
|
返回 GPU 传感器的平均温度,单位为摄氏度(摄氏度)。 |
|
返回 GPU 传感器的平均功耗,单位为毫瓦(毫瓦)。 |
|
返回过去采样周期内 GPU SM 的时钟速度,单位为 MHz(兆赫兹),由 nvidia-smi 提供。 |
|
当设备内存不足时引发的异常。 |
随机数生成器
返回指定 GPU 的随机数生成器状态,作为 ByteTensor。 |
|
返回表示所有设备随机数状态的 ByteTensor 列表。 |
|
设置指定 GPU 的随机数生成器状态。 |
|
设置所有设备的随机数生成器状态。 |
|
设置当前 GPU 生成随机数的种子。 |
|
设置所有 GPU 上生成随机数的种子。 |
|
将当前 GPU 生成随机数的种子设置为随机数。 |
|
将生成随机数的种子设置为所有 GPU 上的随机数。 |
|
返回当前 GPU 的当前随机种子。 |
通信集合 ¶
将张量广播到指定的 GPU 设备。 |
|
向指定的 GPU 广播一系列张量。 |
|
从多个 GPU 求和张量。 |
|
将张量分散到多个 GPU 上。 |
|
从多个 GPU 设备收集张量。 |
流和事件
CUDA 流包装器 |
|
外部分配的 CUDA 流包装器 |
|
CUDA 事件包装器 |
图(测试版)¶
如果当前 CUDA 流正在进行 CUDA 图捕获,则返回 True,否则返回 False。 |
|
返回表示图内存池 ID 的不可见令牌。 |
|
CUDA 图的包装器。 |
|
捕获 CUDA 工作并将其存储到 |
|
接受可调用对象(函数或 |
内存管理 §
释放缓存分配器当前持有的所有未占用缓存内存,以便在其他 GPU 应用程序中使用并在 nvidia-smi 中可见。 |
|
获取进程的内存分数。 |
|
返回给定设备的运行进程及其 GPU 内存使用的可读打印输出。 |
|
使用 cudaMemGetInfo 返回给定设备的全局空闲和总 GPU 内存。 |
|
返回给定设备的 CUDA 内存分配器统计信息的字典。 |
|
返回给定设备的 CUDA 内存分配器统计信息的字典。 |
|
返回给定设备的当前内存分配器统计信息的人类可读打印输出。 |
|
返回所有设备上 CUDA 内存分配器状态的快照。 |
|
返回给定设备上张量占用的当前 GPU 内存量(以字节为单位)。 |
|
返回给定设备中张量占用的最大 GPU 内存(以字节为单位)。 |
|
重置跟踪给定设备中张量占用的最大 GPU 内存的起始点。 |
|
返回给定设备中缓存分配器管理的当前 GPU 内存(以字节为单位)。 |
|
返回给定设备中缓存分配器管理的最大 GPU 内存(以字节为单位)。 |
|
设置进程的内存分数。 |
|
已弃用;请参阅 |
|
已弃用;请参阅 |
|
重置跟踪最大 GPU 内存的起始点,该内存由给定设备的缓存分配器管理。 |
|
重置 CUDA 内存分配器跟踪的"峰值"统计信息。 |
|
重置主机内存分配器跟踪的"峰值"统计信息。 |
|
使用 CUDA 内存分配器进行内存分配。 |
|
删除使用 CUDA 内存分配器分配的内存。 |
|
返回一个描述由 |
|
从 so 文件加载的 CUDA 内存分配器。 |
|
将当前使用的内存分配器更改为提供的分配器。 |
|
MemPool 代表缓存分配器中的内存池。 |
|
MemPoolContext 存储当前活动池并保留之前的池。 |
启用或禁用 CUDA 内存分配器。 |
NVIDIA 工具扩展(NVTX)
描述在某个时刻发生的瞬时事件。 |
|
将一个范围推入嵌套范围跨度栈中。 |
|
从嵌套范围跨度栈中弹出范围。 |
|
上下文管理器/装饰器,在作用域开始时推送一个 NVTX 范围,并在结束时弹出。 |
Jiterator(beta)
创建一个由 jiterator 生成的 CUDA 内核,用于元素级操作。 |
|
创建一个由 jiterator 生成的 CUDA 内核,该内核支持返回一个或多个输出,用于元素级操作。 |
可调操作符
一些操作可以使用多个库或多种技术来实现。例如,GEMM 操作可以针对 CUDA 或 ROCm 使用 cublas/cublasLt 库或 hipblas/hipblasLt 库分别实现。如何知道哪种实现速度最快,应该选择哪种?这就是可调操作符的作用。某些操作已经使用多种策略实现了可调操作符。在运行时,所有策略都会被分析,并选择最快的策略用于后续的所有操作。
查看文档以获取如何使用它的信息。
流消毒器(原型)¶
CUDA 消毒器是用于检测 PyTorch 中流之间同步错误的原型工具。请参阅文档以获取使用信息。
GPUDirect 存储(原型)¶
torch.cuda.gds
中的 API 提供了对某些 cuFile API 的薄包装,允许在 GPU 内存和存储之间进行直接内存访问传输,避免了 CPU 中的弹跳缓冲区。有关详细信息,请参阅 cufile API 文档。
这些 API 可用于 CUDA 12.6 及更高版本。为了使用这些 API,必须确保系统根据 GPUDirect Storage 文档进行了适当的配置。
请参阅 GdsFile
的文档,了解如何使用这些 API 的示例。
将 CUDA 设备上的存储注册为 cufile 缓冲区。 |
|
在 CUDA 设备上注销之前已注册的存储作为 cufile 缓冲区。 |
|
cuFile 的包装器。 |