Ua hōʻike ʻo Chris Lattner, ka mea nāna i hoʻokumu a me ke poʻo kuhikuhipuʻuone o LLVM a me ka mea nāna i hana i ka ʻōlelo papahana Swift, a me Tim Davis, ke poʻo mua o nā papahana AI a Google e like me Tensorflow lāua ʻo JAX, i kahi ʻōlelo papahana hou, ʻo Mojo, kahi e hoʻohui ai i ka maʻalahi o ka hoʻohana ʻana no ka noiʻi a me ka prototyping wikiwiki me ke kūpono no ke kūkulu ʻana i nā huahana hopena hana kiʻekiʻe. Hoʻokō ʻia kēia ma o ka syntax maʻamau o Python, ʻoiai ʻo ka mea hope e hoʻokō ʻia ma o ka hōʻuluʻulu ʻōiwi, nā ʻano palekana hoʻomanaʻo, a me ka wikiwiki o ka lako.
Ke kālele nei ka papahana i ka hoʻomohala ʻana i ke aʻo ʻana i ka mīkini, akā ua hōʻike ʻia hoʻi ma ke ʻano he ʻōlelo no ke kumu maʻamau e hoʻonui ana iā Python me nā hiki papahana ʻōnaehana a kūpono no nā hana like ʻole. No ka laʻana, pili ka ʻōlelo i nā wahi e like me ka helu hana kiʻekiʻe a me ka hana ʻikepili a me ka hoʻololi ʻana. ʻO kahi hiʻohiʻona hoihoi o Mojo ka hiki ke kuhikuhi i ka hōʻailona emoji "🔥" ma ke ʻano he hoʻonui no nā faila code (e.g., "helloworld.🔥"), ma waho aʻe o ka hoʻonui kikokikona ".mojo."
Ke hoʻomohala nui ʻia nei ka ʻōlelo i kēia manawa, a he interface pūnaewele wale nō ka mea i loaʻa no ka hoʻāʻo ʻana. Ua hoʻohiki ʻia e paʻi ʻia ma hope aku nā kūkulu kū hoʻokahi no ka holo ʻana ma nā ʻōnaehana kūloko, ma hope o ka loaʻa ʻana o nā manaʻo ma ka pūnaewele interactive. Hoʻolālā ʻia ke code kumu no ka mea hōʻuluʻulu, JIT, a me nā hoʻomohala pili ʻē aʻe e wehe ʻia ma hope o ka pau ʻana o ke ʻano hana kūloko (ʻo ke kumu hoʻomohala puka pani no kahi prototype hana e hoʻomanaʻo ana i ka pae hoʻomohala mua o LLVM, Clang, a me Swift). ʻOiai ua hoʻokumu ʻia ke ʻano hana a Mojo ma Python, a ua like kona ʻano ʻōnaehana me C/C++, ʻo nā hoʻolālā e hiki mai ana e pili ana i ka hoʻomohala ʻana i nā mea hana e hoʻomaʻalahi i ka neʻe ʻana o nā papahana C/C++ a me Python i Mojo, a me ka hoʻomaʻamaʻa ʻana i ka hoʻomohala ʻana i nā papahana hybrid e hoʻohui ana iā Python a me ke code Mojo.
Ua hoʻolālā ʻia ka papahana e hoʻohana i nā kumuwaiwai lako o nā ʻōnaehana heterogeneous no ka helu ʻana. No ka laʻana, hiki ke hoʻohana ʻia nā GPU, nā mea hoʻolalelale aʻo mīkini kūikawā, a me nā mea hana vector kuhikuhi hoʻokahi (SIMD) e holo i nā noi Mojo a hoʻohālikelike i nā helu ʻana. ʻO nā kumu i ʻōlelo ʻia no ka hoʻomohala ʻana i kahi subset Python kaʻawale, ma mua o ka hilinaʻi ʻana i ka CPython e kū nei no ka hoʻonui ʻana, e komo pū me ka nānā ʻana i ka hōʻuluʻulu ʻana, ka hoʻohui ʻana o nā hiki papahana ʻōnaehana, a me ka hoʻohana ʻana i kahi hoʻolālā kūloko ʻokoʻa e hiki ai ke hoʻokō code ma nā GPU a me nā mea hoʻolalelale lako like ʻole. I ka manawa like, manaʻo nā mea hoʻomohala Mojo e mālama i ka launa pū me CPython i ka hiki.
Hiki ke hoʻohana ʻia ʻo Mojo ma ke ʻano JIT (just-in-time) a me ke ʻano ma mua o ka manawa (AOT). Hoʻohui ka mea hōʻuluʻulu i nā ʻenehana hou no ka hoʻonui pono ʻana, ka caching, a me ka hōʻuluʻulu i hoʻolaha ʻia. Hoʻololi ʻia ke code kumu Mojo i ke code waena haʻahaʻa (MLIR), i hoʻomohala ʻia e ka papahana LLVM a hāʻawi i nā hiki hou aʻe no ka hoʻonui ʻana i ka hana kiʻi kahe data. Kākoʻo ka mea hōʻuluʻulu i nā backends like ʻole i hiki i ka MLIR no ka hana code mīkini.
ʻO ka hoʻohana ʻana i ka wikiwiki o ka lako paʻa e hiki ai ke loaʻa nā loaʻa hana no nā helu koʻikoʻi e ʻoi aku ana ma mua o nā noi C/C++. No ka laʻana, i ka hoʻāʻo ʻana i kahi noi hana hoʻonohonoho Mandelbrot, ʻo ka noi Mojo i hōʻuluʻulu ʻia (r7iz.metal-16xl) he 6 mau manawa wikiwiki ma mua o ka hoʻokō C++ i ka wā e holo ana i ke ao AWS (0.03 kekona e kūʻē i ka 0.20 kekona), 35 mau manawa wikiwiki ma mua o ka noi Python i ka wā e hoʻohana ai i ka CPython 3.10.9 maʻamau (0.03 kekona e kūʻē i ka 1027 kekona), a he 1500 mau manawa wikiwiki i ka wā e hoʻohana ai iā PYPY (0.03 kekona e kūʻē i ka 46.1 kekona).
I ka loiloi ʻana i ka hana aʻo mīkini, ʻo ka Modular Inference Engine AI stack, i kākau ʻia ma Mojo, ʻoi aku ka wikiwiki o 3x ma kahi kaʻina hana Intel i ka wā e hana ana i kahi kumu hoʻohālike ʻōlelo, 6.4x wikiwiki i ka wā e holo ai i kahi kumu hoʻohālike ʻōlelo paipai, a ʻoi aku ka wikiwiki o 2.1x i ka wā e holo ai i nā kumu hoʻohālike hana ʻike maka i hoʻohālikelike ʻia me kahi hopena e pili ana iā TensorFlow. Ma nā kaʻina hana AMD, ua loaʻa iā Mojo nā loaʻa hana 3.2x, 5x, a me 2.2x, ʻoiai ma nā kaʻina hana ARM, ua loaʻa iā ia nā loaʻa hana 5.3x, 7.5x, a me 1.7x. Ua emi ka hopena e pili ana iā PyTorch ma hope o Mojo ma 1.4x, 1.1x, a me 1.5x ma nā CPU Intel, 2.1x, 1.2x, a me 1.5x ma nā CPU AMD, a me 4x, 4.3x, a me 1.3x ma nā CPU ARM.

Kākoʻo ka ʻōlelo i ke kikokiko paʻa a me nā hiʻohiʻona palekana hoʻomanaʻo haʻahaʻa e hoʻomanaʻo ana iā Rust, e like me ka nānā ʻana i ke ola o ka mea kuhikuhi a me kahi mea nānā hōʻaiʻē. Ma waho aʻe o nā hiʻohiʻona palekana pointer, hāʻawi pū ka ʻōlelo i nā hiki haʻahaʻa, e like me ke komo pololei ʻana i ka hoʻomanaʻo ma ke ʻano palekana ʻole me ka hoʻohana ʻana i ke ʻano Pointer, ke kāhea ʻana i nā kuhikuhi SIMD pākahi, a me ke komo ʻana i nā hoʻonui lako e like me TensorCores a me AMX.

No ka hoʻomaʻalahi ʻana i ka hoʻokaʻawale ʻana o ke code Python maʻamau a me ka optimized no nā hana me nā ʻano i wehewehe pono ʻia no nā loli āpau, ua manaʻo ʻia e hoʻohana i kahi huaʻōlelo "fn" ʻokoʻa ma kahi o "def." Pēlā nō, no nā papa, inā koi ʻia ka hoʻopili ʻana o ka ʻikepili static i ka hoʻomanaʻo i ka manawa hōʻuluʻulu (e like me C), hiki ke hoʻohana ʻia ke ʻano "struct" ma kahi o "class." Hiki nō hoʻi ke lawe maʻalahi ʻana mai o nā modula C/C++. No ka laʻana, no ka lawe ʻana mai i ka hana cos mai ka waihona makemakika, hiki iā ʻoe ke kuhikuhi "mai "math.h" lawe mai i ka cos."
Source: opennet.ru
