UMojo, ulwimi olutsha lwenkqubo olwenziwe nguChris Lattner umyili weLLVM

mojo lang

I-Mojo lulwimi olutsha lwenkqubo oluthembisa ukusebenza okungcono kuphuhliso lokufunda koomatshini

Kwiintsuku ezimbalwa ezidlulileyo iindaba zavela ukuba UChris Lattner, umseki kunye nomyili oyintloko we-LLVM kunye UTim Davis, owayesakuba yintloko yeeprojekthi ze-AI kuGoogle ikhutshwe "Mojo", ulwimi olutsha lwenkqubo, ngokusekelwe kwiPython, elungisa ukuphunyezwa kwePython kunye nemiba yokusebenza.

Kukhankanyiwe ukuba Mojo que idibanisa ukusetyenziswa lula kwe-R&D kunye neprototyping ekhawulezayo kunye nokwanela kweemveliso eziphezulu zokusebenza. Eyangaphambili iphunyezwa ngokusetyenziswa kwe-syntax eqhelekileyo yolwimi lwePython, kwaye le yokugqibela ibangelwa ukukwazi ukuqokelela ikhowudi yomatshini, iindlela zokulawulwa kwememori ekhuselekileyo, kunye nokusetyenziswa kwezixhobo zokukhawulezisa i-hardware yokubala.

Malunga neMojo

Olu lwimi lwenkqubo entsha igxile ekusetyenzisweni kuphuhliso lokufunda koomatshini, kodwa ewee inikezelwe njengolwimi lwenjongo jikelele eyandisa izakhono zolwimi lwePython ngocwangciso lweenkqubo kwaye ilungele uluhlu olubanzi lwemisebenzi.

Umzekelo, ulwimi lusebenza kwimimandla efana nokusebenza okuphezulu kwekhompyutha, ukusetyenzwa kwedatha, kunye nokuguqulwa kwedatha. Into enomdla kaMojo kukukwazi ukucacisa "🔥" isimboli ye-emoji njengokwandiswa kweefayile zekhowudi.

Iprojekthi yenzelwe ukubandakanya izixhobo zehardware yeenkqubo ezikhoyo kwisistim kubalo. Umzekelo, ii-GPUs, ii-accelerators zokufunda koomatshini abakhethekileyo, kunye nemiyalelo yokusetyenzwa kwe-vector (ii-SIMDs) zingasetyenziselwa ukuqhuba izicelo ze-Mojo kunye nokulinganisa ukubala.

Isizathu sokuphuhlisa iseti eyahlukileyo yolwimi lwePython, endaweni yokujoyina umsebenzi okhoyo wokuphucula i-CPython, ikhankanywe njenge:

Indlela yokwakha, ukudityaniswa kobuchule benkqubo yenkqubo, kunye nokusetyenziswa kolwakhiwo lwangaphakathi olwahlukileyo ngokwahlukileyo oluvumela ukuba ikhowudi yenziwe kwii-GPUs kunye nee-accelerator ezahlukeneyo zehardware. Kwangaxeshanye, abaphuhlisi beMojo bazimisele ukunamathela kwinkxaso yeCPython kangangoko kunokwenzeka.

I-Mojo ingasetyenziswa zombini kwimowudi yokutolika ye-JIT kunye nokuhlanganiswa kwiifayile eziphunyeziweyo (AOT, ngaphambi kwexesha). Umqokeleli unetekhnoloji yanamhlanje eyakhelwe-ngaphakathi yokuzenzela ngokwakho, i-caching, kunye nokuhanjiswa kokuhlanganiswa.

Ikhowudi ikhowudi yomthombo kulwimi lweMojo iguqulelwa kwikhowudi ephakathi esezantsi I-MLIR (uBumelelo obuPhakathi beNqanaba eliMulti), ephuhliswe yiprojekthi ye-LLVM kunye nokubonelela ngemisebenzi eyongezelelweyo ukulungiselela ukusetyenzwa kweegrafu zokuhamba kwedatha.

Ukusetyenziswa kweendlela ezongezelelweyo ze-hardware ukukhawulezisa ukubala kukuvumela ukuba ufezekise ukusebenza, kunye nokubala okunzulu, ukugqithisa izicelo zeC / C ++.

UChris lattner unoxanduva lokudala iiprojekthi ezininzi esithembele kuzo sonke namhlanje, nangona sisenokuba asizange sive ngayo yonke into eyakhayo! Njengenxalenye yethisisi yakhe ye-PhD, waqala uphuhliso lwe-LLVM, eyatshintsha ngokusisiseko indlela abaqulunqi bokwakhiwa kwaye namhlanje yenza isiseko sezona nkqubo zisetyenziswa kakhulu ehlabathini.

Emva koko wakhulula uClang, umqokeleli weC kunye neC ++ ohleli phezu kwe-LLVM kwaye isetyenziswa ngabaninzi behlabathi abaphuhlisi besoftware (kubandakanywa nokubonelela ngomqolo wekhowudi yokusebenza-ebaluleke kakhulu). 

Xa uvavanya ukusebenza kwintsimi yokufunda umatshini wokujongana neengxaki, i-Modular Inference Engine AI stack ebhalwe ngolwimi lweMojo, xa kuthelekiswa nesisombululo esisekelwe kwilayibrari ye-TensorFlow, yafunyanwa ngamaxesha e-3 ngokukhawuleza kwinkqubo ene-intel processor.

Nangona kunjalo, uChris wabona ukuba i-C kunye ne-C ++ ayisebenzisi ngokupheleleyo amandla e-LLVM, ngoko ngelixa esebenza e-Apple wayila ulwimi olutsha, olubizwa ngokuba yi "Swift", oluchaza ngokuthi "i-syntax sugar for LLVM". 

Kufanelekile ukuba ukhankanye ukuba ifayile ye- ulwimi luxhasa ukuchwetheza okumileyo kunye neempawu zememori ezikwinqanaba elisezantsi ezikhumbuza iimpawu ze-Rust ezifana nokulandelela ubomi bereferensi kunye nokuboleka okuguquguqukayo (umhloli wemali-mboleko).

Ukongeza kwiindlela zokusebenza ngokukhuselekileyo nezikhombisi, ulwimi ikwabonelela ngeempawu zomsebenzi okwinqanaba elisezantsi, umzekelo, kuyenzeka ukufikelela ngqo kwimemori kwimo engakhuselekanga usebenzisa uhlobo lwesalathisi, ukufowunela imiyalelo ye-SIMD yomntu ngamnye, okanye ukufikelela kwizandiso zehardware ezifana neTensorCores kunye ne-AMX.

Okwangoku, ulwimi luphantsi kophuhliso olunzulu kwaye kuphela ujongano olunikezelwayo kwi-intanethi ukuzama. Izithembiso zexesha elizayo kukukhulula ukwakha okwahlukileyo ukuze kuqhutywe kwiinkqubo zendawo kamva, emva kokufumana ingxelo ngomsebenzi we-interactive web environment.

Ikhowudi yomthombo ovulekileyo we-compiler, i-JIT, kunye nolunye uphuhliso olunxulumene neprojekthi lucetywayo emva kokuba uyilo lwangaphakathi lwezakhiwo lugqityiwe (imodeli yophuhliso yeprototype yokusebenza evaliweyo ifana nenqanaba lokuqala lophuhliso lwe-LLVM, i-Clang kunye ne-Swift).

Ekubeni i-syntax ye-Mojo isekelwe kwi-Python kunye nenkqubo yohlobo isondele kwi-C / C ++, kukho izicwangciso kwixesha elizayo ukuphuhlisa isethi yezixhobo ukwenza kube lula ukuguqulela iiprojekthi ezikhoyo ezibhalwe kwiC / C ++ kunye nePython kwiMojo, ngokunjalo. njengokuphuhlisa iiprojekthi ezixubileyo ezidibanisa ikhowudi yePython kunye neMojo.

Okokugqibela, ukuba unomdla wokwazi okungakumbi ngayo, unokujonga kwiinkcukacha Kule khonkco ilandelayo.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   jaime sitsho

    inika umdla icairn lento…. (akukho zwi)