Mojo, gjuha e re e programimit e krijuar nga Chris Lattner, krijuesi i LLVM

mojo lang

Mojo është një gjuhë e re programimi që premton performancë më të mirë për zhvillimin e mësimit të makinerive

Pak ditë më parë u dha lajmi Chris Lattner, themeluesi dhe arkitekti kryesor i LLVM dhe Tim Davis, ish-kreu i projekteve të AI në Google publikoi "Mojo", një gjuhë e re programimi, bazuar në Python, i cili rregullon çështjet e zbatimit dhe performancës së Python.

Përmendet se Mojo kombinon lehtësinë e përdorimit për R&D dhe prototipizim i shpejtë me përshtatshmëri për produktet përfundimtare me performancë të lartë. E para arrihet përmes përdorimit të sintaksës së njohur të gjuhës Python, dhe e dyta është për shkak të aftësisë për përpilim në kodin e makinës, mekanizmave për menaxhimin e sigurt të memories dhe përdorimit të mjeteve për përshpejtimin harduerik të llogaritjeve.

Rreth Mojo

Kjo gjuhë e re programimi fokusohet në përdorimin për zhvillimin e mësimit të makinerive, por poe paraqitur si gjuhë për qëllime të përgjithshme i cili zgjeron aftësitë e gjuhës Python me programimin e sistemeve dhe është i përshtatshëm për një gamë të gjerë detyrash.

Për shembull, gjuha është e zbatueshme në fusha të tilla si llogaritja me performancë të lartë, përpunimi i të dhënave dhe transformimi i të dhënave. Një veçori interesante e Mojo është aftësia për të specifikuar simbolin "🔥" emoji si një shtesë për skedarët e kodit.

Projekti është krijuar për të përfshirë burimet e harduerit të sistemeve të disponueshme në sistem në llogaritjet. Për shembull, GPU-të, përshpejtuesit e specializuar të mësimit të makinerive dhe udhëzimet e përpunimit vektor (SIMD) mund të përdoren për të ekzekutuar aplikacionet Mojo dhe për të paralelizuar llogaritjet.

Arsyeja për zhvillimin e një nëngrupi të veçantë të gjuhës Python, në vend që t'i bashkohet punës ekzistuese të optimizimit të CPython, citohet si:

Një qasje ndërtimi, integrimi i aftësive programuese të sistemit dhe përdorimi i një arkitekture të brendshme thelbësisht të ndryshme që lejon ekzekutimin e kodit në GPU dhe përshpejtues të ndryshëm harduerësh. Në të njëjtën kohë, zhvilluesit e Mojo synojnë t'i përmbahen mbështetjes për CPython sa më shumë që të jetë e mundur.

Mojo mund të përdoret si në modalitetin e interpretimit JIT ashtu edhe për kompilimin në skedarë të ekzekutueshëm (AOT, para kohe). Përpiluesi ka teknologji moderne të integruara për vetë-optimizimin, ruajtjen në memorie dhe kompilimin e shpërndarë.

Kodi kodi burim në gjuhën Mojo konvertohet në kod të ndërmjetëm të nivelit të ulët MLIR (Multi-Level Intermediate Representation), i zhvilluar nga projekti LLVM dhe ofron funksione shtesë për të optimizuar përpunimin e grafikëve të rrjedhës së të dhënave.

Përdorimi i mekanizmave shtesë të harduerit për të përshpejtuar llogaritjet ju lejon të arrini performancë që, me llogaritjet intensive, tejkalon aplikacionet C/C++.

Chris Lattner është përgjegjës për krijimin e shumë prej projekteve ku të gjithë mbështetemi sot, edhe pse mund të mos kemi dëgjuar as për gjithçka që ai ndërtoi! Si pjesë e tezës së doktoraturës, ai filloi zhvillimin e LLVM, i cili ndryshoi rrënjësisht mënyrën e ndërtimit të përpiluesve dhe sot përbën bazën e shumë prej ekosistemeve gjuhësore më të përdorura në botë.

Më pas ai vazhdoi të lëshojë Clang, një përpilues C dhe C++ që qëndron në krye të LLVM dhe përdoret nga shumica e zhvilluesve kryesorë të softuerit në botë (duke përfshirë sigurimin e bazës për kodin kritik të performancës). të Google). 

Gjatë vlerësimit të performancës në fushën e zgjidhjes së problemeve të mësimit të makinerive, grupi i AI-së i Modular Inference Engine i shkruar në gjuhën Mojo, krahasuar me një zgjidhje të bazuar në bibliotekën TensorFlow, u zbulua se ishte 3 herë më i shpejtë në një sistem me një procesor intel.

Megjithatë, Chris pa që C dhe C++ nuk po përfitonin plotësisht nga fuqia e LLVM, kështu që gjatë punës në Apple ai krijoi një gjuhë të re, të quajtur "Swift", të cilën ai e përshkruan si "sheqer sintaksor për LLVM". 

Vlen të përmendet se gjuha mbështet shtypjen statike dhe veçoritë e sigurta të memories së nivelit të ulët të cilat të kujtojnë veçoritë e Rust si gjurmimi i jetës së referencës dhe huazimi i ndryshueshëm (kontrolli i kredisë).

Përveç mjeteve për funksionim të sigurt me tregues, gjuha ofron gjithashtu veçori për punë të nivelit të ulët, për shembull, është e mundur të aksesoni drejtpërdrejt memorien në modalitetin e pasigurt duke përdorur llojin e treguesit, të telefononi udhëzime individuale SIMD ose të përdorni shtesat e harduerit si TensorCores dhe AMX.

Aktualisht, gjuha është në zhvillim intensiv dhe ofrohet vetëm ndërfaqja në internet për të provuar. Premtimet e ardhshme janë të lëshojnë ndërtime të veçanta për t'u ekzekutuar në sistemet lokale më vonë, pas marrjes së komenteve mbi punën e mjedisit interaktiv të uebit.

Kodi i hapur i përpiluesit, JIT dhe zhvillime të tjera të lidhura me projektin planifikohet pasi të përfundojë dizajni i brendshëm i arkitekturës (modeli i zhvillimit për një prototip pune me dyer të mbyllura i ngjan fazës së hershme të zhvillimit të LLVM, Clang dhe Swift).

Meqenëse sintaksa e Mojo-s bazohet në Python dhe sistemi i tipit është afër C/C++, në të ardhmen ka plane për të zhvilluar një grup mjetesh për ta bërë më të lehtë përkthimin e projekteve ekzistuese të shkruara në C/C++ dhe Python në Mojo, gjithashtu. si për të zhvilluar projekte hibride që kombinojnë kodin Python dhe Mojo.

Së fundi, nëse jeni të interesuar të dini më shumë për të, mund të konsultoheni me detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   jaime,es dijo

    interesant ky... (pa thekse)