Naha anjeun kantos hoyong ngawangun aplikasi anu langkung gancang sareng langkung éfisién acan mendakan yén basa pamrograman standar henteu tiasa nyumponan sarat anjeun?
Ieu nalika Basa Mojo dimaénkeun.
Mojo mangrupikeun basa pamrograman énggal anu dikembangkeun ku modular, perusahaan anu khusus dina infrastruktur AI.
Hal ieu dirarancang khusus pikeun ngaktipkeun pamekar ngawangun aplikasi anu langkung gancang sareng langkung kuat pikeun sababaraha kasus pamakean, kalebet pangembangan AI. Dina tulisan ieu, urang bakal ningali naon Mojo mangrupa, kumaha gawéna, jeung naha anjeun kudu make eta dina proyék Anjeun salajengna.
Asal Usul Mojo
Panyipta Mojo ngakuan kabutuhan basa pamrograman anu ngagabungkeun kagunaan Python sareng laju sareng efisiensi C.
Sareng, aranjeunna ngadamel basa anu ngamungkinkeun para pamekar ngawangun aplikasi anu berkinerja tinggi tanpa kedah diajar basa pedaran hardware standar.
Hasilna, aranjeunna nyiptakeun Mojo, anu dimaksudkeun pikeun sapinuhna cocog sareng ékosistem Python bari nyayogikeun laju tingkat C.
Modular: Organisasi Tukangeun Basa Mojo
Janten, saha anu nyiptakeun basa futuristik ieu?
Modular mangrupikeun ngamimitian infrastruktur AI anu terkemuka di dunya anu diciptakeun ku Chris Lattner sareng Tim Davis, anu patepung di Google sareng sadar yén infrastruktur anu rumit teuing sareng fragméntasi ngawatesan pangaruh global AI.
Tujuan sareng tujuan Modular nyaéta pikeun mikirkeun deui infrastruktur AI pikeun ningkatkeun umat manusa. Budaya sareng prinsipna nempatkeun premium pikeun klien, parangkat lunak produksi kualitas luhur, sareng nganteurkeun hasil anu bermakna
Tujuan tina Mojo
Mojo dirarancang pikeun nyayogikeun modél program unik pikeun akselerator pembelajaran mesin.
Modular ditangtukeun yén Mojo kedah ngijinkeun program tujuan umum sabab CPU ayeuna gaduh tensor sareng akselerator AI anu sanés. Saterusna, sabab Python loba dipaké dina mesin learning jeung widang séjén, Modular milih pikeun gabung dina ekosistem Python.
Pamakéan Python salajengna ngagampangkeun desain basa. Kusabab seuseueurna sintaksis parantos ditangtukeun, korporasi malah tiasa konsentrasi dina ngawangun mékanisme kompilasi sareng nyayogikeun kamampuan program khusus.
Fitur penting Pertimbangkeun
Programmabilitas
Jenis Progresif
Fitur jinis progresif tina Mojo Language ngamungkinkeun pamekar ngagunakeun anotasi jinis pikeun ningkatkeun efisiensi jeung cék kasalahan.
Pamekar tiasa ngarancang kode anu langkung efektif anu ngadeteksi kasalahan dina waktos kompilasi, ngaleungitkeun bug sareng ningkatkeun efisiensi, ku nyayogikeun inpormasi jinis anu langkung lengkep.
Nol Cost Abstraksi
Pamekar tiasa ngontrol panyimpen ku cara ngalokasikeun data inline kana struktur berkat abstraksi nol-biaya anu disayogikeun ku Mojo Language.
Ku ngaleungitkeun sarat pikeun alokasi memori tambahan, fitur ieu ningkatkeun efisiensi kode sareng ngirangan jumlah kode boilerplate.
Otomatis-Tuning Basa Terpadu
Pungsi tuning otomatis anu terintegrasi basa dina Mojo Language ngamungkinkeun para pangembang sacara otomatis nangtukeun nilai idéal parameter pikeun kauntungan tina hardware target.
Kalayan fungsionalitas ieu, langkung saderhana pikeun ngaoptimalkeun kode tanpa kedah nyaluyukeun sacara manual pikeun unggal kombinasi hardware.
Basa Mojo mangrupikeun alat anu fléksibel sareng mujarab pikeun pangembangan AI sabab éta ogé nyayogikeun sakumna kakuatan MLIR (Multi-Level Intermediate Representation), waktos jalanna hétérogén paralel, sareng waktos ngawangun gancang.
Paralelisasi
Mojo ngagunakeun MLIR, anu ngamungkinkeun para programer ngagunakeun vektor, benang, sareng unit hardware pikeun AI pikeun paralelisasi. Mojo ngadukung pamrosesan paralel dina sababaraha inti sabalikna tina palaksanaan single-threaded Python.
Kalayan speedup 35,000x leuwih Python, Mojo ngéléhkeun basa séjén dina hal speed.
Interoperability
Interoperabilitas sareng ekosistem Python sadayana mangrupikeun salah sahiji kaunggulan unik Mojo. Ieu nunjukkeun yén anjeun tiasa ngagabungkeun Mojo sareng perpustakaan anu sawenang-wenang, sapertos Numpy sareng Matplotlib, ogé kode anu dipesen anjeun.
Salaku conto, anjeun tiasa ngabayangkeun data dina kode Mojo anjeun nganggo perpustakaan Python Matplotlib.
Kapanjangan
Mojo ogé cukup fléksibel, ngamungkinkeun pamaké pikeun ngan saukur nambihan léngkah-léngkah pra- sareng pasca-prosés kana modél atanapi ngagentos léngkah-léngkah anu tos aya pikeun anu énggal.
Pikeun ningkatkeun modél sareng tumpukan Modular, pamekar tiasa nganggo fusi kernel, nyerat ulang grafik, fungsi bentuk, sareng téknik sanés.
Naha Anjeun Dupi Milih Ieu Leuwih Python?
Python mangrupikeun basa pangembangan AI anu populer kusabab kalenturan sareng perpustakaan anu disusun berprestasi tinggi. Sanajan kitu, éta nyata laun ti basa kayaning C ++.
Ku alatan éta, programer diajar ngagunakeun wrappers Python sabudeureun basa gancang ulah ngagunakeun Python pikeun wewengkon kritis kinerja.
Ieu nyababkeun masalah dua basa, dimana modél kedah dirobih tina Python janten palaksanaan anu langkung gancang, sapertos ONNX atanapi skrip obor, anu henteu ngadukung sadaya kamampuan Python. Python ogé ngagaduhan masalah kinerja sareng kurangna ngolah paralel anu saé.
Malahan programer anu ngalaman hese diajar, debug, sareng ngatasi masalah kinerja kusabab dilema dua basa.
Aya ogé larangan dasar pikeun naon anu tiasa dilakukeun ku Python kusabab cara basana terstruktur. Sanaos palaksanaan dunya nyata tina algoritma anu ngagunakeun komponén dasar sigana gampang, éta nyata langkung sesah sareng peryogi ngagunakeun basa anu langkung gancang.
Kumaha Ngamimitian?
Anjeun tiasa ngamimitian nganggo Basa Mojo ayeuna di Playground maranéhna pikeun ngamimitian. Playground basis JupyterHub méré palajaran sarta kasempetan pikeun nyieun kode Mojo anjeun sorangan, sanajan Mojo masih karya dina kamajuan.
Anjeun tiasa ngadaptar pikeun aksés dina situs wéb pikeun ngaksés Playground.
Pikeun ngahontal tujuan kinerjana, Mojo ngagunakeun téknologi kompiler generasi saterusna sareng téknologi cache terpadu, multithreading, sareng distribusi awan.
Éta nambihan primitif tambahan pikeun program sistem sareng cita-cita janten superset Python dina waktosna. Pikeun ngamimitian coding sareng Mojo, paké kompiler Mojo pikeun ngajalankeun program Mojo tina terminal dina cara anu sami sareng Python.
Basa ayeuna nuju dikembangkeun sareng ditujukeun pikeun pamekar anu gaduh pangalaman dina program sistem.
Bérésan
Mojo dianggap superset Python. Na, eta boga potensi pikeun revolutionize programming ku ngagabungkeun kesederhanaan Python jeung kinerja C ++ jeung Rust.
Bisa ngamangpaatkeun pinuh perpustakaan Python ékosistem, ngamungkinkeun pamekar nyieun perpustakaan-kinerja tinggi tanpa merlukeun C, C++, Rust, atawa CUDA.
Éta ngamungkinkeun produksi kode portabel berkat fitur autotuning sareng kompilasi-waktos meta-programming na.
Sanaos éta masih kénéh dilaksanakeun, éta berpotensi janten alat pamrograman anu luar biasa sareng ngarobih industri program. Janten, urang kedah teras-terasan pikeun kamajuan hareup ti Modular!
Chris Santos
Naha anjeun nyangka yén jalma anu gaduh pangaweruh dasar dugi ka pertengahan tiasa ngamimitian diajar dina basa anyar ieu? Atanapi anjeun mamatahan diajar basa anu langkung dasar heula, sapertos Javascript atanapi Python?
İlke Candan Bengi
Halo Chris, hapunten telat réspon! Kuring yakin gaduh pamahaman dasar / pangalaman Python sateuacanna tiasa ngabantosan sateuacan dimimitian ku Mojo.