一,nvidia K80驱动安装

1,  查看服务器上的Nvidia(英伟达)显卡信息,命令lspci |grep NVIDIA

05:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)

06:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)

84:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)

85:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)

2,按下来,进行显卡驱动程序的安装,这一步由主机组同事操作,当前查看到版本为:Driver Version: 396.37,运行nvidia-smi可获得此信息。

NVIDIA-SMI 396.37                 Driver Version: 396.37

下次安装时,建议安装比较新的驱动版本(410及以上),因为这个驱动版本,会影响接后面的很多细节。

驱动网址:https://www.nvidia.com/Download/index.aspx?lang=en-us

二,NVIDIA CUDA Toolkit 安装

1,根据前一节的驱动,先把合适的CUDA Toolkit版本进行下载安装。

下载网址:https://developer.nvidia.com/cuda-toolkit-archive

驱动程序和CUDA的对应关系如下图:

下次安装时,建议安装10.0及以上版本,因为主流学习框架对这些版本有更好的支持和性能。

2,使用cuda中的deviceQuery可以获得其安装信息:

三,安装cuDNN

1,  cuDNN是GPU加速计算深层神经网络的库,网址:

https://developer.nvidia.com/rdp/cudnn-archive

2,  选择与cuda对应的版本,下载解压到cuda对应目录即可。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

***如果只是在宿主机上使用NVIDIA的GPU,那么,经过上面的步骤之后,就可以安装一些学习框架进行操作了。但如果想更灵活干净的让应用在容器内运行,则还需要进行接下来的操作准备。***

四,nvidia-docker2安装

1,Nvidia关于docker项目的支持,github网址:https://github.com/NVIDIA/nvidia-docker。它使用一个nvidia-docker2应用来延伸docker的内置功能。架构如下:

2,nvidia-docker2要求的docker安装版本比较新,安装的版本为ce-18.09.6-3。Nvidia-docker2安装的版本为2.0.3-3。(这几个rpm包我都收下载好,可随时共享)

安装命令(需要解决rpm包依赖,未列明):

Sudo -.el7.x86_64.rpm
Sudo -.docker18.09.6.ce.noarch.rpm

3,在安装完成之后,有两个配置文件需要更改或新建:

a,/etc/systemd/system/docker.service.d/docker.conf

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/docker_data --storage-driver=overlay --insecure-registry harbor.xxxx.com.cn

graph参数指定docker镜像的存放目录,需要一个较大的硬盘空间。

b,/etc/docker/daemon.json

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

此文件为nvidia-docker2应用所需,用于替换docker的默认runc。

用两个文件来自定义docker配置,即可以替换runc,又可以提定内部仓库,合理~

4,当这些更改应用之后,再启动docker服务,使用docker info会看到相应的更改已生效。

...
Server Version: 18.09.6
Storage Driver: overlay
 Backing Filesystem: xfs
 Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Runtimes: nvidia runc
Default Runtime: nvidia
Docker Root Dir: /data05
Insecure Registries:
 harbor.xxxx.com.cn
 127.0.0.0/8

...

五,Docker镜像测试:

1,此次测试的镜像如下:

---anibali/pytorch:cuda-9.2

---tensorflow/tensorflow:1.12.0-gpu-py3

2,在服务器新装之后,如果有特别个性化的需求,可以考虑以anaconda镜像为基础进行自定义制作。

3,在以上两个镜像中,GPU加速的效果,都可以达到CPU的10倍左右。

六,使用K8S管理docker容器的部署

未完待续

基于Docker容器使用NVIDIA-GPU训练神经网络的更多相关文章

  1. NVIDIA GPU的神经网络自动调度

    NVIDIA GPU的神经网络自动调度 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要.这是一个关于如何使用自动调度器为NVIDIA GPU调整整个神经网络的资料. 为了自动调整一个神经网络 ...

  2. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  3. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  4. 基于docker容器搭建fastdfs分布式文件系统

    本次环境的搭建参考了 https://blog.csdn.net/qq_43455410/article/details/84797814, 感谢博主. 主要流程如下: 1. 下载fastdfs镜像 ...

  5. 基于 docker容器搭建机器学习环境

    下载docker镜像 docker pull ubuntu:18.04 进入ubuntu系统命令 docker run -ti ubuntu /bin/bash 正确退出系统方式 先按,ctrl+p ...

  6. OpenLDAP 多主复制(基于docker容器模式部署)

    **本文主要讲述在docker环境下如何进行 OpenLDAP 多主复制,至于 OpenLDAP 原理可以先参考这篇文章了解:https://cloud.tencent.com/developer/a ...

  7. 使用Colaboratory的免费GPU训练神经网络

    1 Colaboratory 介绍 Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果.它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并 ...

  8. 容器云平台No.1~基于Docker及Kubernetes构建的容器云平台

    开篇 最近整理笔记,不知不觉发现关于kubernetes相关的笔记已经达99篇了,索性一起总结了.算是对这两年做容器云平台的一个总结,本文是开篇,先介绍下所有用到的组件.首先来看下架构图(实在画的太丑 ...

  9. docker容器资源限制:限制容器对内存/CPU的访问

    目录 一.系统环境 二.前言 三.docker对于CPU和内存的限制 3.1 限制容器对内存的访问 3.2 限制容器对CPU的访问 一.系统环境 服务器版本 docker软件版本 CPU架构 Cent ...

随机推荐

  1. CSS布局:sticky定位

    stick定位一如其名:它随“正常”文档流而动,直到规定位置,尔后“粘”在那里:或者,当它发现自己可以跟随“正常”文档流而脱离sticky位置时,就果断离开从而加入文档流. 代码与效果如下: < ...

  2. Putty——支持Telnet,ssh连接的连接软件

    简介 PuTTY 的官方网站:http://www.chiark.greenend.org.uk/~sgtatham/putty/,截止到 2007年6月,发布的最高稳定版本是 0.6.PuTTY 是 ...

  3. k8s-job使用

    一.job特性 运行完成后退出,但是不会被删除,便于用户查看日志信息,了解任务完成的情况 删除job时产生的pod也会被一起删除 job中可以运行多个pod(任务执行多次),且可以并行运行缩短任务完成 ...

  4. 【windows】win10新增用户

    1.打开[计算机管理]

  5. Fineui alert去掉关闭按钮,去掉X

    参考:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7455&highlight=alert           http:// ...

  6. 长乐国庆集训Day4

    T1 一道数论神题 题目 [题目描述] LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只有点权. LYK想把这个图删干净,它的方法是这样的.每次选择一个点,将它删 ...

  7. FMX 窗口置顶 或置底 xe10

    FMX 窗口置顶  或置底 xe10 Popup 置底 StayOnTop 置顶

  8. wildfly添加JNDI驱动配置

    wildfly-9.0.1.Final/modules目录下新建com文件夹cd com && mkdir mysql && cd mysql && m ...

  9. select中的option被选中时页面的跳转

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 2、Shell命令学习笔记

    1.Shell命令行解释器 1.1 Shell命令解释器 Shell是一个特殊的应用程序,介于操作系统内核和用户之间,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行. 因 ...