Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ElixirChip、次世代と宇宙にブッ飛ぶ

 ElixirChip、次世代と宇宙にブッ飛ぶ

piacerex

June 22, 2023
Tweet

More Decks by piacerex

Other Decks in Technology

Transcript

  1. ver 1.5:5/31 ver 1.0:3/9 in fukuoka.ex#53 Elixir Lightning Talks!! ver

    1.8:6/2 ver 1.9:6/15 ver 2.0:6/22 in Elixirで宇宙衛星/ エッジコンピュー ティング/Web@ マネーフォワード オフィス ①毎日のスキンケア ②毎日のカロリー/栄養のコントロール ③毎日の運動習慣 →摂取カロリー以上の運動消費カロリー ④体重:-7.4kg ④来年、50歳 ですが凄まじい健康体に さらに、女性フォロワーにメイクを教えたりw
  2. 2023/6/22 (Thu) マネーフォワードオフィス 【福岡 x 東京同時】 Elixirで宇宙衛星/エッジコンピューティング/Web Elixir Chip、次世代と宇宙にブッ飛ぶ Jul.

    30, 2022 ver 0.5 created. Apr. 13, 2023 ver 0.7 updated Jun. 19, 2023 ver 1.0 updated Jun. 21, 2023 ver 1.1 updated 株式会社DigiDockConsulting 常務取締役CTO Elixirコミュニティ「fukuoka.ex」「ElixirImp」「LiveView JP」オーガナイザ 国際カンファレンス「ElixirConf JP」ファウンダー AIスクール「AIジョブカレ」福岡校開校講師 北九州市立大学 「プログラミング論」教授級非常勤講師 北九州高等専門学校 特命教授 / コンピュータ研究部 指導員 piacere / 森 正和
  3. はじめに:ElixirをCPU化し、次世代と宇宙の開発に進出 • 約1年前に「Elixir Chip」 構想をコラム化しました • その後、関連コラム追加や デジタルツインなどのバー チャル/リアルの融合への 転用研究や発表が行われ、

    最近は共同研究やニーズ/ シーズ特定などの段階に入 っています • 今回はElixir Chipで次世代 コンピューティングと宇宙 開発の未来を作るお話です
  4. my favotite technologies & implements Twitter / NeosVR / Discord

    @piacere_ex Github / YouTube / Qiita @piacerex 40年前からプログラマ(職業のそれは27年) 書けるプログラミング言語は158言語 小学4年生でゲームプログラミングを始め、現在も プロダクトとOSSを開発し、事業やコミュニティの 優位性へと転用するエンジニア/3社の経営者/PO 大手企業をメイン顧客として、IT事業/UX・UI/ D2Cマーケティング/VR・AR/エッジコンピュー ティングに絡む事業・企画支援、プロダクトを提供 技術コミュニティも複数発足・主催しており、毎月 イベント開催とLT、ライブコーディングをこなす piacere / 森 正和 “piacere” is an Italian word, means “Joy” == == Real Online VR / AR
  5. 活動 ≒ 事業+コミュニティ+育成(エンジニア、学生) • 北九州市立大学 教授級非常勤講師「プログラミング論」 • 北九州高等専門学校 特命教授 コンピュータ研究部指導員

    • ラジオFM KITAQ「Technology Cruising Night」パーソナリティ • 株式会社DigiDockConsulting 常務取締役CTO • ほかIT企業2社経営、技術顧問3社担当 • Elixirコミュニティ「fukuoka.ex」創始者 • Elixir国際カンファレンス「ElixirConf JP」創始者 • 「ElixirImp」「LiveView JP」ファウンダー • AIスクール「AIジョブカレ」福岡校開校者 • Elixirスクール「Elixir |> College」創始者 • 高知県 工業技術センター AI・機械学習 研修講師 • 上級AI開発コミュニティ「IAIFukuoka」発足人 • 独立行政法人 中小企業基盤整備機構 コンサルタント
  6. DigiDockConsulting: 先端技術で世界を改変する企業 Elixir DX / Digitalization D2C SaaS a Box

    / IoT Digital Marketing Low Latency Huge Connections Micro Service Distributed System Concurrent System VR / AR Data Science Machine Learning Edge Computing Insourcing IT Material Creation Business Optimize Data Analysis HRD Space Data Utilize DX Diagnostic Tool Elixir-Prod. Support Elixir HRD Support
  7. AR測量レス (同左) 起工測量 光波 GIS (RTK測 位) 丁張設置 AR丁張レス ICT丁張レ

    ス 起工測量 光波 従来施行 中小企業 約1週間以上 (5~20倍) ※丁張運搬の負荷や 資材不足、天候 不良等で長引く ICT施行 大手企業 1日以内 (数時間) AR施行 企業規模 問わずに 利用可能 2cm精度のCADを現場で見ながら測量・丁張不要の即日施行で20倍速+費用10倍低下 丁張重機施行 ICT重機施 行 図面検証 図面検証レス 図面検証レス GNSS搭載重機 月レンタル100万 GNSS搭載重機と 同等以上の快適な 体験を月数万円で AR重機施行 内業CAD帰社 帰社レスCAD A B C 内業CAD 内業CAD修正 内業CAD帰社 内業CAD修正 Nonfi①:CADデータを現実上に位置情報で合成
  8. DD.デジマパック:AI・MLがWeb最適化し、D2C実現 All in one デジタルマーケティングプラットフォーム DD.デジマパック Web/SNS行動解析 Web/SNS課題抽出 AIによる改善提案 改善施策実施

    改善効果検証 ECサイト制作支援 掲載商品撮影支援 受注管理支援 商品保管、管理支援 商品配送支援 ①WebサイトとSNSのファン行動分析から改善施策をAIが自動で提案、効果検証も可 ②ファンとの交流起点となるEC構築と、受注/商品保管/配送の実業務まで全カバー 顧客データ分析・管理 営業活動支援 顧客アプローチ D2C/ファンコミュニティ ③D2Cを立上げ、ファンと共に成長していく世界標準の事業 DD.デジマパック D2Cアドバンストエディション
  9. my favotite technologies & implements Twitter / NeosVR / Discord

    @piacere_ex Github / YouTube / Qiita @piacerex 40年前からプログラマ(職業のそれは27年) 書けるプログラミング言語は158言語 小学4年生でゲームプログラミングを始め、現在も プロダクトとOSSを開発し、事業やコミュニティの 優位性へと転用する開発者/経営者/PO 大手企業をメイン顧客として、IT事業/UX・UI/ D2Cマーケティング/VR・AR/エッジコンピュー ティングに絡む事業・企画支援、プロダクトを提供 技術コミュニティも複数発足・主催しており、毎月 イベント開催とLT、ライブコーディングをこなす piacere / 森 正和 “piacere” is an Italian word, means “Joy” == == Real Online VR / AR 普段はこんな事業家/エンジニアの私ですが、分散OS やVM/コンパイラの開発・研究を大学で行い、40歳 を過ぎてから数式/理論物理学バリバリの科学 コミュニティを発足し、プログラミング論やAI・MLを 大学等に教えている関係でサイエンティストの顔に →今回はコンピュータサイエンス多めの内容です
  10. 目次 01 いまITの課題って何だろう? 03 04 05 02 06 それ、Elixirで片付きます そんなElixirをCPU化していく

    Elixir Chipが叶える可能性 さらに次世代のHWによる未来 今後のElixir Chipのお話は…
  11. それ、Elixirで片付きます ①分散/並行・並列に特化した実行単位とメカニズムを標準搭載 • マイクロサービス構築/解体に重い腰を上げる必要は無いです ◦ サービス分割をAPI群やサーバ単位で無く、プロセス単位で ▪ さらに「Umbrella」を使えば、サーバ単位移転も可能 ▪ ProtoBufより高速なプロセス間通信でElixir以外と接続

    ◦ 障害切り分けと復旧も、プロセスグループ単位で行えます • スレッドセーフ対応が根本から不要です ◦ ロック自体が不要な並行・並列タスクが実行可能です ◦ (後述する③共有リソースのところで解説します) • クラウド無しでもエッジコンピューティングが構成できます ◦ マルチクラスタやマルチマスタ/インメモリDBを標準搭載 ◦ (後述する④プロセス単位調整で続きを解説します) 02
  12. それ、Elixirで片付きます ②並行・並列ネイティブでデータ処理に特化された言語/FW仕様 • イミュータブルなメモリ利用が並行・並列処理を担保します ◦ メモリの破壊的更新は並行・並列の妨げだがElixirには無い • データ処理とその並行・並列・ネイティブコード化が可能です ◦ 「Enum」「Stream」「Flow」「Broadway」「Nx」

    • API無しでサーバデータ更新をフロントに直接連携できます ◦ 「LiveView」を使えば、サーバデータ更新をAPI無に直接 フロント側に反映できます ◦ 「ElixirDesktop」によるスマホネイティブアプリも同様 • 例外等のムダに惑わされず、「本質」に集中して開発できます ◦ ループの排除/再帰不要な関数型/プロセスの自動再起動 ▪ プロセスクラッシュ時のオートリブートも設定可能 02
  13. それ、Elixirで片付きます ④分散とスケーリングを「プロセス単位」で調整 (PC間移動も) • エッジコンピューティングネイティブ:クラウド無で分散環境 ◦ マルチクラスタが標準搭載で、「libcluster」と組み合わせ ればオートスケールも実現できます ◦ マルチマスタ/冗長対応DBの「Mnesia」も標準搭載で、

    分散インメモリDBがRedis (Cluster/Sentinel) 無で実現 ◦ 前述したプロセス単位のスケーリングも併用が可能です ◦ このように、クラウド無でも分散NWシステムを構築 • クラウド/エッジサーバ/エッジの間を動的プロセス移動も ◦ Elixirクラスタ間は「nl」関数でモジュールをデプロイ可能 ▪ 動的なクラスタ間プロセス移動を叶えられる ◦ CPU利用率やメモリ利用率を見ながら、空きのある筐体に プロセスを移動する先は、スマホやIoTでもOKです 02
  14. それ、Elixirで片付きます ⑤性能と電力消費のトレードオフが低コストで可能 • データ処理の性能と電力消費のコントロールを下記で叶えます ◦ 性能アップは、通常データ処理 (Enum等) のマルチコア版 である「Flow」へと置換する等、マルチコア化が容易です ◦

    性能抑制と消費電力抑制は、データフローの制御が可能な 「Broadway」でRateLimitを掛けることで実現できます • 省電力デバイス開発もElixirエコシステムをそのまま使えます ◦ 「ElixirDesktop」でSPAをスマホネイティブアプリに変換 ◦ IoT開発は「Nerves」で組み込み開発と思えない高度さ ◦ Web/クラウド向けに開発した資産を転用できます ◦ これらをプロセス移転と組み合わせれば、プロセス単位で の省電力デバイスへの部分移行も簡単に叶えられます 02
  15. 事例:Broadwayでの性能抑制 02 • RDSを叩くRuby製APIサーバのCPU使用率が常に60%越… • 原因は、LINEから送出され、Elixirでバイパスしているパイプ ラインが速過ぎた (Elixirだと良くあるケース) ◦ 実は、LINEのVMも、Elixirと同じVM

    • Elixirバイパスに「Broadway」のRateLimitを設定し、安易に 回避したら、普通に正常化したw ※なおSQSだと死に目に… ◦ 本来はAPIサーバのElixir化が良筋だが依存関係が多く回避 QoS メッセージ集約APIサーバ ※QoS無だとパンクする 高速メッセージ群 性能抑制された メッセージ群 他サブシステム 多数接続 (APIサーバ換装困難)
  16. そんなElixirをCPU化していく • 現代のコンピューティングでは不可能なレベルの「性能向上」 と「省電力」、そしてエンジニアの「工数削減」が叶う期待 • この着想は分散型ID規格団体「DID Foundation」で活動する Brooklyn ZelenkaさんのPodcastを翻訳した際に芽生えました 03

    • コラムは「Elixir ② Web3」でググれば見つか ります • このコラムの「イミュータ ブルが分散コンピューティ ングに有利なElixir」でこの モチベーションおよび背景 がご覧いただけます
  17. 翻訳コラムを要約し、深堀りすると… イミュータブルな関数型言語はHW化することで、 凄まじい性能を持つ分散システムの構築が可能となる • オブジェクト指向言語は、コードの中に変更可能なメモリ部分 (メンバ変数) を持つため、HW化時に計算ロジックとデータを 分離しにくく、メモリ破壊的更新によりキャッシュ制御が複雑 ◦ CPU/メモリ間のやり取りが増え、性能劣化と電力消費増

    を引き起こす (≒フォン・ノイマン・ボトルネック) ◦ インスタンス自体もメモリなので、この傾向がより高まる • Elixirのようなメモリ不変 (≒イミュータブル) で計算ロジック が疎な関数で構成されるものであれば、ハードウェア化が容易 でフォン・ノイマン・ボトルネックも回避しやすくなる 03
  18. 例.Elixir Chipはメモリに戻さず処理 • Elixirのパイプを従来CPUとElixir Chipで比較してみます ◦ 従来CPUは頻繁なメモリ操作があるがElixir Chipは最小限 • ミュータブルな言語はより悲観的

    (≒言語が性能と電力に影響) • こうした概念とテクニックを突き詰めれば、並行・並列/分散 とデータの高速処理に特化したコンピューティングが可能 03 従来CPU Elixir Chip メモリ メモリ ① ② ③ ④ ⑤ ① ② ③ ④ ⑤ list = [1, 2, 3, 4, 5] list |> Enum.map(& &1 * 3) |> Enum.filter(& &1 >= 8) |> Enum.sum() ① ② ③ ④ ⑤
  19. はて、CPUって簡単に作れるの?… • ハード面はFPGA (Field Programmable Gate Array) で気軽 に構築/テストすることもできるし、本格的に量産する際は ASIC

    (Application Specific Integrated Circuit) で構築可能 ◦ ASICは一度焼くと書き換え不可だが単価が安い ◦ FPGAはプログラマブルで、一度焼いた後に書き換えも可能 03 • FPGAなら数十mWの電力で 駆動させることもできるし、 実は高速計算も可能 • CPUレベルで性能と消費電力 を制御できる点が重要 • ソフト面はRISC-VのようなOSSもあり CPUスタートアップも数社ある位
  20. Elixir Chipが叶える可能性 ①軽量なマイクロサービス構築/解体により、大規模分散基盤と リーンを両立 (性能とオフロード、電力消費制御、耐障害性も) • 独立高速開発と、気軽にモノリシックへ戻せるメリットの両立 ◦ 少量作ってグロースさせていくマイクロサービス本来の姿 •

    サーバ300台を10台にできるElixir、Elixir Chipで更に1桁増 04 ◦ クラウド月額1,500万円は Elixir化で50万円にでき、 Elixir Chip化で5万円台に ◦ Google並の高性能コンピ ューティング環境を普通の 企業が持てる未来を創る
  21. Elixir Chipが叶える可能性 ②いつでも並行・分散・マイクロサービス化できて、性能課題を 抱えない機械学習/ディープラーニング内臓インフラの実現 • 前述マイクロサービスメリットと並行・分散をAI・MLと共に ◦ Elixirは2022年以降、Stable Diffusion等の生成AIも動作可 ◦

    APIを生やさなくてもAI・MLをマルチクラスタ化できます ◦ 先端Python AIも、Elixirから「ErlPort」で呼べます • AI・ML以外の処理で性能問題を抱えません 04 ◦ Pythonで構築した系のAI部は NumPyがC++で高速な一方、 AI以外は性能課題を抱えやすい ◦ Elixirは性能課題を抱えず、作り 直しやリファクタリングは不要 顔DB 照合 顔検出 API API DB
  22. Elixir Chipが叶える可能性 ③「非データ」…スモールデータ/ミドルデータは変換後データ を保存/ロードするよりも都度データ変換した方が省電力になる • 元のデータさえあれば、後は欲しいデータを計算で生成できる ◦ 前述したElixir Chipでのパイプ例は、その典型的な例 ◦

    「非データ」とは、写像のみでデータを表現する概念 ▪ 「写像」≒「関数で希望するデータへと変換すること」 ◦ OOP提唱者のアラン・ケイが約40年前に構想したもので、 本来のOOPとは「非データ」と「メッセージング」を指す ▪ アラン・ケイが2020年に受けたインタビューで後悔 • メモリ書き出しせず、NWの向こうにデータを返せる可能性 ◦ 「メッセージング」はプロセス間通信で情報伝達する概念 ◦ Elixirのメッセージパッシングは、メッセージングそのもの ◦ これもElixir Chipで高速再現され、メモリ利用を最小化 04
  23. Elixir Chipが叶える可能性 ④スマホやドローン等の地表エッジと、衛星やローバー等の宇宙 エッジに重要な省電力とオフライン対応、エッジAI・ML化 • エッジはPCと別世界な省電力とクラウド途絶対応が必須に ◦ モバイル電力や太陽光発電は100v程、電力は自由で無い ◦ 消費電力を最低限に押さえるため、FPGA製CPUが活躍する

    • エッジ側/エッジ単体のデータ分析やGPU無AI・MLも重要 04 クラウド エッジサーバ エッジ 通 信 途 絶 で オ フ ラ イ ン ◦ 通信途絶時や、データを オフィスに持ち帰る手間 を省くために、エッジ側 でのデータ処理も重要 ◦ 消費電力の観点からGPU が利用不可でも高速行列 演算が可能なElixir Chip
  24. さらに次世代のHWによる未来 • Elixir Chipの本当のポテンシャルを引き出すには、現在のコン ピューティングアーキテクチャ (フォン・ノイマン型) やHW 利用の呪縛を解く、下記アーキテクチャ浸透も重要になります ◦ これらの研究は、ここ10年で世界の大手や研究機関が開始

    a)フォトニクス … CPU/メモリのバスよりも光NWの方が高速 b)メモリ主導アーキテクチャ … JAMStackのような系はHW化 されたWebサーバ上メモリとNWで何百倍も高速化 (計算が無い) c)ネイバーフッドコンピューティング … 近所のデータで返す d)Lend GPU to Earn … 全世界のスマホはGTX1060級GPUが 搭載済 (snapdragon 888やA14以降) でこれらを繋げばクラウド レンダリングと呼ばれるNW経由のGPUパワー提供が可能になる 05