gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:33:33 28 4
gpt4 key购买 nike

为什么我指定 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 命令行工具,您可以阅读更多关于 here 的信息.此命令行工具在 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 个不同的内存区域(如果您使用 lspci -v 列出 Graphcore PCI 设备,您可以看到)。每个内存区域对应于设备的不同功能部分(您可以在 this Stack Exchange post 中详细了解为什么设备可能希望拥有多个不同的内存区域)。这些内存区域是 IPU 配置空间、IPU 交换空间、ICU 邮箱和主机交换内存设备。

Graphcore PCIe 驱动程序将 IPU PCIe 设备内存区域桥接到您在 docker 命令中看到的 4 个用户空间字符设备。应用程序需要将内存区域映射到用户空间才能访问它们。如果无法从使用 IPU 的 docker 容器访问这些设备中的任何一个,那么您将遇到问题......因此,为什么使用 gc-docker 工具比记住所有用户要容易得多空间设备名称!

关于docker - Graphcore IPU 的 Linux/dev/ipu* 设备名称的含义和用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65932242/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com