Microsoft Shader Model 6.10 および AgilitySDK 720 プレビュー版における、ニューラルレンダリングのための新しい DX12 機能

Microsoft Shader Model 6.10 および AgilitySDK 720 プレビュー版における、ニューラルレンダリングのための新しい DX12 機能

マイクロソフトは、開発者向けの新機能によってDX12 APIの機能を大幅に拡張したShader Model 6.10とAgilitySDK 1.720のプレビュー版リリースを発表しました。

Shader Model 6.10およびAgilitySDK 1.720の機能強化

今回の最新版は、AgilitySDK バージョン 1.619 に含まれていた Shader Model 6.9 および DXR 1.2 の強化を基盤としています。AgilitySDK 1.720 プレビューでは、DX12 API を強化するためのいくつかの新機能が紹介されており、詳細は以下のとおりです。

  • シェーダーモデル6.10(DXC 1.10.2605.2経由):
    • 線形代数API(linalg::Matrix)
    • グループ波指数
    • 変数グループ共有メモリ
    • レイトレーシングの内部関数:
      • 三角形オブジェクトの位置
      • クラスターID

線形代数API(linalg::Matrix)の紹介

Shader Model 6.10では、LinAlgの傘下に包括的な行列APIスイートが導入されました。この統合により、開発者はシェーダースレッドから直接ニューラルレンダリング技術を効率的に実装できるようになり、リアルタイムグラフィックスパイプラインのパフォーマンスが向上します。さらに、機械学習や画像処理アプリケーション向けの高帯域幅行列乗算(MMA)演算も、すべて単一のAPIフレームワーク内でサポートされます。

リアルタイムレンダリングのためのニューラルモデル

グループ波インデックス:シェーダー性能の向上

シェーダーモデル6.10に、新しい組み込み関数GetGroupWaveIndex()とGetGroupWaveCount()が追加されました。これにより、コンピュート、メッシュ、増幅、ノードなど、さまざまな種類のシェーダーがスレッドグループ内のウェーブレベルの構造を把握できるようになります。GetGroupWaveIndex()は現在のウェーブのインデックスを提供し、GetGroupWaveCount()はグループ内で実行中のウェーブの総数を表示します。この機能により、WaveGetLaneCount()を使用してSV_GroupIndexを割るという古い方法など、ハードウェアの信頼性に欠ける信頼性の低い回避策を用いることなく、ウェーブ間の作業の専門化と連携が促進されます。

可変グループ共有メモリ:新たな可能性

Shader Model 6.10 のもう一つの大きなアップグレードは、グループ共有メモリの従来の 32 KB (メッシュシェーダーの場合は 28 KB) 制限が撤廃されたことです。新しいランタイムクエリ MaxGroupSharedMemoryPerGroup を通じて実際のハードウェア制限を公開することで、シェーダー作成者はカスタム属性を使用してシェーダーに必要なメモリサイズを指定できるようになりました。この変更により、既存のコードが従来の制限との互換性を維持しながら、最新の GPU 機能を利用できるようになります。結果として、開発者は、以前の仕様に制約されることなく、大規模タイルカリングや複雑な行列ワークロードなどの高度なアルゴリズムを実装できるようになります。

D3D12の機能を探る

バッチ処理による非同期コマンドリストAPI

D3D12 バッチ コマンドの導入により、以前のコマンド ( CopyBufferRegionClearUnorderedAccessViewFloat/Uint、 など) が抱えていたResolveSubresource、順序通りに実行されるという固有のシリアル化の問題が解消されました。この制限により GPU が停止し、独立した操作が遅延していました。新しいバッチ非同期コマンド機能により、開発者は暗黙的なシリアル化を排除する高度なコマンド リスト メソッドを利用できるようになり、ハードウェアが独立したタスクをオーバーラップできるようになります。開発者は、必要な場合にのみ拡張バリアを使用して明示的に同期できるようになり、同時実行ワークロードの効率が向上します。

NVIDIA、AMD、Intelをはじめとする主要なハードウェアメーカーはすべて、これらのプレビュー版をサポートしています。

ハードウェアベンダー ドライバーリンク
AMD AMDソフトウェア:AgilitySDK開発者プレビュー版 25.30.41.02
インテル Intel Arc Graphics – Windows
NVIDIA 開発中のドライバーへのアクセスについては、開発者担当者にお問い合わせください。

ハードウェアサポートに関して言えば、NVIDIAはRTX GPUの全ラインナップで幅広い機能をカバーしているのに対し、AMDとIntelはArc BシリーズやRDNA 4(Radeon RX 9000)などの最新製品に特定の機能のみを限定している。具体的には、Group Wave IndexはAMDのRX 7000およびRX 9000 GPUでサポートされているが、NVIDIAは今後のリリースで実装する予定だ。Intelの今後のアップデートでは、新しい線形代数APIのサポートも含まれる予定である。

AMD インテル NVIDIA
linAlg::Matrix AMD Radeon RX 9000シリーズ製品に対応しています。 近日リリース予定。 すべてのRTXハードウェアに対応しています。
グループ波指数 AMD Radeon RX 7000および9000シリーズ製品に対応しています。 Intel Arc Bシリーズグラフィックスに対応しています。 近日リリース予定。
変数グループ共有メモリ 現在はデフォルトのメモリ制限をサポートしていますが、今後のドライバリリースではより高い制限が提供される予定です。 Intel Arc Bシリーズグラフィックスに対応しています。 すべてのRTXハードウェアでサポートされていますが、値はデバイスによって異なります。
レイトレーシング組み込み関数: TriangleObjectPositions/ClusterID AMD Radeon RX 7000および9000シリーズ製品に対応しています。 Intel Arc Bシリーズグラフィックスに対応しています。 すべてのRTXハードウェアに対応しています。
バッチ処理による非同期コマンドリストAPI AMD Radeon RX 7000および9000シリーズ製品に対応しています。 Intel Arc Bシリーズグラフィックスに対応しています。 すべてのRTXハードウェアに対応しています。

この発表に関する追加情報や画像については、元の情報源(出典と画像)をご覧ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です