holoscan-install-source について
`nvidia-holoscan/holoscan-sdk` のソースから Holoscan SDK をビルドし、CMake で使える形でインストールする開発者向けガイドです。公開パッケージではデバッグや独自の CMake 設定に対応できない場合を対象とします。
主な機能
- 01`./run` による Docker 内ビルド
- 02デバッグおよびデバッグシンボル付きビルド
- 03aarch64 クロスコンパイルの選択肢
- 04SDK のサンプルテスト実行
- 05インストール先を CMake 依存として利用
活用シーン
- 01独自の CMake オプションで SDK をビルド
- 02デバッグシンボル付きビルドの準備
- 03ビルド後の C++ と Python サンプルの検証
- 04ローカル SDK を CMake アプリに接続
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill holoscan-install-sourceインストール後、Claude Code で/holoscan-install-sourceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json詳細
Holoscan SDK — ソースからビルド
目的
nvidia-holoscan/holoscan-sdk のソースツリーから ./run スクリプト(Docker コンテナ内でビルドします)を使用して Holoscan SDK をビルドし、CMake の依存関係として利用できるローカルのインストールツリーを作成します。
前提条件
- NVIDIA GPU とドライバーを搭載した Linux ホスト(
nvidia-smi)。 git、NVIDIA Container Toolkit を備えた Docker(docker run --gpus allが動作すること)、およびdocker-buildx-plugin。- ビルドコンテナとビルド/インストールツリー用に約 20 GB の空きディスク容量。
- 初回のクリーンビルドに 10~30 分。
制限事項
- 公開済みパッケージ(Conda/コンテナ/apt/wheel)では対応できない場合(デバッグシンボル、カスタム CMake オプション、サポート対象外の構成)にのみ推奨されます。
- Docker が引き続き必要です。
./runスクリプトはコンテナ内でビルドするため、真のベアメタルビルドではありません。 - aarch64 へのクロスコンパイルには、ホスト上に
qemu-user-staticが必要です。
ステップ 0:公式インストール手順を確認する
ビルドの前に、必ず https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html の「Build from Source」セクションと、選択したタグに対応するリンク先の GitHub README.md/DEVELOP.md を取得してください。対象アーキテクチャと CUDA のメジャーバージョンに必要な ./run フラグ、サポートされているブランチ/タグ、リリースに関して指定されている Dockerfile のパッチ、検証に推奨されるテスト名を確認してください。以下の内容とドキュメントが異なる場合は、ドキュメントを優先してください。
ステップ 1:前提条件
GPU パススルーが有効な状態で git と Docker を利用できることを確認します。
git --version
docker --version
docker run --rm --gpus all ubuntu:22.04 nvidia-smi
- Docker がない場合 → https://docs.docker.com/engine/install/ からインストールします
- GPU パススルーに失敗する場合 → NVIDIA Container Toolkit をインストールします。
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker - Docker buildx がない場合:
sudo apt-get install docker-buildx-plugin
ステップ 2:リポジトリをクローンする
必要に応じて、リポジトリを ~/holoscan/holoscan-sdk にクローンします
mkdir -p ~/holoscan/
git clone https://github.com/nvidia-holoscan/holoscan-sdk.git
cd ~/holoscan/holoscan-sdk
特定のリリースタグをビルドする場合(安定性のため推奨):
git tag | grep -E '^v[0-9]' | sort -V | tail -5 # list recent tags
git checkout v<VERSION> # e.g. v4.1.0
ステップ 3:ビルドする
./run build スクリプトは、コンテナの作成、CMake の設定、コンパイル、インストールを一度に実行します。初回の実行には 10~30 分かかることをユーザーに伝えてください(ベースイメージのダウンロードとコンパイルを行います)。
./run build
一般的なオプション:
| フラグ | 目的 |
|---|---|
--type debug | デバッグビルド(シンボルあり、最適化なし) |
--type RelWithDebInfo | リリースビルド+デバッグシンボル |
--arch aarch64 | ARM64 向けクロスコンパイル(sudo apt install qemu-user-static が必要) |
--gpu igpu | Jetson/IGX 向け iGPU ビルド |
--dryrun | コマンドを実行せずにプレビュー |
オプションの変更後に CMake キャッシュエラーが発生した場合:
./run clear_cache && ./run build
出力は以下のフォルダーに保存され、./run get_build_dir と ./run get_install_dir で取得できます。
- ビルドディレクトリ:
build-cu<N>-<arch>/ - インストールディレクトリ:
install-cu<N>-<arch>/。
ステップ 4:テストを実行する
以下のテストを実行します。
- EXAMPLE_CPP_HELLO_WORLD_TEST
- EXAMPLE_PYTHON_HELLO_WORLD_TEST
- EXAMPLE_CPP_TENSOR_INTEROP_TEST
- EXAMPLE_PYTHON_TENSOR_INTEROP_TEST
- EXAMPLE_CPP_VIDEO_REPLAYER_TEST
- EXAMPLE_PYTHON_VIDEO_REPLAYER_TEST
./run test
必須の 6 つのテストをまとめて実行するには、シングルクォートで囲んだ正規表現を使用します(| がパイプとして扱われないように引用符で囲む必要があります)。
./run test --options "-R 'EXAMPLE_CPP_HELLO_WORLD_TEST|EXAMPLE_PYTHON_HELLO_WORLD_TEST|EXAMPLE_CPP_TENSOR_INTEROP_TEST|EXAMPLE_PYTHON_TENSOR_INTEROP_TEST|EXAMPLE_CPP_VIDEO_REPLAYER_TEST|EXAMPLE_PYTHON_VIDEO_REPLAYER_TEST' --output-on-failure"
名前または正規表現を指定して特定のテストを実行します。
./run test --name <test_name>
./run test --options "-R '<regex>' --output-on-failure"
./run test --verbose
重要: 正規表現に | が含まれる場合は、必ず文字列全体をシングルクォートで囲んでください。囲まないと、bash が | をパイプとして解釈し、command not found エラーが発生します。
期待される結果:すべてのテストが成功します。失敗があれば記録し、続行する前にユーザーへ報告してください。
ステップ 5:アプリケーションからインストールツリーを参照する
ビルド後、アプリケーションはインストールツリーを CMake の依存関係として使用できます。ユーザーに以下のパスを提示してください。
/path/to/holoscan-sdk/install-cu<N>-<arch>/
ユーザーは、自身のアプリケーションをビルドする際に、Holoscan_ROOT または CMAKE_PREFIX_PATH をこのディレクトリに設定できます。
トラブルシューティング
| 症状 | 対処方法 |
|---|---|
テストの実行時に bash: <TEST_NAME>: command not found が表示される | 正規表現に | が含まれています。シングルクォートで囲んでください:--options "-R '<regex>'" |
| オプション変更後に CMake のキャッシュエラーが発生する | ./run clear_cache && ./run build |
| Docker buildx が見つからない | sudo apt-get install docker-buildx-plugin |
| ビルドコンテナ内で GPU が認識されない | NVIDIA Container Toolkit を確認し、sudo nvidia-ctk runtime configure --runtime=docker を再実行してください |
| クロスコンパイル(aarch64)が失敗する | qemu をインストールしてください:sudo apt-get install qemu-user-static |