【完全版】Ubuntu24.04 開発環境セットアップ  ソフトウェア編

# 想定読者
- コマンドプロンプトの立ち上げ・操作ができる


# セットアップ内容
- GPUのセットアップ
- 仮想化環境のセットアップ

# セットアップを始める前に
パッケージの更新を行ってください
予期せぬエラーが発生する場合ｇあります
```
sudo apt update
sudo apt upgrade
```

# GPUのセットアップ
## Nvidiaドライバーのインストール
使用するGPUによって利用できるドライバーに制限があります
### 1.使用しているGPUを確認
```
lspci | grep -i nvidia
```

### 2. [公式サイト](https://www.nvidia.com/ja-jp/drivers/)にアクセスしてGPUに合ったNvidiaドライバーのバージョンを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/b04d3be8-0072-13a3-b39e-8ac85ce0dce7.png)
ドライバーのバージョンを確認します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/406a957a-5456-482b-2d25-4c3b66fb3e91.png)

### 3. ドライバーをインストール
20~30分くらい
```
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
```
```
nvidia_driver_v=ドライバーのバージョン
sudo apt install nvidia-driver-$nvidia_driver_v
```

```
sudo shutdown -r now
```

### 4. ドライバーを確認
```
nvidia-smi
```

## Cudaツールキットのインストール
### 1. GPUに合ったCUDA-SDKのバージョンを[Wiki](https://en.wikipedia.org/wiki/CUDA#GPUs_supported)で確認
#### 1.1. GPUの名前から、Micro-architectureのバージョンを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/925af7f7-cd5d-8139-10ff-0e6a5cf6f27e.png)
#### 1.2. Micro-architectureのバージョンから利用可能なCUDA-SDKのバージョンを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/8de90c81-7193-b5d3-5802-a0c3ed17bd61.png)

### 2. Cudaツールキットを[公式サイト](https://developer.nvidia.com/cuda-toolkit)からダウンロード・インストール
15分くらい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/81ff0a61-f771-15b9-15ca-01537fe0fe69.png)

ダウンロード・インストール用のスクリプトが自動で生成されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/49f30f35-a3c7-9e2d-8a92-9d38cdda8486.png)

### 3. Pathを登録
```
echo 'export PATH="/usr/local/cuda/bin${PATH:+:${PATH}}"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"' >> ~/.bashrc
source ~/.bashrc
```

### 4. CUDAツールキットを確認
```
nvcc -V
```

# 仮想化環境のセットアップ
## Docker, Docker Composeのインストール

### 1. Dockerの[公式サイト](https://docs.docker.com/engine/install/ubuntu/)の案内に従ってDockerEngineをインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/83515e8d-1473-5458-7828-af5f254fb517.png)
### 2. non-root userを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/7f64c874-c153-0149-aaf1-ada45d8e7204.png)
### 3. Dockerがブート時に自動起動するように設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/0cb08ebd-cba8-13a0-10b3-c51f5bbde6fd.png)

### 4. Dockerの[公式サイト](https://docs.docker.com/compose/install/)の案内に従ってDocker composeをインストール
pluginとstandaloneが選べます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/a26e7ffd-a55c-0c0d-0693-78b4451b015d.png)

### 5. Nvidia Container toolkitを [Nvidia公式サイト](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-the-nvidia-container-toolkit)の案内に従ってインストール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412006/38f872d0-e59b-4dbc-e6c9-4e833ef1fea3.png)

## Github用 SSHキーのセットアップ
ed25519で作成します。ビット数は固定長です。
```
cd ~/.ssh
ssh-keygen -t ed25519 -C "your_email@example.com"
```

# まとめ

本記事では、GPUと仮想化環境のセットアップ方法について詳しく説明しました。以下に重要なポイントを振り返ります。

## GPUのセットアップ
1. **Nvidiaドライバーのインストール**  
   使用するGPUに適したドライバーをインストールし、`nvidia-smi`コマンドで正常に動作しているか確認します。

2. **CUDAツールキットのインストール**  
   CUDA-SDKのバージョンを確認し、適切なバージョンのCUDAツールキットをインストール。その後、環境変数を設定し、`nvcc -V`でインストールの確認を行います。

## 仮想化環境のセットアップ
1. **Dockerのインストール**  
   Docker Engineをインストールし、非rootユーザーで使用できるよう設定、Dockerがブート時に自動起動するように設定します。

3. **Nvidia Container Toolkitのインストール**  
   GPUを活用するコンテナ環境を構築するため、Nvidia Container Toolkitをインストールします。


## 最後に
これらのセットアップが正しく行われれば、GPUを活用した仮想化環境での開発が円滑に進められます。
セットアップ時に発生する可能性があるエラーに対処するため、***十分なバックアップと環境の確認***を行ってから作業を進めることをお勧めします。(サーバーは突然壊れます)

不明な点や間違いなどあればご指摘いただけると助かります。


## 参考