Programación en GPU
Sintaxis de kernel, el efecto `GPU` y lo que funciona hoy.
Programación en GPU
Sounio busca que el cómputo en GPU sea una parte de primera clase del lenguaje, no un detalle.
En la superficie, esto aparece como:
kernel fn ...para kernels de GPUwith GPUpara funciones host que realizan operaciones de GPU (launch, memoria de device, sync, …)
Lo que Funciona Hoy (Realidad del Compilador)
El compilador acepta la sintaxis kernel fn y hace type-check de kernels como funciones.
Por ejemplo, esto es válido y debería pasar el type-check:
kernel fn noop(a: &[i32]) {
// A minimal kernel (no GPU intrinsics used).
}
fn main() with IO {
println("GPU docs: kernel syntax parses and type-checks.")
}
Especificación vs Implementación
El modelo completo de programación en GPU en Sounio incluye:
- APIs de lanzamiento de kernel
- asignación y transferencias de memoria de device
- intrinsics de GPU como IDs de hilo/bloque y sincronización
Algunos de estos puntos dependen de features y pueden requerir toolchains externos (CUDA, Metal, SPIR-V) para ejecutar kernels en hardware real.
Cuando tengas dudas:
- lee los módulos GPU de la stdlib en
stdlib/gpu/ - consulta
spec/LANGUAGE_SPECIFICATION.md(sección de GPU) - prefiere los fixtures y tests del compilador como fuente de “qué compila hoy”