【问题标题】:Running ARM CUDA software on Docker from x86 machine从 x86 机器在 Docker 上运行 ARM CUDA 软件
【发布时间】:2021-04-20 23:36:11
【问题描述】:

这是我的情况:我有一台 x86 机器,我需要创建一个与 Jetson Nano 兼容的 Docker 映像。我没有 Jetson nano,但我想测试我的 Docker 映像是否正常工作,我需要测试一些运行 CUDA 二进制文件的代码。所以我设置了我的 nano docker 镜像nvcr.io/nvidia/l4t-pytorch:r32.4.4-pth1.6-py3 并在我的 x86 机器上运行它。然后我以交互模式进入容器并启动了一个python解释器。然后我尝试导入 PyTorch

Python 3.6.9 (default, Oct  8 2020, 12:12:24) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> import torch

它失败了。我的输出是

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/torch/__init__.py", line 188, in <module>
    _load_global_deps()
  File "/usr/local/lib/python3.6/dist-packages/torch/__init__.py", line 141, in _load_global_deps
    ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
  File "/usr/lib/python3.6/ctypes/__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libcurand.so.10: cannot open shared object file: No such file or directory

我的 docker 映像与我应该安装在主机上的 CUDA 二进制文件匹配。我需要让我的代码运行,但我不确定为什么即使我使用的是 NVIDIA 认可的 docker 映像,我仍然会遇到 CUDA 二进制问题。 CUDA 二进制文件应预加载到映像中。

【问题讨论】:

    标签: docker cuda nvidia nvidia-jetson-nano


    【解决方案1】:

    因此,当前图像的问题是:nvcr.io/nvidia/l4t-pytorch:r32.4.4-pth1.6-py3 不支持访问主机 x86 机器上的 NVIDIA 驱动程序。如果您访问官方的 nvidia-docker github,您将看到 building jetson docker containers on an x86 machine 的部分。然后注意在底部它说

    已知限制:很遗憾,您将无法运行任何二进制文件 调用 x86 主机上的 NVIDIA 驱动程序。

    这意味着验证调用 NVIDIA 二进制文件的任何代码的任务是不可能的。唯一的办法是尽可能创建最好的容器,然后验证代码在物理 Jetson 设备上是否正常工作。

    【讨论】:

      猜你喜欢
      • 2021-01-12
      • 2020-09-30
      • 2022-06-14
      • 2012-04-03
      • 1970-01-01
      • 2020-10-16
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多