Mojo 1.0 Албан Ёсоор Нээлтээ Хийлээ: Python-ий Энгийн Синтакс ба CUDA-ийн Хурдыг Хослуулсан Системийн Хэл Тогтвортой Болов
LLVM, Clang болон Swift програмчлалын хэлийг бүтээгч гэдгээрээ алдартай Крис Латтнер (Chris Lattner)-ийн үүсгэн байгуулсан Modular компани хиймэл оюун ухаан (AI) болон өндөр бүтээмжит тооцоололд зориулсан Mojo хэлний 1.0 тогтвортой (stable) хувилбарыг Modular 26.5 багцын хамт албан ёсоор зарлалаа.
2023 онд олон нийтэд анх танилцуулагдсанаас хойш гурван жилийн турш идэвхтэй туршигдаж байсан энэхүү хэл нь ийнхүү production түвшинд ашиглахад бэлэн болж, 1.x хувилбарын туршид backward compatibility буюу буцаан нийцтэй байх амлалтыг авч байна.
AI Инженерчлэлийн "Хоёр хэлний асуудал" (The Two-Language Problem)-ийг шийдвэрлэх нь
Өнөөгийн AI болон machine learning системийн хөгжүүлэлтэд нэгэн том саад байсаар ирсэн:
- Прототайп хийх хэсэг: Инженерүүд загвар зохиох, туршилт хийхдээ энгийн, уян хатан синтакс бүхий Python хэлийг ашигладаг.
- Production болон Гүйцэтгэлийн хэсэг: Гэвч Python-ий ажиллах хурд удаан учир загваруудаа бодит серверийн орчинд нэвтрүүлэх (inference/serving) болон GPU-ийн тооцооллын цөмүүд (kernel) бичихдээ C++, CUDA, Triton эсвэл HIP зэрэг хүнд түвшний систем програмчлалын хэл рүү дахин хөрвүүлж бичдэг.
Энэхүү шилжилт нь хөгжүүлэлтийн зардлыг үлэмж нэмэгдүүлж, дибаг хийхэд хүндрэл учруулдаг билээ. Харин Mojo нь энэхүү асуудлыг нэг л хэл, нэг л экосистемээр шийдэхээр гарч ирсэн юм. Тодруулбал, хөгжүүлэгчид Python шиг хялбар бичиглэлээр эх кодоо бичиж, шаардлагатай үед C/Rust-ийн түвшний memory safety болон техник хангамжийн шууд хяналтыг авах боломжтой болсон.
Mojo 1.0 хувилбарын онцлох шинэчлэлтүүд
Mojo 1.0 гарснаар хэлний үндсэн бүтэц тогтворжиж, цаашид гарах шинэчлэлтүүд нь зөвхөн нэмэлт боломжуудыг (additive changes) хүргэх зарчимд шилжиж байна. Энэхүү хувилбарт дараах томоохон өөрчлөлтүүд багтжээ:
- Санах ойн аюулгүй байдлын оношилгоо (Memory Safety Diagnostics): Rust хэлнээс санаа авсан ownership болон borrow-checking системийг сайжруулж, хүчингүй болсон reference-үүдийг compile-time дээр найдвартай илрүүлдэг боллоо.
- Хялбаршуулсан Inline Closures & Lambda: Python загварын lambda синтаксийг inline closure хэлбэрээр ашиглах боломжтой болов.
- Нэгдсэн Pointer төрөл ба
varзарлалт: Төрөл бүрийн санах ойн заагчуудыг нэгдсэнPointerтөрөлд нэгтгэж, хувьсагчийн зарлалтыг илүү ойлгомжтой, цэгцтэй болгосон. - Шинэчлэгдсэн LSP (Language Server Protocol): VS Code болон бусад IDE-д зориулсан хөгжүүлэгчийн хэрэгсэл, autocompletion, refactoring дэмжлэг бүхий найдвартай LSP сервер шинэчлэгдэн орлоо.
- Нээлттэй эх бүхий Стандарт сан: Mojo-ийн стандарт санг Apache 2.0 (with LLVM Exceptions) лицензтэйгээр бүрэн нээлттэй хөгжүүлж, нийгэмлэгээс 1,100 гаруй PR амжилттай нийлүүлэгдээд байна.
Техник хангамжийн нэгдэл: CUDA-ийн монополийг эвдэх алхам
Mojo-ийн хамгийн хүчирхэг давуу тал нь MLIR (Multi-Level Intermediate Representation) дээр суурилсан компилятор юм. Энэ нь нэг л эх кодыг CPU (x86, ARM Apple Silicon), Nvidia GPU (CUDA), AMD GPU (ROCm/HIP) болон төрөл бүрийн AI хурдасгуур (NPU, TPU) дээр шууд compile хийх боломжийг олгодог.
Oak Ridge National Laboratory-ийн хийсэн бие даасан туршилтаар Mojo дээр бичсэн нэг л kernel код нь:
- Nvidia H100 дээр цэвэр CUDA C++ кодтой ижил гүйцэтгэлтэй,
- AMD MI300A дээр цэвэр HIP кодтой ижил өндөр үр ашигтай ажиллаж чадаж байгааг баталсан байна.
Энэ нь хөгжүүлэгчдэд зөвхөн нэг вендорын хаалттай архитектурт (жишээ нь зөвхөн CUDA) баригдахгүйгээр өөрсдийн AI алгоритмуудыг олон төрлийн чип дээр хамгийн дээд хурдаар ажиллуулах гарцыг нээж байгаа юм.
Хөгжүүлэгчид хэрхэн туршиж эхлэх вэ?
Mojo 1.0-ийг өөрийн төхөөрөмж дээрээ маш хялбар суулгаж турших боломжтой:
# Mojo хэлийг суулгах эсвэл шинэчлэх
uv pip install --upgrade mojo
# Modular MAX AI inference ба серверийн бүтцийг суулгах
uv pip install max[all]
Mojo хэл нь Python-ийн бүх сангуудыг (NumPy, PyTorch, Pandas гэх мэт) шууд Python.import_module() ашиглан дуудаж ажиллах боломжтой тул одоо байгаа Python төслүүддээ performance-critical хэсгийг нь хэсэгчлэн Mojo руу шилжүүлэх боломж бүрэн нээлттэй.
Дүгнэлт
AI загваруудын хэмжээ томрох тусам inference болон training-ийн дэд бүтцийн зардал компаниудын хувьд хамгийн том сорилт болоод байна. Mojo 1.0 нь Python хөгжүүлэгчдэд системийн програмчлалын хаалгыг нээж, C++ болон CUDA-ийн төвөгтэй байдлыг даван туулах хүчирхэг шийдэл болж зах зээлд өөрийн байр сууриа албан ёсоор бататгалаа.
Эх сурвалж:
- Modular Official Release Notes: Modular 26.5: Mojo 1.0 is here!
- Oak Ridge National Laboratory & WACCPD Benchmark Reports
Сэтгэгдэл
Ачаалж байна...