Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mojo Dojo
Search
Henry Cui
October 28, 2023
Programming
1
170
Mojo Dojo
Henry Cui
October 28, 2023
Tweet
Share
More Decks by Henry Cui
See All by Henry Cui
プロダクション言語モデルの情報を盗む攻撃 / Stealing Part of a Production Language Model
zchenry
0
57
Direct Preference Optimization
zchenry
0
250
Diffusion Model with Perceptual Loss
zchenry
0
190
レンズの下のLLM / LLM under the Lens
zchenry
0
140
Go with the Prompt Flow
zchenry
0
130
ことのはの力で画像の異常検知 / Anomaly Detection by Language
zchenry
0
310
驚愕の事実!LangChainが抱える問題 / Problems of LangChain
zchenry
0
160
MLOps初心者がMLflowを触る / MLflow Brief Introduction
zchenry
0
76
{{guidance}}のガイダンス / Guidance of guidance
zchenry
0
140
Other Decks in Programming
See All in Programming
iOSDC 2024
auramagi
3
590
ECMAScript仕様を読むのに必要な知識 - ダイジェスト版
syumai
4
2.5k
Uncharted packages (Laravel Live Denmark)
freekmurze
0
140
健康第一!MetricKitで始めるアプリの健康診断 / App Health Checkups Starting with MetricKit
nekowen
4
790
2024 컴포즈 정원사
jisungbin
0
140
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
3
1.3k
BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング
hanon52_
4
990
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
390
どうしてこうなった?から理解するActive Recordの関連の裏側
willnet
5
510
Amebaチョイス立ち上げの裏側 ~依存システムとの闘い~
daichi_igarashi
0
220
iOSDC 2024 SMBファイル共有をSwiftで実装する
kishikawakatsumi
1
110
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
13
6.2k
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
472
290k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
What's new in Ruby 2.0
geeforr
340
31k
Into the Great Unknown - MozCon
thekraken
28
1.4k
Building Applications with DynamoDB
mza
89
5.9k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
It's Worth the Effort
3n
182
27k
Fantastic passwords and where to find them - at NoRuKo
philnash
47
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
88
15k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
In The Pink: A Labor of Love
frogandcode
139
22k
Transcript
Mojo Dojo 機械学習の社会実装勉強会第28回 Henry 2023/10/28
WELCOME 2
Barbie Mojo ▪ Modular社がリリースしたPythonのスーパーセット ▪ Modular社の共同創業者・CEO Chris Lattner は、今まで SwiftやTPUなどを携わってきた
▪ MojoはPythonより何倍も速い! ▪ スーパーセットなので、既存のPytorchなどのコードもそのまま 動く! ▪ Pythonの柔軟性を維持しつつ、Rustにあるような厳密性も! 3
Mojo Toolbox ▪ Mojo driver • 実行シェル • 実行ファイルのビルドも •
Linux版とMac版がすでにリリース • 今日主に見ていく ▪ VS Code 拡張 • 文法ハイライトなど ▪ Jupyter kernel • Mojo notebookが書ける ▪ デバッグツール(未公開) 4
Mojoのインストール ▪ https://developer.modular.com/download から ▪ アカウント作成が必要 ▪ 認証コード付きのURLが生成される ▪ https://github.com/modularml/mojo/tree/main/examples
• 認証コードを使ったDocker環境も作れます 5
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
Hello Worldの時間 ▪ timeコマンドで計測 ▪ python hello.py は 0.017s ▪
mojo hello.mojo は 0.089s ▪ ./hello はなんと 0.005s 7
matmulベンチマーク ▪ https://github.com/modularml/mojo/blob/main/examples/m atmul.mojo に用意されている ▪ 比較用のPythonはナイーブな行列掛け算しか実装されてない ▪ mojoのほうは様々な最適化が施されている 8
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
matmulベンチマーク ▪ 恐ろしい実行結果 • mojo matmul.mojo • ./matmul 10
matmulベンチマーク ▪ Pythonでforループをやめて、np.matmulを使う場合 • それでも速かった 11
まとめ ▪ mojoの紹介 ▪ 簡単なベンチマーク 12