Mojo, ang bagong programming language na nilikha ni Chris Lattner ang lumikha ng LLVM

mojo lang

Ang Mojo ay isang bagong programming language na nangangako ng mas mahusay na performance para sa pagbuo ng machine learning

Ilang araw na ang nakalilipas ang balitang iyon Chris Lattner, tagapagtatag at punong arkitekto ng LLVM at Tim Davis, dating pinuno ng mga proyekto ng AI sa Google naglabas ng "Mojo", isang bagong programming language, batay sa Python, na nag-aayos ng pagpapatupad ng Python at mga isyu sa pagganap.

Nabanggit na si Mojo ito pinagsasama ang kadalian ng paggamit para sa R&D at mabilis na prototyping na may kasapatan para sa mga produktong pangwakas na may mataas na performance. Ang una ay nakakamit sa pamamagitan ng paggamit ng pamilyar na syntax ng wikang Python, at ang huli ay dahil sa kakayahang mag-compile sa machine code, mga mekanismo para sa ligtas na pamamahala ng memorya, at ang paggamit ng mga tool para sa hardware acceleration ng mga kalkulasyon. .

Tungkol kay Mojo

Ang bagong programming language na ito nakatutok sa paggamit para sa pagbuo ng machine learning, pero ooe ipinakita bilang isang pangkalahatang layunin na wika na nagpapalawak ng mga kakayahan ng wikang Python na may mga system programming at angkop para sa malawak na hanay ng mga gawain.

Halimbawa, ang wika ay naaangkop sa mga lugar tulad ng high-performance computing, data processing, at data transformation. Ang isang kawili-wiling tampok ng Mojo ay ang kakayahang tukuyin ang "🔥" na simbolo ng emoji bilang extension para sa mga file ng code.

Ang proyekto ay idinisenyo upang isama ang mga mapagkukunan ng hardware ng mga system na magagamit sa system sa mga kalkulasyon. Halimbawa, maaaring gamitin ang mga GPU, dalubhasang machine learning accelerators, at vector processing instructions (SIMDs) para magpatakbo ng mga Mojo application at i-parallelize ang mga computations.

Ang dahilan para sa pagbuo ng isang hiwalay na subset ng wikang Python, sa halip na sumali sa umiiral nang CPython optimization work, ay binanggit bilang:

Isang diskarte sa pagbuo, pagsasama-sama ng mga kakayahan sa programming ng system, at ang paggamit ng isang pangunahing naiibang panloob na arkitektura na nagbibigay-daan sa code na maisagawa sa mga GPU at iba't ibang hardware accelerators. Kasabay nito, nilayon ng mga developer ng Mojo na manatili sa suporta ng CPython hangga't maaari.

Maaaring gamitin ang Mojo kapwa sa JIT interpretation mode at para sa compilation sa mga executable na file (AOT, maaga pa). Ang compiler ay may built-in na mga modernong teknolohiya para sa self-optimization, caching, at distributed compilation.

Ang code ang source code sa wikang Mojo ay na-convert sa mababang antas na intermediate code MLIR (Multi-Level Intermediate Representation), na binuo ng proyekto ng LLVM at nagbibigay ng mga karagdagang function upang ma-optimize ang pagproseso ng mga graph ng daloy ng data.

Ang paggamit ng mga karagdagang mekanismo ng hardware upang pabilisin ang mga pagkalkula ay nagbibigay-daan sa iyo upang makamit ang pagganap na, sa masinsinang pag-compute, ay higit na gumaganap sa mga C/C++ na application.

Si Chris lattner ang may pananagutan sa paggawa ng marami sa mga proyektong inaasahan nating lahat ngayon, kahit na maaaring hindi pa natin narinig ang lahat ng ginawa niya! Bilang bahagi ng kanyang PhD thesis, sinimulan niya ang pagbuo ng LLVM, na pangunahing binago ang paraan ng pagbuo ng mga compiler at ngayon ay nagiging batayan ng marami sa pinakamalawak na ginagamit na linguistic ecosystem sa mundo.

Pagkatapos ay inilabas niya ang Clang, isang C at C++ compiler na nasa tuktok ng LLVM at ginagamit ng karamihan sa mga nangungunang software developer sa mundo (kabilang ang pagbibigay ng backbone para sa performance-critical code). ng Google). 

Kapag sinusuri ang pagganap sa larangan ng pag-troubleshoot ng machine learning, ang Modular Inference Engine AI stack na nakasulat sa wikang Mojo, kumpara sa isang solusyon batay sa TensorFlow library, ay nakitang 3 beses na mas mabilis sa isang system na may intel processor.

Gayunpaman, nakita ni Chris na hindi lubos na sinasamantala ng C at C++ ang kapangyarihan ng LLVM, kaya habang nagtatrabaho sa Apple ay nagdisenyo siya ng bagong wika, na tinatawag na "Swift", na inilalarawan niya bilang "syntax sugar para sa LLVM". 

Ito ay nagkakahalaga ng pagbanggit na ang sinusuportahan ng wika ang static na pag-type at ligtas na mababang antas ng mga tampok ng memorya na nakapagpapaalaala sa mga feature ng Rust tulad ng pagsubaybay sa buhay ng sanggunian at variable na paghiram (loan checker).

Bilang karagdagan sa mga paraan para sa ligtas na operasyon na may mga pointer, ang wika nagbibigay din ng mga tampok para sa mababang antas ng trabaho, halimbawa, posibleng direktang ma-access ang memory sa hindi ligtas na mode gamit ang uri ng pointer, tumawag sa indibidwal na mga tagubilin sa SIMD, o mag-access ng mga extension ng hardware gaya ng TensorCores at AMX.

sa kasalukuyan, ang wika ay nasa ilalim ng masinsinang pag-unlad at ang interface lamang ang inaalok online para subukan. Ang mga pangako sa hinaharap ay maglalabas ng hiwalay na mga build upang gumana sa mga lokal na system sa ibang pagkakataon, pagkatapos makatanggap ng feedback sa gawain ng interactive na kapaligiran sa web.

Ang open source code ng compiler, JIT, at iba pang pag-unlad na nauugnay sa proyekto ay pinlano pagkatapos makumpleto ang panloob na disenyo ng arkitektura (ang modelo ng pagbuo para sa isang closed-door working prototype ay kahawig ng maagang yugto ng pagbuo ng LLVM, Clang at Swift).

Dahil ang syntax ng Mojo ay nakabatay sa Python at ang uri ng system ay malapit sa C/C++, may mga plano sa hinaharap na bumuo ng isang set ng mga tool upang gawing mas madali ang pagsasalin ng mga kasalukuyang proyektong nakasulat sa C/C++ at Python sa Mojo, pati na rin. upang bumuo ng mga hybrid na proyekto na pinagsama ang Python at Mojo code.

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Jaime dijo

    interesting ang cairn na ito... (walang accent)