Transformers 文件
加速器選擇
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
加速器選擇
在分散式訓練期間,您可以指定要使用的加速器(CUDA、XPU、MPS、HPU 等)的數量和順序。當您擁有不同計算能力的加速器並希望優先使用更快的加速器時,這會很有用。或者您也可以只使用一部分可用的加速器。選擇過程適用於 DistributedDataParallel 和 DataParallel。您不需要 Accelerate 或 DeepSpeed 整合。
本指南將向您展示如何選擇要使用的加速器數量和使用它們的順序。
加速器數量
例如,如果有4個加速器,而您只想使用前2個,請執行以下命令。
torchrun
Accelerate
DeepSpeed
使用 --nproc_per_node
選擇要使用的加速器數量。
torchrun --nproc_per_node=2 trainer-program.py ...
加速器順序
要選擇要使用的特定加速器及其順序,請使用適用於您硬體的環境變數。這通常在每次執行時在命令列上設定,但也可以新增到您的 ~/.bashrc
或其他啟動配置檔案中。
例如,如果有4個加速器(0、1、2、3),而您只想執行加速器0和2
CUDA
Intel XPU
CUDA_VISIBLE_DEVICES=0,2 torchrun trainer-program.py ...
只有 GPU 0 和 2 對 PyTorch 是“可見的”,它們分別對映到 cuda:0
和 cuda:1
。
要顛倒順序(將 GPU 2 用作 cuda:0
,將 GPU 0 用作 cuda:1
)
CUDA_VISIBLE_DEVICES=2,0 torchrun trainer-program.py ...
在沒有 GPU 的情況下執行
CUDA_VISIBLE_DEVICES= python trainer-program.py ...
您還可以使用 CUDA_DEVICE_ORDER
控制 CUDA 裝置的順序
按 PCIe 匯流排 ID 排序(與
nvidia-smi
匹配)export CUDA_DEVICE_ORDER=PCI_BUS_ID
按計算能力排序(最快優先)
export CUDA_DEVICE_ORDER=FASTEST_FIRST
環境變數可以匯出而不是新增到命令列。不建議這樣做,因為如果您忘記了環境變數的設定方式,並且最終使用了錯誤的加速器,可能會造成混淆。相反,通常的做法是在同一命令列上為特定的訓練執行設定環境變數。