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,我们需要添加以下三个参数(参考链接):

  1. 在启动docker容器的时候需要增加–privileged参数
  2. 由于gdb调试需要的SYS_PTRACE属性被禁止掉了,所以在启动容器时候需要增加这个属性–cap-add sys_ptrace
  3. 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相关推荐

  1. linux系统如何查看是否是线程死锁,多线程中如何使用gdb精确定位死锁问题

    本文转载自微信公众号「程序喵大人」,作者程序喵大人 .转载本文请联系程序喵大人公众号. 在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用 ...

  2. 线程中如何使用对象_多线程中如何使用gdb精确定位死锁问题

    在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c++中如何使用gdb+python脚本调试死锁问题,以及如何在程序运行过程中检测死锁. 首先介绍什么是 ...

  3. Tensorflow中查看gpu是否可用

    Tensorflow中查看gpu是否可用 使用tf.test.is_gpu_available()函数可直接返回 import tensorflow as tf tf.test.is_gpu_avai ...

  4. matlab 中使用 GPU 加速运算

    为了提高大规模数据处理的能力,matlab 的 GPU 并行计算,本质上是在 cuda 的基础上开发的 wrapper,也就是说 matlab 目前只支持 NVIDIA 的显卡. 1. GPU 硬件支 ...

  5. 在Linux中如何使用gdb调试C程序

    无论多么有经验的程序员,开发的任何软件都不可能完全没有 bug.因此,排查及修复 bug 成为软件开发周期中最重要的任务之一.有许多办法可以排查 bug(测试.代码自审等等),但是还有一些专用软件(称 ...

  6. linux性能监控工具perf,Linux性能分析中常用的工具perf介绍

    今天小编要跟大家分享的文章是关于Linux性能分析中常用的工具perf介绍.系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化.性能剖析的目标是寻找性能瓶 ...

  7. 提高 Kubernetes 中的 GPU 利用率

    提高 Kubernetes 中的 GPU 利用率 对于可扩展的数据中心性能,NVIDIA GPU 已成为必备品. 由数千个计算内核支持的 NVIDIA GPU 并行处理能力对于加速不同行业的各种应用程 ...

  8. 在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( ...

  9. vgpu服务器显卡性能,如何在vGPU环境中优化GPU性能

    大家好, 我收到了关于如何在vGPU环境中优化GPU性能的两个请求,并认为这将是我们的GRID论坛上的一个很好的线程,每个人都可以在他们如何微调vGPU环境方面添加他们的经验. 让我从一些公共资源开始 ...

  10. Chrome中的GPU加速合成

    原文链接:https://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome 简介:为 ...

最新文章

  1. 分享一款jquery的日期插件
  2. tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
  3. 虚拟机在Hyper-V和Citrix Xenserver上的区别
  4. Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
  5. Python快速找到列表中所有重复的元素
  6. accumulate
  7. 小白都能了解的聚类算法之一(Kmeans与GMM)
  8. ssm-学子商城-项目第五天
  9. 学会配色-色彩配色表
  10. win7怎样设置计算机休眠时间,win7休眠时间怎么设置
  11. 服务器kvm切换器维修,KVM多电脑切换器常见故障排查及处理方法
  12. 安卓自动滑屏脚本_自动滑屏软件下载-自动滑屏 安卓版v3.1.0-PC6安卓网
  13. 计算机硬盘储存怎么增加,如何扩大存储空间?电脑扩大新添加的硬盘的方法
  14. OC 07 设计模式
  15. HC32L130国产超低功耗华大MCU芯片介绍
  16. UNI-APP在使用SubNvue原生子窗体时,清理缓存的问题
  17. PhotoZoom中如何调整预设
  18. python识别火车票二维码_tickets:Python 实现的命令行火车票查看器
  19. 智慧职教云Java题库_智慧职教云课堂APPJava程序设计试题及答案
  20. 《校园网综合解决方案》

热门文章

  1. 影响ae渲染时间的计算机配置,分享两套影视后期电脑配置2019 能流畅使用ae和pr的电脑主机推荐...
  2. Hadoop官网查看手册
  3. 【面试总结】涵盖1-3年Java程序员必须精通的面试技巧
  4. tsx实现适配vue3的滚动列表插件
  5. 【干货干货!内附源码】多边形的面积及周长计算~java Swing开发可视化小程序,exe4j打包成exe可执行文件
  6. 视频教程-Photoshop(PS)软件基础入门-Photoshop
  7. .NET Core、DNX、DNU、DNVM、MVC6学习资料
  8. 八股文-ArrayList
  9. pimple学习(1)pimple的使用
  10. 用友YonSuite前后端一体化数智赋能,有化妆品的地方就有老中医