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 GPUwith GPUpara 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”