
[英]What is the meaning of mounting /dev/sda1 to /etc/hosts in Docker container
[英]What is the meaning and purpose of the Linux /dev/ipu* device names for graphcore IPUs?
为什么我指定ipu4
和ipu4_ex
都像下面的命令一样在 docker 中使用 ipu 设备?
docker run --device=/dev/**ipu4**:/dev/ipu4 --device=/dev/**ipu4_ex**:/dev/ipu4_ex -ti graphcore/tools gc-inventory
启动需要访问 Graphcore IPU 的 docker 图像的建议方法是使用gc-docker
docker 命令行工具,您可以在此处阅读更多信息。 此命令行工具在 Poplar SDK 中可用,并包装了系统安装的 docker 命令行,因此您无需担心像上面显示的那样手动传递设备。
对于感兴趣的用户,您可以使用--echo
arg 查看gc-docker
在后台调用的内容,在这里您将看到与您发布的内容类似的内容:
docker run --device=/dev/ipu0:/dev/ipu0 --device=/dev/ipu0_ex:/dev/ipu0_ex --device=/dev/ipu0_mailbox:/dev/ipu0_mailbox --device=/dev/ipu0_mem:/dev/ipu0_mem -ti graphcore/tools gc-inventory
这是相应的gc-docker
调用的样子:
gc-docker --device-id 0 -- -ti graphcore/tools gc-inventory
如您所见,每个 IPU 设备都有 4 个关联的用户空间 PCIe 设备。 这是因为每个 Graphcore IPU 设备都有 4 个不同的 memory 区域(如果您使用lspci -v
列出 Graphcore PCI 设备,您可以看到)。 每个 memory 区域对应于设备的不同功能部分(您可以在这篇 Stack Exchange 帖子中阅读更多关于为什么设备可能希望拥有多个不同的 memory 区域的信息)。 这些 memory 区域是 IPU 配置空间、IPU 交换空间、ICU 邮箱和主机交换 memory 设备。
Graphcore PCIe 驱动程序将 IPU PCIe 设备 memory 区域桥接到您在 docker 命令中看到的 4 个用户空间字符设备。 应用程序需要将 memory 区域映射到用户空间才能访问它们。 如果无法从使用 IPU 的 docker 容器访问这些设备中的任何一个,那么您将遇到问题……因此,为什么使用gc-docker
工具比记住所有用户空间设备名称要容易得多!
为什么我要像下面的命令一样在 docker 中指定ipu4
和ipu4_ex
都使用 ipu 设备?
docker run --device=/dev/**ipu4**:/dev/ipu4 --device=/dev/**ipu4_ex**:/dev/ipu4_ex -ti graphcore/tools gc-inventory
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.