Moetsi oa LLVM o Hlahisa Puo e Ncha ea Lenaneo la Mojo

Chris Lattner, mothehi le setsebi se ka sehloohong sa meralo ea LLVM le moetsi oa puo ea lenaneo la Swift, le Tim Davis, hlooho ea mehleng ea merero ea Google AI e kang Tensorflow le JAX, o hlahisitse puo e ncha ea lenaneo, Mojo, e kopanyang boiketlo ba tšebeliso bakeng sa nts'etsopele ea lipatlisiso le nts'etsopele ea lipatlisiso. prototyping e potlakileng e nang le monyetla oa ho etsa lihlahisoa tsa ho qetela tse sebetsang hantle. Ea pele e finyelloa ka tšebeliso ea syntax e tloaelehileng ea puo ea Python, 'me ea bobeli ka bokhoni ba ho bokella mochine oa mochine, mekhoa e sireletsehileng ea mohopolo, le tšebeliso ea lisebelisoa tsa ho potlakisa hardware.

Morero ona o tsepamisitse maikutlo ho sebelisoa bakeng sa nts'etsopele lefapheng la ho ithuta mochine, empa o hlahisoa e le puo e sebelisoang ka kakaretso e atolosang bokhoni ba Python ka lisebelisoa tsa mananeo a tsamaiso 'me e loketse mesebetsi e mengata. Mohlala, puo e sebetsa libakeng tse joalo ka khomphutha e sebetsang hantle haholo, ts'ebetso ea data le phetoho. Karolo e khahlisang ea Mojo ke bokhoni ba ho hlakisa sebopeho sa emoji "🔥" joalo ka katoloso ea lifaele tsa khoutu (mohlala, "helloworld.🔥"), ho kenyelletsa ho kenyelletsoa ha mongolo ".mojo".

Hajoale, puo e maemong a nts'etsopele e matla mme ke feela sebopeho sa inthanete se fanoang bakeng sa tlhahlobo. Likopano tse arohaneng bakeng sa ho sebetsa litsamaisong tsa lehae li ts'episitsoe hore li tla phatlalatsoa hamorao, kamora ho amohela maikutlo mabapi le ts'ebetso ea tikoloho ea marang-rang e kopanetsoeng. Khoutu ea mohloli bakeng sa moqapi, JIT le nts'etsopele e 'ngoe e amanang le morero e reretsoe ho buloa ka mor'a hore mohaho oa ka hare o phethoe (mohlala oa ho hlahisa setšoantšo se sebetsang ka mor'a mamati a koalehileng o re hopotsa mohato oa pele oa nts'etsopele ea LLVM, Clang le Lebelo). Kaha syntax ea Mojo e thehiloe puong ea Python, 'me mofuta oa mofuta o haufi le C / C ++, nakong e tlang ba rera ho hlahisa lisebelisoa ho nolofatsa phetolelo ea merero e teng e ngotsoeng ho C / C ++ le Python ho Mojo, hammoho le ho nts'etsapele merero e nyalisitsoeng e kopanyang khoutu ea Python le Mojo.

Morero o etselitsoe ho kenyelletsa lisebelisoa tse fumanehang tsa lisebelisoa tsa sistimi e fapaneng ha ho etsoa lipalo. Mohlala, li-GPU, li-accelerator tse khethehileng tsa ho ithuta ka mochini, le li-vector instruction processor (SIMD) li ka sebelisoa ho tsamaisa lits'ebetso tsa Mojo le ho bapisa lipalo. Mabaka a fanoeng bakeng sa ho theha karoloana e arohaneng ea puo ea Python ho fapana le ho kenela mosebetsi oa ntlafatso oa CPython a kenyelletsa ho tsepamisa maikutlo ho bokelleng, ho kopanya bokhoni ba mananeo a sistimi, le ts'ebeliso ea meralo e fapaneng ea kahare e lumellang khoutu ho sebetsa ho li-GPU le tse fapaneng. li-accelerator tsa hardware. Leha ho le joalo, bahlahisi ba Mojo ba ikemiselitse ho lula ba lumellana le CPython ka hohle kamoo ho ka khonehang.

Mojo e ka sebelisoa ka mokhoa oa ho fetolela ho sebelisa JIT, le bakeng sa ho bokella lifaele tse sebetsang (AOT, pele ho nako). Moqapi o na le theknoloji ea sejoale-joale e hahelletsoeng ka har'a ts'ebetso ea othomathiki, caching le pokello e ajoang. Lingoliloeng tsa mohloli oa puo ea Mojo li fetoloa khoutu ea boemo bo tlase ea MLIR (Boemeli ba Maemo a Mangata a Mahareng), e ntlafalitsoeng ke morero oa LLVM le ho fana ka bokhoni bo eketsehileng bakeng sa ho ntlafatsa ts'ebetso ea kerafo ea phallo ea data. Moqapi o u lumella ho sebelisa li-backend tse fapaneng tse tšehetsang MLIR ho hlahisa khoutu ea mochini.

Ho sebelisa lisebelisoa tse eketsehileng tsa hardware ho potlakisa lipalo ho etsa hore ho khonehe ho finyella ts'ebetso e phahameng ho feta C/C ++ lits'ebetso nakong ea lipalo tse matla. Mohlala, ha o leka ts'ebeliso ea ho hlahisa sete ea Mandelbrot, ts'ebeliso e hlophisitsoeng ka puo ea Mojo ha e ne e etsoa lerung la AWS (r7iz.metal-16xl) e ile ea bonahala e potlakile ka makhetlo a 6 ho feta ts'ebetsong ho C++ (0.03 sec. vs. . 0.20 sec.), hape le makhetlo a likete tse 35 ka potlako ho feta ts'ebeliso ea Python ha u sebelisa CPython e tloaelehileng 3.10.9 (0.03 sec. vs. 1027 sec.) le makhetlo a 1500 ka potlako ha u sebelisa PYPY (0.03 sec. vs. 46.1 sec.) .

Ha ho hlahlojoa ts'ebetso lefapheng la ho rarolla mathata a ho ithuta ka mochini, AI stack Modular Inference Engine, e ngotsoeng ka puo ea Mojo, ha e bapisoa le tharollo e thehiloeng ho laeborari ea TensorFlow, e ne e potlakile ka makhetlo a 3 ha e sebetsana le mohlala oa puo tsamaisong e nang le. processor ea Intel, makhetlo a 6.4 ka potlako ha e sebetsana le ts'ebetso ea mohlala oa tlhahiso ea likhothaletso le makhetlo a 2.1 ka potlako ha e sebetsa le mefuta ea ho sebetsana le tlhaiso-leseling e bonoang. Ha u sebelisa li-processor tsa AMD, katleho ha u sebelisa Mojo e ne e le makhetlo a 3.2, 5 le 2.2, 'me ha u sebelisa li-processor tsa ARM - 5.3, 7.5 le 1.7 linako, ka ho latellana. Tharollo e thehiloeng ho PyTorch e salletse morao ho Mojo ka makhetlo a 1.4, 1.1 le 1.5 ho Intel CPUs, makhetlo a 2.1, 1.2 le 1.5 ho AMD CPUs le linako tse 4, 4.3 le 1.3 ho li-ARM CPU.

Moetsi oa LLVM o Hlahisa Puo e Ncha ea Lenaneo la Mojo

Puo e ts'ehetsa ho ngola ka mokhoa o tsitsitseng le likarolo tse bolokehileng tsa mohopolo tse tlase tse re hopotsang Rust, joalo ka ho latedisa bophelo bohle le sehlahlobi sa ho alima. Ntle le lits'ebeletso tsa ts'ebetso e bolokehileng ka litsupa, puo e boetse e fana ka likarolo bakeng sa mosebetsi oa boemo bo tlase, mohlala, phihlello e tobileng ea mohopolo ka mokhoa o sa sireletsehang o sebelisa mofuta oa Pointer, ho letsetsa litaelo tsa SIMD ka bomong, kapa ho fihlella lisebelisoa tsa lisebelisoa tse kang TensorCores le AMX. .

Moetsi oa LLVM o Hlahisa Puo e Ncha ea Lenaneo la Mojo

Ho nolofatsa karohano ea khoutu ea Python ea khale le e ntlafalitsoeng bakeng sa lits'ebetso tse nang le litlhaloso tsa mofuta o hlakileng bakeng sa mefuta eohle, ho khothaletsoa ho sebelisa lentsoe le ka thoko "fn" ho fapana le "def". Ka mokhoa o ts'oanang bakeng sa litlelase, haeba u hloka ho paka lintlha ka memoring ha u ntse u bokella (joalo ka C), u ka sebelisa mofuta oa "struct" ho fapana le "class". Hape hoa khoneha ho kenya li-modules ka lipuo tsa C / C ++, ka mohlala, ho kenya ts'ebetso ea cos ho tloha laebraring ea lipalo, u ka hlalosa "ho tloha "math.h" import cos ".

Source: opennet.ru

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster