捷徑

torch.cuda

此套件增加了對 CUDA 張量類型的支援。

它實現的功能與 CPU 張量相同,但它們利用 GPU 進行計算。

它是延遲初始化的,因此您可以隨時匯入它,並使用 is_available() 來確定您的系統是否支援 CUDA。

CUDA 語義 中有更多關於使用 CUDA 的詳細資訊。

StreamContext

選擇給定串流的 Context-manager。

can_device_access_peer

檢查兩個裝置之間是否可以進行點對點存取。

current_blas_handle

傳回指向目前 cuBLAS 控制代碼的 cublasHandle_t 指標

current_device

傳回目前選定裝置的索引。

current_stream

傳回給定裝置目前選定的 Stream

default_stream

傳回給定裝置的預設 Stream

device

變更選定裝置的 Context-manager。

device_count

傳回可用的 GPU 數量。

device_of

將目前裝置變更為給定物件裝置的 Context-manager。

get_arch_list

傳回此函式庫編譯時使用的 CUDA 架構清單。

get_device_capability

取得裝置的 cuda 功能。

get_device_name

取得裝置的名稱。

get_device_properties

取得裝置的屬性。

get_gencode_flags

傳回編譯此函式庫時使用的 NVCC gencode 旗標。

get_sync_debug_mode

傳回 cuda 同步作業之偵錯模式的目前值。

init

初始化 PyTorch 的 CUDA 狀態。

ipc_collect

在 CUDA IPC 釋放 GPU 記憶體後強制收集。

is_available

傳回一個布林值,表示 CUDA 目前是否可用。

is_initialized

傳回 PyTorch 的 CUDA 狀態是否已初始化。

memory_usage

根據 nvidia-smi 的指示,傳回過去取樣期間內讀取或寫入全域(裝置)記憶體所花費的時間百分比。

set_device

設定目前的裝置。

set_stream

設定目前的串流。這是用於設定串流的包裝函式 API。

set_sync_debug_mode

設定 cuda 同步作業的偵錯模式。

stream

包裝在選擇給定串流的 Context-manager StreamContext 周圍。

synchronize

等待 CUDA 裝置上所有串流中的所有核心完成。

utilization

根據 nvidia-smi 的指示,傳回過去取樣期間內一個或多個核心在 GPU 上執行的時間百分比。

temperature

傳回 GPU 感測器的平均溫度,單位為攝氏度 (°C)。

power_draw

傳回 GPU 感測器的平均功耗,單位為毫瓦 (mW)

clock_rate

傳回過去取樣期間內 GPU SM 的時脈速度,單位為赫茲 (Hz),如 nvidia-smi 所示。

OutOfMemoryError

裝置記憶體不足時引發的例外狀況

亂數產生器

get_rng_state

以 ByteTensor 傳回指定 GPU 的亂數產生器狀態。

get_rng_state_all

傳回一個 ByteTensor 清單,表示所有裝置的亂數狀態。

set_rng_state

設定指定 GPU 的亂數產生器狀態。

set_rng_state_all

設定所有裝置的亂數產生器狀態。

manual_seed

設定目前 GPU 產生亂數的種子。

manual_seed_all

設定所有 GPU 上產生亂數的種子。

seed

將產生亂數的種子設定為目前 GPU 的亂數。

seed_all

將產生亂數的種子設定為所有 GPU 上的亂數。

initial_seed

傳回目前 GPU 的目前亂數種子。

通訊集體作業

comm.broadcast

將張量廣播到指定的 GPU 裝置。

comm.broadcast_coalesced

將一系列張量廣播到指定的 GPU。

comm.reduce_add

對多個 GPU 上的張量求和。

comm.scatter

將張量分散到多個 GPU。

comm.gather

從多個 GPU 裝置收集張量。

串流和事件

Stream

CUDA 串流的包裝函式。

ExternalStream

外部配置的 CUDA 串流的包裝函式。

Event

CUDA 事件的包裝函式。

圖形(測試版)

is_current_stream_capturing

如果在目前的 CUDA 串流上正在進行 CUDA 圖形擷取,則傳回 True,否則傳回 False。

graph_pool_handle

傳回一個不透明權杖,表示圖形記憶體集區的 ID。

CUDAGraph

CUDA 圖形的包裝函式。

graph

將 CUDA 工作擷取到 torch.cuda.CUDAGraph 物件中以供日後重播的 Context-manager。

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 記憶體。

max_memory_allocated

以位元組為單位返回給定裝置上張量佔用的最大 GPU 記憶體。

reset_max_memory_allocated

重置追蹤給定裝置上張量佔用的最大 GPU 記憶體的起點。

memory_reserved

以位元組為單位返回給定裝置上快取分配器管理的當前 GPU 記憶體。

max_memory_reserved

以位元組為單位返回給定裝置上快取分配器管理的最大 GPU 記憶體。

set_per_process_memory_fraction

設定程序的記憶體分數。

memory_cached

已棄用;請參閱 memory_reserved()

max_memory_cached

已棄用;請參閱 max_memory_reserved()

reset_max_memory_cached

重置追蹤給定裝置上快取分配器管理的最大 GPU 記憶體的起點。

reset_peak_memory_stats

重置 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

從嵌套範圍跨度的堆疊中彈出一個範圍。

nvtx.range

上下文管理器/裝飾器,在其範圍開始時推入一個 NVTX 範圍,並在其結束時彈出該範圍。

Jiterator(測試版)

jiterator._create_jit_fn

為元素操作建立一個 jiterator 生成的 cuda 核心。

jiterator._create_multi_output_jit_fn

為支援返回一個或多個輸出的元素操作建立一個 jiterator 生成的 cuda 核心。

TunableOp

某些操作可以使用多個函式庫或多種技術來實現。例如,可以使用 cublas/cublasLt 函式庫或 hipblas/hipblasLt 函式庫分別為 CUDA 或 ROCm 實現 GEMM。如何知道哪種實現最快並且應該被選擇?這就是 TunableOp 提供的功能。某些運算符已使用多種策略實現為可調整運算符。在運行時,將對所有策略進行性能分析,並為所有後續操作選擇最快的策略。

有關如何使用它的資訊,請參閱 文件

串流偵錯器(原型)

CUDA Sanitizer 是一種用於檢測 PyTorch 中串流之間同步錯誤的原型工具。有關如何使用它的資訊,請參閱 文件

文件

存取 PyTorch 的完整開發人員文件

查看文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

查看教學課程

資源

尋找開發資源並獲得問題解答

查看資源