下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

宿主机目录不挂载容器

前提条件

  1. 宿主机已经安装过驱动和固件,详情请参见安装驱动安装固件
  2. 需用户在宿主机自行安装docker。
  3. 执行如下命令,重启服务与容器。

    systemctl daemon-reload

    systemctl restart docker

  4. 执行如下命令,获取OS镜像。例如:容器镜像为Ubuntu 18.04。

    docker pull ubuntu:18.04

  5. 执行如下命令,查看镜像。

    docker images

操作步骤

  1. 在宿主机使用id HwHiAiUser命令查看宿主机HwHiAiUser的gid,并记录该gid的取值,如图1所示,则记录gid为1001。

    如果用户安装Driver包时使用--install-username=username --install-usergroup=usergroup参数指定了其他非root用户,则需要使用同样的方法记录此非root用户的gid,容器内创建非root用户时,需要使用该gid,确保宿主机和容器内相关进程的非root用户同属组。

    图1 查看宿主机HwHiAiUser的gid
  2. 在宿主机创建并启动docker容器。

    需要将表1参数挂载到容器。

    多容器场景下,为了防止某个容器的恶意代码大量申请甚至耗尽内核态内存,从而对其它容器造成影响。需要用户根据实际情况通过“--kernel-memory”参数指定容器能够占用的最大内核态内存。此功能依赖客户主机侧内核开启kmem accounting功能。

    表1 参数说明

    参数

    参数说明

    --device

    表示映射的设备,可以挂载一个或者多个设备。

    需要挂载的设备如下:

    • /dev/davinciX:NPU设备,X是ID号,如:davinci0。
    • /dev/davinci_manager:davinci相关的管理设备。
    • /dev/devmm_svm:内存管理相关设备。
    • /dev/hisi_hdc:hdc相关管理设备。

    -v /usr/local/dcmi:/usr/local/dcmi

    将宿主机dcmi的.so和接口文件目录“/usr/local/dcmi”挂载到容器中,请根据实际情况修改。

    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi

    将宿主机npu-smi工具“/usr/local/bin/npu-smi”挂载到容器中,请根据实际情况修改。

    容器启动后,执行以下命令查看当前docker容器中可以使用的davinci设备。

    ls /dev/ | grep davinci*

    命令执行情况参见图2

    图2 查询docker容器中使用的davinci设备

    其中:

    • davinci_manager为管理模块的字符设备节点。
    • davinci0为该容器使用的davinci设备。
  3. 在容器内创建HwHiAiUser用户(用户也可以创建其他非root用户),用于启动相关进程。

    groupadd -g gid HwHiAiUser && useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser && echo ok

    请将上述命令中的gid替换为1中查出的gid值。若返回“ok”,则说明创建成功。

    如果用户创建了其他非root用户,请确保该用户所属的属组必须和Driver运行用户所属属组相同;如果不同,请用户自行添加到Driver运行用户属组。

  4. 执行exit命令退出容器,在宿主机Driver软件包所在路径,执行如下命令将软件包复制到容器内部。

    docker cp /xxx/Ascend-hdk-310b-npu-driver_x.x.x_linux-{arch}.run container_id:/home/HwHiAiUser/software

    其中xxx为宿主机上软件包的存放路径,Ascend-hdk-310b-npu-driver_x.x.x_linux-{arch}.run请替换为具体软件包名,container_id为容器ID,可以使用docker ps -a命令查看所使用容器的ID,“/home/HwHiAiUser/software”为容器内软件包的存放路径,如果没有该路径,请先手动创建;所有路径请用户根据实际情况进行修改。

  5. 执行如下命令重新进入容器,并进入软件包所在的software目录,根据表2所示安装命令安装相应软件包。

    docker start xxx

    docker attach xxx

    其中xxx请替换为具体容器ID或容器名。

    如下安装路径为默认路径举例说明如何安装。更多安装参数请参考参数说明/常用命令

    表2 安装命令

    组件

    安装命令

    Driver

    ./Ascend-hdk-310b-npu-driver_x.x.x_linux-{arch}.run --docker

    默认路径:/usr/local/Ascend

    如果用户需要指定安装路径,需要通过--install-path=<path>参数指定。

    若安装过程中无错误信息提示,则表示安装成功。

    • 软件包默认安装路径:/usr/local/Ascend。
    • 安装详细日志路径:/var/log/ascend_seclog/ascend_install.log。
    • 安装后软件包的安装路径、安装命令以及运行用户信息记录路径:/etc/ascend_install.info。
  6. 设置如下环境变量,用于在容器中加载驱动so。

    export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:${LD_LIBRARY_PATH}

    其中“/usr/local/Ascend”为默认安装路径,请根据实际情况修改。通过export方式设置环境变量,只在当前窗口有效,设置完成后立即生效。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词