torch.cuda
此包提供了对CUDA张量类型的支持。
它与CPU张量实现相同的功能,但使用GPU来进行计算。
它是延迟初始化的,所以你可以随时导入它,并使用is_available()
来判断你的系统是否支持 CUDA。
CUDA语义 提供了更多关于如何使用 CUDA 的详细信息。
用于选择指定流的上下文管理器。 |
|
检查两个设备之间是否可以互相访问。 |
|
返回当前 cuBLAS 处理句柄的 cublasHandle_t 指针 |
|
返回当前选定设备的索引。 |
|
返回给定设备当前选择的 |
|
获取CUDA运行时API模块。 |
|
返回给定设备的默认 |
|
用于更改选定设备的上下文管理器。 |
|
返回可用GPU的数量。 |
|
一个上下文管理器,用于将当前设备切换为给定对象的设备。 |
|
返回此库编译所针对的CUDA架构列表。 |
|
获取设备的 CUDA 能力。 |
|
获取设备名称。 |
|
获取设备的属性。 |
|
返回此库编译时所使用的NVCC gencode标志。 |
|
返回当前cuda同步操作的调试模式值。 |
|
初始化 PyTorch 的 CUDA 状态。 |
|
在CUDA IPC释放后,强制收集GPU内存。 |
|
返回一个布尔值,指示当前是否可用 CUDA。 |
|
返回 PyTorch 的 CUDA 是否已经初始化。 |
|
返回过去采样期间内,全球(设备)内存被读取或写入时间的百分比,根据nvidia-smi显示的数据。 |
|
设置当前设备。 |
|
设置当前流。这是一个用于设置流的包装 API。 |
|
设置CUDA同步操作的调试模式。 |
|
使用上下文管理器 StreamContext 来选择指定的流。 |
|
等待CUDA设备上所有流中的所有内核完成执行。 |
|
返回过去采样期间内,一个或多个内核在 GPU 上执行所占用的时间百分比,由 nvidia-smi 给出。 |
|
|
返回 GPU 传感器的平均温度(摄氏度)。 |
返回GPU传感器的平均功耗值,单位为毫瓦(mW) |
|
返回过去采样期内GPU SM的时钟速度(以赫兹 Hz 为单位),数据来源于 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内存分配器状态的快照。 |
|
以字节为单位返回给定设备上张量当前占用的 GPU 内存。 |
|
以字节为单位返回给定设备上张量占用的最大 GPU 内存。 |
|
重置给定设备上最大GPU内存占用的起始点。 |
|
以字节为单位返回缓存分配器管理的给定设备上的当前GPU内存。 |
|
返回给定设备上缓存分配器管理的最大GPU内存(以字节为单位)。 |
|
为一个进程设定内存分数。 |
|
已弃用;请参见 |
|
已弃用;请参见 |
|
重置给定设备上缓存分配器管理的最大 GPU 内存跟踪的起点。 |
|
重置 CUDA 内存分配器跟踪的“峰值”统计数据。 |
|
使用CUDA内存分配器进行内存分配。 |
|
删除使用CUDA内存分配器分配的内存。 |
|
返回一个字符串,描述由 |
|
CUDA 内存分配器从 so 文件中加载。
|
|
将当前使用的内存分配器更换为提供的那个。 |
|
MemPool 表示缓存分配器中的一个内存池。 |
|
MemPoolContext 保存当前活跃的池,并存放之前的池。 |
- classtorch.cuda.use_mem_pool(pool, device=None)[源代码]
-
一个上下文管理器,将分配任务路由到指定的池中。
- 参数
-
-
pool (torch.cuda.MemPool) – 一个要激活的 MemPool 对象,使得分配操作指向该池。
-
device (torch.device 或 int, 可选) – 选定的设备。如果
current_device()
返回当前设备且device
为None
(默认值),则使用该设备的 MemPool。
-
NVIDIA工具扩展(NVTX)
描述一个在某个时刻发生的瞬间事件。 |
|
|
将一个范围压入嵌套范围栈。 |
|
从嵌套范围跨度的栈中弹出一个范围。 |
这是一个上下文管理器和装饰器,它在作用域开始时启动一个NVTX范围,并在作用域结束时停止该范围。 |
Jiterator(测试版)
为一个元素级操作创建一个由jiterator生成的CUDA内核。 |
|
为一个元素级操作创建一个由jiterator生成的支持返回一个或多个输出的CUDA内核。 |
TunableOp
某些操作可以使用不同的库或技术来实现。例如,GEMM 可以分别在 CUDA 和 ROCm 上使用 cublas/cublasLt 库或 hipblas/hipblasLt 库进行实现。如何确定哪种实现方式最快并选择它呢?这就是 TunableOp 的作用所在。某些操作已作为可调用算子采用多种策略来实现。运行时,所有策略都会被评估,并且会选择最快的策略用于后续的所有操作。
参见文档以了解更多使用方法。
流净化器(原型版)
CUDA Sanitizer 是一个用于检测 PyTorch 中流之间同步错误的原型工具。关于如何使用它,请参阅文档。