This article explains how to install CentOS 6.4 and CUDA5 on a PC, which is equipped with Tesla K20.
The specification of hardware is shown below
Since ETSK20-5GER does not have terminals of display outputs, such as D-SUB, DVI, HDMI, and so on, use the terminals of the mother board are used. To use the terminals, at the configuration of UEFI, the Primary Display is On Board.
The settings of installing CentOS 6.4 are shown below.
本稿では個別のパッケージのカスタマイズ設定は行っていません。
またFirewall、SELinuxは共にDisableに設定しています。
CentOS 6.4(64bit版)インストール後の設定について記載します。
インストール直後のKernelバージョンは以下のとおりです。
$ uname -a Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
yum コマンドでアップデートを実行します。
# yum update
アップデート完了後再起動を実行しアップデートしたKernelで起動することを確認します。
# reboot
再起動後のKernelバージョンは以下のとおりです。
$ uname -a Linux localhost.localdomain 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
beatユーザを作成し、sudoにbeatユーザを追加します。
# useradd beat # passwd beat
# /usr/sbin/visudo ...<略> ## user MACHINE=COMMANDS ## ## The COMMANDS section may have other options added to it. ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL beat ALL=(ALL) ALL
CUDAのインストールには直接関係はありませんが、作業をしやすくするため
ntpdとopensshをインストールします。
ntpdをインストールします。
# yum install ntp
ntpサーバを追加します。
# vi /etc/ntp/step-tickers # List of servers used for initial synchronization. ntp.nict.jp ntp.jst.mfeed.ad.jp ntp.ring.gr.jp
ntpdを起動します。
# /etc/init.d/ntpd start
ntpdをサービスに追加します。
# chkconfig --level 3 ntpd on # chkconfig --level 5 ntpd on
opensshをインストールします。
既にインストールされている場合はこの手順はとばしてください。
# yum install openssh
/etc/ssh/sshd_config内のPermitRootLoginと
PermitEmptyPasswordsをnoに設定します。
# vi /etc/ssh/sshd_config ... <略> # Authentication: #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 ... <略> # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes PermitEmptyPasswords no PasswordAuthentication yes ...
sshdを起動します。
# /etc/init.d/sshd start
sshdをサービスに追加します。
# chkconfig --level 5 sshd on # chkconfig --level 3 sshd on
Tesla K20cドライバインストールについて記載します。
Tesla K20cドライバインストールのためにパッケージの追加、設定を行います。
開発用パッケージ、ライブラリ群(Development tools)をインストールします。
# yum groupinstall 'Development tools'
Tesla K20cのドライバ、CUDA5のインストール時にXが起動していると
エラーが起こるため、runlevel 3に変更し再起動を行います。
# vi /etc/inittab ...<略> # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault: # reboot
再起動後、以下のURLよりNVIDIA-Linux-x86_64-319.23.runをダウンロードします。
http://www.nvidia.co.jp/object/linux-display-amd64-319.23-driver-jp.html
NVIDIA-Linux-x86_64-319.23.runを実行し、ライセンスに同意後インストールが完了します。
インストール完了後/proc/driver/nvidia/にversionファイルが作成されます。
# chmod +x NVIDIA-Linux-x86_64-319.23.run # ./NVIDIA-Linux-x86_64-319.23.run # cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 304.54 Sat Sep 29 00:05:49 PDT 2012 GCC version: gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
以下のURLに記載のあるように起動時ドライバを読み込むためのファイル(/etc/init.d/nvidia)を作成し、
runlevel3,5の起動時に実行するよう設定します。
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#install-cuda-software
# vi /etc/init.d/nvidia #!/bin/bash /sbin/modprobe nvidia if [ "$?" -eq 0 ]; then # Count the number of NVIDIA controllers found. NVDEVS=`lspci | grep -i NVIDIA` N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l` NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l` N=`expr $N3D + $NVGA - 1` for i in `seq 0 $N`; do mknod -m 666 /dev/nvidia$i c 195 $i done mknod -m 666 /dev/nvidiactl c 195 255 else exit 1 fi # cd /etc/rc5.d/ # ln -s S99nvidia ../init.d/nvidia # cd /etc/rc3.d/ # ln -s S99nvidia ../init.d/nvidia
CUDA5のインストールとCUDA5のSamplesについて記載します。
CentOS6 64bit版CUDA(cuda_5.0.35_linux_64_rhel6.x-1.run)を以下のURLから
ダウンロードします。
https://developer.nvidia.com/cuda-downloads
CUDA5のSampleインストール時にPATHが見つからずSampleがインストールされないのを防ぐため、
.bashrcに予めPATHを追加します。
$ cd /home/beat $ vi .bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions export PATH=/usr/local/cuda-5.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib:$LD_LIBRARY_PATH # source .bashrc
Samplesのビルドで必要な以下のパッケージを予めインストールします。
# yum install freeglut-devel.x86_64 libXi-devel.x86_64 mpich2-devel.x86_64 libXmu-devel.x86_64
cuda_5.0.35_linux_64_rhel6.x-1.run を実行します。
インストール先ディレクトリはデフォルトの/usr/local/cuda-5.0を指定します。
# chmod +x cuda_5.0.35_linux_64_rhel6.x-1.run # ./cuda_5.0.35_linux_64_rhel6.x-1.run
Samplesはデフォルトで/usr/local/cuda-5.0/samplesと/root/NVIDIA_CUDA-5.0_Samplesに
インストールされます。
rootユーザでビルドできるようにld.so.conf.d/cuda.confを追加しldconfigを実行します。
# cat /etc/ld.so.conf.d/cuda.conf /usr/local/cuda-5.0/lib /usr/local/cuda-5.0/lib64 # ldconfig
NVIDIA_CUDA-5.0_Samplesをbeatユーザでビルド、実行できるようにします。
/root/NVIDIA_CUDA-5.0_Samplesからコピーし、オーナーをbeatに変更しmakeを実行します。
# cp -afr /root/NVIDIA_CUDA-5.0_Samples /home/beat/. # cd /home/beat # chown -R beat.beat NVIDIA_CUDA-5.0_Samples $ cd ~/NVIDIA_CUDA-5.0_Samples $ make
ビルド完了後 NVIDIA_CUDA-5.0_Samples/bin/linux/release/に移動し、
NVIDIA CUDA Getting Started Guide for Linuxのページ内Running the Binariesに
記載されているdeviceQuery、bandwidthTestを実行します。
deviceQuery、bandwidthTest共にTesla K20cを用いていることが確認できます。
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#running-binaries
$ cd ~/NVIDIA_CUDA-5.0_Samples/bin/linux/release/ $ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "Tesla K20c" CUDA Driver Version / Runtime Version 5.0 / 5.0 CUDA Capability Major/Minor version number: 3.5 Total amount of global memory: 4800 MBytes (5032706048 bytes) (13) Multiprocessors x (192) CUDA Cores/MP: 2496 CUDA Cores GPU Clock rate: 706 MHz (0.71 GHz) Memory Clock rate: 2600 Mhz Memory Bus Width: 320-bit L2 Cache Size: 1310720 bytes Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65536), 3D=(4096,4096,4096) Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Maximum sizes of each dimension of a block: 1024 x 1024 x 64 Maximum sizes of each dimension of a grid: 2147483647 x 65535 x 65535 Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 2 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Enabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 5.0, CUDA Runtime Version = 5.0, NumDevs = 1, Device0 = Tesla K20c
$ ./bandwidthTest [CUDA Bandwidth Test] - Starting... Running on... Device 0: Tesla K20c Quick Mode Host to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6431.7 Device to Host Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6396.1 Device to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 143752.5
設定完了後のHDDの使用容量は以下のとおりです。
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/vg_beattesla-lv_root 50G 4.3G 45G 9% / tmpfs 16G 0 16G 0% /dev/shm /dev/sda1 485M 66M 394M 15% /boot /dev/mapper/vg_beattesla-lv_home 852G 1.4G 808G 1% /home
2013/05/31 初稿掲載
2013/06/01 文言修正