繁体   English   中英

graphcore IPU 的 Linux /dev/ipu* 设备名称的含义和用途是什么?

[英]What is the meaning and purpose of the Linux /dev/ipu* device names for graphcore IPUs?

为什么我指定ipu4ipu4_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 中指定ipu4ipu4_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM