Rust-GPU / Rust-GPU/rust-gpu

[Migrated] How to get spir-v with OpCapability Kernel?

オープン
#74 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Rust
スター
3.4k
フォーク
126
PR マージ指標
30日以内にマージされた PR はありません

説明

Issue automatically imported from old repo: https://github.com/EmbarkStudios/rust-gpu/issues/1094

Originally creatd by jczaja on 2023-09-22T07:57:23Z


Hi,

I have a dummy compute kernel:

#[spirv(compute(threads(768)))]
pub fn main_cs(
    #[spirv(global_invocation_id)] id: UVec3,
    #[spirv(storage_buffer, descriptor_set = 0, binding = 0)] prime_indices: &mut [u32],
) {
    let index = id.x as usize;
    prime_indices[index] = collatz(prime_indices[index]).1u32;
}

I can run it using Vulkano abd it works, but I wanted to run this spir-v kernel using Intel Level Zero and this did not work. Problem is that Intel Level zero is OpenCL like API and it require that SPIR-V is :

OpCapability Kernel
OpMemoryModel Physical64 OpenCL
..

while my dummy compute kernel as SPIR-V contains:

OpCapability Shader 
OpMemoryModel Logical Simple 
...

How can I compiler my rust compute shader so it is of SPIR-V form OpCapability Kernel ?

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

この issue では、ダミーの Rust コンピュートカーネル、Vulkano、Intel Level Zero、および必要な SPIR-V capabilities とメモリモデルが挙げられていますが、リポジトリのファイルやテストは示されていません。まず、rust-gpu がコンピュートシェーダー用の SPIR-V をどのように生成するかを追跡し、その出力を Level Zero の検証ルールと比較してください。完了条件は、必要な形式に対応するサポート済みの経路を特定するか、制限を明確に文書化することです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
compilers, computer-graphics
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。