HapInS Developers Blog

HapInSが提供するエンジニアリングの情報サイト

ゲーミングPCにLinuxを入れてAI向けPCに大改造した

はじめに

こんにちは、山本です。自社でLLMの調査をするということでNVIDIAGPUが搭載されたPCを購入していただきました。AIに関するプログラムを動かすときはWindowsよりもLinuxを使った方が何かとハマる箇所がなくて楽です。そのため思い切ってゲーミングPCのOSをUbuntu22.04に入れ替えてみました。

PCのスペック

まずはPCのスペックや選定基準をお話します。

GPU

このPCにはGeForce RTX 3060 12 GBが搭載されています。GPUのランクとしては中規模スペックです。このGPUの選定基準は「AIモデルを実行できるか」と「価格」です。AIモデルを動かすときには、GPUのVRAMの大きさが大切です。VRAMが大きいほど、学習速度や推論速度、大きなモデルを動かせます。VRAMはAIの記憶領域のようなものです。

OS

OSはUbuntu 22.04を使っています。AI関連のプログラムは多くがLinuxを前提にしているため、Windowsで実行するとトラブルが発生することがよくあります。そのため、Linuxを選択しました。

インストールしたソフトウェア

インストールしたソフトウェアを紹介します。

SSHサーバ

SSHサーバをインストールすることでSSH接続をできるようにします。

sudo apt update
sudo apt install openssh-server

NVIDIAドライバー

https://qiita.com/y-vectorfield/items/72bfb66d8ec85847fe2f

ubuntu-drivers devicesでドライバの一覧が表示されます。

ubuntu@ubuntu:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:04:00.0 ==
modalias : pci:v000010DEd00002503sv000010DEsd00001522bc03sc00i00
vendor   : NVIDIA Corporation
model    : GA106 [GeForce RTX 3060]
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-515-open - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-525 - distro non-free
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-525-open - distro non-free recommended
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

recommendedとあるnvidia-driver-525-openをインストールをしたところ画面が映らなくなりました。焦りました。

sudo apt install -y nvidia-driver-525-open

画面が映らないのでSSHでパソコンにログインをしてnvidia-driver-515をインストールすると画面が映るようになりました。良かったです。

sudo apt install -y nvidia-driver-515

ドライバーが正常にインストールできたことを確認します。nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.105.01   Driver Version: 515.105.01   CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| 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:04:00.0 Off |                  N/A |
| 44%   23C    P8     4W / 170W |      5MiB / 12288MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
 
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1368      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

CUDA Toolkit

今回のCUDAのバージョンが11.7ですので、それに対応したCUDA Toolkitをインストールします。

https://developer.nvidia.com/cuda-11-7-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local

CUDA Toolkitが正常にインストールできたことを確認します。nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

Docker

AIを動かすときは何かと依存関係が複雑なため、コンテナを利用することが多いです。そのため、Dockerをインストールします。

curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker 

Jupyter Notebook

AIのプログラムではJupyter Notebookを使ってPythonのコードを実行することが多いです。

このコマンドでJupyter Notebookをインストールします。

pip install jupyter

このコマンドでJupyter Notebookを実行します。

jupyter notebook

コマンドに--ip='0.0.0.0'とオプションをつけることで外部からもアクセスが可能になります。

おわりに

以上が、AI向けの開発をするためのPCの環境構築でした。読者の方がゲーミングPCでAIのプログラムをしたい場合は、参考にしてみてください!