組み込みソフトウェアの有識者や有志の集う高知組み込み会 #6 (2023/06/07 18:00〜) にリモートで参加させていただきました。今回は「FPGAと半導体」という興味深い話が聞けました。日本語環境でこういった最先端技術の教育を受けられることは大変ありがたいです。ありがとうございます。
Elixir言語関連では、登壇者の一人である @zacky1972 先生が、FPGA を Elixir や Nx に関連付けて話をされていました。
そこで現実的に EXLA.Backend はメモリ消費量が大きいため、組み込み機器でイゴかすのは厳しいと指摘されていました。論より run 。その時に披露されていたベンチマークを早速 run してみようと思います。
@zacky1972 先生からアドバイスをいただきました。ありがとうございます。
このベンチマークは,EXLAを動かしていません.あくまでNxでの数値です.
なお,EXLAは,Elixirの管理外のメモリを使うので,Bencheeでは,使用メモリを正しく計測できません.
ベンチマークはあくまで目安と考えてください。
やりかた
まずは zeam-vm/pelemay_backend プロジェクトを Github からダウンロード(クローン)します。
git clone git@github.com:zeam-vm/pelemay_backend.git
ベンチマークを収容するディレクトリに入ります。
cd pelemay_backend/benchmarks/onnx_to_axon_bench
依存関係を解決し、コンパイルします。
mix do deps.get, compile
ベンチマークのプログラムを RUN します。
mix run -e "OnnxToAxonBench.run"
3つのファイルが比較に使用されます。45MB の モデルふたつと 比較的大きめ(171MB)の ResNet モデル のファイルひとつです。この ResNet モデルは 1000 クラスの画像を高い精度で分類できるそうです。
実行環境等がプリントされます。
結果はこんな感じです。
ResNet モデルを Nx でイゴかした場合に 9GB ものメモリを消費しうる事がわかりました。組み込み機器で使うのが容易でない事が想像できます。
PelemayBackend(第2版)
これを解決し、組み込み機器でもバリバリ Elixir と Nx で AI できる環境を整える試みが、「PelemayBackend(第2版)」と理解しました。詳しくは PelemayBackend(第2版)のコンセプト をご覧ください。
Elixir Chip
以前からウワサになっている Elixir Chip の実現へも着々と進んでいる明るい雰囲気を感じました。夢と希望でいっぱいで元氣がでます。ワクワクします。
コミュニティ
Elixir、Nx や PelemayBackend にご興味のある方はぜひお気軽にお立ち寄りください。