自動運転AIチャレンジ2024 環境構築メモ（GPU環境）

# 自動運転AIチャレンジ2024シミュレーション大会の環境構築メモ（GPU環境）

公式の環境構築のページに沿って、特にトラブルなく立ち上がりました。
私は前回大会の環境があるので、DockerやNVIDIAドライバ等のセットアップは完了しており、ワークスペース作成、Dockerイメージのダウンロード、AWSIM(GPU版)のダウンロードだけで動作しました。

以下、公式環境に沿って自分のインストールメモを残しておきます。

https://automotiveaichallenge.github.io/aichallenge-documentation-2024/setup/requirements.html

# PC環境
OS: Ubuntu 22.04 LTS
CPU: 13th Gen Intel(R) Core(TM) i7-13700F (16コア)
GPU: GeForce RTX 3060 12GB
Memory: 32GB
Storage: 1.0TB

過去大会の環境がインストールされているPCに今回大会の環境をインストールしていきます。

- 過去大会のインストールメモ(参考まで)

https://qiita.com/kiwsdiv/items/33b80778f0ddceb6ec44

https://qiita.com/kiwsdiv/items/474c851c1ee0b83b9e29

# ワークスペースのクローン
## 大会用リポジトリのクローン
ワークスペース用のリポジトリをクローンします。
```bash
$ cd ~
$ git clone https://github.com/AutomotiveAIChallenge/aichallenge-2024.git
```

# 仮想環境のインストール
## Docker、rockerのインストール

- [自動運転AIチャレンジ2023インテグレーション大会でインストール済み](https://qiita.com/kiwsdiv/items/33b80778f0ddceb6ec44#docker%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

## Autoware環境のDockerイメージ取得

AIチャレンジで使用するautoware環境のDockerイメージを取得します。
> Dockerイメージは10GB程度のサイズがあり、ダウンロードには時間が掛かるため有線LANでのダウンロードを推奨します。

作業前の状況を確認しておきます。
```bash
$ docker images
REPOSITORY                                                                       TAG                           IMAGE ID       CREATED         SIZE
aichallenge-train                                                                latest                        b057863e4e57   6 months ago    7.43GB
ghcr.io/automotiveaichallenge/aichallenge2023-racing/autoware-universe-no-cuda   latest                        b7fdf9678bc2   7 months ago    7.32GB
aichallenge-eval                                                                 latest                        0487a9798c94   10 months ago   15.4GB
nvidia/cuda                                                                      11.6.2-base-ubuntu20.04       af978b91c939   13 months ago   154MB
ghcr.io/automotiveaichallenge/aichallenge2023-sim/autoware-universe-cuda         v1                            f5f05f758f55   13 months ago   14.9GB
nvidia/opengl                                                                    1.0-glvnd-devel-ubuntu18.04   9d806b36b807   2 years ago     413MB
```

Dockerイメージのダウンロードをしていきます。
```bash
$ docker pull ghcr.io/automotiveaichallenge/autoware-universe:humble-latest
humble-latest: Pulling from automotiveaichallenge/autoware-universe
3c645031de29: Pull complete 
~~~
Digest: sha256:bea365a548dee5d35ee4d2726a5534fb68d661666668bd25e5e80dcb2d4c02bd
Status: Downloaded newer image for ghcr.io/automotiveaichallenge/autoware-universe:humble-latest
ghcr.io/automotiveaichallenge/autoware-universe:humble-latest
```

インストールできたか確認します。追加で以下の表示が出ているので正しくインストールできている模様。
```
$ docker images
TAG                           IMAGE ID       CREATED         SIZE
ghcr.io/automotiveaichallenge/autoware-universe                                  humble-latest                 30c59f3fb415   2 months ago    8.84GB
```

# AWSIMのダウンロード （描画ありGPU版）

NVIDIAドライバ、NVIDIA Container Toolkit、Valkunは過去にインストール済みなので、AWSIMのダウンロードから作業しました。

## NVIDIAドライバのインストール
インストール時のメモは以下。

https://qiita.com/kiwsdiv/items/3e8dac099cb27c7c4b01

```bash
$ nvidia-smi
Mon Jul 15 12:35:59 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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  On |                  N/A |
|  0%   48C    P8    17W / 170W |    176MiB / 12288MiB |     26%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      4756      G   /usr/lib/xorg/Xorg                108MiB |
|    0   N/A  N/A      4899      G   /usr/bin/gnome-shell               26MiB |
|    0   N/A  N/A    167369      G   ...RendererForSitePerProcess       38MiB |
+-----------------------------------------------------------------------------+
```

## NVIDIA Container Toolkit
こちらも過去にインストール済み。
インストール時のメモ。

https://qiita.com/kiwsdiv/items/33b80778f0ddceb6ec44#nvidia-container-toolkit%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

```bash
$ sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
Mon Jul 15 03:37:56 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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  On |                  N/A |
|  0%   48C    P8    15W / 170W |    168MiB / 12288MiB |      4%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+
```

## AWSIMのダウンロード
[Google Drive](https://drive.google.com/drive/folders/1ftIoamNGAet90sXeG48lKa89dkpVy45y) から最新の AWSIM_GPU_**.zip をダウンロードし、aichallenge-2024/aichallenge/simulator に展開します。

## AWSIMの起動確認

```
$ ./docker_build.sh dev
[+] Building 12.6s (11/11) FINISHED                                                 docker:default
~~~
```

```
$ ./docker_run.sh dev gpu
```

コンテナを起動したターミナル(コンテナ内)で以下を実行します。
```
$ cd /aichallenge
$ ./build_autoware.bash
~~~
---
Finished <<< goal_pose_setter [13.7s]
Finished <<< simple_pure_pursuit [15.3s]                       
                      
Summary: 8 packages finished [15.5s]
  1 package had stderr output: goal_pose_setter

```

Autowareのビルド後、2つのファイルを変更します。AISIMのパスをAISIM_GPUに変更、AWSIM_GPUには程展開したディレクトリを指定します。

- run_simulator.bash

```
#!/bin/bash
# AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM
AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM_GPU

# shellcheck disable=SC1091
source /aichallenge/workspace/install/setup.bash
sudo ip link set multicast on lo
$AWSIM_DIRECTORY/AWSIM.x86_64
```
- run_evaluation.bash
```
#!/bin/bash
# AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM
AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM_GPU
```

run_evaluation.bash を実行。
```
/aichallenge$ ./run_evaluation.bash
```

とりあえず1週走りました。

https://x.com/kixxchllng/status/1812736704660607357

# さいごに

間違っている点、不足している点あればご指摘ください。自分用の環境構築のメモですが、何かに役に立てば幸いです。