Linux下GPU云服务器安装 NVIDIA Tesla 驱动

2020-01-06 11:21:58 浏览数 (1)

背景介绍:

本篇介绍腾讯云环境GPU云服务器nvidia tesla驱动安装步骤。有很多腾讯云的使用者,在使用GPU服务器过程中,对驱动安装或者使用中有一些疑惑,比如系统kernel更新了,驱动失效了等问题。

驱动安装途径:

目前腾讯云环境下支持安装GPU驱动的方式如下:

  1. 使用预装 GPU 驱动的镜像,参考链接:https://cloud.tencent.com/document/product/560/30129
  2. 使用公共镜像的时候,支持后台自动安装GPU驱动。
  3. 自定义机器初始化,设置自定义数据来安装GPU驱动,https://cloud.tencent.com/document/product/213/17525
  4. 很多公司,有初始化流程或者配置流程平台,可以创建出干净环境的机器,后边自定义安装驱动。
  5. 目前官网控制台支持,后台自动安装GPU驱动,如下图:

安装驱动:

NVIDIA Telsa GPU 的 Linux 驱动在安装过程种需要编译 kernel module,所以要求系统安装好了 gcc 和编译 Linux Kernel Module 所依赖的包,例如 kernel-devel-$(uname -r) 等。

  • 登录NVIDIA 驱动下载或打开链接 http://www.nvidia.com/Download/Find.aspx 。
  • 选择操作系统和安装包。以 P4 为例,搜寻驱动,然后选择要下载的驱动版本。

注意:操作系统选择 Linux 64-bit 代表下载的是 shell 安装文件,如果选择具体的发行版下载的文件则是对应的包安装文件。

  • 选择特定的版本跳转后,单击【DOWNLOAD】。
  • 再次跳转后,如有填写个人信息的页面可选择直接跳过,出现下面页面时,右击【AGREE&DOWNLOAD】,右键菜单里复制链接地址。
  • 登录 GPU 实例,使用 wget 命令, 粘贴上述步骤复制的链接地址下载安装包;或通过在本地系统下载 NVIDIA 安装包, 上传到 GPU 实例的服务器。
代码语言:shell复制
# wget http://us.download.nvidia.com/tesla/440.33.01/NVIDIA-Linux-x86_64-440.33.01.run
  • 对安装包加执行权限。 例如,对文件名为NVIDIA-Linux-x86_64-440.33.01.run加执行权限:
代码语言:shell复制
# chmod  x NVIDIA-Linux-x86_64-440.33.01.run 
  • 安装当前系统对应的 gcc 和 kernel-devel 包
代码语言:shell复制
# sudo yum install -y gcc kernel-devel-xxx

xxx是内核版本号,可以通过 uname -r 查看。

  • 安装dkms
代码语言:shell复制
# sudo yum install dkms -y

dkms的作用:nvidia-installer can optionally register the NVIDIA kernel module sources, if installed, with DKMS, then build and install a kernel module using the DKMS-registered sources. This will allow the DKMS infrastructure to automatically build a new kernel module when changing kernels. During installation, if DKMS is detected, nvidia-installer will ask the user if they wish to register the module with DKMS; the default response is 'no'. This option will bypass the detection of DKMS, and cause the installer to attempt a DKMS-based installation regardless of whether DKMS is present.

白话文翻译:即注册nvidia驱动到dkms中,通过dkms管理,当内核更新的时候,会自动build新的nvidia内核模块。

  • 运行驱动安装程序后按提示进行后续操作。
代码语言:shell复制
#  ./NVIDIA-Linux-x86_64-440.33.01.run --dkms --silent

其中--silent的作用,不弹出UI界面,单台安装还好,否则批量操作,就比较尴尬了。

  • 验证驱动安装是否正常
代码语言:shell复制
# nvidia-smi 
 ----------------------------------------------------------------------------- 
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|------------------------------- ---------------------- ---------------------- 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|=============================== ====================== ======================|
|   0  Tesla P4            Off  | 00000000:00:06.0 Off |                  Off |
| N/A   39C    P8     7W /  75W |      0MiB /  8121MiB |      0%      Default |
 ------------------------------- ---------------------- ---------------------- 
                                                                               
 ----------------------------------------------------------------------------- 
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
 ----------------------------------------------------------------------------- 
  • 查看系统已安装的module
代码语言:shell复制
# lsmod|grep nvidia
nvidia_drm             43714  0 
nvidia_modeset       1110184  1 nvidia_drm
nvidia              19893642  13 nvidia_modeset
ipmi_msghandler        46608  2 ipmi_devintf,nvidia
drm_kms_helper        159169  2 cirrus,nvidia_drm
drm                   370825  5 ttm,drm_kms_helper,cirrus,nvidia_drm
i2c_core               40756  4 drm,i2c_piix4,drm_kms_helper,nvidia
  • 查看nvidia的路径与版本等信息
代码语言:shell复制
# modinfo nvidia
filename:       /lib/modules/3.10.0-693.el7.x86_64/extra/nvidia.ko.xz
alias:          char-major-195-*
version:        440.33.01
supported:      external
license:        NVIDIA
rhelversion:    7.4
srcversion:     A5E9226CB2A7B16B12DA2CA
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        ipmi_msghandler,i2c-core
vermagic:       3.10.0-693.el7.x86_64 SMP mod_unload modversions 
parm:           NvSwitchRegDwords:NvSwitch regkey (charp)
parm:           NVreg_Mobile:int
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_MapRegistersEarly:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_TCEBypassMode:int
parm:           NVreg_EnableStreamMemOPs:int
parm:           NVreg_EnableBacklightHandler:int
parm:           NVreg_RestrictProfilingToAdminUsers:int
parm:           NVreg_PreserveVideoMemoryAllocations:int
parm:           NVreg_DynamicPowerManagement:int
parm:           NVreg_EnableUserNUMAManagement:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_KMallocHeapMaxSize:int
parm:           NVreg_VMallocHeapMaxSize:int
parm:           NVreg_IgnoreMMIOCheck:int
parm:           NVreg_NvLinkDisable:int
parm:           NVreg_RegisterPCIDriver:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RegistryDwordsPerDevice:charp
parm:           NVreg_RmMsg:charp
parm:           NVreg_GpuBlacklist:charp
parm:           NVreg_TemporaryFilePath:charp
parm:           NVreg_AssignGpus:charp

按照本文安装,可以保障系统内核更新的时候,驱动自动build,不会出现驱动不可用状态。

0 人点赞