Docer中使能GPU,GDB,perf
Docer中使能GPU,GDB,perf
使用场景
为了再docker的container中使用GPU(涉及到访问system driver),GDB&Perf(涉及到访问system command),需要在创建container时赋予其相应的权限。
实现过程
此处以本地镜像文件localization.tar为例,记录下在docker中使能gpu,gdb,perf的过程。首先加载该镜像:
docker load -i ./localization_v10.tar
可以使用 docker image ls 查看刚刚加载的镜像仓库(REPOSITORY,localization )和标签(TAG, v10)。有了仓库后,可以使用 docker run 来创建容器(container)。一般情况下,只需要:
docker run -it localization:v10 /bin/bash
这个命令会创建一个随机名称的container,并以交互的方式(-it)打开bash shell(/bin/bash),方便我们以shell终端的方式操控容器。但这个容器是无法访问gpu,gdb,perf等需要特殊权限的命令的,为了使用gpu,需要在命令中加入 –gpus all :
docker run --gpus all -it localization:v10 /bin/bash
其中all可以替换未gpu id, 通过这种方式还能做到gpu隔离,使用 nvidia-smi 可以验证。
为了使用gdb,我们需要添加以下三个参数(参考链接):
- 在启动docker容器的时候需要增加–privileged参数
- 由于gdb调试需要的SYS_PTRACE属性被禁止掉了,所以在启动容器时候需要增加这个属性–cap-add sys_ptrace
- gdb调试时,需要关闭linux虚拟地址随机化(虚拟地址随机化是为了安全考虑而出现的,gdb调试只是暂时关闭)。关闭有两种方法,一是通过gdb的命令set disable-randomization off关闭。二是通过设置docker的参数–security-opt seccomp=unconfined。
最后命令就变成了:
docker run --gpus all -it --privileged --cap-add sys_ptrace --security-opt
seccomp=unconfined localization:v10 /bin/bash
最后一步为了使用perf,还需要映射下根目录 -v /:/host :
docker run --gpus all -it -v /:/host --privileged --cap-add sys_ptrace --security-opt
seccomp=unconfined localization:v10 /bin/bash
如果容器内没有perf工具,针对Ubuntu可以使用一下命令按照(参考链接):
apt update && apt upgrade
apt-get install linux-tools-common linux-tools-generic linux-cloud-tools-generic linux-tools-`uname -r`
可以使用perf --version 验证。
至此,完成了在docker中使能gpu,gdb,perf等工具。
Docer中使能GPU,GDB,perf相关推荐
- linux系统如何查看是否是线程死锁,多线程中如何使用gdb精确定位死锁问题
本文转载自微信公众号「程序喵大人」,作者程序喵大人 .转载本文请联系程序喵大人公众号. 在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用 ...
- 线程中如何使用对象_多线程中如何使用gdb精确定位死锁问题
在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用gdb+python脚本调试死锁问题,以及如何在程序运行过程中检测死锁. 首先介绍什么是 ...
- Tensorflow中查看gpu是否可用
Tensorflow中查看gpu是否可用 使用tf.test.is_gpu_available()函数可直接返回 import tensorflow as tf tf.test.is_gpu_avai ...
- matlab 中使用 GPU 加速运算
为了提高大规模数据处理的能力,matlab 的 GPU 并行计算,本质上是在 cuda 的基础上开发的 wrapper,也就是说 matlab 目前只支持 NVIDIA 的显卡. 1. GPU 硬件支 ...
- 在Linux中如何使用gdb调试C程序
无论多么有经验的程序员,开发的任何软件都不可能完全没有 bug.因此,排查及修复 bug 成为软件开发周期中最重要的任务之一.有许多办法可以排查 bug(测试.代码自审等等),但是还有一些专用软件(称 ...
- linux性能监控工具perf,Linux性能分析中常用的工具perf介绍
今天小编要跟大家分享的文章是关于Linux性能分析中常用的工具perf介绍.系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化.性能剖析的目标是寻找性能瓶 ...
- 提高 Kubernetes 中的 GPU 利用率
提高 Kubernetes 中的 GPU 利用率 对于可扩展的数据中心性能,NVIDIA GPU 已成为必备品. 由数千个计算内核支持的 NVIDIA GPU 并行处理能力对于加速不同行业的各种应用程 ...
- 在keras中使用gpu加速训练模型;安装cuda;cudnn;cudnn_cnn_infer64_8.dll 不在path中;device_lib.list_local_devices无gpu;挂掉
在keras中使用gpu加速训练模型,如何安装cuda,cudnn,解决cudnn_cnn_infer64_8.dll 不在path中,解决device_lib.list_local_devices( ...
- vgpu服务器显卡性能,如何在vGPU环境中优化GPU性能
大家好, 我收到了关于如何在vGPU环境中优化GPU性能的两个请求,并认为这将是我们的GRID论坛上的一个很好的线程,每个人都可以在他们如何微调vGPU环境方面添加他们的经验. 让我从一些公共资源开始 ...
- Chrome中的GPU加速合成
原文链接:https://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome 简介:为 ...
最新文章
- 分享一款jquery的日期插件
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
- 虚拟机在Hyper-V和Citrix Xenserver上的区别
- Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
- Python快速找到列表中所有重复的元素
- accumulate
- 小白都能了解的聚类算法之一(Kmeans与GMM)
- ssm-学子商城-项目第五天
- 学会配色-色彩配色表
- win7怎样设置计算机休眠时间,win7休眠时间怎么设置
- 服务器kvm切换器维修,KVM多电脑切换器常见故障排查及处理方法
- 安卓自动滑屏脚本_自动滑屏软件下载-自动滑屏 安卓版v3.1.0-PC6安卓网
- 计算机硬盘储存怎么增加,如何扩大存储空间?电脑扩大新添加的硬盘的方法
- OC 07 设计模式
- HC32L130国产超低功耗华大MCU芯片介绍
- UNI-APP在使用SubNvue原生子窗体时,清理缓存的问题
- PhotoZoom中如何调整预设
- python识别火车票二维码_tickets:Python 实现的命令行火车票查看器
- 智慧职教云Java题库_智慧职教云课堂APPJava程序设计试题及答案
- 《校园网综合解决方案》
热门文章
- 影响ae渲染时间的计算机配置,分享两套影视后期电脑配置2019 能流畅使用ae和pr的电脑主机推荐...
- Hadoop官网查看手册
- 【面试总结】涵盖1-3年Java程序员必须精通的面试技巧
- tsx实现适配vue3的滚动列表插件
- 【干货干货!内附源码】多边形的面积及周长计算~java Swing开发可视化小程序,exe4j打包成exe可执行文件
- 视频教程-Photoshop(PS)软件基础入门-Photoshop
- .NET Core、DNX、DNU、DNVM、MVC6学习资料
- 八股文-ArrayList
- pimple学习(1)pimple的使用
- 用友YonSuite前后端一体化数智赋能,有化妆品的地方就有老中医