Nalazite se
Članak
Objavljeno: 16.03.2025. 18:34

MIT 

HPC računalstvo s mnogo manje koda

Programski jezik Exo 2 omogućuje višekratne biblioteke za raspoređivanje izvan kompilatora.

HPC računalstvo s mnogo manje koda

Mnoge tvrtke ulažu velika sredstva u zapošljavanje talenata za stvaranje koda visokih performansi koji podupire moderne sustave umjetne inteligencije. NVIDIA je, na primjer, razvila neke od najnaprednijih biblioteka za računalstvo visokih performansi (HPC), čim je znatno odmakla konkurenciji.

Ali što ako bi se nekoliko studenata, u roku od nekoliko mjeseci, moglo natjecati s najsuvremenijim HPC bibliotekama s nekoliko stotina redaka koda, umjesto desetaka ili stotina tisuća?

To je ono što su istraživači s MIT-ovog Laboratorija za računalnu znanost i umjetnu inteligenciju (CSAIL) pokazali s novim programskim jezikom nazvanim pod nazivom Exo 2.

Exo 2 pripada novoj kategoriji programskih jezika koje profesor MIT-a Jonathan Ragan-Kelley naziva "korisnički programirani jezici" ili USL. Umjesto da se nadaju da će neprozirni kompajler automatski generirati najbrži mogući kod, USL-ovi stavljaju programere u 'vozačko sjedalo', dopuštajući im da pišu "rasporede" koji eksplicitno kontroliraju način na koji kompajler generira kod. To omogućuje inženjerima izvedbe da transformiraju jednostavne programe koji specificiraju ono što žele izračunati u složene programe koji rade isto što i izvorna specifikacija, ali puno brže.

Jedno od ograničenja postojećih USL-ova (kao što je izvorni Exo) je njihov relativno fiksni skup operacija raspoređivanja, što otežava ponovnu upotrebu koda raspoređivanja u različitim "jezgrama" (pojedinačne komponente u biblioteci visokih performansi).

Nasuprot tome, Exo 2 omogućuje korisnicima definiranje novih operacija raspoređivanja izvan kompajlera, olakšavajući stvaranje višekratnih biblioteka raspoređivanja. Glavni autor Yuka Ikarashi, doktorant elektrotehnike i računarstva na MIT-u, kaže da Exo 2 može smanjiti ukupni raspored koda za faktor 100 i pružiti performanse konkurentne najsuvremenijim implementacijama na više različitih platformi, uključujući potprograme osnovne linearne algebre (BLAS) koji pokreću mnoge aplikacije strojnog učenja. To ga čini privlačnom opcijom za inženjere u HPC-u usmjerene na optimizaciju kernela u različitim operacijama, tipovima podataka i ciljnim arhitekturama.

"To je pristup automatizaciji odozdo prema gore, umjesto traženja ML/AI preko koda visokih performansi", kaže Ikarashi. "To znači da inženjeri performansi i implementatori hardvera mogu napisati vlastitu biblioteku za raspoređivanje, što je skup tehnika optimizacije koje se primjenjuju na njihov hardver kako bi se postigla vrhunska izvedba."

Jedna od glavnih prednosti Exo 2 je ta što smanjuje količinu kodiranja potrebnog u bilo kojem trenutku ponovnim korištenjem koda za raspoređivanje u aplikacijama i hardverskim ciljevima. Istraživači su implementirali biblioteku rasporeda s otprilike 2000 redaka koda u Exo 2, enkapsulirajući višekratno upotrebljive optimizacije koje su specifične za linearnu algebru (AVX512, AVX2, Neon i Gemmini hardverski akceleratori). Ova biblioteka konsolidira napore u planiranju preko više od 80 kernela visokih performansi s do desetak linija koda svaki, pružajući performanse usporedive ili bolje od MKL,OpenBLAS, BLIS i Halide.

Exo 2 uključuje novi mehanizam nazvan "Kursori" koji pruža ono što nazivaju "stabilnom referencom" za pokazivanje na objektni kod tijekom cijelog procesa raspoređivanja. Ikarashi kaže da je stabilna referenca ključna za korisnike za enkapsulaciju rasporeda unutar funkcije biblioteke, budući da prikazuje kod za raspoređivanje neovisan o transformacijama objektnog koda.

"Vjerujemo da bi USL-ovi trebali biti dizajnirani tako da ih može proširiti korisnik, umjesto da imaju fiksni skup operacija", kaže Ikarashi. "Na ovaj način jezik može rasti kako bi podržavao velike projekte kroz implementaciju biblioteka koje se prilagođavaju različitim zahtjevima optimizacije i domenama primjene."

U budućnosti, tim se nada proširiti podršku Exo 2 za različite vrste hardverskih akceleratora, poput GPU-a. Nekoliko projekata koji su u tijeku imaju za cilj poboljšati samu analizu kompajlera, u smislu ispravnosti, vremena kompilacije i ekspresivnosti.

Istraživački rad o programskom jeziku Exo 2 možete pronaći na ovoj poveznici

Vezani sadržaji
Ključne riječi MIT CSAIL
Komentari

Učitavam komentare ...

Učitavam