caffe-0.16 nvidia docker编译

最近测试NVDIA Tesla Votal100 GPU在深度学习框架下的性能表现,由于测试频繁,考虑做个docker镜像,这样可以减少很多搭建环境的工作。记录下方法,以备查询分享。


步骤

  1. 物理机安装V100驱动程序及nvidia-docker
    在物理机安装V100驱动主要是为了通过使用nvidia-docker将GPU资源透传给容器使用
  2. 开始制作
[root@bogon ~]# docker search centos
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                             The official build of CentOS.                   3636      [OK]
ansible/centos7-ansible            Ansible on Centos7                              101                  [OK]
jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.3.1611 x8...   83                   [OK]
tutum/centos                       Simple CentOS docker image with SSH access      33
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              30                   [OK]
gluster/gluster-centos             Official GlusterFS Image [ CentOS-7 +  Glu...   20                   [OK]
kinogmt/centos-ssh                 CentOS with SSH                                 17                   [OK]
......
[root@bogon ~]# docker pull centos
centos镜像已经保存到本地,下面编译centos镜像以便支持nvidia-docker,这样生成新的镜像就可以通过nvidia-docker将GPU资源带到容器中。
  1. 编译镜像
    参考其他网上资源
# 创建文件夹
$ mkdir dockerBuild
$ cd dockerBuild/
# 新建Dockerfile文件
$ vim Dockerfile

# 输入以下内容

# FROM 原DOCKER_IMAGE
FROM {SOURCE_DOCKER_IMAGE_NAME}
# MAINTAINER 作者
MAINTAINER {your name}
# needed cuda
LABEL com.nvidia.volumes.needed="nvidia_driver"
# cuda version
LABEL com.nvidia.cuda.version="8.0"

# docker build 注意最后有个点 指的是使用当前目录下的Dockerfile进行build
$ docker build -t DOCKER_IMAGE_NAME .
# 运行结果 我使用的bamos/openface来编译的
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM {DOCKER_IMAGE_NAME}
 ---> 62d1673065e8
Step 2 : MAINTAINER {your name}
 ---> Running in b4dc9a88db63
 ---> 7a77f65d0908
Removing intermediate container b4dc9a88db63
Step 3 : LABEL com.nvidia.volumes.needed "nvidia_driver"
 ---> Running in 126095cdc342
 ---> c9035ebe54f8
Removing intermediate container 126095cdc342
Step 4 : LABEL com.nvidia.cuda.version "8.0"
 ---> Running in 12a0e5298d1e
 ---> 682db15bd6ca
Removing intermediate container 12a0e5298d1e
Successfully built 682db15bd6ca

# 查看Label是否成功添加
$ docker inspect DOCKER_IMAGE_NAME 
......
"Labels": {
    "com.nvidia.cuda.version": "8.0",
    "com.nvidia.volumes.needed": "nvidia_driver",
}
......

# 使用nvidia-docker run 来运行编译好的image
$ nvidia-docker run -it -d DOCKER_IMAGE_NAME /bin/bash
至此,基础环境已经完成,通过lsmod可以发现nvidia的驱动模块已经透传到容器中,但是现在缺少驱动程序、cuda、nccl,所以还不能调用显卡资源。
下面的步骤就是一次安装这些程序。本次测试使用的是
nvidia-diag-driver-local-repo-rhel7-384.66-1.0-1.x86_64.rpm
nccl_2.0.5-2-cuda9.0_amd64.txz
cuda-repo-rhel7-9-0-local-rc-9.0.103-1.x86_64.rpm
依次安装之后,就可以使用GPU了

编译caffe-0.16

编译过程可以参考如下链接
http://www.aymeric.net/journal/2015/07/tutorial-install-caffe-on-centos-7/
遇到的问题基本网上都有解决办法
编译完成后,容器就创建完成,报错当前容器,导出镜像

[root@bogon log]# docker commit container_id caffe_cuda9_nccl2.0.5
[root@bogon log]# docker save  caffe_cuda9_nccl2.0.5 > /data/caffe_cuda9_nccl2.0.5.tar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值