常見問題 - Cloud TPU

這份說明文件列出了 Cloud TPU 的相關常見問題。分為以下幾個部分:

  1. 與架構無關的常見問題:無論您使用何種機器學習架構,都可能遇到的 Cloud TPU 使用問題。
  2. JAX 常見問題 - 搭配使用 Cloud TPU 與 JAX 的相關問題。
  3. PyTorch 常見問題:搭配使用 Cloud TPU 與 PyTorch 的相關問題。

架構獨立常見問題

如何查看 Cloud TPU VM 上使用 TPU 的程序?

在 Cloud TPU VM 上執行 tpu-info,列印程序 ID 和使用 TPU 的程序其他資訊。如要查看指標和對應定義,請參閱支援的指標。

   tpu-info

tpu-info 的輸出內容大致如下:

   TPU Chips
   ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
   ┃ Chip        ┃ Type        ┃ Devices ┃ PID    ┃
   ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩
   │ /dev/accel0 │ TPU v4 chip │ 1       │ 130007 │
   │ /dev/accel1 │ TPU v4 chip │ 1       │ 130007 │
   │ /dev/accel2 │ TPU v4 chip │ 1       │ 130007 │
   │ /dev/accel3 │ TPU v4 chip │ 1       │ 130007 │
   └─────────────┴─────────────┴─────────┴────────┘

   TPU Runtime Utilization
   ┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
   ┃ Device ┃ Memory usage         ┃ Duty cycle ┃
   ┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
   │ 0      │ 0.00 GiB / 31.75 GiB │      0.00% │
   │ 1      │ 0.00 GiB / 31.75 GiB │      0.00% │
   │ 2      │ 0.00 GiB / 31.75 GiB │      0.00% │
   │ 3      │ 0.00 GiB / 31.75 GiB │      0.00% │
   └────────┴──────────────────────┴────────────┘

   TensorCore Utilization
   ┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
   ┃ Chip ID ┃ TensorCore Utilization ┃
   ┡━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
   │ 0       │                  0.00% │
   │ 1       │                  0.00% │
   │ 3       │                  0.00% │
   │ 2       │                  0.00% |
   └─────────┴────────────────────────┘

   Buffer Transfer Latency
   ┏━━━━━━━━━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┓
   ┃ Buffer Size ┃ P50 ┃ P90 ┃ P95 ┃ P999 ┃
   ┡━━━━━━━━━━━━━╇━━━━━╇━━━━━╇━━━━━╇━━━━━━┩
   │       8MB+  | 0us │ 0us │ 0us │  0us |
   └─────────────┴─────┴─────┴─────┴──────┘

如何將永久磁碟磁碟區新增至 Cloud TPU VM?

詳情請參閱「將耐用區塊儲存空間附加至 TPU VM」。

詳情請參閱「Cloud TPU 儲存空間選項」。

JAX 常見問題

如何得知程式是否正在使用 TPU?

您可以透過下列幾種方式,再次確認 JAX 是否使用 TPU:

  1. 使用 jax.devices() 函式。例如:

    assert jax.devices()[0].platform == 'tpu'
    
  2. 剖析程式,並確認剖析結果包含 TPU 作業。詳情請參閱「剖析 JAX 程式」

詳情請參閱 JAX 常見問題

PyTorch 常見問題

如何得知程式是否正在使用 TPU?

您可以透過下列方式,確認 PyTorch 是否使用 TorchTPU 搭配 TPU:

  1. 在 Python 中檢查使用中的加速器裝置:

    import torch
    
    assert torch.accelerator.current_accelerator().type == "tpu"
    
  2. 使用 torch.profiler 分析工作負載,並確認 TPU 作業顯示在追蹤記錄中。

詳情請參閱「在 Cloud TPU 上使用 PyTorch」和 TorchTPU 說明文件。