新しいプログラミング言語Mojoは、Pythonとの完全な互換性と低レベルのプログラミング機能を組み合わせ、GPUやAIアクセラレータを活用できる能力を目指しています。
AIインフラ企業Modularは、Pythonの使いやすさと完全な互換性を持ちつつ、C言語並みのパフォーマンスを提供することを目指すAI開発者向けのプログラミング言語Mojoを発表しました。
低レベルのシステムプログラミングと高度なコンパイル機能は、マルチレベル中間表現(MLIR)コンパイラフレームワークを利用しています。
2023年5月2日に公開されたMojoは、Pythonの文法とシステムプログラミング、コンパイル時のメタプログラミングを活用し、研究と実用のギャップを埋めることを目指しています。
Modular社は、MojoをC++よりも高速で、NvidiaのCUDAよりも改変しやすく、Rustと同じくらい安全な言語として位置づけています。
Mojoは、機械学習のアクセラレータに革新的なプログラミングモデルをもたらすことを目標として開始されました。
しかし、現在のCPUにもテンソルやその他のAIアクセラレータが搭載されているため、Modular社は、Mojoが汎用プログラミングをサポートし、機械学習やその他の分野で広く使われているPythonとの親和性を持つことが重要であると判断しました。
Pythonとの親和性は設計努力も簡略化し、既に指定された文法のほとんどがあるため、同社はコンパイルモデルの構築と特定のプログラミング機能の設計に注力することができました。
MojoはPythonのスーパーセットを目指し、既存のPythonプログラムと互換性があります。
Pythonの主要機能である非同期処理、エラーハンドリング、可変長引数などがサポートされていますが、Pythonのクラスなどの他の機能はまだ欠けています。
Pythonファミリーのメンバーとしての言語の目標は以下の通りです。
- Pythonエコシステムとの完全な互換性
- 予測可能な低レベルのパフォーマンスと低レベルの制御
- コードのサブセットをアクセラレータにデプロイする能力
- エコシステムの断片化を避ける
Mojoの標準ライブラリ、コンパイラ、ランタイムはまだローカル開発で利用可能ではありません。
Modular社は、Mojoを試すためのホスト型開発環境、Mojo Playgroundを作成しました。
開発者はアクセスを申し込む必要があります。
Mojoのロードマップには、現在部分的に実装されているタプルサポートや、関数のキーワード引数、改善されたパッケージ管理サポート、標準ライブラリの機能(正規配列や辞書型など)などが含まれています。
Pythonのクラスの動的機能に対する完全なサポートも検討されており、C/C++との相互運用性も目指しています。
コメント