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

Docker graphcore ipu的Linux/dev/ipu*设备名称的含义和用途是什么?,docker,tensorflow,ipu,popart,poplar,Docker,Tensorflow,Ipu,Popart,Poplar,为什么我要指定ipu4和ipu4\u 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命令行工具,您可以阅读更多有关该工具的信息。此命令行工具在杨树SDK中可用,它包装

为什么我要指定
ipu4
ipu4\u 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
命令行工具,您可以阅读更多有关该工具的信息。此命令行工具在杨树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设备,可以看到这些区域)。每个内存区域对应于设备的不同功能部分(您可以阅读更多关于为什么设备可能希望在中具有多个不同内存区域的信息)。这些内存区域是IPU配置空间、IPU exchange空间、ICU邮箱和主机exchange内存设备


Graphcore PCIe驱动程序将IPU PCIe设备内存区域桥接到docker命令中显示的4个用户空间字符设备。内存区域到用户空间的这种映射是应用程序访问它们所必需的。如果使用IPU无法从docker容器访问这些设备,那么您将遇到问题……因此,使用
gc docker
工具比记住所有用户空间设备名称要容易得多

谢谢,干得好..祝你今天愉快