解决容器内'npu-smi'动态库缺失问题

测试智商的网站 8小时前 阅读数 5851 #性能测试

环境

  • 昊算npu云
  • 910b

报错情况

终端输入npu-smi info后报错:

npu-smi: error while loading shared libraries: libc_sec.so: cannot open shared object file: No such file or directory

解决方案

  1. 调用ldd /usr/local/bin/npu-smi查看缺少哪些文件
root@ascend-1743749729-chief-0:~# ldd /usr/local/bin/npu-smi
        linux-vdso.so.1 (0x0000ffff968fe000)
        libc_sec.so => not found
        libdrvdsmi_host.so => /usr/local/Ascend/driver/lib64/driver/libdrvdsmi_host.so (0x0000ffff965d0000)
        libmmpa.so => not found
        libascend_hal.so => /usr/local/Ascend/driver/lib64/driver/libascend_hal.so (0x0000ffff96170000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff96140000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff95f90000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffff968c1000)
        libc_sec.so => not found
        libc_sec.so => not found
        librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff95f60000)

根据前文的报错信息和该命令的输出信息,缺少lib_sec.so

  1. 使用find命令查看
find / -name "libc_sec.so"

输出信息为:

root@ascend-1743749729-chief-0:~# find / -name "libc_sec.so"
find:/sys/devices/virtual/powercap/dtpm’: Permission denied
/usr/local/Ascend/driver/lib64/common/libc_sec.so

可知libc_sec.so文件的位置在”/usr/local/Ascend/driver/lib64/common/libc_sec.so“,随后检查环境变量PATH和动态链接库LD_LIBRARY_PATH

root@ascend-1743749729-chief-0:~# echo $PATH
/usr/lib/code-server/lib/vscode/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@ascend-1743749729-chief-0:~# echo $LD_LIBRARY_PATH
/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver:

可知是动态链接库中缺少lib_sec.so

解决容器内'npu-smi'动态库缺失问题

  1. 将 ”/usr/local/Ascend/driver/lib64/common/libc_sec.so“ 添加到动态链接库LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver://usr/local/Ascend/driver/lib64/common
  1. 验证库文件是否能被找到:
ldd /usr/local/bin/npu-smi
  1. 测试工具是否正常运行:
/usr/local/bin/npu-smi info
  1. 若有效,将设置写入环境配置文件:
echo 'export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver://usr/local/Ascend/driver/lib64/common' >> ~/.bashrc
source ~/.bashrc

REFERENCE

  • 随机文章
  • 热门文章
  • 热评文章
热门