Show HN: Eyot, GPU beste hari bat besterik ez den programazio-lengoaia
Iruzkinak
Mewayz Team
Editorial Team
Superordenagailu bat daukazu zure mahaian. Zergatik da hain zaila erabiltzea?
Hamarkadetan zehar, programazioa suposizio zentral baten inguruan eraiki da: CPU da eragiketaren garuna. GPU, konputaziorako terraflops-ak egiteko gai den potentzia izugarri paraleloa, koprozesadore espezializatu bat bezala tratatu da, urruneko senide bat, lan grafiko oso zehatzetarako soilik deitzen duzuna. Bere botere gordinean aprobetxatzeak CUDA edo OpenCL bezalako marko konplexu eta silatuak ikasi behar izan ditu, errendimenduaren sustapen soila izan beharko lukeena oztopo arkitektoniko handi bihurtuz. Baina zer gertatzen da hori horrela izango ez balitz? Zer gertatzen da GPU beste hari bat besterik ez balitz, zure programaren logikan ezin hobeto integratuta? Hori da Eyoten atzean dagoen erradikala.
Eyot aurkezten: Konputazioaren ikuspegi bateratua
Eyot programazio-lengoaia berri bat da, GPUa ez kanpoko azeleragailu gisa tratatzeko diseinatutako programazio-lengoaia berria da, aldibereko ereduaren barruan lehen mailako herritar gisa baizik. Oinarrizko ideia dotore disruptiboa da: hari bat sor dezakezu. Zergatik ez luke hari hori GPUan exekutatu ahal izango? Eyot-en konpilatzaileak eta exekuzio-denborak memoria-kudeaketaren, nukleoaren deialdiaren eta datu-sinkronizazioaren xehetasun korapilatsuak kudeatzen ditu, eta garatzaileari konputazio heterogeneoaren oztopoa nabarmen murrizten duen eredu bateratu bat aurkezten du.
Ikuspegi hau bereziki indartsua da Mewayz-en espezializatzen garen datu intentsiboko aplikazioetarako. Gure negozio-OS modularrak informazio-jario handiak modu eraginkorrean prozesatzen ditu, denbora errealeko analisietatik hasi eta finantza-eredu konplexuetaraino. Eyot-ek gure garatzaileei kode garbiagoa eta mantendugarriagoa idazteko aukera ematen die API konplexutasunaren atzean blokeatuta zegoen errendimendua desblokeatzen duten bitartean.
Nola funtzionatzen du: aldiberekotasuna, ez konplexutasuna
Eyoten kaputxaren azpian, magia bere mota sisteman eta programatzailean dago. Funtzio bat edo kode bloke bat deklaratzen duzunean, nahi den exekuzio-testuingurua oharta dezakezu. Lengoaiak 'konputazio-helburuen' kontzeptua sartzen du — `@cpu` eta `@gpu` bezalakoak—, baina hauek exekuzio hari baten propietate gisa hartzen dira, ez mundu guztiz desberdin gisa.
- Garaitze sinplea: Zeregin bat abiarazi dezakezu `spawn @gpu { ... }` CPU-ren hari estandar batekin bezain erraz.
- Memoriaren kudeaketa automatikoa: Eyot-en exekuzio-denborak automatikoki kudeatzen du PUZaren eta GPUaren memoriaren arteko datuak transferitzea, koherentzia bermatuz eta garatzailea akatsak izan ditzakeen eskuzko transferentziatik askatuz.
- Sinkronizazio ezaguna: Primitibo berberak erabiltzen dituzu (kanalak, mutexak eta promesak adibidez) CPU eta GPU harien artean koordinatzeko, programazio-eredu koherentea eta aurreikusgarria sortuz.
Ondorioz, konputazio intentsiboko zeregin bat paralelizatzea zure kodea aldiberekotasunerako egituratzeko kontua bihurtzen da, ez hardware-arkitektura zehatz baterako.
"Eyot-ek ez du GPU programazioa errazten soilik; zure programaren baliabideei buruz pentsatzeko modua aldatzen du. Azkenean hardwarea inplementazio-detaile bihurtzen da, ez diseinu-muga zentral bat."
Garatzaileentzako eta enpresentzako ondorioak
Ikuspegi honek izan dezakeen eragina sakona da. Garatzaileentzat, ikaskuntza-kurba leuna eta karga kognitibo murriztua esan nahi du. Testuinguru mentala "CPU kodea" eta "GPU kodea" arteko aldaketa ezabatzen da, garapen-ziklo azkarragoak eta akats gutxiago sortuz. Enpresentzat, batez ere Mewayz bezalako datuetan oinarritutako plataformentzat, abantaila lehiakorra da zuzenean.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →Eyot gure garapen-fluxuan integratuz, errazago eraiki ditzakegu datu-eraldaketa konplexuak, ikaskuntza automatikoko inferentziak eta denbora errealeko simulazioak abiadura izugarrian egiten dituzten moduluak. Horri esker, Mewayz plataformako gure bezeroek ezagutzak lortu eta prozesuak inoiz baino azkarrago automatiza ditzakete, kode sinpleagoa eta sendoagoa idazten dugun bitartean. Hardwarearen espektro osoa esfortzurik gabe aprobetxatzeko gaitasunak (ordenagailu eramangarritik hasi eta GPU anitz dituen zerbitzari batera) gure sistema eragilea benetan eskalagarria eta etorkizunerako egokia bihurtzen du.
Etorkizuna bateratua dago
Eyot-ek aurrerapauso garrantzitsua da programazio-lengoaiek hardware modernoaren izaera heterogeneoa erabat hartzen duten etorkizun baterako. PUZaren eta GPUren programazioaren arteko aspaldiko dikotomia zalantzan jartzen du, aurrera egiteko bide integratua eta intuitiboago baten ikuspegia eskainiz. Oraindik hasierako fasean dagoen bitartean, bere oinarrizko filosofia ezin hobeto bat dator Mewayzen misioarekin: sistema indartsu eta konplexuak eraikitzea abstrakzio dotore, modular eta sinpleen bidez. GPU haria da. Ordua heldu zaion ideia indartsua da.