Slide 1

Slide 1 text

Mojo Dojo 機械学習の社会実装勉強会第28回 Henry 2023/10/28

Slide 2

Slide 2 text

WELCOME 2

Slide 3

Slide 3 text

Barbie Mojo ■ Modular社がリリースしたPythonのスーパーセット ■ Modular社の共同創業者・CEO Chris Lattner は、今まで SwiftやTPUなどを携わってきた ■ MojoはPythonより何倍も速い! ■ スーパーセットなので、既存のPytorchなどのコードもそのまま 動く! ■ Pythonの柔軟性を維持しつつ、Rustにあるような厳密性も! 3

Slide 4

Slide 4 text

Mojo Toolbox ■ Mojo driver ● 実行シェル ● 実行ファイルのビルドも ● Linux版とMac版がすでにリリース ● 今日主に見ていく ■ VS Code 拡張 ● 文法ハイライトなど ■ Jupyter kernel ● Mojo notebookが書ける ■ デバッグツール(未公開) 4

Slide 5

Slide 5 text

Mojoのインストール ■ https://developer.modular.com/download から ■ アカウント作成が必要 ■ 認証コード付きのURLが生成される ■ https://github.com/modularml/mojo/tree/main/examples ● 認証コードを使ったDocker環境も作れます 5

Slide 6

Slide 6 text

Hello World ■ Mojo ■ mainで名付けているので、別途呼び出さなくて良い ■ mojo buildで単体で実行可能なファイルをビルド ■ Pythonファイルの場合、怒られる ● mojo hello.py ■ mojo: error: no such command 'hello.py' ● mojo build hello.py ■ mojo: error: cannot open 'hello.py', since it does not appear to be a Mojo file (it does not end in '.mojo' or '.🔥') ● mojo hello_py.mojoの場合は文法エラー 6

Slide 7

Slide 7 text

Hello Worldの時間 ■ timeコマンドで計測 ■ python hello.py は 0.017s ■ mojo hello.mojo は 0.089s ■ ./hello はなんと 0.005s 7

Slide 8

Slide 8 text

matmulベンチマーク ■ https://github.com/modularml/mojo/blob/main/examples/m atmul.mojo に用意されている ■ 比較用のPythonはナイーブな行列掛け算しか実装されてない ■ mojoのほうは様々な最適化が施されている 8

Slide 9

Slide 9 text

matmulベンチマーク ■ ビルド自体は0.825s ■ ビルドした実行ファイルを実行時に下記のエラーになることが ある ● Mojo/Python interoperability error: Unable to locate a suitable libpython, please set `MOJO_PYTHON_LIBRARY` ● https://github.com/modularml/mojo/issues/551 を参考に、export MOJO_PYTHON_LIBRARY="/usr/lib/x86_64-linux-gnu/libpython3 .8.so" してからビルドし直すことで解決 9

Slide 10

Slide 10 text

matmulベンチマーク ■ 恐ろしい実行結果 ● mojo matmul.mojo ● ./matmul 10

Slide 11

Slide 11 text

matmulベンチマーク ■ Pythonでforループをやめて、np.matmulを使う場合 ● それでも速かった 11

Slide 12

Slide 12 text

まとめ ■ mojoの紹介 ■ 簡単なベンチマーク 12