最適化 設計技術 良いモノ を 誰でも楽に つくることができる世界へ 組込み/IoTコンピューティング基盤を⽀える プラットフォーム技術と設計⽅法論 @takasehideki ശ ఉ ϩʔΧϧڥ ηϯγϯά ̇ ̇ ̇ ө૾ Ի Թ ࣪ ѹྗ ৼಈ Edge AI ޯܭࢉɾߋ৽ -PTT 8FJHIU ਪ ੍ޚ ΣΞϥϒϧ σόΠεɾ ϔϧεέΞ ϩϘοτ ϞϏϦςΟ ೖྗ ग़ྗ ϑΟʔυ όοΫ Edge AI Edge AI Edge AI Edge AI Fog AI ू ϩʔΧϧڥ Fog AI Edge AI Edge AI ϩʔΧϧڥ Fog AI Edge AI Edge AI Cloud MEC BEAM クラウド BEAM エッジ BEAM 最適配分アルゴリズム 透過型分散プラットフォーム BEAM システム開発者 デプロイされる コード ① ③ ② ③ ③ ❤ 評価アプリ ❤ 評価アプリ ④ ④ ❤ 評価アプリ ④ ② ② ❤ 評価アプリ ④ ② ② ② ②
• Elixirの⾔語機能との完全な互換性 アクターモデルで並⾏処理ができる IoT向けになにか気にする必要がない 有⽤なライブラリとツールが揃っている Ø⽇本初!?のNerves搭載製品 → Pocket LANcher Bootloader A Linux kernel (Buildroot) Master Boot Record Root Filesystem A (Read-only) Application Data (Read-Write) C libraries Erlang VM Bootloader B Root Filesystem B (Read-only) C libraries Erlang VM CQ出版Interface 2020年6⽉号〜 2021年1⽉号 10
process space rclcpp node1 Erlang VM rclex node1 rclex node2 process exec. mngr. process pub1 process sub2 process pub2 ... NIFs rclpy node2 rcl.so ErlangリソースオブジェクトとRCLの構造体を 相互に変換してRCL APIを呼び出す • Erlang VMはOSプロセスとして駆動 • スケジューラでElixirプロセスを実⾏ = Rclexにおける pub/sub ノード • プロセスが軽量 ü 起動時間︓数マイクロ秒 ü メモリ︓およそ300ワード