Szeretett volna valaha gyorsabb és hatékonyabb alkalmazásokat készíteni, de rájött, hogy a szabványos programozási nyelvek nem képesek megfelelni az Ön igényeinek?
Ekkor lép színre a Mojo Language.
A Mojo egy új programozási nyelv, amelyet a Moduláris, egy mesterséges intelligencia infrastruktúrára szakosodott vállalat.
Kifejezetten úgy tervezték, hogy a fejlesztők gyorsabb és robusztusabb alkalmazásokat készíthessenek többféle felhasználási célra, beleértve az AI-fejlesztést is. Ebben a bejegyzésben megnézzük, mit Mojo hogyan működik, és miért érdemes használni a következő projektjénél.
Mojo eredete
A Mojo készítői felismerték, hogy szükség van egy olyan programozási nyelvre, amely egyesíti a Python használhatóságát a C sebességével és hatékonyságával.
És létrehoztak egy nyelvet, amely lehetővé teszi a fejlesztők számára, hogy nagy teljesítményű alkalmazásokat készítsenek anélkül, hogy meg kellene tanulniuk a szabványos hardverleíró nyelveket.
Ennek eredményeként létrehozták a Mojo-t, amely teljes mértékben kompatibilis a Python ökoszisztémával, miközben C-szintű sebességet biztosít.
Moduláris: A Mojo nyelv mögötti szervezet
Kik tehát ennek a futurisztikus nyelvnek az alkotói?
A Modular egy világelső AI infrastruktúra startup, amelyet Chris Lattner és Tim Davis hozott létre, akik a Google-nál találkoztak, és rájöttek, hogy a túl bonyolult és töredezett infrastruktúra korlátozza az AI globális befolyását.
A Modular célja és célja az AI infrastruktúra újragondolása az emberiség gyarapítása érdekében. Kultúrájuk és alapelveik kiemelten fontosnak tartják az ügyfeleket, a kiváló minőségű gyártási szoftvereket és az értelmes eredményeket
Mojo céljai
A Mojo-t úgy tervezték, hogy egyedülálló programozási modellt biztosítson a gépi tanulási gyorsítóknak.
A Modular megállapította, hogy a Mojo-nak lehetővé kell tennie az általános célú programozást, mivel a mai CPU-k tenzorokkal és más AI-gyorsítókkal rendelkeznek. Továbbá, mivel a Pythont széles körben használják a gépi tanulásban és más területeken, a Modular úgy döntött, hogy csatlakozik a Python ökoszisztémához.
A Python használata tovább könnyítette a nyelv kialakítását. Mivel a szintaxis nagy részét már meghatározták, a vállalat ehelyett a fordítási mechanizmus kiépítésére és a speciális programozási képességek biztosítására koncentrálhatott.
Fontos figyelembe veendő jellemzők
programozhatóság
Progresszív típusok
A Mojo Language progresszív típusok funkciója lehetővé teszi a fejlesztők számára, hogy típusjegyzeteket használjanak fokozza a hatékonyságot és hibaellenőrzések.
A fejlesztők hatékonyabb kódot tervezhetnek, amely a fordítási időben észleli a hibákat, kiküszöböli a hibákat és növeli a hatékonyságot, alaposabb típusinformációkkal.
Nulla költségű absztrakciók
A fejlesztők átvehetik az irányítást a tárolás felett azáltal, hogy a Mojo Language által biztosított zéró költségű absztrakcióknak köszönhetően soron belül osztják fel az adatokat a struktúrákba.
Azáltal, hogy megszünteti az extra memóriakiosztás követelményét, ez a funkció javítja a kód hatékonyságát és csökkenti az alapkód mennyiségét.
Integrált nyelvi automatikus hangolás
A Mojo Language nyelvbe integrált automatikus hangolási funkciója lehetővé teszi a fejlesztők számára, hogy automatikusan meghatározzák a paraméterek ideális értékeit, hogy kihasználják a célhardver előnyeit.
Ezzel a funkcióval egyszerűbb a kód optimalizálása anélkül, hogy minden hardverkombinációhoz kézzel kellene beállítani.
A Mojo Language rugalmas és hatékony eszköz az AI fejlesztéshez, mivel az MLIR (Multi-Level Intermediate Representation) teljes erejét, párhuzamos heterogén futási időt és gyors felépítési időt is biztosít.
Párhuzamosság
A Mojo az MLIR-t használja, amely lehetővé teszi a programozók számára, hogy vektorokat, szálakat és hardveregységeket használjanak az AI-hez a párhuzamosításhoz. A Mojo támogatja a párhuzamos feldolgozást több magon keresztül, szemben a Python egyszálú végrehajtásával.
A Pythonhoz képest 35,000 XNUMX-szeres gyorsasággal a Mojo veri a többi nyelvet a sebesség tekintetében.
Az interoperabilitás
A teljes Python ökoszisztémával való interoperabilitás a Mojo egyik egyedülálló előnye. Ez azt jelenti, hogy kombinálhatja a Mojo-t tetszőleges könyvtárakkal, mint például a Numpy és a Matplotlib, valamint az egyedi kóddal.
Például megjelenítheti a Mojo kódjában lévő adatokat a Matplotlib Python könyvtár használatával.
Nyújthatóság
A Mojo emellett meglehetősen rugalmas, lehetővé téve a felhasználók számára, hogy egyszerűen hozzáadjanak elő- és utófeldolgozási lépéseket a modellekhez, vagy lecseréljék a meglévő lépéseket újakra.
A modelljeik és a moduláris verem fejlesztéséhez a fejlesztők kernelfúziót, gráf-átírást, alakzatfüggvényeket és egyéb technikákat használhatnak.
Miért választaná ezt a Python helyett?
Rugalmassága és nagy teljesítményű lefordított könyvtárai miatt a Python népszerű mesterséges intelligencia-fejlesztő nyelv. Azonban lényegesen lassabb, mint az olyan nyelvek, mint a C++.
Ezért a programozók megtanulják a Python-burkolók használatát a gyorsabb nyelvek körül, hogy elkerüljék a Python használatát a teljesítménykritikus területeken.
Ez a kétnyelvű problémához vezet, amelyben a modelleket Pythonról egy gyorsabb megvalósításra, például ONNX-re vagy torch scriptre kell átalakítani, amely nem támogatja a Python összes képességét. A Pythonnak teljesítményproblémái is vannak, és hiányzik a jó párhuzamos feldolgozás.
A kétnyelvű dilemma miatt még a tapasztalt programozóknak is nehézséget okoz a tanulmányozás, a hibakeresés és a teljesítményproblémák kezelése.
A nyelv szerkezete miatt alapvető korlátozások is vannak arra vonatkozóan, hogy a Python mire képes. Míg az alapvető komponenseket alkalmazó algoritmusok valós megvalósítása egyszerűnek tűnhet, lényegesen bonyolultabb, és gyorsabb nyelvhasználatot tesz szükségessé.
Hogy kezdjed?
A kezdéshez már most elkezdheti használni a Mojo Language-t a Playgroundjukban. A JupyterHub-alapú Playground leckéket ad, és lehetőséget ad saját Mojo kód létrehozására, bár a Mojo még mindig folyamatban van.
A Játszótér eléréséhez regisztrálhat a weboldalukon.
A teljesítménycélok elérése érdekében a Mojo új generációs fordítótechnológiákat alkalmaz integrált gyorsítótárazási, többszálú és felhőalapú terjesztési technológiákkal.
További primitíveket ad a rendszerprogramozáshoz, és idővel Python szuperkészletté kíván válni. A Mojo-val való kódolás megkezdéséhez használja a Mojo fordítót, és futtasson egy Mojo programot a terminálról ugyanúgy, mint a Python.
A nyelv jelenleg fejlesztés alatt áll, és a rendszerprogramozásban tapasztalattal rendelkező fejlesztőknek szól.
Wrap Up
A Mojo Python szuperkészletnek számít. Ezenkívül forradalmasíthatja a programozást azáltal, hogy a Python egyszerűségét a C++ és a Rust teljesítményével kombinálja.
Ki tudja használni a teljes Python könyvtár ökoszisztéma, amely lehetővé teszi a fejlesztők számára, hogy nagy teljesítményű könyvtárakat hozzanak létre C, C++, Rust vagy CUDA nélkül.
Lehetővé teszi hordozható kódok előállítását az automatikus hangolásnak és a fordítási idejű meta-programozási funkcióknak köszönhetően.
Bár még mindig folyamatban van, megvan a lehetőség, hogy félelmetes programozási eszközzé váljon, és átalakítsa a programozási ipart. Tehát továbbra is figyelnünk kell a Modular jövőbeli fejlesztéseit!
Chris Santos
Gondolja, hogy egy alap-középfokú tudással rendelkező személy képes lenne elkezdeni tanulmányait ezen az új nyelven? Vagy azt tanácsolja, hogy először tanuljon meg egy alaposabb nyelvet, például a Javascriptet vagy a Pythont?
İlke Candan Bengi
Szia Chris, elnézést a késői válaszért! Úgy gondolom, hogy a Python alapszintű ismerete/tapasztalata hasznos lehet a Mojo használatának megkezdése előtt.