産業および医療機器のIoT化に向け、FPGAでエッジデバイスを強化
IoTとAIへの取り組みを強化するザイリンクスは、エッジ側での分散処理を提案する。デジタル・ロジックをフレキシブルに実装できるFPGAの特性を生かし、センサ・インタフェース、データ形式の整合、分析処理などをエッジ側に分散させることで、IoTシステム全体の最適化を図る狙いだ。合わせて、ディープラーニングの推論処理をエッジ側に統合する開発環境などを包括的に提供する。
IoTとAIへの取り組みを強化するザイリンクスは、エッジ側での分散処理を提案する。デジタル・ロジックをフレキシブルに実装できるFPGAの特性を生かし、センサ・インタフェース、データ形式の整合、分析処理などをエッジ側に分散させることで、IoTシステム全体の最適化を図る狙いだ。合わせて、ディープラーニングの推論処理をエッジ側に統合する開発環境などを包括的に提供する。
AIの推論に適したデバイスとして注目を集めるFPGA。ニューラルネットワークモデルを自在に構成・変更でき、高スループット*、低レイテンシ**、高エネルギー効率***などのメリットが評価される中、FPGAの大手ベンダーであるザイリンクスは学習済みのニューラルネットワークを円滑に実装できるソリューションを提供している。ここではAIを中心に取り組みや強みを聞いた。
MUを使ってMPSoCの温度と電力を監視する 今回は、MPSoCのPMUを活用してみましょう。これまではMPSoCのArm Cortex-A53とArm Cortex-R5を活用してきましたが、今回はもう一つのプロセッサであるであるPMUを活用してみましょう。
今回は、Arm Cortex-A53上のLinuxとArm Cortex-R5上のFreeRTOSをデバッグしてみたいと思います。デバッガとしては、Armを使ったシステム開発にて根強い人気を誇る「adviceLUNA Ⅱ」を選択しています。
今回は、MPSoCのPS部を活用して、Linuxの仮想化の実装であるXenを動かしてみましょう。MPSoCは、Arm Cortex-A53クアッド コアで複数のOSを動作させられる高いパフォーマンスなので、仮想マシン(VM)を動かすことができます。
今回は、Cortex-A53上のLinuxでコアとペリフェラルの関係を見てみましょう。Linuxは基本的にはマルチコアはSMP(Symmetric Multi Processing)で動作するため、動的に空いているコアに処理を割り当てます。ただし、静的に特定の処理を特定のコアへ割り付けることも可能です。その具体的な方法を見てみましょう。
今回は、前回動かしたOpenAMPを使ってコア間通信をしてみましょう!OpenAMPにはコア間通信の仕組みであるRPMsgが実装されています。OSに依存しないため、アプリケーションのポータビリティが高く、様々なユース ケースに対応できます。
今回は、MPSoCでOpenAMPを使って、第1回で動かしたLinuxと第2回で動かしたFreeRTOSを連携させてみましょう!OpenAMPは正式名称OPEN ASYMMETRIC MULTI PROCESSINGといい、The Multicore Association(MCA)で規定する非対称マルチコアで各コアが連携できるようにコア間の通信やリソースの管理を行うための標準規格です。
今回は、MPSoCのArm Cortex-R5上でFreeRTOSを動かしてみましょう!FreeRTOSはその名の通りフリーなリアルタイムOSです。2017年末にAWSのオープン ソース プロジェクトになり、ライセンスはMITになりました。Armを始め多くのCPUをサポートし、TCP/IP、TLS、ファイルシステム等のミドルウェア エコシステムもあります。