Rust-GPU / Rust-GPU/rust-gpu

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

Ouverte
#74 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Rust
Étoiles
3.4k
Forks
126
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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 ?

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

L’issue mentionne un kernel de calcul Rust factice, Vulkano, Intel Level Zero ainsi que les capacités SPIR-V et le modèle mémoire requis, mais aucun fichier ni test du dépôt. Commencez par retracer la manière dont rust-gpu génère du SPIR-V pour les shaders de calcul et comparez cette sortie aux règles de validation de Level Zero. Le travail est terminé lorsqu’un chemin pris en charge vers la forme requise est identifié ou que la limitation est clairement documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
compilers, computer-graphics
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.