Projekt Bend rozvíjí vysoce úrovňový jazyk pro paralelní výpočty na GPU

Byly zveřejněny první verze projektu Bend, který vyvíjí vysoce úrovňový programovací jazyk pro paralelní výpočty. Ten se prezentuje jako alternativa k nízkoúrovňovým jazykům, jako jsou CUDA a Metal, a nabízí expresivní syntaxi a možnosti zvyšující pohodlí vývoje, typické pro jazyky jako Python a Haskell. Kód projektu je napsán v jazyce Rust a distribuuje se pod licencí Apache 2.0.

Mezi možnosti jazyka Bend patří rychlé rozdělení objektů, použití funkcí vyššího řádu, uzávěrů, pokračování, neomezené rekurze, vzorové shody, rekurzivní shody (fold) a cykly (bend), celá čísla, řetězce a seznamové typy. Podporují se dva varianty syntaxe — ve stylu Python a ve stylu Haskell. V programech není vyžadováno uvádění řídících anotací pro paralelizaci, explicitní vytváření vláken a nastavování zámků. Paralelizace se provádí automaticky, například při výpočtu výrazu „((1 + 2) + (3 + 4))“ budou operace „1 + 2“ a „3 + 4“ provedeny paralelně.

Programy napsané v jazyce Bend mohou běžet na hardwaru, který poskytuje masový paralelismus, například na GPU, přičemž vykazují prakticky lineární nárůst výkonu v závislosti na počtu výpočetních jader. Kód v jazyce Bend je kompilován do nízkoúrovňového mezilehlého kódu HVM2 (Higher-order Virtual Machine 2), který je pak kompilován do podoby pro C a CUDA. V současné době projekt podporuje pouze běh na GPU NVIDIA.

Pokud jde o výkon, testovací aplikace s implementací bitonní třídění byla na jednom vlákně CPU Apple M3 Max provedena za 12,15 sekundy, při využití 16 vláken za 0,96 sekundy a při zapojení GPU NVIDIA RTX 4090 se 16k vlákny za 0,21 sekundy.def sort(d, s, tree): switch d: case 0: return tree case _: (x,y) = tree lft = sort(d-1, 0, x) rgt = sort(d-1, 1, y) return rots(d, s, lft, rgt)def rots(d, s, tree): switch d: case 0: return tree case _: (x,y) = tree return down(d, s, warp(d-1, s, x, y)) …

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster