Mojo、LLVM の作成者 Chris Lattner によって作成された新しいプログラミング言語

モジョ・ラング

Mojo は、機械学習開発のパフォーマンス向上を約束する新しいプログラミング言語です

数日前、ニュースはそれを壊しました クリス・ラトナー、 LLVM の創設者兼チーフアーキテクト、 ティム・デイビス Googleの元AIプロジェクト責任者 新しいプログラミング言語「Mojo」をリリース Python に基づいており、Python の実装とパフォーマンスの問題が修正されています。

モジョについて言及されています その 研究開発向けの使いやすさを兼ね備えています 高性能の最終製品に適したラピッドプロトタイピング。 前者は、Python 言語の使い慣れた構文の使用によって実現され、後者は、マシン コードにコンパイルする機能、安全なメモリ管理のメカニズム、および計算のハードウェア アクセラレーションのためのツールの使用によって実現されます。

モジョについて

この新しいプログラミング言語は 機械学習開発での使用に焦点を当てる、 でも、はい汎用言語として提示される これは、システム プログラミングを使用して Python 言語の機能を拡張し、幅広いタスクに適しています。

たとえば、この言語は、ハイ パフォーマンス コンピューティング、データ処理、データ変換などの分野に適用できます。 Mojo の興味深い機能は、コード ファイルの拡張子として「🔥」絵文字記号を指定できることです。

プロジェクトはハードウェア リソースを関与させるように設計されています 計算でシステム内で利用可能なシステムの数。 たとえば、GPU、特殊な機械学習アクセラレータ、ベクトル処理命令 (SIMD) を使用して、Mojo アプリケーションを実行し、計算を並列化できます。

既存の CPython 最適化作業に参加するのではなく、Python 言語の別のサブセットを開発する理由は次のように言われています。

ビルド アプローチ、システムのプログラミング機能の統合、GPU やさまざまなハードウェア アクセラレータでコードを実行できる根本的に異なる内部アーキテクチャの使用。 同時に、Mojo 開発者は可能な限り CPython サポートに固執するつもりです。

Mojo は、JIT 解釈モードと実行可能ファイルへのコンパイルの両方で使用できます。 (AOT、事前に)。 コンパイラーには、自己最適化、キャッシュ、分散コンパイルのための最新テクノロジーが組み込まれています。

コード Mojo言語のソースコードは低レベルの中間コードに変換されます。 MLIR (Multi-Level Intermediate Representation)。LLVM プロジェクトによって開発され、データ フロー グラフの処理を最適化するための追加機能を提供します。

追加のハードウェア メカニズムを使用して計算を高速化すると、集中的な計算で C/C++ アプリケーションを上回るパフォーマンスを達成できます。

Chris lattner は、今日私たち全員が依存しているプロジェクトの多くを作成する責任を負っています。たとえ彼が構築したすべてについて私たちが聞いたことさえないかもしれません。 博士論文の一環として、彼は LLVM の開発を開始しました。LLVM はコンパイラの構築方法を根本的に変え、現在、世界で最も広く使用されている言語エコシステムの多くの基礎を形成しています。

その後、彼は Clang をリリースしました。これは、LLVM の上に位置し、パフォーマンスが重要なコードのバックボーンを提供する Google の世界のトップ ソフトウェア開発者のほとんどによって使用されている C および C++ コンパイラです。 

機械学習のトラブルシューティングの分野でパフォーマンスを評価した場合、Mojo 言語で記述された Modular Inference Engine AI スタックは、TensorFlow ライブラリに基づくソリューションと比較して、Intel プロセッサを搭載したシステムで 3 倍高速であることがわかりました。

しかし、Chris は C と C++ が LLVM の能力を最大限に活用していないことに気づき、Apple で働きながら「Swift」と呼ばれる新しい言語を設計しました。彼はこれを「LLVM の構文糖」と表現しました。 

言及する価値がある この言語は静的型付けと安全な低レベルメモリ機能をサポートしています これは、リファレンスライフ追跡や変数借用 (ローンチェッカー) などの Rust 機能を彷彿とさせます。

ポインタを使用した安全な操作のための手段に加えて、言語 低レベルの作業のための機能も提供します。 たとえば、ポインタ型を使用してアンセーフ モードでメモリに直接アクセスしたり、個々の SIMD 命令を呼び出したり、TensorCore や AMX などのハードウェア拡張機能にアクセスしたりすることが可能です。

現在のところ、 言語は集中的に開発中です インターフェイスのみが提供されます オンラインで試してみてください。 将来の約束は、インタラクティブな Web 環境の動作に関するフィードバックを受け取った後、後でローカル システム上で実行する個別のビルドをリリースすることです。

コンパイラのオープンソース コード、JIT、およびその他のプロジェクト関連の開発は、内部アーキテクチャ設計が完了した後に計画されます (非公開で動作するプロトタイプの開発モデルは、LLVM、Clang、Swift の開発の初期段階に似ています)。

Mojo の構文は Python に基づいており、型システムは C/C++ に近いため、将来的には、C/C++ および Python で書かれた既存のプロジェクトを Mojo に簡単に変換できるツール セットを開発する計画もあります。 Python と Mojo コードを組み合わせたハイブリッド プロジェクトの開発に関して。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ハイメ

    このケルンは興味深いです…。 (アクセントはありません)