首页 > 其他分享 >nvidia docker Cannot load libnvcuvid.so.1

nvidia docker Cannot load libnvcuvid.so.1

时间:2024-07-09 10:41:28浏览次数:15  
标签:load -- required libnvcuvid so.1 nvidia docker

问题

使用docker对runtime进行封装,程序需要用到GPU且在host正常运行,在容器内则报错:

Cannot load libnvcuvid.so.1
[hevc_cuvid @ 0x559da3fbd80] Failed loading nvcuvid.
terminate called after throwing an instance of 'std::runtime_error'
  what(): failed to open avcodec
Aborted (core dumped)

排查

第一反应ldd查看依赖,程序并不直接依赖libnvcuvid.so.1
host存在/usr/lib/x86_64-linux-gnu/libnvcuvid.so.1
容器内部却找不到库文件,已包含docker run --gpus all
容器执行nvidia-smi能够正常显示GPU调用CUDA也正常

分析

既然CUDA正常排除container-toolkit问题,深挖应用节点依赖的avcodec需要用到显卡codec
默认不开启codec支持,Driver Capability列表如下

Driver Capability Description
compute required for CUDA and OpenCL applications.
compat32 required for running 32-bit applications.
graphics required for running OpenGL and Vulkan applications.
utility required for using nvidia-smi and NVML.
video required for using the Video Codec SDK.
display required for leveraging X11 display.
empty or unset default driver capability: utility, compute

解决

$ docker run --rm --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility nvidia/cuda:12.0.1-cudnn8-runtime-ubuntu18.04 ldconfig -p | grep libnvcuvid
	libnvcuvid.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnvcuvid.so.1

$ docker run --rm --gpus 'all,"capabilities=compute,video,utility"' nvidia/cuda:12.0.1-cudnn8-runtime-ubuntu18.04 ldconfig -p | grep libnvcuvid
	libnvcuvid.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnvcuvid.so.1

参考

User Guide — container-toolkit 1.10.0 documentation

标签:load,--,required,libnvcuvid,so.1,nvidia,docker
From: https://www.cnblogs.com/azureology/p/18290262

相关文章

  • 7.8日BOOTLOAD总结(3)
    今天突破性进展,成功实现了SC92系列的单区远程升级功能,之前厂家给的DEMO程序存在一些问题,或者说是KEIL5软件的问题,导致FLASH分区内的程序烧写出现了问题。问题描述:用工具将BOOT和APP程序合并后,FLASH分区的01H-600H为BOOT程序,600H以后为APP程序,等同于先烧录APP程序,再烧录BOOT程序。......
  • 如何完美解决 “error pulling image configuration: download failed after attempts
    如何完美解决"errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp59.188.250.54"......
  • 7.5日BOOTLOAD总结(2)
    今日研究一天SC的BOOTLOAD,首先是它的BOOT程序,我们只改了一点点参数直接拿过来用,然后把自己的APP程序中的串口函数改写了一下,它里面给了指令协议,直接套用,整理了一上午最后发现在APP程序中进不去BOOT程序,明明已经用串口助手给他发了命令,就是进不去,慢慢排查,发现接受不到帧头命令,后来......
  • opnEuler下使用xtrabackup报错libgcrypt.so.11
    环境:OS:openEuler2203sp4xtrabackup:2.4.7 [root@19copt]#/opt/xtrabackup-2.4.7/bin/innobackupex--defaults-file=/opt/mysql57/conf/my.cnf--user=root--password=mysql--socket=/tmp/mysql.sock--stream=tar/tmp|gzip>/tmp/mydb.tar.gz/opt/xtrabackup-2.......
  • 【微信小程序】页面生命周期onShow,onLoad,onReady的差别
    1.触发时机和条件onLoad:触发时机:页面加载时触发,即当页面被创建并准备加载时。触发条件:首次打开页面时调用,之后页面再次打开(如通过页面跳转返回)则不会再次触发。作用:通常用于页面的数据初始化,如从服务器获取数据、设置页面的初始状态等。onShow:触发时机:页面显示时触发,......
  • keil5编译错误之Download failed - “Cortex-M3”
    可能出现的问题1.你设置的debug有点问题,没有把之前的文件清除解决办法:点开setting-》flashdownload 按下面配置注意这个programming algorothm非常重要根据不同的芯片内置flash大小要选择不同的programming,这个的作用是限制你的代码容量使其不超过总flash大小,并且......
  • AntDesign上传组件upload二次封装+全局上传hook使用
    文章目录前言a-upload组件二次封装1.功能分析2.代码+详细注释3.使用到的全局上传hook代码4.使用方式5.效果展示总结前言在项目中,ant-design是我们常用的UI库之一,今天就来二次封装常用的组件a-upload批量上传组件,让它用起来更方便。a-upload组件二次封装1.......
  • xctf smarty 利用 LD_PRELOAD 环境变量绕过disable_functions
    进来看页面一眼看出为smarty注入,尝试查看smarty版本再进行下一步操作。可以看到是3.1.30那么就可以利用if标签来进行注入。利用file_put_contents上传木马。接下来蚁剑访问,发现没有权限,想到可能需要绕过disable_functions,而绕过disable_functions就那么几种,尝试利用LD_PRELOAD......
  • 7.4日BootlLoad总结
    最近在研究单片机远程升级方法,看了网上许多资料后了解到,远程升级就是用IAP方法去烧写flash区,而IAP方法在EEPROM中有用到,也就是所说的掉电记忆,掉电不丢失的情况,而相较于51单片机,网上的资料大多是有关STM32单片机的,且使用操作系统,适合于芯片内存较大的芯片,分区成3-4块,首先是BOOT引导......
  • No native JavaCPP library in memory. (Has Loader.load() been called?)
    Exceptioninthread"main"java.lang.RuntimeException:NonativeJavaCPPlibraryinmemory.(HasLoader.load()beencalled?) atorg.bytedeco.javacpp.BytePointer.<init>(BytePointer.java:103) atorg.bytedeco.javacv.Frame.<init>(Frame......