docker容器测试环境构建(docker容器内安装TensorRT的问题)
docker容器测试环境构建
docker容器内安装TensorRT的问题Ubuntu上卸载已安装的版本:
sudo apt-get purge "libnvinfer*"
如果想把安装文件都删掉以释放空间,执行:
dpkg -l | grep tensorrt
查看到安装包名,假如是nv-tensorrt-repo-ubuntu1804-cuda11.1-trt7.2.1.6-ga-20201007,则执行:
sudo dpkg -P nv-tensorrt-repo-ubuntu1804-cuda11.1-trt7.2.1.6-ga-20201007
这样就把/var/nv-tensorrt-repo-ubuntu1804-cuda11.1-trt7.2.1.6-ga-20201007_1-1这样的目录文件删掉了。
在Ubuntu主机上安装TensorRT按照https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-debian 做即可,下载安装repo的deb文件后执行下面的步骤即可,假如安装适配CUDA10.2的TensorRT7.2.1版,执行:
sudo dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.2.1.6-ga-20201006_1-1_amd64.deb sudo apt-key add /var/nv-tensorrt-repo-cuda10.2-trt7.2.1.6-ga-20201006/7fa2af80.pub sudo apt-get update sudo apt-get install tensorrt
如果是在docker容器内安装就不能使用上面的步骤了,否则在安装最后一步时总是会遇到类似如下的错误:
The following packages have unmet dependencies:
tensorrt : Depends: libnvinfer-dev (= 7.2.1-6+cuda10.2) but 8.0.0-1+cuda11.3 is to be installed
Depends: libnvinfer-plugin-dev (= 7.2.1-6+cuda10.2) but 8.0.0-1+cuda11.3 is to be installed
Depends: libnvparsers-dev (= 7.2.1-6+cuda10.2) but 8.0.0-1+cuda11.3 is to be installed
Depends: libnvonnxparsers-dev (= 7.2.1-6+cuda10.2) but 8.0.0-1+cuda11.3 is to be installed
Depends: libnvinfer-samples (= 7.2.1-6+cuda10.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
容器内分明安装的是CUDA10.2,TensorRT也是7.2.1.6+cuda10.2版的,但是就总是报上面类似的错误,换成其他版本也是一样的继续报类似错,折腾得很郁闷,后来仔细看NVIDIA的文档发现
看来在docker容器内安装TensorRT得用另外的办法,但是呢,用Network Repo方式安装去指定安装一堆libnvinfer*库(根据需要修改8为7)是在是麻烦:
而且装完后后来编译程序时发现还有这样那样的问题,哪怕是指定版本的方式也是同样有问题:
又来回折腾了一阵还是有错,最后往下看发现了这个最简单可靠的方式:
也就是说,最前面报那种莫名其妙的错,其实是因为docker容器内配置有NVIDIA CUDA network repository,而手工下载安装nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.2.1.6-ga-20201006_1-1_amd64.deb这样的TensorRT local repository后,使用sudo apt-get install tensorrt安装的话由于有两种源会导致包冲突,只需要在/etc/apt/preferences.d/下增加个文件local-repo,内容是:
Package: * Pin: origin "" Pin-Priority: 1001
然后执行
sudo apt-get update sudo apt-get install tensorrt
就顺利安装完成local repo对应的版本cuda10.2-trt7.2.1.6,然后编译程序也没见什么错误了!
感觉NVIDIA的文档有的地方写得真的是烂,不能针对每种环境安装分别清楚无误完整地说明白么,非要把很多搅合在一起让用户自己去蹚一个个坑
另外,如果是使用的RTX30序列的GPU,CUDA版本需要 >= 11.1,不然,虽然TensorRT可以安装,但是实际运行时可能会报下面这样的错误:
[W] [TRT] Half2 support requested on hardware without native FP16 support, performance will be negatively affected.
[E] [TRT] ../rtSafe/cuda/caskUtils.cpp (98) - Assertion Error in trtSmToCask: 0 (Unsupported SM.)
11.1.0虽然可以用,但是编译caffe或darknet等某些程序时可能会有下面的错误:
nvcc fatal: Unsupported gpu architecture 'compute_86'
所以对于RTX30序列的GPU,最好安装CUDA的版本 >= 11.1.1
以上就是docker容器内安装TensorRT的问题的详细内容,更多关于docker安装TensorRT的资料请关注开心学习网其它相关文章!
- docker服务重启容器是否重启(docker自定义网桥docker0及docker的开启,关闭,重启命令操作)
- docker查看某个容器状态(docker 移除掉运行不正常的container操作)
- docker查看容器教程(如何使用docker对容器资源进行限制)
- docker镜像配置的挂载路径(docker挂载本地目录和数据卷容器操作)
- linuxnfs服务教程(使用Docker的NFS-Ganesha镜像搭建nfs服务器的详细过程)
- 查看docker日志大小(docker logs-查看docker容器日志的实现)
- idea docker部署微服务(idea连接docker实现一键部署的方法)
- elasticsearchwindows分词器配置(docker 部署 Elasticsearch kibana及ik分词器详解)
- docker中搭建jmeter测试环境(借助Docker搭建JMeter+Grafana+Influxdb监控平台的详细教程)
- docker重新加载nginx(Docker Nginx Log 三者的处理详解)
- docker如何访问nginx(基于docker启动nginxssl配置)
- Docker 部署单机版 Pulsar 和集群架构 Redis(开发神器)的方法(Docker 部署单机版 Pulsar 和集群架构 Redis开发神器的方法)
- docker怎么连接mysql(docker如何安装mysql)
- docker进入容器的命令(Docker 最常用的镜像命令和容器命令详解)
- dockerexec参数详解(docker安装pxc集群的详细教程)
- docker查看镜像详细内容(Docker镜像分析工具dive原理解析)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
- 九月初,爱如蜜糖,甜到心扉,迷恋彼此,一日不见兮,思之若狂(九月初爱如蜜糖)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
热门推荐
- php7 入门(php7新特性的理解和比较总结)
- css42个实用技巧(你必须要知道的几个CSS技巧)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- sql server中使用xp_readerrorlog查看错误日志
- sqlserver中复合索引(浅析SQL Server 聚焦索引对非聚集索引的影响)
- vuetable表格合并(vue-table实现添加和删除)
- linux安装opencv版本(详解ubuntu安装opencv的正确方法)
- VPS跟云服务器的区别是什么?(VPS跟云服务器的区别是什么?)
- python3配置教程(python3中property使用方法详解)
- apache虚拟域名配置(Apache虚拟主机的配置和泛域名解析实现代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9