Volatile Loads/Stores
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
Línea de trabajo
Comienza con la llamada a intrinsics::volatile_store indicada en core/src/ptr/mod.rs y sigue cómo Rust-GPU traduce las cargas y almacenamientos volátiles a SPIR-V. Compara ese recorrido con los SPIR-V Memory Operands mencionados en el issue; se considera terminado cuando las operaciones volátiles solicitadas son compatibles sin el error indicado MemFlags(VOLATILE).
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm trying to use volatile loads and stores like so:
#[inline(always)]
pub fn get_item(&self, offset: u32) -> T {
unsafe {
let ptr = self
.items
.get_unchecked(((self.start_ticket + offset) % self.max_capacity) as usize);
core::ptr::read_volatile(ptr)
}
}
#[inline(always)]
pub fn set_item(&mut self, offset: u32, item: T) {
unsafe {
let ptr = self
.items
.get_unchecked_mut(((self.start_ticket + offset) % self.max_capacity) as usize);
core::ptr::write_volatile(ptr, item);
}
}
But when compiling I get an error saying this is not supported yet.
error: store_with_flags is not supported yet: MemFlags(VOLATILE)
--> /home/peyton/.rustup/toolchains/nightly-2025-06-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:2180:9
|
2180 | intrinsics::volatile_store(dst, src);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It would be very useful to be able to specify this in loads. It seems like its possible in SPIRV using Memory Operands is there any way to do this currently?
System Info
- SPIR-V: SPIRV-Tools v2025.4 v2025.4-0-g7f2d9ee9
Targets:
SPIR-V 1.0
SPIR-V 1.1
SPIR-V 1.2
SPIR-V 1.3
SPIR-V 1.4
SPIR-V 1.5
SPIR-V 1.6
SPIR-V 1.2 (under OpenCL 2.2 Full Profile semantics)
SPIR-V 1.0 (under Vulkan 1.0 semantics)
SPIR-V 1.3 (under Vulkan 1.1 semantics)
SPIR-V 1.4 (under Vulkan 1.1 semantics)
SPIR-V 1.5 (under Vulkan 1.2 semantics)
SPIR-V 1.6 (under Vulkan 1.3 semantics) SPIR-V 1.6 (under Vulkan 1.4 semantics)
- Lenguaje dominante
- Rust
- Estrellas
- 3.4k
- Forks
- 126
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Rust-GPU/rust-gpu
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
glam v0.33.6 breaks `Vec3A` Abiertobug
-
enhancement
Rust-GPU/rust-gpu#643 · 3 comentarios · 1 reacción · 1 asignado ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Todos los issues de Rust-GPU/rust-gpu
Issues similares
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
n0-computer/iroh#4550 ·
-
impl detach for native Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
paritytech/zombienet-sdk#591 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
farion1231/cc-switch#7638 · 1 comentario ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100