原文は重要なハードウェア上の考え方を示しています。ZimaBoardはPCIe経由でディスクリートNVIDIA GPUを物理的に使用でき、著者はコンテナ化されたメディアアクセラレーションでRTX 3050を実証しました。ただし、ソフトウェア手順は2023年のCasaOS/Debian系環境向けであり、現行ZimaOS向けではありません。
次のようなコマンド apt install linux-image-generic, apt install build-essentialNVIDIAの .run インストーラー、および nvidia-container-toolkit APTを使用する手順は、現代のZimaOSにそのまま適用すべきではありません。現行ZimaOSにはすでにNVIDIAのサポート経路が用意されており、GPUアクセスはプラットフォームのコンテナランタイムを通じて設定することが想定されています。
元のチュートリアルはCasaOSとAPTを前提に構成されていました
原文ではLinuxカーネルをアップグレードし、GCC、ビルドツール、ヘッダーをインストールした後、NVIDIA独自インストーラーをダウンロードし、Debianパッケージリポジトリを使用してNVIDIA Container Toolkitをインストールしていました。
この手順は、変更可能なDebian/Ubuntu系ホストを前提としています。現行ZimaOSはBuildrootベースであり、通常のホストパッケージマネージャーとしてAPTを使用しません。
現行ZimaOSには独自のNVIDIA GPUサポート経路があります
IceWhaleの現行ドキュメントではトランスコードとAIワークロードでのNVIDIA GPUの使用方法が示されており、現行の開発者向けドキュメントではDockerサービスが runtime: nvidia および NVIDIA_VISIBLE_DEVICES.
APTでホストパッケージをインストールするのではなく、現行ZimaOSのNVIDIAコンテナランタイムモデルを使用してください。
RTX 30シリーズは現行ZimaOSのNVIDIAサポート方針の対象
IceWhaleの現行AI/GPUドキュメントでは、現在のNVIDIA/CUDA経路でAmpere RTX 30シリーズGPUがサポート対象として記載されています。ただし、個々のカードには十分なPCIe接続、電源、冷却、互換性のあるワークロードが必要です。
メディアコンテナ内でGPUを確認する
ホストレベル nvidia-smi ホストのドライバーがカードを認識していることを示すだけです。Jellyfin/Plexにもコンテナ内でGPUへのアクセス権を与える必要があります。利用可能であれば、アプリケーションのターミナルからテストし、そこでカードが認識されることを確認してください。
GPUが搭載されていても、すべてのコーデック経路が保証されるわけではない
ハードウェアトランスコードは、GPUのNVENC/NVDEC機能、メディアのコーデック/プロファイル、字幕、トーンマッピング、アプリケーション設定に左右されます。ダイレクトプレイ対応クライアントではトランスコードが不要なため、エンコーダーの動作は表示されません。
外部GPU電源は実際に必要なハードウェア要件である
原文ではRTX 3050用に別電源を使用していました。現在の構成では、対象GPUに合わせて電源容量を決定し、カードの負荷を想定していないボード側の経路からコネクター電力を取らないようにしてください。
古いドライバーバージョンを推奨事項として残さない
原文ではNVIDIA 535.98を使用し、その後の返信では550.142とNouveauのブラックリスト登録が提案されていました。これらのバージョンは当時の検証としては妥当でしたが、現在のZimaOS記事に固定的に記載すべきではありません。現在のZimaOSリリースに同梱または公式ドキュメントで案内されているドライバー/ランタイムを使用してください。
原文の「GPUネットワークインターフェース」という主張を一般化しない
原文では、一部のディスクリートGPUにはネットワークインターフェースがあるため、ネットワーク伝送を改善できると示唆していました。しかし、これは一般的なコンシューマー向けRTXカードの通常の特性ではなく、RTX 3050のトランスコード構成とは無関係です。ここでGPUがもたらす持続的なメリットは、コンピューティング、動画コーデック、レンダリング、および関連するアクセラレーションであり、通常のNAS向けイーサネットオフロードではありません。
PCIeリンクは通常、トランスコードにおける最初のボトルネックではない
ZimaBoard/ZimaBladeには、最新のデスクトップ向けx16スロットより帯域幅の低いPCIe拡張スロットが搭載されています。ただし、動画のエンコード/デコードのトラフィックは、ハイエンドのゲーム処理よりはるかに軽量です。Jellyfin/Plexのトランスコードで実際にボトルネックになりやすいのは、GPUのコーデック対応、ドライバーやランタイムへのアクセス、トランスコード設定、CPU側での字幕処理、ストレージやネットワークのスループットです。
物理的に帯域幅の狭いPCIeリンクだからといって、NVENC/NVDECがメディアサーバーに役立たないと判断しないでください。実際のトランスコードを実行し、GPU使用率を確認してください。
GPUコネクターだけでなく、電力予算全体を計画する
元の構成では外部電源ユニットを使用していました。RTX 3050は、ZimaBoardのPCIeスロットが安全に供給できる電力を大幅に上回る電力を必要とする場合があるためです。サーバーにはCPU、SATAディスク、USBデバイス、スピンアップ時の負荷もあります。
カード本体と接続するストレージに合わせて電源ユニット容量を決め、GPUに必要なPCIe電源コネクターを用意してください。過熱や不安定な電圧供給につながる可能性のある即席のアダプターは避けます。起動時に認識されていても、負荷時にGPUが消えるなら電源の問題である可能性があります。
パッシブサーバーボードにディスクリートGPUを追加すると冷却要件が変わる
ZimaBoardとZimaBladeは小型システムです。ディスクリートGPUを追加すると、基板とストレージの隣に高温の排気源が生じます。継続的なトランスコードやAIワークロードでは、GPUと周辺コンポーネントの両方が数時間にわたって発熱する可能性があります。
GPU周辺のエアフローを妨げないようにし、実際の負荷中に温度を監視してください。短時間の nvidia-smi アイドル時の確認では、長時間の熱安定性を検証できません。
現在のGPU対応アプリ定義を優先する
最新のZimaOS App Storeパッケージには、NVIDIAランタイム/デバイス構成を直接含められます。Dockerのグローバルなデフォルトランタイムを手動で変更するより安全です。GPUが必要なアプリだけがアクセスを受け取るためです。
現在のApp StoreバージョンにGPU対応のJellyfin/Plexパッケージがある場合は、まずそれを使用し、YAML/ターミナルを調べてデバイス割り当てを確認してください。2023年当時のシステム全体のランタイム構成を再構築する必要はありません。
ハードウェアトランスコードの全チェーンを検証する
- ホストからNVIDIA GPUが認識されることを確認します。
- メディアコンテナからGPUが認識されることを確認します。
- Jellyfin/Plexで正しいハードウェアアクセラレーションバックエンドを有効にします。
- 実際にトランスコードが必要なメディアを再生します。
- アプリケーションのトランスコード状態/ログを確認します。
- 監視
nvidia-smiGPUのプロセス/使用率を確認するため。
これにより、GPUが正しく取り付けられているのに、すべてのテストクライアントがダイレクト再生になっているためNVIDIAエンコーダーが有効化されないという、よくある誤検知を防げます。
ZimaOSでのRTX 3050に関するFAQ
現在のZimaOSユーザーは、元のaptコマンドを実行すべきですか?
いいえ。これらのコマンドは、以前のCasaOS/Debian環境向けです。
現在のZimaOSのDockerアプリはNVIDIA GPUを使用できますか?
対応するNVIDIAランタイム/デバイス構成があり、コンテナにGPUアクセスが割り当てられている場合は必要です。
RTX 3050には別途電源が必要ですか?
多くのモデルがそうです。PCIeスロットの給電で十分だと決めつけず、GPUのコネクターと電源ユニットの要件を正確に確認してください。
