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

Programação em GPU

Sintaxe de kernel, o efeito `GPU` e o que funciona hoje.

Programação em GPU

Sounio busca tornar computação em GPU uma parte de primeira classe da linguagem, não um detalhe.

Na superfície, isso aparece como:

  • kernel fn ... para kernels de GPU
  • with GPU para funções host que fazem operações de GPU (launch, memória de device, sync, …)

O que Funciona Hoje (Realidade do Compilador)

O compilador aceita a sintaxe kernel fn e faz type-check de kernels como funções.

Por exemplo, isto é válido e deve passar no 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.")
}

Especificação vs Implementação

O modelo completo de programação em GPU em Sounio inclui:

  • APIs de lançamento de kernel
  • alocação e transferências de memória de device
  • intrinsics de GPU como IDs de thread/bloco e sincronização

Alguns desses pontos dependem de features e podem exigir toolchains externos (CUDA, Metal, SPIR-V) para executar kernels em hardware real.

Quando estiver em dúvida:

  • leia os módulos de GPU da stdlib em stdlib/gpu/
  • consulte spec/LANGUAGE_SPECIFICATION.md (seção de GPU)
  • prefira fixtures e testes do compilador como fonte de “o que compila hoje”