CentOS installからCUDA installまで
CentOS7.6を入れて、CUDAの環境を作るまでをまとめました。
1. CentOSを入れる
今回はCentOS7.6を入れました。mac Mojaveで作業しています。
公式サイトのDownloadからminimal isoをダウンロード。 usbをブートデバイスにする。usbを挿れてから
$ diskutil list
で使いたいusbの名前を特定する。/dev/disk1
とか。わからなければ一度出してからdiskutil list
して、消えた名前を見れば良いと思う。
次に、usbをブート用にフォーマットする。
$ diskutil eraseDisk MS-DOS UNTITLED /dev/disk2
するか、macOSのアプリのディスクユーティリティ
でFAT32にフォーマット。
isoイメージをdmgファイルに変換する。
$ hdiutil convert -format UDRW -o centosdvd.img CentOS-7.6-***-x86_64-DVD.iso
するとcentos.img.dmg
が出来上がる。
イメージファイルを入れるために一度unmountする。
$ diskutil unmountDisk /dev/disk2
usbデバイスにイメージファイルを入れる。
$ sudo dd if=centosdvd.img.dmg of=/dev/disk2 bs=1m
これで完成。起動したいマシンに挿れて、BIOSからusbの順番を上にして再起動。 minimalを挿れているので、テキストベース(CLI?)でinstall作業をすることに注意。起動してグラフィックが途中までは起動したがそこから何もつかなくなって始めは困惑した。
具体的にはinstallの選ぶ画面でtab
keyを押して、なんか出てきたCLIの最後にinst.text
と追加する。
ネットワークやらなんやらの設定が少し面倒。
いずれ追記。
CentOSの初期設定
最低限動かすためにyum
で必要なものを入れる。
gcc, makeとか
2. NVIDIA driverのインストール
2.1 nouveauの無効化
gpuをnvidiaのツールだけで扱わせるためにもともと入っているnouveau
を無効化しないといけない。
あとで書かないと。
2.2 NVIDIA-Linux-***-runのinstall
NVIDIAの公式サイトの
からNVIDIA-Linux*-runというファイルを取ってくる。
入れようとすると以下のようなエラーが出た。
$ sudo sh NVIDIA-Linux-x86_64-***.run ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on Red Hat Linux systems, for example, be sure you have the 'kernel-source' or 'kernel-devel' RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the '--kernel-source-path' command line option.
--kernel-source-path
を指定する必要がある。
$ sudo sh NVIDIA-Linux-x86_64-***.run --kernel-source-path=/usr/src/kernels/***.x86_64
入れている最中に32bit版を入れるかとかX configurationがなんとか言われるが適当に進んで完了する。
uninstallするときは
$ sudo sh NVIDIA-Linux-x86_64-***.run --uninstall
注意
他の人の記事ですが以下参考になるかも。
yumのアップデートでカーネルのバージョンが上がった場合は、ドライバが正常に動作しなくなり、Xのサーバが起動しなくなります。それに伴って、デスクトップが表示されなくなってしまいます。
補足:パッケージマネージャーの使用
適切なレポジトリを追加したら、yumでnvidia driverの管理ができる。 その場合、runfileで入れたものは邪魔になるので消しておく必要がある。
3 cudaのinstall
nvidia driverにあったcudaを取ってくる。これを間違えるとインストールできない。
cuda-repo-rhel7-10-0-local-10.0***.x86_64.rpm
を今回は取ってきた。
レポジトリに追加
$ rpm -i cuda-repo-rhel7-10-0-local-10.0***.x86_64.rpm
cudaをinstallする
$ yum install cuda-10-0
明示的にversionを指定しなくてもできるが複数のcuda**rpmを挿れてる時に何が起こるかは知らない。
あと、途中でこんなエラーが出ることも
エラー: パッケージ: 3:nvidia-driver-cuda-410.48-1.el7.x86_64 (cuda-10-0-local-10.0.130-410.48) 要求: opencl-filesystem エラー: パッケージ: 3:nvidia-driver-410.48-1.el7.x86_64 (cuda-10-0-local-10.0.130-410.48) 要求: libva-vdpau-driver(x86-64) エラー: パッケージ: 3:nvidia-driver-cuda-410.48-1.el7.x86_64 (cuda-10-0-local-10.0.130-410.48) 要求: ocl-icd エラー: パッケージ: 3:dkms-nvidia-410.48-1.el7.x86_64 (cuda-10-0-local-10.0.130-410.48) 要求: dkms
これはepel
レポジトリを追加して
$ sudo yum install epel-release
解決する。
cudnnの設定
NVIDIAのサイトからダウンロード。アカウント登録が必要で、wget
で取れない。
マシンにcudnn-10.0***.tgz
を置いたら
$ tar -xzvf cudnn-10.0-linux-x64-***.tgz
で展開する。そして、Copy the following files into the CUDA Toolkit directory, and change the file permissions.
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64 $ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn*
最後にpath設定を変えてインストールしたものを見てあげるようにする。
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_DEVICE_ORDER=PCI_BUS_ID