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 裝置是否支援 dtype tf32。 |
|
返回在過去取樣週期內,全域性 (裝置) 記憶體被讀取或寫入的時間百分比,由 nvidia-smi 報告。 |
|
設定當前裝置。 |
|
設定當前流。這是一個設定流的包裝 API。 |
|
設定 CUDA 同步操作的除錯模式。 |
|
包裝 StreamContext 上下文管理器,用於選擇給定流。 |
|
等待 CUDA 裝置上所有流中的所有核心完成。 |
|
返回在過去取樣週期內,一個或多個核心在 GPU 上執行的時間百分比,由 nvidia-smi 報告。 |
|
返回 GPU 感測器以攝氏度 (Degrees C) 為單位的平均溫度。 |
|
返回 GPU 感測器以毫瓦 (MilliWatts) 為單位的平均功耗。 |
|
返回在過去取樣週期內,GPU SM 以兆赫茲 (megahertz) 為單位的時鐘速度,由 nvidia-smi 報告。 |
|
裝置記憶體不足時引發的異常 |
隨機數生成器¶
返回指定 GPU 的隨機數生成器狀態,作為 ByteTensor。 |
|
返回一個 ByteTensor 列表,代表所有裝置的隨機數狀態。 |
|
設定指定 GPU 的隨機數生成器狀態。 |
|
設定所有裝置的隨機數生成器狀態。 |
|
為當前 GPU 設定用於生成隨機數的種子。 |
|
為所有 GPU 設定用於生成隨機數的種子。 |
|
為當前 GPU 將隨機數生成種子設定為一個隨機數。 |
|
為所有 GPU 將隨機數生成種子設定為一個隨機數。 |
|
返回當前 GPU 的當前隨機種子。 |
通訊集合操作¶
將張量廣播到指定的 GPU 裝置。 |
|
將一系列張量廣播到指定的 GPU。 |
|
對來自多個 GPU 的張量求和。 |
|
將張量分散到多個 GPU。 |
|
從多個 GPU 裝置收集張量。 |
流和事件¶
CUDA 流的包裝器。 |
|
外部分配的 CUDA 流的包裝器。 |
|
CUDA 事件的包裝器。 |
圖 (beta)¶
如果當前 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 記憶體分配器。 |
- class torch.cuda.use_mem_pool(pool, device=None)[source][source]¶
一個將分配路由到給定記憶體池的上下文管理器。
- 引數
pool (torch.cuda.MemPool) – 一個要被啟用的 MemPool 物件,以便將分配路由到此記憶體池。
device (torch.device 或 int, 可選) – 選定裝置。如果
device為None(預設),則使用current_device()給定的當前裝置的 MemPool。
NVIDIA 工具擴充套件 (NVTX)¶
描述在某個時間點發生的瞬時事件。 |
|
將一個範圍推入巢狀範圍跨度棧。 |
|
從巢狀範圍跨度棧彈出一個範圍。 |
|
上下文管理器 / 裝飾器,在其作用域開始時推入一個 NVTX 範圍,並在結束時彈出。 |
Jiterator (beta)¶
為逐元素操作建立一個由 jiterator 生成的 cuda kernel。 |
|
為支援返回一個或多個輸出的逐元素操作建立一個由 jiterator 生成的 cuda kernel。 |
TunableOp¶
某些操作可以使用不止一個庫或不止一種技術來實現。例如,GEMM 可以針對 CUDA 或 ROCm 使用 cublas/cublasLt 庫或 hipblas/hipblasLt 庫來實現。如何知道哪種實現最快並且應該被選擇?這就是 TunableOp 提供的功能。某些運算元已作為 Tunable Operators 使用多種策略實現。在執行時,會對所有策略進行效能分析,並選擇最快的一種用於所有後續操作。
請參閱 文件 以獲取如何使用它的資訊。
GPUDirect Storage (原型)¶
位於 torch.cuda.gds 中的 API 提供了某些 cuFile API 的輕量級包裝器,允許在 GPU 記憶體和儲存之間進行直接記憶體訪問傳輸,避免在 CPU 中使用跳板緩衝區 (bounce buffer)。請參閱 cufile API 文件 以獲取更多詳細資訊。
這些 API 可用於 CUDA 12.6 及更高版本。為了使用這些 API,必須確保系統已按照 GPUDirect Storage 文件 的說明進行了適當配置以使用 GPUDirect Storage。
請參閱 GdsFile 的文件以獲取如何使用這些 API 的示例。
在 CUDA 裝置上將儲存註冊為 cufile 緩衝區。 |
|
在 CUDA 裝置上登出先前已註冊的儲存作為 cufile 緩衝區。 |
|
cuFile 的包裝器。 |