Intel Arria10 SoC : 初期性能評価(全体像と評価方針編)- AD変換前提の成立性をどう見るか
はじめに
この記事は、Intel Arria 10 SoC を使った初期性能評価の全体像を、記事を複数に分けて追いやすい形でまとめたものです。
今回の目的は、AD変換後のデータを受け取って演算する処理が、Arria10 SoC 上で現実的に成立しそうかを確認することです。
いきなりシステム全体の完成度を評価するのではなく、まずは演算部を切り出して段階的に見ていきます。
この記事でお伝えしたいこと
この段階で確認したいポイントは、次の1点です。
AD変換後データに対する基本的な演算処理を、Arria10 SoC で無理なく回せる見込みがあるか。
「最終製品として十分か」を今すぐ断定することは目的ではありません。
まずは、次の検証に進む価値があるかを判断するための材料をそろえる、という位置づけです。
なぜ段階評価にするのか
実運用の性能は、演算以外にも多くの要素に左右されます。
- AD変換器のサンプリング条件
- FMC 経由のデータ転送
- DMA の構成と転送効率
- メモリアクセスとバッファ設計
- 割り込み処理や OS オーバーヘッド
これらを最初から全部まとめて評価すると、どこがボトルネックなのかを切り分けにくくなります。
そのため本連載では、まず演算カーネルの傾向を把握し、段階的に周辺要素を足していく方針を採用しています。
今回の評価範囲
評価する内容
- Arria10 SoC 上での単純な数値変換処理
- Linux 実行とベアメタル実行の差
- コンパイラ最適化オプションによる差
今回は評価対象外の内容
- AD変換器の実機接続
- FMC 通信の実測
- DMA 転送を含む端点間レイテンシ
- 長時間連続動作時のジッタやドロップ率
このように評価範囲を明示しておくことで、「今回分かること」と「次段階で確認すべきこと」を混同しにくくなります。
比較対象CPUの前提
今回の一次評価で比較に使ったCPU前提は次のとおりです。
| 区分 | CPU情報 | 備考 |
|---|---|---|
| Arria10 SoC 側 | ARM Dual Core Cortex-A9 @ 1.5GHz | Linux / ベアメタルの両方で評価 |
| 参照PC側 | Intel Core i7-6700 @ 3.3GHz |
Core i7-msvc(release) として比較表に記載 |
一次評価で使った指標
一次評価では、浮動小数点配列を整数配列へ切り捨て変換する単純な処理を使っています。
for(i = 0; i < n; i++) {
iy[i * iys] = (long)(u[i * ius]);
}
この処理を採用した理由は、次のとおりです。
- 処理内容がシンプルで、比較の意図が明確
- 最適化オプションの影響を見分けやすい
- Linux とベアメタルの相対差を観察しやすい
- 後続の演算設計時に、基準値として扱いやすい
結果の読み方
このベンチマークは、単純な数値変換カーネルの比較としては十分に有効です。
ただし、適用範囲は次のように捉えるのが安全です。
この段階で判断できること
- 演算カーネルの相対性能
- 実行環境差(Linux / ベアメタル)の傾向
- 次段階へ進む妥当性の一次判断
この段階だけでは判断しきれないこと
- 実機 AD 入力込みの総合性能
- FMC / DMA を含むシステム全体性能
- 実運用時のレイテンシ保証
- 長時間運転時の安定性
本記事の立ち位置は「最終結論」ではなく、次の検証ステップを合理的に決めるための土台として参考にしていただければ幸いです。
比較環境の見方
今回の比較は、主に次の2系統です。
- Intel Arria10 SoC Linux(Angstrom Linux)
- Intel Arria10 SoC ベアメタル
Linux は運用性が高い一方で、スケジューリングや割り込みの影響を受けます。
ベアメタルは制御層が薄いため、演算部の素の傾向を把握しやすいです。
この2つを見比べることで、
- 運用性を優先したい場合の現実的な選択
- 演算効率を優先したい場合の選択
を検討しやすくなります。
今回の評価で見ておきたい構成仮説
今回の一次評価で最終的に見たかったのは、
Arria10 SoC の HPS 側デュアル Cortex-A9 を役割分担して使えるか、という点です。
現時点の構成仮説は、次のようなものです。
- FPGA 側で AD 変換結果を受ける
- HPS 側の CPU0 でベアメタル処理を動かし、演算を優先する
- HPS 側の CPU1 で Linux を動かし、表示・設定・結果受け渡しを担当する
構成イメージは、次の図のとおりです。
つまり、演算はベアメタル側へ寄せ、Linux 側は運用インターフェースに寄せる構成が成立しそうかを見たい、というのが本連載の背景です。
ただし、この構成は単純な Linux / ベアメタル比較だけで直ちに確定できるものではありません。
CPU 間のメモリ共有、割り込み、受け渡し方法、AMP 的な実装条件まで含めて次段階で詰める必要があります。
連載の読み順
このテーマは、次の順で読むと流れをつかみやすいです。
- 全体像と評価方針編(本記事)
- ベンチマーク実装編
- 結果解析編
- 環境構築編
- 実行基盤編
特に、結果だけを切り取って見るのではなく、
「どの条件で測定したか」と「まだ測っていない範囲」をセットで読むことが大切です。
まとめ
- 本記事は、AD変換込みの完成評価ではなく、演算部の初期成立性を確認する一次評価の整理です。
- 浮動小数点配列を整数配列へ切り捨て変換する処理は、相対比較の入口として扱いやすい指標です。
- 一方で、FMC / DMA / AD 実機接続を含む評価は次段階で必須です。
- 目線としては、HPS の 2 コアを「ベアメタル演算側」と「Linux 運用側」に分ける構成候補を見据えています。
次回以降の記事で、環境依存の詰まりどころや実装条件も含めて、段階的に検証範囲を広げていきます。
読み進めるうえでの整理の助けになれば幸いです。