Transformers 文件

加速器選擇

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

加速器選擇

在分散式訓練期間,您可以指定要使用的加速器(CUDA、XPU、MPS、HPU 等)的數量和順序。當您擁有不同計算能力的加速器並希望優先使用更快的加速器時,這會很有用。或者您也可以只使用一部分可用的加速器。選擇過程適用於 DistributedDataParallelDataParallel。您不需要 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:0cuda: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

環境變數可以匯出而不是新增到命令列。不建議這樣做,因為如果您忘記了環境變數的設定方式,並且最終使用了錯誤的加速器,可能會造成混淆。相反,通常的做法是在同一命令列上為特定的訓練執行設定環境變數。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.