2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 22.04 + NVIDIA RTX 5080 でGenesisを実行するまで

Last updated at Posted at 2025-06-19

概要

Genesisは、ロボティクス・Embodied AI・Physical AIアプリケーション向けの超高速物理エンジンです。
ロボットシミュレーションではメジャーなNvidiaのIssac Labの前身であるIssac Gymの10倍以上のパフォーマンスを発揮できるという、にわかに信じがたい処理速度です。
最近では中国製の四足歩行ロボット:Unitree Go2の歩容の強化学習環境としても利用されているようです。

Uniitree Go2を使った歩容の強化学習のため、昨年度末に購入した下記前提条件のマシンでGenesisの環境を構築しサンプルを実行するまでの手順をまとめました。

環境構築にあたり、重要なデータは事前にバックアップしてください

前提条件

  • OS : Ubuntu 22.04 LTS
  • グラフィックス : NVIDIA® GeForce RTX™ 5080 <-2025.06.19時点でほぼ最新のGPUなので、下記の手順内でのドライバやライブラリのバージョン指定が非常に重要です。

以下は今回の環境構築に関係ないですがご参考です。

  • CPU : インテル® Core™ Ultra 9 プロセッサー 285K
  • RAM : 32GB (16GB×2 / デュアルチャネル)
  • ストレージ : 2TB (M.2 SSD NVMe Gen4×4)

バージョン一覧表(2025.06.19時点)

ソフトウェア 必須バージョン RTX 5080対応状況 インストールコマンド
NVIDIA Driver 570.86.16+ ✅ 対応 sudo apt install nvidia-driver-570-open
CUDA 12.8 ✅ 対応 sudo apt install cuda-toolkit-12-8
cuDNN 9.8.0 ✅ 対応 sudo apt install libcudnn9-cuda-12
Python 3.10/3.11推奨 ✅ 対応 sudo apt install python3.11
PyTorch Stable 2.7.1 ❌ sm_120非対応 pip install torch --index-url https://download.pytorch.org/whl/cu128
PyTorch nightly 2.8.0-dev ✅ 対応 pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128

注意事項

  1. RTX 5080は2025.06.19時点では非常に新しいGPUで、安定版ソフトウェアではまだ完全にサポートされていません
  2. nightly版使用によるリスク:開発版のため、予期しない動作やバグが発生する可能性があります
  3. 定期的な更新が必要:ドライバやPyTorchのnightly版は頻繁に更新されるため、定期的なアップデートが推奨されます
  4. 本番環境での使用注意:重要な本番環境での使用前に十分なテストを行ってください

手順1: システムの準備

1.1 システムの更新

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential dkms

1.2 Nouveauドライバの無効化

sudo sh -c "echo 'blacklist nouveau
options nouveau modeset=0' > /etc/modprobe.d/blacklist-nouveau.conf"
sudo update-initramfs -u

1.3 再起動

sudo reboot

手順2: NVIDIA ドライバのインストール

方法A: Ubuntuリポジトリから(推奨)

2A.1 restrictedリポジトリの有効化確認

sudo add-apt-repository universe
sudo apt update

2A.2 利用可能なドライバの確認

ubuntu-drivers devices

2A.3 NVIDIA 570ドライバのインストール

# Open Kernel Modules版(推奨) 私の環境ではこれが有効でした
sudo apt install nvidia-driver-570-open

# または標準版
sudo apt install nvidia-driver-570

方法B: Graphics-driversタのインストール(代替手段)

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-570

2.4 再起動と確認

sudo reboot

再起動後、以下のコマンドでドライバを確認:

nvidia-smi

期待される出力例

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 570.144       Driver Version: 570.144       CUDA Version: 12.8 |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 On  |                  N/A |

2.5 NVIDIA ドライバのトラブルシューティング

2.5.1 "No devices were found" エラー

# ドライバの再インストール
sudo apt purge nvidia*
sudo apt autoremove
sudo apt install nvidia-driver-570-open   # <- nvidia-smiの結果が出力されるドライバに出会うまで、ubuntu-drivers devices の候補の中から根気強く探し続ける
sudo reboot

2.5.2 Open kernel modules必須エラー

RTX 5080では標準のプロプライエタリドライバではなく、Open kernel modulesが必要な場合があります:

sudo apt install nvidia-driver-570-open

手順3: CUDA 12.8のインストール

3.1 CUDAリポジトリの追加

# CUDA 12.8リポジトリキーの追加
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

3.2 パッケージリストの更新

sudo apt update

3.3 CUDA 12.8のインストール

# CUDA 12.8の特定バージョンをインストール
sudo apt install cuda-toolkit-12-8

3.4 環境変数の設定

echo 'export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc

3.5 CUDA動作確認

nvcc --version

期待される出力

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on [date]
Cuda compilation tools, release 12.8, V12.8.xxx

手順4: cuDNNのインストール

4.1 cuDNN 9.8のダウンロード

NVIDIAの公式サイトからcuDNN 9.8.0(CUDA 12.8対応)をダウンロード:

# cuDNN 9.8.0 for CUDA 12.8
wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb

4.2 cuDNNのインストール

sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install libcudnn9-cuda-12
sudo apt install libcudnn9-dev-cuda-12

手順5: Pythonとpipの準備

5.1 Python 3.11のインストール(推奨)

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-pip python3.11-dev python3.11-venv

5.2 仮想環境の作成

python3.11 -m venv .rtx5080-env
source .rtx5080-env/bin/activate
pip install --upgrade pip

手順6: PyTorchのインストール

6.1 PyTorchのインストール

重要:RTX 5080は Blackwellアーキテクチャ(sm_120) を使用するため、2025.06.19現在はPyTorch nightly版が必要です。

# ✅ RTX 5080対応(sm_120サポート)
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

# または特定バージョン(2025.06.19現在)
pip install --pre torch==2.8.0.dev20250605+cu128 torchvision==0.23.0.dev20250605+cu128 torchaudio==2.8.0.dev20250605+cu128 --index-url https://download.pytorch.org/whl/nightly/cu128

6.2 PyTorch動作確認

python -c "
import torch
print(f'PyTorch version: {torch.__version__}')
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA version: {torch.version.cuda}')
print(f'Device count: {torch.cuda.device_count()}')
if torch.cuda.is_available():
    print(f'Current device: {torch.cuda.current_device()}')
    print(f'Device name: {torch.cuda.get_device_name(0)}')
"

期待される出力例

PyTorch version: 2.8.0.dev20250605+cu128
CUDA available: True
CUDA version: 12.8
Device count: 1
Current device: 0
Device name: NVIDIA GeForce RTX 5080

2025.06.19時点ではPyTorch安定版2.7.1にはRTX 5080の互換性問題があります

# ❌ PyTorch公式サイトで紹介されている下記の安定版はsm_120非対応のため、RTX 5080では動作しません
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

エラー例

NVIDIA GeForce RTX 5080 with CUDA capability sm_120 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_61 sm_70 sm_75 sm_80 sm_86 sm_90.

6.3 PyTorchのトラブルシューティング

6.3.1 PyTorchでGPUが認識されない

# CUDAパスの確認
echo $CUDA_HOME
echo $PATH
echo $LD_LIBRARY_PATH

# 環境変数の再設定
export CUDA_HOME=/usr/local/cuda-12.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

6.3.2 nightly版の最新バージョンの確認方法

# 最新のnightly版確認
pip index versions torch --pre --index-url https://download.pytorch.org/whl/nightly/cu128

手順7: Genesisのセットアップ

7.1 システム要件とOpenGL依存関係のインストール

7.1.1 必要なシステムパッケージのインストール

# OpenGLとグラフィック関連ライブラリ
sudo apt update
sudo apt install -y \
    libgl1-mesa-glx \
    libgl1-mesa-dri \
    libegl1-mesa \
    libglib2.0-0 \
    libglfw3 \
    libglfw3-dev \
    freeglut3 \
    freeglut3-dev \
    mesa-utils \
    xvfb

7.1.2 OpenGLバージョンの確認

# OpenGL情報の確認
glxinfo | grep "OpenGL version"

期待される出力例

OpenGL version string: 4.6.0 NVIDIA 570.144

Genesisには OpenGL 4.4以降が必要です。

7.1.3 OpenGLのトラブルシューティング

OpenGL情報の確認の結果、

# OpenGL情報の確認
OpenGL version string: 4.5 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.3

となった場合は、(RTX 5080が認識されているにも関わらず)OpenGLがNVIDIAドライバーではなくMesaを使用しているため、Genesisが正常に動作しません。
解決方法として、NVIDIA OpenGLドライバーを強制使用するよう環境変数を設定します。

7.1.3.1 NVIDIA OpenGLドライバーを強制使用

# NVIDIA OpenGLを強制使用する環境変数を設定
export __GL_SYNC_TO_VBLANK=0
export __GL_THREADED_OPTIMIZATIONS=1
export LIBGL_ALWAYS_INDIRECT=0
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia

# 環境変数を永続化
echo 'export __GL_SYNC_TO_VBLANK=0' >> ~/.bashrc
echo 'export __GL_THREADED_OPTIMIZATIONS=1' >> ~/.bashrc
echo 'export LIBGL_ALWAYS_INDIRECT=0' >> ~/.bashrc
echo 'export __NV_PRIME_RENDER_OFFLOAD=1' >> ~/.bashrc
echo 'export __GLX_VENDOR_LIBRARY_NAME=nvidia' >> ~/.bashrc
source ~/.bashrc

7.1.3.2 NVIDIA Prime設定の確認

# Prime設定確認
sudo prime-select query

# NVIDIAモードに設定(必要に応じて)
sudo prime-select nvidia

# 設定後は再起動が推奨
sudo reboot

7.1.3.3 X11設定の確認

# X11設定でNVIDIAドライバーが使用されているか確認
cat /var/log/Xorg.0.log | grep -i nvidia

# nvidia-settingsでGPU設定確認
nvidia-settings

7.1.3.4 修正後の確認

再起動またはログアウト/ログイン後:

# OpenGLがNVIDIAドライバーを使用しているか確認
glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"

# eglinfo(追加情報)
eglinfo | grep -i nvidia

glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"の期待される出力は以下の通りです

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 5080/PCIe/SSE2
OpenGL version string: 4.6.0 NVIDIA 570.153.02

7.2 Genesisのインストール

7.2.1 仮想環境の再開

source .rtx5080-env/bin/activate

仮想環境が起動すると、(.rtx5080-env)がプロンプトに表示されます。

deactivateを実行すると仮想環境を終了できますが、以降、Genesisを使いたい場合、必ず仮想環境を起動してください。

7.2.2 Genesisのインストール

# Genesis物理エンジンのインストール
pip install genesis-world

# 追加の依存関係(画像処理・可視化用)
pip install opencv-python matplotlib imageio imageio-ffmpeg

7.3 環境変数の設定(必要に応じて)

レンダリング最適化

# NVIDIA GPU環境での最適化
export LIBGL_ALWAYS_INDIRECT=0
export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA

# 環境変数を永続化
echo 'export LIBGL_ALWAYS_INDIRECT=0' >> ~/.bashrc
echo 'export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA' >> ~/.bashrc
source ~/.bashrc

7.4 サンプルコードによる基本動作確認

7.4.1 基本サンプルコード作成・実行

# サンプルコード用ディレクトリ作成
mkdir ~/genesis_test
cd genesis_test

次のコードを hello_genesis.py として作成:

hello_genesis.py
import genesis as gs

# Genesis初期化(GPU使用)
print("Initializing Genesis...")
gs.init(backend=gs.gpu)  # RTX 5080の場合はGPUを使用

# シーンの作成
print("Creating scene...")
scene = gs.Scene(
    sim_options=gs.options.SimOptions(
        dt=0.01,
        gravity=(0, 0, -9.81),
    ),
    show_viewer=True,  # ビューワー表示
    viewer_options=gs.options.ViewerOptions(
        camera_pos=(3.5, 0.0, 2.5),
        camera_lookat=(0.0, 0.0, 0.5),
        camera_fov=40,
    ),
)

# 物体の追加
print("Adding objects...")
plane = scene.add_entity(gs.morphs.Plane())
box = scene.add_entity(
    gs.morphs.Box(
        pos=(0, 0, 2.0),
        size=(0.2, 0.2, 0.2),
    )
)

# シーンの構築
print("Building scene...")
scene.build()

print("Starting simulation...")
print("RTX 5080 GPU Performance Test - Simulating falling box")

# シミュレーション実行
for i in range(1000):
    scene.step()
    if i % 100 == 0:
        print(f"Step {i}/1000")

print("Simulation completed!")

hello_genesis.pyの実行:

cd genesis_test
python hello_genesis.py

期待される動作

  1. ウィンドウが開く
  2. 床の上に箱が落下するシミュレーション
  3. リアルタイムでの物理演算表示
  4. RTX 5080での超高速処理

7.4.2 ロボットアームサンプル

より高度なサンプルとして、Frankaロボットアームのシミュレーション:

robot_arm_test.py
import genesis as gs

# Genesis初期化
gs.init(backend=gs.gpu)

# シーン作成
scene = gs.Scene(
    sim_options=gs.options.SimOptions(
        dt=0.01,
        gravity=(0, 0, -9.81),
    ),
    show_viewer=True,
)

# 床とロボットアームの追加
plane = scene.add_entity(gs.morphs.Plane())
franka = scene.add_entity(
    gs.morphs.MJCF(file='xml/franka_emika_panda/panda.xml'),
)

# シーン構築
scene.build()

print("RTX 5080 Robot Arm Simulation - Press Ctrl+C to stop")

# 重力による自由落下シミュレーション
try:
    for i in range(5000):
        scene.step()
        if i % 500 == 0:
            print(f"Simulated {i} steps")
except KeyboardInterrupt:
    print("Simulation stopped by user")

7.4.3 液体・弾性体・砂のシミュレーション

material_simulation.py
# 異なるMPM材料タイプの比較
import genesis as gs

gs.init(backend=gs.gpu)

# MPMソルバーの設定を含むシーンを作成
scene = gs.Scene(
    sim_options=gs.options.SimOptions(
        dt=4e-3,
        substeps=10,
    ),
    mpm_options=gs.options.MPMOptions(
        lower_bound=(-2.0, -1.0, 0.0),
        upper_bound=(2.0, 1.0, 2.0),
        particle_size=0.02,
    ),
    vis_options=gs.options.VisOptions(
        visualize_mpm_boundary=True,
    ),
    show_viewer=True
)

# 床となる平面を追加
plane = scene.add_entity(
    morph=gs.morphs.Plane(),
)

# 1. 液体(Liquid)
liquid = scene.add_entity(
    material=gs.materials.MPM.Liquid(),
    morph=gs.morphs.Box(
        pos=(-1.2, 0, 1.0),
        size=(0.3, 0.3, 0.3),
    ),
    surface=gs.surfaces.Default(
        color=(0.4, 0.8, 1.0),
        vis_mode='particle',
    ),
)

# 2. 弾性体(Elastic)
elastic = scene.add_entity(
    material=gs.materials.MPM.Elastic(),
    morph=gs.morphs.Box(
        pos=(0.0, 0, 1.0),
        size=(0.3, 0.3, 0.3),
    ),
    surface=gs.surfaces.Default(
        color=(1.0, 0.4, 0.4),
        vis_mode='particle',
    ),
)

# 3. 砂(Sand)
sand = scene.add_entity(
    material=gs.materials.MPM.Sand(),
    morph=gs.morphs.Box(
        pos=(1.2, 0, 1.0),
        size=(0.3, 0.3, 0.3),
    ),
    surface=gs.surfaces.Default(
        color=(0.8, 0.6, 0.2),
        vis_mode='particle',
    ),
)

print("左から右へ:")
print("青: 液体(Liquid)- 流体として振る舞う")
print("赤: 弾性体(Elastic)- 変形するが元の形に戻ろうとする") 
print("黄: 砂(Sand)- 顆粒材料として振る舞う")

scene.build()
for i in range(3000):
    scene.step()

7.4.4 異なる表示モードで水の動きを比較

splashsurfを利用してサーフェス再構築を行い、よりリアルな水の動きを再現しますが、2025.06.19時点ではsplashsurfはCPUを使った処理でGPUを使用しないため、fpsが低下します。

事前にRustをインストールしビルドシステム兼パッケージマネージャのcargoをセットアップしたうえで、splashsurfのインストールが必要です。

# アーキテクチャを確認
uname -m

# x86_64の場合
wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init -O /tmp/rustup-init

# 実行権限を付与して実行
chmod +x /tmp/rustup-init
/tmp/rustup-init

# Rust環境を読み込み
source ~/.cargo/env

# バージョンを再確認
rustc --version
cargo --version

# splashsurfをインストール
cargo install splashsurf
water_sim.py
# 水の異なる表示モード比較
import genesis as gs

gs.init(backend=gs.gpu)

# MPMソルバーの設定を含むシーンを作成
scene = gs.Scene(
    sim_options=gs.options.SimOptions(
        dt=4e-3,
        substeps=10,
    ),
    mpm_options=gs.options.MPMOptions(
        lower_bound=(-2.0, -1.0, 0.0),
        upper_bound=(2.0, 1.0, 2.0),
        particle_size=0.02,
    ),
    vis_options=gs.options.VisOptions(
        visualize_mpm_boundary=True,
    ),
    show_viewer=True
)

# 床となる平面を追加
plane = scene.add_entity(
    morph=gs.morphs.Plane(),
)

# 1. 粒子表示モード(particle)
water_particle = scene.add_entity(
    material=gs.materials.MPM.Liquid(),
    morph=gs.morphs.Box(
        pos=(-0.8, 0, 1.0),
        size=(0.3, 0.3, 0.3),
    ),
    surface=gs.surfaces.Default(
        color=(0.4, 0.8, 1.0),
        vis_mode='particle',
    ),
)

# 2. 再構成表示モード(recon)- より滑らかな表面
water_recon = scene.add_entity(
    material=gs.materials.MPM.Liquid(),
    morph=gs.morphs.Box(
        pos=(0.8, 0, 1.0),
        size=(0.3, 0.3, 0.3),
    ),
    surface=gs.surfaces.Default(
        color=(0.2, 0.6, 0.9),
        vis_mode='recon',
    ),
)

print("左側: 粒子表示モード(particle)")
print("右側: 再構成表示モード(recon)")
print("reconモードでは、より滑らかで連続的な液体表面が表示されます")

scene.build()
for i in range(2000):
    scene.step()

7.4.5 FPS測定サンプル(パフォーマンス確認)

performance.py
import genesis as gs
import time

gs.init(backend=gs.gpu)

scene = gs.Scene(show_viewer=False)  # ビューワー無しで最大性能測定
plane = scene.add_entity(gs.morphs.Plane())
box = scene.add_entity(gs.morphs.Box(pos=(0, 0, 1.0)))

scene.build()

print("RTX 5080 Performance Benchmark")
print("Simulating 10000 steps...")

start_time = time.time()
steps = 10000

for i in range(steps):
    scene.step()

end_time = time.time()
total_time = end_time - start_time
fps = steps / total_time

print(f"Completed {steps} steps in {total_time:.2f} seconds")
print(f"Performance: {fps:.0f} FPS")
print(f"Speed multiplier: {fps:.0f}x real-time (assuming 60 FPS)")

期待される性能:正しくセットアップできていれば、RTX 5080では数百万〜数千万FPS出ます。すごい!😲

7.4.6 Genesisのバージョンと機能確認

genesis.ver.py
import genesis as gs

# バージョン確認
print(f"Genesis version: {gs.__version__}")

# 利用可能なバックエンド確認
print("Available backends:")
print(f"CPU: {gs.cpu}")
print(f"GPU: {gs.gpu}")

# RTX 5080の情報表示
gs.init(backend=gs.gpu)
print("Genesis initialized successfully with RTX 5080!")

7.5 Genesisのトラブルシューティング

7.5.1 OpenGLエラー

# エラー例
# OpenGL.error.GLError: GLError(err = 1282, description = b'invalid operation')

# 解決策:OpenGLドライバの確認
nvidia-smi
glxinfo | grep "OpenGL"

# ドライバ再インストール
sudo apt install --reinstall nvidia-driver-570-open

7.5.2 ビューワーが表示されない(headless環境)

# ビューワー無しモード
scene = gs.Scene(show_viewer=False)

# 画像として保存
import cv2
rgb_array = scene.render(camera=scene.main_camera)
cv2.imwrite('simulation_frame.png', rgb_array)

7.5.3 Taichi/GLFW競合エラー

# 依存関係の再インストール
pip uninstall taichi genesis-world
pip install genesis-world

手順8: TechShareで紹介されているGenesis-Embodied-AI/Genesis.gitの環境構築手順(2025.06.19時点の手順)

Genesisのサンプルとしても用意されているUnitree Go2の日本代理店でもあるTechShareで【深層強化学習】Genesisのインストール手順として紹介されていますが、この記事は2025.01.31時点の内容です。
アップデートにより2025.06.19時点ではそのままではエラーになる箇所があるので、以下で修正版の手順を紹介します。

7.2.1 仮想環境の再開までは共通です。以降の手順は下記に沿ってください。

8.1 Genesisをクローンする

まず、Genesis-GitHubをクローンします。

git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis

8.2 Genesis-worldをインストール

pip install genesis-world

8.3 Genesisでpip install -e .を実行

pip install -e .

8.4 RSL RL ライブラリのインストール(重要!)

⚠️ 元の手順では古いバージョンを使用していますが、最新のGenesisでは以下が必要です。

# 新しい方法(推奨):
pip install tensorboard rsl-rl-lib==2.2.4

# 以下はTechShareのサイトで紹介されている古い方法なので、使用しないでください:
# git clone https://github.com/leggedrobotics/rsl_rl
# cd rsl_rl
# git checkout v1.0.2
# pip install -e .

8.5 RTX 5080/5090用の事前対策

新しいGPUでは、Taichiキャッシュが問題を起こす可能性があります。事前にクリアしておきます。

# Taichiキャッシュをクリア
rm -rf ~/.taichi/
rm -rf ~/.cache/taichi/

8.6 サンプルコードの実行

8.6.1 基本的な学習の実行

source .rtx5080-env/bin/activate  # 仮想環境を起動
cd Genesis  # Genesisのルートディレクトリに移動

# RTX 5080/5090の場合、まずは小さなバッチサイズから開始
python examples/locomotion/go2_train.py -B 1024 --max_iterations 100

# 他のGPUの場合
python examples/locomotion/go2_train.py -B 4096 --max_iterations 100

8.6.2 TensorBoardで学習状況を確認

別のターミナルを開いて実行:

cd Genesis
source .rtx5080-env/bin/activate

# TensorBoardを起動
python -m tensorboard.main --logdir logs --port 6006

ブラウザで http://localhost:6006 にアクセスして学習状況を確認できます。

8.6.3 訓練したモデルの確認

学習完了後、訓練したモデルでGo2の歩容を確認します。

python examples/locomotion/go2_eval.py

8.7 Genesis-Embodied-AI/Genesis.gitのトラブルシューティング

8.7.1 ImportError: Please uninstall 'rsl_rl' and install 'rsl-rl-lib==2.2.4'.

解決方法:

pip uninstall rsl_rl
pip install rsl-rl-lib==2.2.4

8.7.2 RuntimeError: normal expects all elements of std >= 0.0

原因: 学習パラメータが不安定
解決方法: go2_train.pyの学習設定を調整

# go2_train.py内の以下の値を変更:
"learning_rate": 0.0003,  # 元の0.001から変更
"init_noise_std": 0.1,    # 元の1.0から変更

8.7.3 CUDA Error CUDA_ERROR_ILLEGAL_ADDRESS (RTX 5080/5090)

原因: RTX 5000シリーズでのTaichiキャッシュ問題
解決方法:

# Taichiキャッシュをクリア
rm -rf ~/.taichi/
rm -rf ~/.cache/taichi/

# 再実行
python examples/locomotion/go2_train.py -B 1024

8.7.4 PyTorch CUDA capability sm_120 is not compatible

原因: RTX 5080/5090でPyTorchの互換性問題。6.1 PyTorchのインストールを参照

解決方法:

# 古いPyTorchをアンインストール
pip uninstall torch torchvision torchaudio

# RTX 5080対応(sm_120サポート)のPyTorch nightly	2.8.0-devをインストール
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

# もしくは下記バージョンをインストール
pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

8.7.5 tensorboard: command not found

解決方法:

# 以下のコマンドで実行
python -m tensorboard.main --logdir logs

8.7.6 メモリ不足エラー

解決方法: バッチサイズを減らす

# バッチサイズを段階的に減らして試す
python examples/locomotion/go2_train.py -B 512
python examples/locomotion/go2_train.py -B 256
python examples/locomotion/go2_train.py -B 64

8.7.7 Go2が動かない・不安定

解決方法: より保守的な学習設定を使用

# 小さなバッチサイズと短い学習時間で確認
python examples/locomotion/go2_train.py -B 512 --max_iterations 50

8.8 推奨される実行手順

8.8.1 RTX 5080/5090の場合

事前準備

rm -rf ~/.taichi/ ~/.cache/taichi/
source .rtx5080-env/bin/activate

小さなバッチサイズで動作確認

python examples/locomotion/go2_train.py -B 512 --max_iterations 10

正常動作を確認後、本格的な学習

python examples/locomotion/go2_train.py -B 2048 --max_iterations 500

8.8.2 その他のGPUの場合

source .[仮想環境名]/bin/activate
python examples/locomotion/go2_train.py -B 4096 --max_iterations 500

参考情報

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?