Projektet Bend udvikler et høj-niveau sprog til parallelle beregninger på GPU'er

De første udgaver af projektet Bend er blevet offentliggjort. Dette udvikler et højniveau programmeringssprog til parallelle beregninger, der positioneres som et alternativ til lavniveau sprog som CUDA og Metal, med et udtryksfuldt syntaks og funktioner, der øger udviklingsvenligheden, som man ser det i sprog som Python og Haskell. Koden til projektet er skrevet i Rust og distribueres under Apache 2.0 licensen.

Bend-sprogets funktioner inkluderer hurtig objektfordeling, brug af højere ordens funktioner, closures, continuationer, ubegrænset rekursion, mønstermatching, rekursive matches (fold) og løkker (bend), samt heltal, strenge- og liste-typer. Der understøttes to syntaksvarianter - en i Python-stil og en i Haskell-stil. Programmet kræver ikke angivelse af kontrolannoteringer for parallelisering, eksplicit oprettelse af tråde eller låsning. Parallelisering sker automatisk; for eksempel vil udregningen af udtrykket "((1 + 2) + (3 + 4))" køre operationerne "1 + 2" og "3 + 4" parallelt.

Programmer skrevet i Bend-sproget kan køre på hardware, der understøtter massiv parallelisme, såsom GPU'er, og viser en praktisk lineær stigning i ydeevne afhængigt af antallet af beregningskerner. Koden i Bend-sproget kompileres til lavniveau mellemrepræsentation HVM2 (Higher-order Virtual Machine 2), som derefter kompilere til repræsentation i C og CUDA. I øjeblikket understøtter projektet kun udføring på NVIDIA GPU'er.

Hvad angår ydeevne, blev en testapplikation med implementeringen af bitonisk sortering udført i en enkelt tråd på CPU'en Apple M3 Max på 12,15 sekunder, med 16 tråde på 0,96 sekunder, og ved brug af NVIDIA RTX 4090 GPU med 16k tråde på 0,21 sekunder. 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)) …

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster