Vulkan はさまざまなユースケースに対応したアプリケーションの開発に使用できます。Vulkan アプリケーションは以下に紹介する機能を選択して使用できますが、ひとつの API でそれらすべてを使用できるように設計されています。
Note
|
Vulkan はツールの箱であり、ひとつのタスクを行うには複数の方法があるということが重要です。 |
2D および 3D グラフィックスは、Vulkan API のメイン機能です。Vulkan は、ハードウェアアクセラレーションを利用したグラフィカルなアプリケーションを作成できるように設計されています。
Note
|
すべての Vulkan の実装はグラフィックスのサポートが必要ですが、WSI システムは必要ありません。 |
GPGPU と呼ばれる新しいプログラミングスタイルを用いて、GPU の並列性を計算タスクに活用できます。Vulkan は VkQueues
、VkPipelines
などのコンピュート用バリエーションをサポートしており、Vulkan を一般的な計算に使用することができます。
Note
|
すべての Vulkan の実装はコンピュートをサポートする必要があります。 |
レイトレーシングとは光の物理的な振る舞いをシミュレートするというコンセプトに基づいた、ラスタライズとは別のレンダリング技術です。
レイトレーシングのクロスベンダー API サポートは、Vulkan の1.2.162仕様で拡張機能として追加されました。
主な拡張機能は VK_KHR_ray_tracing_pipeline
、VK_KHR_ray_query
、VK_KHR_acceleration_structure
です。
Note
|
レイトレーシングの実装を公開している古い NVIDIA ベンダー拡張機能もあります。この拡張機能はクロスベンダー拡張機能よりも前から存在しました。新規に開発する場合は、新しい KHR 拡張機能を使用することをお勧めします。 |
Vulkan Video拡張機能により、開発者はハードウェアアクセラレーションによるビデオデコード機能をリアルタイムで使用することができます。この機能は、VK_KHR_video_queue、VK_KHR_video_decode_queue、VK_KHR_video_decode_h264、VK_KHR_video_decode_h265 拡張機能を通じて公開されています。
Vulkan Video は Vulkan の理念に基づき、ビデオ処理のスケジューリング、同期、メモリ使用などを、柔軟かつきめ細かくアプリケーションに提供します。
Note
|
動画をエンコードするための暫定仕様へのフィードバックをお待ちしています。 |
現在 Vulkan Working Group は、Vulkan を最新の GPU の機械学習計算機能を提供するためのファーストクラスの API にする方法を検討しています。詳細は Siggraph 2019 で発表されました。
Note
|
現時点では、機械学習用の Vulkan API は公開されていません。 |