Cyber-Physical Systems と High Performance Computing について

こんにちは、[Iwaken Lab. Advent Calendar 2024](https://qiita.com/advent-calendar/2024/iwakenlab) の17日目を担当する[Koya](https://twitter.com/koya_b3)です。

ARデバイスを作ることを目標に、OSやゲームエンジンの自作をしたり、UnityやUEを使ったアプリケーション開発をしたりしている大学院生です。

今年の秋学期に Cyber-Physical Systems (CPS) に関する講義を受講したのですが、実質的に High Performance Computing (HPC) の勉強をずっとしていたといっても過言ではなく、CPSとHPCは切っても切り離せない関係にあると感じました。CPSを学ぶことにより、今までとは少し違った角度でARデバイスについて考えられるようになった気がしていて、色んな技術者が集まるXR界隈だからこそ、皆さんがCPSからどんな着想を得るのか気になります！

ただ、さすがにCPSに出てくるHPCの技術を一つ一つ説明していくと切りがないので、今回はざっくりとCPSについて書いていき、最後の方でHPCの技術を雑に紹介する形にしようと思います。それぞれの細かい解説はいつか記事にするかもしれません。

## Cyber-Physical Systems（CPS）について
CPSの概念は割と曖昧で、人によって説明の仕方が割と違うと思うので、色々な文献を参考にすると良いと思います。

### CPSの例から考えてみる
CPSとされているものの例をいくつか挙げてみます。

- 自動運転（車/飛行機/ドローン）
- ペースメーカー
- スマートシティ/ビルディング

これらに共通することから推測すると、「**物理世界の情報を収集して、リアルタイムで処理した結果を基に、物理世界のモノを制御するシステム**」であれば、CPSと呼んでよさそうです。

### CPSの全体像
<img width="70%" alt="action graph" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618512/a561b2f9-b68c-1afe-ce38-b37dd161ca65.png">

基本的に、CPSでは以下の処理をループします。

1. 物理世界における環境をセンサーで**モニタリング**する
2. **ネットワーク**などを通じてコントローラーにデータを渡す
3. データを処理し、その結果に応じて、アクチュエーターをリアルタイムで**制御する**

このループによる制御のことを**フィードバック制御**と言ったりします。

:::note
**アクチュエーター**
アクチュエーターは物理世界のモノを動かすための装置のように考えると良いと思います。例えば、ドローンの自動操縦においては、ドローンのプロペラを回転させて飛行を制御する**モーター**やカメラの角度を調整する**サーボモーター**などがアクチュエーターとなります。これらのアクチュエーターが制御システムからの指示を受けて動作することで、ドローンの飛行やカメラの操作を実現します。
:::

### CPSを構成する３つの要素
- **Computation**
センサーから収集されたデータをリアルタイムで処理しなければならないので、高速な処理能力が求められます。
- **Communication**
センサー、アクチュエーター、制御システムなどが相互に情報をやり取りすることで、システム全体が協調して動作します。これには on-chip や off-chip のネットワーク技術が使用され、リアルタイムでのデータ伝送が求められます。
- **Control**
得られたデータや処理の結果から、リアルタイムでアクチュエーターを制御することで、物理世界に干渉します。

### 類似システムとの違い
- **IoT (Internet of Things)**
物理世界のデータを取得とそのやり取りを主な目的としており、物理世界への干渉はありません。
- **Networked Embedded Systems (NES)**
必ずしもリアルタイムの処理が必要となるとは限りません。

### XRとの類似性
ARデバイスについて考えてみます。
- **Computation**
トラッキングやSLAMによる自己位置推定、それに応じたグラフィックス処理などを全てリアルタイムで処理する必要があります。
- **Communication**
ARデバイスには、ハンドトラッキングやアイトラッキングを行うセンサーの他に、自己位置推定のためのカメラやセンサーなどもあり、物理世界の情報を得るためには、それらとのコミュニケーションが必要となります。
- **Control**
アクチュエーターを介した物理世界への干渉はしていないと考えられます。一方で、人間をアクチュエーターとすることによって、物理世界と干渉することができるという見方もできるかもしれません。（例：ARナビゲーションシステム）

::: note
スマホはCPSか組み込みシステムか？
結論としては、周辺機器や3D graphics driverなど、様々な機器と連携する必要がある上、ドローンと接続して制御することもできるため、スマホはCPSとも言えるようです。スマホがCPSなら、ARデバイスもCPSと考えて良さそうですね。
:::

### HPC技術の必要性
CPSとXRは考慮すべき点が非常に似ていると感じていただけたのではないでしょうか。
CPSでは、ペースメーカや自動運転などのように、リアルタイム性能が低いと命に関わることもあるため、高速化技術がとても重要になります。XRデバイスにおいても、高FPSや高解像度を実現するためには高速な処理能力が求められます。

コンピュータが発展するにつれて、その中身はどんどん複雑化してきています。ムーアの法則が限界を迎え、トランジスタの追加によるプロセッサ性能向上が困難になったため、マルチコア、GPU、クラウドコンピューティング、エッジコンピューティングといった技術が成熟し、HPCの新たな方向性を示しています。しかし、マルチコアを活かそうと思っても、難易度がかなり高いため、モダンなコンピュータシステムをフル活用できていないアプリケーションは少なくありません。

上記のシステムをデザインする際には、それぞれに最適なシステム設計が考えられます。ペースメーカにはペースメーカに最適なシステム、自動運転には自動運転に最適なシステムの設計があるはずです。

例えば、
- 何個のコアを同時に走らせるのか
- 逆に何個のコアをオフにでき、消費電力をどの程度抑えられるか
- どのタイプのメモリ（L1,L2キャッシュなど）がどのくらい必要になるのか
- どのようなOSが必要になるのか
- どのようなセキュリティ対策が必要となるか
- PE(Processing Element)間のパケットのルーティングプロトコルはどうするか
- flit のスケジューリングはどうするか
- 消費電力を減らすために最適なバッファサイズは何か

といったようなことです。これらを求めるために知っておくと便利なツールセットとして、以下のようなものがあります。

- Models of Computation
- Models of Communication
- Amdahl's law
- Load Balancing
- リッチ曲率
- 最適輸送アルゴリズム
- マルチフラクタル
- LLVM を活用したコードの自動マルチコア最適化
- gem5 によるシミュレーション
- オンチップのコミュニケーション最適化
- GPUアーキテクチャ

## 最後に
これはあくまで個人の推測ですが、このようにアプリケーション毎に最適なシステム構成が異なることが、近年の分散アーキテクチャに寄与していると思います。例えば、Qualcomm の Snapdragon AR2 Gen 1 や Meta の Orion などは、ディスプレイ用チップ・環境把握用チップ・通信用チップ・AIチップなどを SoC とは別に作り、ネットワークを通じてやり取りすることで、ARグラスに最適なシステムを実現しています。

Google が Android XR を発表したことによって、XRアプリ開発 や XRデバイス制作 へのハードルが下がり、XR業界に参入する企業がまた増えると思います。そんな中、クラウドとはまた少し違う、エッジ側での分散アーキテクチャというのが、今後増えていくような気がしています。CPS は幅広い分野と関わりがあるので、この記事の内容に興味を持った方は、最後に載せている参考文献の中から、興味のあるものを読みに行ってみてください！

#### 参考文献
1. Cyber-Physical Systems A Rehash or A New Intellectual Challenge? | Edward A. Lee. Available at: https://ptolemy.berkeley.edu/projects/chess/pubs/994/Lee_CPS_DAC.pdf
1. Introduction to Embedded Systems Lecture 1: Motivation: Cyber Physical Systems |  Sanjit A. Seshia. Available at: https://ptolemy.berkeley.edu/projects/chess/eecs149/lectures/CyberPhysicalSystems.pdf
1. Cyber-Physical Systems とは何か？ Available at: https://www.slideshare.net/maruyama097/cyberphysical-systems-39732189
1. Yao Xiao; Yuankun Xue; Shahin Nazarian; Paul Bogdan. "A load balancing inspired optimization framework for exascale multicore systems: A complex networks approach." 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). Available at: https://ieeexplore.ieee.org/document/8203781
1. [Cyber Physical Systems: Design Challenges](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-8.pdf)
物理システムが並列に動いているため、計算機器も並列に動かす必要性が出てくるといったようなことが記述されています。この論文の主旨とは違いますが、既存デバイスをフルに活用するためのHPC技術が、CPSやXRの開発で役に立つということを感じていただければと思います。
22. [Middleware to support cyber-physical systems](https://ieeexplore.ieee.org/document/7820605)
23. [Real-Time Middleware for Cyber-Physical Event Processing](https://dl.acm.org/doi/pdf/10.1145/3218816)
1. Robert C. Green; Lingfeng Wang; Mansoor Alam. "Applications and Trends of High Performance Computing for Electric Power Systems: Focusing on Smart Grid." IEEE Transactions on Smart Grid ( Volume: 4, Issue: 2, June 2013). Available at: https://ieeexplore.ieee.org/abstract/document/6410474
2. Wang, Jinwen, Yujie Wang, and Ning Zhang. "Secure and timely gpu execution in cyber-physical systems." In Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security, pp. 2591-2605. 2023. Secure and Timely GPU Execution in Cyber-physical Systems | Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security. Available at: https://dl.acm.org/doi/10.1145/3576915.3623197 
2. Ishida, Koki, Ilkwon Byun, Ikki Nagaoka, Kosuke Fukumitsu, Masamitsu Tanaka, Satoshi Kawakami, Teruo Tanimoto, Takatsugu Ono, Jangwoo Kim, and Koji Inoue. "SuperNPU: An extremely fast neural processing unit using superconducting logic devices." In 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp. 58-72. IEEE, 2020. https://microarch.org/micro53/papers/738300a058.pdf 
3. Hu, Edward J., Shen, Yelong, Wallis, Phillip, Allen-Zhu, Zeyuan, Li, Yuanzhi, Wang, Shean, and Chen, Weizhu. “LoRA: Low-Rank Adaptation of Large Language Models.” In Proceedings of the 10th International Conference on Learning Representations (ICLR 2022). 2022. Available at: https://arxiv.org/abs/2106.09685
4. Milakov, Maxim, and Natalia Gimelshein. “Online normalizer calculation for softmax.” In Proceedings of the Machine Learning Conference, pp. 1-12. 2018. Available at: https://arxiv.org/abs/1805.02867
5. Fedus, William, Barret Zoph, and Noam Shazeer. “Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity.” In Proceedings of the 2021 International Conference on Learning Representations (ICLR 2021). Available at: https://arxiv.org/abs/2101.03961
6. Dao, Tri, Daniel Y. Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.” In Proceedings of the International Conference on Machine Learning (ICML 2022). 2022. Available at: https://arxiv.org/abs/2205.14135
7. Talusan, Jose Paolo, Chaeeun Han, Ayan Mukhopadhyay, Aron Laszka, Dan Freudberg, and Abhishek Dubey. “An Online Approach to Solving Public Transit Stationing and Dispatch Problem.” In Proceedings of the 15th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2024). 2024. Available at: https://aronlaszka.com/publication/talusan2024online/
8. Chen, Jiale, Duc Van Le, Rui Tan, and Daren Ho. “BubCam: A Vision System for Automated Quality Inspection at Manufacturing Lines.” In Proceedings of the 14th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2023), pp. 12-21. 2023. Available at: https://dl.acm.org/doi/10.1145/3576841.3585926
9. Picek, Stjepan, Guilherme Perin, Luca Mariot, Lichao Wu, and Lejla Batina. “SoK: Deep Learning-based Physical Side-channel Analysis.” In ACM Computing Surveys, vol. 55, no. 11, pp. 227:1-227:35. 2023. Available at: https://eprint.iacr.org/2021/1092
10. Niso, Guiomar, Elena Romero, Jeremy T. Moreau, Alvaro Araujo, and Laurens R. Krol. “Wireless EEG: A survey of systems and studies.” Neuroimage, vol. 269, p. 119774, April 2023. Available at: https://doi.org/10.1016/j.neuroimage.2022.119774
11. Bojarski, Mariusz, Davide Del Testa, Daniel Dworakowski, Bernhard Firner, Beat Flepp, Prasoon Goyal, Lawrence D. Jackel, Uwe Muller, and Karol Zieba. “End to End Learning for Self-Driving Cars.” arXiv preprint arXiv:1604.07316, 2016. Available at: https://arxiv.org/abs/1604.07316
12. Li, Boyi, Yue Wang, Jiageng Mao, Boris Ivanovic, Sushant Veer, Karen Leung, and Marco Pavone. “Driving Everywhere with Large Language Model Policy Adaptation.” In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2024, pp. 14948-14957. Available at: https://openaccess.thecvf.com/content/CVPR2024/html/Li_Driving_Everywhere_with_Large_Language_Model_Policy_Adaptation_CVPR_2024_paper.html
13. NVIDIA. “NVIDIA Hopper H100 GPU: Scaling Performance.” In Proceedings of the 2022 IEEE Hot Chips 34 Symposium (HCS), pp. 1-5, August 2022. Available at: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10070122
14. Lesch, Veronika, Marwin Züfle, André Bauer, Lukas Iffländer, Christian Krupitzer, and Samuel Kounev. “A Literature Review of IoT and CPS—What They Are, and What They Are Not.” Journal of Systems and Software, vol. 200, 2023, p. 111631. Available at: https://doi.org/10.1016/j.jss.2023.111631
15. Yang, Yahan, Ramneet Kaur, Souradeep Dutta, and Insup Lee. “Interpretable Detection of Distribution Shifts in Learning Enabled Cyber-Physical Systems.” In Proceedings of the 2022 ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS), pp. 225-235. 2022. Available at: https://doi.org/10.1109/ICCPS54341.2022.00027
16. Zhao, Han, Weihao Cui, Quan Chen, Youtao Zhang, Yanchao Lu, Chao Li, Jingwen Leng, and Minyi Guo. “Tacker: Tensor-CUDA Core Kernel Fusion for Improving the GPU Utilization while Ensuring QoS.” In Proceedings of the 28th IEEE International Symposium on High-Performance Computer Architecture (HPCA), pp. 800-813. 2022. Available at: https://ieeexplore.ieee.org/document/9773253
17. Horga, Adrian, Ahmed Rezine, Sudipta Chattopadhyay, Petru Eles, and Zebo Peng. "Symbolic identification of shared memory based bank conflicts for GPUs." Journal of Systems Architecture 127, 2022. https://www.sciencedirect.com/science/article/pii/S1383762122000856 
18. Lee, Wonjae, Kukbyung Kim, Woohyun Ahn, Jinho Kim, and Dongsuk Jeon. "A Real-Time object detection processor with XNOR-Based Variable-Precision computing unit." IEEE Transactions on Very Large Scale Integration (VLSI) Systems 31, no. 6 (2023): 749-761. https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10077803 
19. Darvish Rouhani, Bita, Ritchie Zhao, Venmugil Elango, Rasoul Shafipour, Mathew Hall, Maral Mesmakhosroshahi, Ankit More et al. "With shared microexponents, a little shifting goes a long way." In Proceedings of the 50th Annual International Symposium on Computer Architecture, pp. 1-13. 2023. https://dl.acm.org/doi/abs/10.1145/3579371.3589351?casa_token=i5wf2plBnHgAAAAA:0vpZD9D_J4FIwRvm85AfEjPipMIDOnfxLC0GHUo2eGXl0X7N2uaEXxZCPvFY-9stliVH5G6oS0bq 
20. Potteiger, Bradley, Feiyang Cai, Zhenkai Zhang, and Xenofon Koutsoukos. "Data space randomization for securing cyber-physical systems." International Journal of Information Security 21, no. 3 (2022): 597-610. https://link.springer.com/article/10.1007/s10207-021-00568-1