1.°²×°Ç°×¼±¸¹¤×÷

1.1È·ÈÏGPUÐͺźͲÙ×÷ϵͳ°æ±¾

1.2×¼±¸gpuÇý¶¯ºÍCUDAÈí¼þ°ü

ÔÚnvidia¹ÙÍø½øÐÐÇý¶¯°üÏÂÔØ

GPUÇý¶¯ÏÂÔØÁ´½Ó£ºhttps://www.nvidia.cn/Download/index.aspx?lang=cn

linuxϵͳ¾ùÑ¡Ôñ Linux 64-bit

CUDA ToolkitÑ¡Ôñ×îа汾£¬×¢Òâ¸Ã°æ±¾Ò»¶¨Òª´óÓÚµÈÓÚcudaÈí¼þµÄ°æ±¾¡£

Ñ¡ÔñCUDA¼°GPUÇý¶¯°æ±¾£¬Ðèͬʱ¿¼ÂÇÓë¿Í»§³ÌÐòµÄ¼æÈÝÐÔÎÊÌâ¡£

CUDA 10.1/10.2¿ÉÒÔ´îÅäCUDA toolkit 10.2°æ±¾µÄGPUÇý¶¯¡£

CUDA 11.0 ½¨Òé´îÅäCUDA CUDA toolkit 11.0°æ±¾µÄGPUÇý¶¯

NVIDIAÇý¶¯³ÌÐòÏÂÔØ

CUDAÏÂÔØÁ´½Ó£ºhttps://developer.nvidia.com/cuda-downloads

Ñ¡ÔñºÏÊʵIJÙ×÷ϵͳ°æ±¾½øÐÐÏÂÔØ¡£

CUDAÏÂÔØ

1.3¼ì²é·þÎñPGµç¾º¹ÙÍøGPUʶ±ðÇé¿ö

°²×°GPUÇý¶¯Ö®Ç°ÐèÒªÔÚ²Ù×÷ϵͳϲ鿴GPU¿¨ÊÇ·ñÄܹ»Íêȫʶ±ð,Èç²»ÄÜʶ±ðÐèÒª½øÐÐÖØÐ²å°Î¡¢¶Ôµ÷²âÊԵȲ½Öè½øÐÐÓ²¼þÅŲ顣

#È·±£¿ÉÒԲ鿴µ½ËùÓеÄGPU

# lspci | grep -i nvidia


1.4Àϰ汾Èí¼þ°üÐ¶ÔØ

Èô°²×°¹ýÆäËû°æ±¾µÄGPUÇý¶¯»òCUDA£¬ÇëÏÈÐ¶ÔØ¡£

GPUÇý¶¯Ð¶ÔØ·½·¨£º

# /usr/bin/nvidia-uninstall

CUDAÐ¶ÔØ·½·¨£º

# /usr/local/cuda-X.Y/bin/cuda-uninstaller


»ò£¨ÀÏ°æ±¾Ð¶ÔØ·½·¨£©

# /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

1.5°²×°gcc¡¢g++±àÒëPGµç¾º¹ÙÍø

GPUÇý¶¯°²×°Ê±ÐèÒªgcc±àÒëPGµç¾º¹ÙÍø¡£

cuda°²×°samples²âÊÔ³ÌÐò½øÐÐmakeʱÐèÒªg++£¬µ«°²×°cudaÈí¼þ°üʱ²»ÐèÒª¡£

CentOS 7£º

#¼ì²é°æ±¾

    gcc -v

    g++ -v

#Èí¼þ°ü°²×°

# yum install gcc

# yum install gcc-c++

SUSE£º

#¼ì²é°æ±¾

gcc -v

g++ -v

#Èí¼þ°ü°²×°

zypper in gcc

zypper in gcc-c++

Ubuntu£º

#¼ì²é°æ±¾

# gcc -v

# g++ -v

#Èí¼þ°ü°²×°

# gpt-get install gcc

# gpt-get install g++

# apt-get install make

#Èí¼þ°ü¼ì²é

# dpkg -l gcc

# dpkg -l g++

# dpkg -l make

1.6°²×°kernel-develºÍkernel-headersÈí¼þ°ü

CentOS 7£º

# yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

Ubuntu£º

#Ubuntu¿ÉÒÔ²»°²×°£¬Ò²¿ÉÒÔ´Ó°¢Àï¾µÏñÕ¾»òÍøÒ×¾µÏñÕ¾ÏÂÔØ£¬Ðè×¢ÒâÄں˰汾¡£

SUSE:

zypper install kernel-source-$(uname -r) #Ö»°²×°ÕâÒ»¸ö¼´¿É

zypper install kernel-default-devel-$(uname -r)


1.7½ûÓÃϵͳ×Ô´øµÄnouveauÄ£¿é

¼ì²énouveauÄ£¿éÊÇ·ñ¼ÓÔØ£¬ÒѼÓÔØÔòÏȽûÓÃ

# lsmod | grep nouveau


CentOS 7:

#ûÓÐblacklist-nouveau.confÎļþÔò´´½¨

# vim /usr/lib/modprobe.d/blacklist-nouveau.conf blacklist nouveau

options nouveau modeset=0

Ö´ÐÐÈçÏÂÃüÁîʹÄÚºËÉúЧ£¨ÐèÒªÖØÆô·þÎñPGµç¾º¹ÙÍøºó²Å¿ÉÕæÕý½ûÓÃnouveau£©

# dracut -force

Ubuntu:

vi /etc/modprobe.d/blacklist.conf

ÔÚÎı¾×îºóÌí¼ÓÒÔÏÂÄÚÈÝ£º

blacklist nouveau

options nouveau modeset=0

±£´æÍ˳ö£¬Ö´ÐÐÒÔÏÂÃüÁîÉúЧ£º

# update-initramfs -u

1.8ÖØÆô²Ù×÷ϵͳ

1£©ÐÞ¸ÄϵͳÔËÐм¶±ðΪÎı¾Ä£Ê½

GPUÇý¶¯°²×°±ØÐëÔÚÎı¾Ä£Ê½Ï½øÐÐ

CentOS 7

# systemctl set-default multi-user.target

Ubuntu:

systemctl stop lightdm

systemctl set-default multi-user.target£¨Ò²¿ÉÒÔ²»Ö´ÐдËÃüÁ

È»ºóctrl+alt+F1 Çл»µ½ÆäËû×Ö·ûÖÕ¶Ë´°¿Ú£¨F7ΪͼÐÎÖжϴ°¿Ú£©£¬»òÕßinit 3

SUSE:

vim /etc/inittab

ÐÞ¸Ä

id:5:initdefault:

Ϊ

id:3:initdefault:

2£©ÖØÆôϵͳºó,ʹ½ûÓÃnouveauÄ£¿éÅäÖÃÉúЧ²¢½øÈëÎı¾Ä£Ê½


2.GPUÇý¶¯°²×°

1£©rootÓû§Ï½øÐÐGPUÇý¶¯

# chmod +x NVIDIA-xxx.run

# ./NVIDIA-Linux-x86_64-390.46.run ¨Cno-opengl-files ¨Cui=none ¨Cno-questions ¨Caccept-license

2£©ÅäÖÃGPUÇý¶¯Äڴ泣פģʽ

GPUÇý¶¯Ä£Ê½ÉèÖÃΪ³£×¤Äڴ棺

# nvidia-smi -pm 1

ÉèÖÿª»ú×ÔÆô¶¯

vim /etc/rc.d/rc.local

ÔÚÎļþÖÐÌí¼ÓÒ»ÐÐ

nvidia-smi -pm 1

¸³Óè/etc/rc.d/rc.localÎļþ¿ÉÖ´ÐÐȨÏÞ

# chmod +x /etc/rc.d/rc.local

#ÈôÎÞ/etc/rc.d/rc.local£¬Ò²¿ÉÐÞ¸Ä

vim /etc/rc.local

chmod +x /etc/rc.local

================================================

ubuntu 18.04 ÅäÖÃÄڴ泣פģʽ¿ª»ú×ÔÆô¶¯¡£

https://blog.csdn.net/ererfei/article/details/98205463

´´½¨Îļþ£º vi /etc/systemd/system/rc-local.service

[Unit]

Description=/etc/rc.local Compatibility

ConditionPathExists=/etc/rc.local

[Service]

Type=forking

ExecStart=/etc/rc.local start

TimeoutSec=0

StandardOutput=tty

RemainAfterExit=yes

SysVStartPriority=99

[Install]

WantedBy=multi-user.target

´´½¨Îļþ£º vi /etc/rc.local

#!/bin/sh -e

nvidia-smi -pm 1

exit 0

¸³Óè¿ÉÖ´ÐÐȨÏÞ

chmod +x /etc/rc.local

Æô¶¯·þÎñ²¢ÉèÖ÷þÎñ¿ª»ú×ÔÆô¶¯

systemctl enable rc-local.service

systemctl start rc-local.service

systemctl status rc-local.service

ÖØÆôϵͳºóÑéÖ¤

=================================================

#SUSE

vim /etc/init.d/after.local #ûÓоÍн¨

nvidia-smi -pm 1

chmod +x /etc/init.d/after.local

nvidia-smi

°²×°ÍêGPUÇý¶¯ºó£¬¿ÉÒÔʹÓÃnvidia-smiÃüÁî½øÐÐGPU״̬²é¿´¼°Ïà¹ØÅäÖá£

    3.CUDA°²×°

    1£©°²×°CUDA

    °²×°CUDAʱÐè×¢Ò⣬Èç¹û֮ǰ°²×°¹ýGPUÇý¶¯£¬°²×°CUDAʱ¾Í²»ÒªÔÙÑ¡ÔñGPUÇý¶¯°²×°ÁË¡£

    chmod +x cuda-xxx.run

    ./cuda-xxx.run ¨Cno-opengl-libs

    а汾CUDA°²×°½çÃæ£º

    ×¢ÒâDriverÑ¡Ï±íʾÊÇ·ñ°²×°GPUÇý¶¯£¬Èç¹û֮ǰÒѾ­°²×°ÁËGPUÇý¶¯£¬ÕâÀï²»ÒªÔÙ¹´Ñ¡¡£


    ¾É°æ±¾CUDA°²×°£º

    [root@ localhost ~]# ./cuda-xxx.run ¨Cno-opengl-libs

    ¡­ ¡­ ¡­ ¡­

    ¡­ ¡­ ¡­ ¡­ ####Ô¼¶¨Ìõ¿î£¬´Ë´¦ºöÂÔ´òÓ¡

    ¡ª¡ª¡ª¡ª¡ª¨C

    Do you accept the previously read EULA?

    accept/decline/quit: accept

    Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?

    (y)es/(n)o/(q)uit: n ###ÈôÒѾ­°²×°¹ýÇý¶¯£¬Ôò´Ë´¦²»ÐèÔÙ°²×°

    Install the CUDA 9.2 Toolkit?

    (y)es/(n)o/(q)uit: y

    Enter Toolkit Location

    [ default is /usr/local/cuda-9.1 ]: ####»Ø³µ£¬Ä¬ÈÏ

    Do you want to install a symbolic link at /usr/local/cuda?

    (y)es/(n)o/(q)uit: y

    Install the CUDA 9.2 Samples?

    (y)es/(n)o/(q)uit: y ##°²×°samples

    To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.2/bin

    To uninstall the NVIDIA Driver, run nvidia-uninstall

    Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.2/doc/pdf for detailed information on setting up CUDA.

    Logfile is /tmp/cuda_install_62403.log

    ####°²×°Íê³É£¬Èç¹û°²×°Ê§°Ü£¬²é¿´ÉÏÊöÌáʾÈÕÖ¾ÐÅÏ¢¡£

    2£©ÅäÖû·¾³±äÁ¿

    Ìí¼Óµ½/etc/profileÎļþÖУ¬¶ÔËùÓÐÓû§ÉúЧ

    # vim /etc/profile

    export PATH=/usr/local/cuda/bin:$PATH

    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

    # source /etc/profile

    ²âÊÔcuda°²×°ÊÇ·ñÕýÈ·£¬»·¾³±äÁ¿ÊÇ·ñʶ±ð³É¹¦

    # nvcc -V