LLVM Mlengi Amapanga Chinenero Chatsopano cha Mojo Programming

Chris Lattner, woyambitsa ndi mmisiri wamkulu wa LLVM komanso mlengi wa chilankhulo cha Swift, ndi Tim Davis, yemwe kale anali wamkulu wa ntchito za Google za AI monga Tensorflow ndi JAX, adavumbulutsa chilankhulo chatsopano cha mapulogalamu, Mojo, chomwe chimaphatikiza kusavuta kugwiritsa ntchito kafukufuku ndi kujambula mwachangu ndi kuyenerera pomanga zinthu zomaliza zogwira ntchito kwambiri. Izi zimatheka kudzera mu syntax yodziwika bwino ya Python, pomwe yotsirizirayi imatheka kudzera pakuphatikiza kwawo, njira zoteteza kukumbukira, komanso kuthamangitsa zida.

Pulojekitiyi ikuyang'ana pa chitukuko cha makina ophunzirira, koma imaperekedwanso ngati chinenero chodziwika bwino chomwe chimakulitsa Python ndi luso la mapulogalamu a machitidwe ndipo ndi oyenera ntchito zosiyanasiyana. Mwachitsanzo, chinenerochi chimagwira ntchito kumadera monga makompyuta ochita bwino kwambiri komanso kukonza ndi kusintha deta. Chochititsa chidwi ndi Mojo ndikutha kutchula chizindikiro cha emoji "🔥" ngati chowonjezera cha mafayilo amtundu (monga "helloworld.🔥"), kuwonjezera pa mawu owonjezera ".mojo."

Chilankhulochi chikukula kwambiri, ndipo mawonekedwe a intaneti okha ndi omwe amapezeka kuti ayesedwe. Ma Standalone amamanga kuti ayendetse pamakina am'deralo akulonjezedwa kuti adzasindikizidwa pambuyo pake, atalandira ndemanga pazamasamba ochezera. Khodi yochokera kwa wopanga, JIT, ndi zochitika zina zofananira zakonzedwa kuti zitsegulidwe zomanga zamkati zikamalizidwa (chitsanzo chachitseko chotseka chachiwonetsero chogwira ntchito chimakumbutsa gawo loyambirira la LLVM, Clang, ndi Swift). Popeza kuti mawu a Mojo amachokera ku Python, ndipo mtundu wake ndi wofanana ndi C/C ++, mapulani amtsogolo akuphatikizapo kupanga zida zochepetsera kusamuka kwa mapulojekiti omwe alipo C/C++ ndi Python kupita ku Mojo, komanso kuthandizira chitukuko cha ma projekiti osakanizidwa kuphatikiza Python ndi Mojo code.

Pulojekitiyi idapangidwa kuti igwiritse ntchito zida za Hardware zomwe zilipo zamitundu yosiyanasiyana pakuwerengera. Mwachitsanzo, ma GPU, ma accelerator apadera ophunzirira makina, ndi ma processor a single-instruction vector processors (SIMD) atha kugwiritsidwa ntchito kuyendetsa mapulogalamu a Mojo ndikufananiza mawerengedwe. Zifukwa zomwe zatchulidwa zopangira kagawo kakang'ono ka Python, m'malo modalira CPython yomwe ilipo kuti ikwaniritsidwe, ikuphatikiza kuyang'ana pakuphatikiza, kuphatikizika kwamapulogalamu amachitidwe, komanso kugwiritsa ntchito zomangamanga zosiyana zamkati zomwe zimathandizira kukhazikitsidwa kwa ma code pa GPUs ndi ma accelerator osiyanasiyana a hardware. Nthawi yomweyo, opanga Mojo akufuna kukhalabe ogwirizana ndi CPython momwe angathere.

Mojo itha kugwiritsidwa ntchito ponse pawiri mu JIT (mu nthawi yokha) komanso pasadakhale (AOT). Wopangayo amaphatikiza matekinoloje amakono okhathamiritsa, kusungitsa, ndi kugawa. Khodi ya source ya Mojo imasinthidwa kukhala kachidindo kakang'ono kapakati (MLIR), yopangidwa ndi pulojekiti ya LLVM ndikupereka zina zowonjezera pakukhathamiritsa ma graph a dataflow. Wopangayo amathandizira ma backends osiyanasiyana omwe amathandizidwa ndi MLIR pakupanga makina amakina.

Kugwiritsa ntchito mathamangitsidwe owonjezera a Hardware kumathandizira kuti magwiridwe antchito azitha kuwerengera kwambiri kuposa zomwe C/C ++ mapulogalamu. Mwachitsanzo, poyesa pulogalamu ya m'badwo wa Mandelbrot, pulogalamu ya Mojo (r7iz.metal-16xl) yopangidwa ndi Mojo (r7iz.metal-16xl) inali mofulumira ka 6 kuposa kukhazikitsidwa kwa C ++ pamene ikuyenda mumtambo wa AWS (mphindi 0.03 motsutsana ndi 0.20 sec.), 35,000 mofulumira kuposa Python ntchito pogwiritsira ntchito 90.0. 1027 sec.), ndi nthawi 1500 mwachangu mukamagwiritsa ntchito PYPY (mphindi 0.03 motsutsana ndi 46.1 sec.).

Poyesa magwiridwe antchito a makina, stack ya Modular Inference Engine AI, yolembedwa ku Mojo, inali 3x mwachangu pa purosesa ya Intel pokonza chilankhulo cha chilankhulo, 6.4x mwachangu mukamagwiritsa ntchito chitsanzo chovomerezeka, ndi 2.1x mwachangu mukamagwiritsa ntchito mitundu yowonera zidziwitso poyerekeza ndi yankho la TensorFlow. Pa mapurosesa a AMD, Mojo adapeza zopindulitsa za 3.2x, 5x, ndi 2.2x, pomwe pa ma processor a ARM, adapeza zopindulitsa za 5.3x, 7.5x, ndi 1.7x. Njira yothetsera PyTorch idatsalira kumbuyo kwa Mojo ndi 1.4x, 1.1x, ndi 1.5x pa Intel CPUs, 2.1x, 1.2x, ndi 1.5x pa AMD CPUs, ndi 4x, 4.3x, ndi 1.3x pa ARM CPUs.

LLVM Mlengi Amapanga Chinenero Chatsopano cha Mojo Programming

Chilankhulochi chimathandizira kulemba mosasunthika komanso chitetezo cham'munsi chocheperako chomwe chimakumbutsa za Dzimbiri, monga kutsata moyo wonse komanso choyang'anira ngongole. Kuphatikiza pachitetezo cha pointer, chilankhulochi chimaperekanso kuthekera kocheperako, monga kuloweza kukumbukira molunjika m'njira zosatetezeka pogwiritsa ntchito mtundu wa Pointer, kuyitanitsa malangizo a SIMD, komanso kupeza zowonjezera za Hardware monga TensorCores ndi AMX.

LLVM Mlengi Amapanga Chinenero Chatsopano cha Mojo Programming

Kuti muchepetse kulekanitsa kwa code ya Python yapamwamba komanso yokhathamiritsa ya magwiridwe antchito okhala ndi mitundu yofotokozedwa momveka bwino pazosintha zonse, akuyenera kugwiritsa ntchito mawu ofunikira a "fn" m'malo mwa "def." Mofananamo, m'makalasi, ngati static data kulongedza mu kukumbukira kumafunika panthawi yosonkhanitsa (monga C), mtundu wa "struct" ungagwiritsidwe ntchito m'malo mwa "kalasi." Kulowetsa kosavuta kwa ma module a C/C++ ndikothekanso. Mwachitsanzo, kuitanitsa ntchito ya cos kuchokera ku laibulale ya masamu, mukhoza kutchula "kuchokera ku "math.h" import cos."

Source: opennet.ru

Gulani kuchititsa kodalirika kwamasamba okhala ndi chitetezo cha DDoS, ma seva a VPS VDS Gulani malo odalirika osungira mawebusayiti okhala ndi chitetezo cha DDoS, ma seva a VPS VDS | ProHoster