如何在 PyTorch 中使用 TPU?

sha*_*.37 5 python pytorch tpu

我正在尝试使用 pytorch_xla 使用 TPU,但它在 _XLAC 中显示导入错误。

!curl https://raw.githubusercontent.com/pytorch/xla/master/contrib/scripts/env-setup.py -o pytorch-xla-env-setup.py
!python pytorch-xla-env-setup.py --version $VERSION

import torch_xla
import torch_xla.core.xla_model as xm

ImportError                               Traceback (most recent call last)
<ipython-input-60-6a19e980152f> in <module>()
----> 1 import torch_xla
      2 import torch_xla.core.xla_model as xm

/usr/local/lib/python3.6/dist-packages/torch_xla/__init__.py in <module>()
     39 import torch
     40 from .version import __version__
---> 41 import _XLAC
     42 
     43 _XLAC._initialize_aten_bindings()

ImportError: /usr/local/lib/python3.6/dist-packages/_XLAC.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at6native6einsumENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3c108ArrayRefINS_6TensorEEE
Run Code Online (Sandbox Code Playgroud)

AI *_*nic 1

  1. 确保您使用正确版本的 pytorch-xla 和 Python(3.6.9 效果很好):
curl https://raw.githubusercontent.com/pytorch/xla/master/contrib/scripts/env-setup.py -o pytorch-xla-env-setup.py
python pytorch-xla-env-setup.py --version 20200325
Run Code Online (Sandbox Code Playgroud)
  1. 检查您是否指定了访问 TPU 的方式。您可能需要设置“XRT_TPU_CONFIG”或“COLAB_TPU_ADDR”,具体取决于您的环境。

就像是:

curl https://raw.githubusercontent.com/pytorch/xla/master/contrib/scripts/env-setup.py -o pytorch-xla-env-setup.py
python pytorch-xla-env-setup.py --version 20200325
Run Code Online (Sandbox Code Playgroud)

或者:

export XRT_TPU_CONFIG="tpu_worker;0;$TPU_IP_ADDRESS:8470"
Run Code Online (Sandbox Code Playgroud)

以下是详细说明:https://github.com/pytorch/xla/blob/master/README.md和示例https://cloud.google.com/tpu/docs/tutorials/transformer-pytorch

另外,这是 PyTorch 团队创建的 Google Colab 笔记本,我刚刚测试了它,无需任何更改即可正常工作: https ://colab.research.google.com/github/pytorch/xla/blob/master/contrib/colab /入门.ipynb

本笔记本将向您展示如何:

  • 在 Colab 上安装 PyTorch/XLA,这样您就可以将 PyTorch 与 TPU 结合使用。
  • 在 TPU 上运行基本的 PyTorch 功能。
  • 在 TPU 上运行 PyTorch 模块和 autograd。
  • 在 TPU 上运行 PyTorch 网络。

您可能想要遵循其中一个示例并尝试重现该问题。祝你好运!