关键词:

GPU分析、容器化、Docker

摘  要:

介绍在Linux环境下搭建GPU分析容器化部署所需要的环境。

目录

一、配置环境要求

二、Linux系统安装

        1、分区

        2、独立数据分区挂载

三、服务配置及显卡驱动安装

        1、关闭防火墙

        2、关闭selinux

        3、禁用nouveau

四、Docker安装

        1、卸载旧版本docker

        2、安装docker

        3、docker目录修改      


一、配置环境要求

        本文仅以Linux环境为例,相关软硬件基本要求如下表:

硬件环境

CPU

Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz

内存

32GB

GPU

GeForce RTX 2070 Super * 2

硬盘

SSD 240GB

软件环境

宿主机系统

CentOS 7.8.2003

显卡驱动

NVIDIA-Linux-x86_64-440.82 或者

NVIDIA-Linux-x86_64-450.80.02

二、Linux系统安装

        本文对于系统的安装不作详细介绍,只重点说明几个配置。

        1、分区

分区步骤

挂载点

说明

分区类型

说明

第一步

/boot/efi

200M

默认

或biosboot分区,2M

第二步

/boot

2GB

默认


第三步

/

剩下全部空间

ext4


        2、独立数据分区挂载

        如果安装系统sda足够大,不需要挂载,直接在根目录“/”下,通过“mkdir /data”命令创建“/data”目录。

租用的gpu如何知道对应的cuda_docker

         如果是数据盘和系统盘分离,需要挂载数据盘。

fdisk /dev/sdb      # sdb是第二块盘,现场根据实际选择。

租用的gpu如何知道对应的cuda_docker_02

g:GPT分区,分区前必选!GPT支持2T以上磁盘。

n:创建新分区

p:查看分区

w:保存分区信息

m:帮助

租用的gpu如何知道对应的cuda_租用的gpu如何知道对应的cuda_03

通过 mkfs.ext4格式化成ext4格式。

租用的gpu如何知道对应的cuda_linux_04

修改挂载文件:vi /etc/fstab,增加一行(vi中,按“o”增加一行):

/dev/sdb1  /data  ext4  defaults  0 0

租用的gpu如何知道对应的cuda_人工智能_05

按esc,输入:wq,保存退出vi。

“mkdir /data”创建/data文件夹,mount -a完成挂载,df -h查看是否成功。

租用的gpu如何知道对应的cuda_linux_06

三、服务配置及显卡驱动安装

        1、关闭防火墙

# systemctl stop firewalld.service
# systemctl disable firewalld.service
# systemctl status firewalld.service

        2、关闭selinux

# vi /etc/selinux/config

  将SELINUX=enforcing改为SELINUX=disabled 重启生效。

   查看状态:

# getenforce

        3、禁用nouveau

查看该目录/etc/modprobe.d有无blacklist.conf文件,没有则创建一个,添加如下内容

blacklist nouveau

options nouveau modeset=0

保存之后,运行如下命令

# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

# dracut -v /boot/initramfs-$(uname -r).img

然后reboot,输入命令lsmod | grep nouveau查看禁用是否成功了,如下图即表示禁用成功

租用的gpu如何知道对应的cuda_gpu算力_07

         4、驱动安装

注意宿主机上面需要安装gcc环境,同时保证uname -r和rpm -q kernel-devel的版本一致。

本文以NVIDIA-Linux-x86_64-440.64.run版本为例,直接运行NVIDIA-Linux-x86_64-440.64.run,命令如下:

# chmod 777 NVIDIA-Linux-x86_64-440.64.run

# ./NVIDIA-Linux-x86_64-440.64.run

输入accept接受协议,安装选项中,仅选安装驱动即可,安装完成后reboot重启 nvidia-smi查看gpu相关信息,如下图:

租用的gpu如何知道对应的cuda_linux_08

四、Docker安装

        1、卸载旧版本docker

                如果之前没有安装过,可跳过这一步。

$ sudo yum remove docker \
					  docker-client \
					  docker-client-latest \
					  docker-common \
					  docker-latest \
					  docker-latest-logrotate \
					  docker-logrotate \
					  docker-selinux \
					  docker-engine-selinux \
					  docker-engine

# rm -rf /etc/systemd/system/docker.service.d
# rm -rf /var/lib/docker
# rm -rf /var/run/docker

        2、安装docker

        准备好以下docker rpm包:

租用的gpu如何知道对应的cuda_人工智能_09

      以及下面的nvidia rpm包

租用的gpu如何知道对应的cuda_docker_10

        里面的rpm一次批量安装即可,cd到该目录,执行rpm -Uvh *.rpm --nodeps --force即可,如果是GPU服务器,还需要安装nvidia的rpm包,安装方法一样。

启动docker:

# systemctl start docker

        3、docker目录修改      

  1. 查看docker当前目录
# docker info

租用的gpu如何知道对应的cuda_人工智能_11

  1. 停止docker
# systemctl stop docker
  1. 修改数据目录配置
# vi /usr/lib/systemd/system/docker.service
# 增加数据目录配置:--graph=/data/docker

租用的gpu如何知道对应的cuda_linux_12

# systemctl daemon-reload 		  # 重新加载配置
# systemctl restart docker         # 重启docker
# systemctl enable docker         # 设置开机自启动