Localized V2 rewrite for this language is in progress. Showing English-first content for now.

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 GPU
  • with GPU para 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”