torch.cuda#
創建於: 2016年12月23日 | 最後更新於: 2025年08月19日
此包增加了對 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。 |
|
從多個 GPU 裝置收集張量。 |
流和事件#
CUDA 流的包裝器。 |
|
外部分配的 CUDA 流的包裝器。 |
|
CUDA 事件的包裝器。 |
圖 (beta)#
如果當前 CUDA 流正在捕獲 CUDA 圖,則返回 True,否則返回 False。 |
|
返回一個表示圖記憶體池 ID 的不透明令牌。 |
|
CUDA 圖的包裝器。 |
|
上下文管理器,將 CUDA 工作捕獲到 |
|
接受可呼叫物件(函式或 |
此包增加了對 CUDA 中實現的裝置記憶體管理的支援。
記憶體管理#
釋放快取分配器當前持有的所有未佔用快取記憶體,以便它們可供其他 GPU 應用程式使用並在“nvidia-smi”中可見。 |
|
獲取程序的記憶體比例。 |
|
返回給定裝置的正在執行的程序及其 GPU 記憶體使用情況的可讀列印輸出。 |
|
使用 cudaMemGetInfo 返回給定裝置的全域性空閒和總 GPU 記憶體。 |
|
返回給定裝置的 CUDA 記憶體分配器統計資訊的字典。 |
|
以巢狀字典的形式返回 |
|
重置 CUDA 記憶體分配器跟蹤的“累積”(歷史)統計資訊。 |
|
返回給定裝置的 CUDA 記憶體分配器統計資訊的字典。 |
|
將“host_memory_stats()”的結果作為巢狀字典返回。 |
|
重置主機記憶體分配器跟蹤的“累積”(歷史)統計資訊。 |
|
返回給定裝置的當前記憶體分配器統計資訊的可讀列印輸出。 |
|
返回所有裝置上 CUDA 記憶體分配器狀態的快照。 |
|
返回給定裝置上張量當前佔用的 GPU 記憶體(以位元組為單位)。 |
|
返回給定裝置上張量佔用的最大 GPU 記憶體(以位元組為單位)。 |
|
重置跟蹤給定裝置上張量佔用的最大 GPU 記憶體的起點。 |
|
返回給定裝置上快取分配器管理的當前 GPU 記憶體(以位元組為單位)。 |
|
返回給定裝置上快取分配器管理的最大 GPU 記憶體(以位元組為單位)。 |
|
設定程序的記憶體比例。 |
|
已棄用;請參閱 |
|
已棄用;請參閱 |
|
重置跟蹤快取分配器管理的給定裝置上的最大 GPU 記憶體的起點。 |
|
重置 CUDA 記憶體分配器跟蹤的“峰值”統計資訊。 |
|
重置主機記憶體分配器跟蹤的“峰值”統計資訊。 |
|
使用 CUDA 記憶體分配器執行記憶體分配。 |
|
刪除使用 CUDA 記憶體分配器分配的記憶體。 |
|
返回一個字串,描述由 |
|
從 so 檔案載入的 CUDA 記憶體分配器。 |
|
將當前使用的記憶體分配器更改為提供的分配器。 |
|
MemPool 代表快取分配器中的記憶體池。 |
啟用或停用 CUDA 記憶體分配器。 |
- class torch.cuda.use_mem_pool(pool, device=None)[source]#
一個上下文管理器,可將分配路由到給定的池。
- 引數
pool (torch.cuda.MemPool) – 一個 MemPool 物件,將使其成為活動狀態,以便分配路由到此池。
device (torch.device 或 int, optional) – 選定的裝置。如果
device為None(預設),則使用當前裝置上的 MemPool,由current_device()提供。
注意
此上下文管理器僅使當前執行緒的分配路由到給定的池。如果在上下文管理器內生成新執行緒(例如,透過呼叫 backward),則該執行緒中的分配不會路由到給定的池。
NVIDIA Tools Extension (NVTX)#
描述在某個時間點發生的瞬時事件。 |
|
將範圍推送到巢狀範圍跨度的堆疊上。 |
|
從巢狀範圍跨度的堆疊上彈出範圍。 |
|
上下文管理器/裝飾器,在作用域開始時推入 NVTX 範圍,在結束時彈出。 |
Jiterator (beta)#
為元素級操作建立 jiterator 生成的 cuda 核心。 |
|
為支援返回一個或多個輸出的元素級操作建立 jiterator 生成的 cuda 核心。 |
TunableOp#
某些操作可以使用多個庫或多種技術來實現。例如,GEMM 可以使用 cublas/cublasLt 庫或 hipblas/hipblasLt 庫分別針對 CUDA 或 ROCm 實現。如何知道哪種實現最快並應被選擇?這正是 TunableOp 提供的。某些運算子已透過 Tunable Operators 的形式實現。在執行時,所有策略都將進行效能分析,然後選擇最快的一種用於所有後續操作。
有關如何使用它的資訊,請參閱文件。
GPUDirect Storage (prototype)#
torch.cuda.gds 中的 API 是對某些 cuFile API 的薄封裝,它們允許 GPU 記憶體和儲存之間的直接記憶體訪問傳輸,避免了 CPU 中的反彈緩衝區。有關更多詳細資訊,請參閱cufile API 文件。
這些 API 可在 CUDA 12.6 及更高版本中使用。為了使用這些 API,必須確保您的系統已根據GPUDirect Storage 文件正確配置為使用 GPUDirect Storage。
有關如何使用這些 API 的示例,請參閱 GdsFile 的文件。
將 CUDA 裝置上的儲存註冊為 cufile 緩衝區。 |
|
登出先前在 CUDA 裝置上註冊為 cufile 緩衝區的儲存。 |
|
cuFile 的包裝器。 |