7. 容器相关场景支持
曦云系列GPU提供对Docker和Kubernetes的支持。Kubernetes的详细介绍,参见《曦云® 系列通用GPU云原生参考手册》。
7.1. 官方Docker支持
开发人员可以借助于容器引擎,运行预先构建好的容器镜像,快速建立软件开发或运行所需的环境。
曦云系列GPU提供预构建的MXMACA容器镜像。开发人员仅需执行一条 docker run 命令就可获得一个干净而完整的板卡开发环境。
在运行MXMACA容器镜像前,请确认环境满足以下条件:
7.1.1. 获取MXMACA容器镜像
MXMACA容器镜像是以离线形式发布。用户可在随本文档发布的软件包中找到相关压缩包。本文档中以maca-c500-container-2.0.0.tar.gz为例,用户应根据实际收到的软件包版本对版本字段进行相应替换。
操作步骤
执行以下命令,完成容器镜像的加载。
docker load < ./maca-c500-container-2.0.0.tar.gz
7.1.2. 在Docker容器中使用板卡
7.1.2.1. 使用全部GPU
操作步骤
执行以下命令:
docker run -it --device=/dev/mxcd --device=/dev/dri --group-add video \ cr.metax-tech.com/library/maca-c500:2.0.0 /bin/bash
7.1.2.2. 使用指定GPU
正确安装内核驱动后,默认在/dev/dri目录下为每一个GPU创建了一个card设备文件和一个renderD设备文件。 通过绑定设备文件来指定期望使用的板卡。如何确认板卡的ID与/dev/dri目录下设备文件之间的对应关系,请参见 7.1.3 GPU设备文件查询。
操作步骤
例如,指定的板卡所对应的设备文件为/dev/dri/card1和/dev/dri/renderD129。
执行以下命令:
docker run -it --device=/dev/mxcd --device=/dev/dri/card1 \ --device=/dev/dri/renderD129 --group-add video \ cr.metax-tech.com/library/maca-c500:2.0.0 /bin/bash
7.1.3. GPU设备文件查询
操作步骤
执行以下命令查看板卡的设备ID和PCI总线地址的对应关系。
mx-smi -L
例如,GPU#0和GPU#1的设备ID 和PCI总线地址的对应关系如下所示。
GPU#0 0000:01:00.0 GPU#1 0000:02:00.0
在/dev/dri/by-path路径下,使用PCI总线地址筛选得到板卡的设备文件路径。例如,执行以下命令得到GPU#1的dri设备文件路径。
ls -l /dev/dri/by-path | grep 0000:01:00.0 lrwxrwxrwx 1 root root 8 Oct 24 19:03 pci-0000:01:00.0-card -> ../card1 lrwxrwxrwx 1 root root 13 Oct 24 19:03 pci-0000:01:00.0-render -> ../renderD129