Projektet Bend utvecklar ett hög nivÄ sprÄk för parallell bearbetning pÄ GPU.

De första utgÄvorna av projektet Bend har publicerats, som utvecklar ett hög-nivÄprogrammeringssprÄk för parallella berÀkningar, som positioneras som ett alternativ till lÄgnivÄsprÄk som CUDA och Metal, med ett uttrycksfullt syntax och möjligheter för utvecklarvÀnlighet som Àr typiska för sprÄk som Python och Haskell. Projektets kod Àr skriven i Rust och distribueras under Apache 2.0-licensen.

Bland funktionerna i sprÄk Bend nÀmns snabb objektallokering, möjlighet till anvÀndning av högre ordningens funktioner, closures, continuations, obegrÀnsad rekursion, mönstermatchning, rekursiv mönstermatchning (fold) och loopar (bend), heltals-, strÀng- och listtyper. TvÄ syntaxvarianter stöds - i stil med Python och i stil med Haskell. I program behöver man inte ange kontrollanvisningar för parallellisering, skapa trÄdar explicit eller sÀtta upp lÄs. Parallelliseringen sker automatiskt, till exempel, nÀr uttrycket "((1 + 2) + (3 + 4))" berÀknas, kommer operationerna "1 + 2" och "3 + 4" att utföras parallellt.

Program skrivna i sprÄk Bend kan köras pÄ hÄrdvara som stödjer massiv parallellism, som GPU:er, vilket visar en praktiskt taget linjÀr ökning av prestanda beroende pÄ antal berÀkningskÀrnor. Kod skriven i Bend kompileras till en lÄg-nivÄ mellanrepresentation HVM2 (Higher-order Virtual Machine 2), som sedan kompileras till en representation i C och CUDA. För nÀrvarande stöds bara körning pÄ NVIDIA GPU:er av projektet.

NĂ€r det gĂ€ller prestanda utfördes en testapplikation med en implementering av bitonisk sortering, som kördes pĂ„ en enda trĂ„d av CPU Apple M3 Max pĂ„ 12,15 sekunder, med 16 trĂ„dar - pĂ„ 0,96 sekunder och med NVIDIA RTX 4090 GPU med 16k trĂ„dar - 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)) 


KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster