機械学習の勉強を始めるにあたり、機械学習の環境を整えることにした。
awsやgoole colabなどを調べてみたが、自分のPCで構築してみたくなり、購入も考えたが、PCを自作したことなどなく、GPUのスペックなんかもよくわからない。
どうしようか考えていたところ、昔、GPUを一度だけ購入したことがあり、それを利用して環境を構築してみた。古いGPUなのでライブラリ、ドライバ、OSのバージョンの互換性の調整が大変で何度もOSインストールからやりなおした。
作業全体の流れは以下の通り
- GPUの選定
- OSの選定
- GPUドライバインストール
- CUDAインストール
- cuDNNインストール
- pytorchインストール
各スペック、バージョンは以下の通り
| GPU | geforce gt710(compute capability 3.5) |
| OS | ubuntu20.04 |
| CUDA | 11.4 |
| cuDNN | v8.5.0 (August 8th, 2022), for CUDA 11.x |
| pytorch | 1.10.0 |
| torchvision | 0.11.0 |
| python | 3.9 |
| python-venv | 3.9 |
| python-dev | 3.9 |
その他に必要なライブラリバージョン
| cmake | >= 3.18.0 |
| numpy | 1.24.4 |
| pyyaml | |
| typing-extensions |
GPUドライバ
OSからクリーンインストールしていない場合、すでにドライバが入っている可能性があるので削除
$ sudo apt-get --purge remove nvidia-*
$ sudo apt-get --purge remove cuda-*
最適なドライバをインストール
$sudo apt install ubuntu-drivers-common
$ubuntu-drivers devices #recommendedと表示されたドライバを覚えておく
$sudo apt install nvidia-driver-470 #今回はnvidia-driver-470がrecommendedだった
再起動し、GPU周りの情報を見る。CUDA11.4まで対応している
$nvidia-smi
Tue Apr 15 16:35:21 2025
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.256.02 Driver Version: 470.256.02 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 N/A | N/A |
| 40% 35C P8 N/A / N/A | 87MiB / 973MiB | N/A Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
CUDA
https://developer.nvidia.com/cuda-11-4-0-download-archiveにアクセスし、自分のインストール環境情報を入力すると、コマンドが表示されるので、それを入力し、実行
環境変数を追加。パスを通す。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
以下のコマンドでインストール完了確認
$nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Wed_Jun__2_19:15:15_PDT_2021
Cuda compilation tools, release 11.4, V11.4.48
Build cuda_11.4.r11.4/compiler.30033411_0
cuDNN
https://developer.nvidia.com/rdp/cudnn-archiveにアクセスし、「cuDNN v8.5.0 (August 8th, 2022), for CUDA 11.x」をダウンロードし以下のコマンド実行
tar Jxfv cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
pytorch
バージョン選定、インストールに一番苦労した。試行錯誤した結果、ソースからビルドすることとなった。実際のインストールではやり直しがきくようにvenvを利用した。
pytorchのインストール
$export USE_CUDA=1 USE_CUDNN=1 TORCH_CUDA_ARCH_LIST="3.5" #gt710のcompute capabilityが3.5
git clone https://github.com/pytorch/pytorch.git -b v1.10.0
cd pytorch
python setup.py develop && python -c "import torch"
torchvisionのインストール
git clone --recursive https://github.com/pytorch/vision.git -b v0.11.0
cd vision
python setup.py install
以上でインストール完了。これにjupyterをインストールして環境構築した。
ただ、GPUがかなり貧弱なので(実際、ちょっと負荷の高いモデルのトレーニングをするとメモリ不足のエラー発生)ある程度慣れてきたらGPUのバージョンアップをしようと思う。

コメント