• 検索結果がありません。

分散共有メモリ型組込みシステムにおける遅延性能確保とコア割付け自由化に関する一手法

N/A
N/A
Protected

Academic year: 2021

シェア "分散共有メモリ型組込みシステムにおける遅延性能確保とコア割付け自由化に関する一手法"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 74 回全国大会. 3A-1. 分散共有メモリ型組込みシステムにおける遅延性能確保と コア割付け自由化に関する一手法 撰. 暁久†. 大塚. 潤†. 桐生. 隆介‡ 富士通(株)‡. 富士通九州ネットワークテクノロジーズ(株)†. 1. 背景と目的 近年,組込み機器のデータプレーンの処理を ハードウェアではなく,マルチコアプロセッサ を使いソフトウェアで並列処理する事例が増え ている.このような並列処理では AMP を用いる ためタスクをコアへ静的に割付ける Affinity 設 定が必要で,組込み機器においては CPU のコス トを極力削減したいためその最適化には試行錯 誤を伴う.そのためコア割付け変更の容易性が 開発効率化上,重要となる. それらマルチコアプロセッサを複数個高速 IO で結合したクラスタ構成においては,特定プロ セスが他プロセスとデータを受け渡す際に,チ ップ内通信かチップ間通信かで宛先や通信手段 を変える必要がある.ところがコア割付け変更 の容易性のためにこの違いを socket や TIPC[1] など既存の IPC ライブラリで隠蔽したコードを 書いた場合, 通信遅延が数 10us~100us 超と大 きくなりすぎる課題があった. そこで本稿では,クラスタ用フレームワーク を開発し,数 us レベルの低遅延性能とコア割付 け自由化を両立させる開発手法について述べる.. 2. 開発したフレームワーク 一般に並列処理で遅延性能を高めるためには, データを処理するコアと,コア間でデータ転送 する Direct Memory Access(以降 DMA と略)が, お互い待合せる事なく並列動作することが重要 となる.そのために処理面と転送面とを交互に 使用するダブルバッファを転送区間毎に個別に 持ち,コア処理中に DMA が裏で次の処理データ をオーバラップ転送する事により各送受信コア が独立に並列動作できる事を基本とした.転送 区間毎に用意するバッファにデータが直接送ら れるため,受信タスクはドライバからのコピー やキューイングが介在することなく処理を始め られる.これをチップ内,チップ間で同じ転送. メニューを提供できる様に隠蔽化するために, 両 DMA で共通的に提供されている転送機能を抽 出して論理レベルで指定可能なメニューとし, 宛先コアやアドレスなどハード依存するコード をコード自動生成により埋め込むことにした. 尚,チップ間 DMA には Serial Rapid IO(以降 sRIO と略)の DirectIO モードを用いる事でクラ スタ内の全 CPU の任意のメモリ空間へ互いに DMA 転送できる構成とした.. コ ン パ イ ル タ イ ム. コード自動生成 性能:経路毎 最適に個別 生成したAPI で直接DMA. 機能C. ラ ン タ イ ム. 機能A Send_B 自動生成API 自動生成. 機能B Buf_C. Send_C. CPU1. 機能B Buf_A Buf_B. 論理層. sRIOスイッチ フレームワーク層. CPU0. 柔軟性:機能のコア割 付けを簡単に変更可能. 物理層. Buf_B’. CPU2. 図 1 開発した 開発したフレームワーク したフレームワーク概要 フレームワーク概要. 開発したフレームワークの概要図を図 1に示す. コンパイル時にアプリ開発者が記入した論理定 義と物理定義を基に転送経路毎の IPC ライブラ リ(以降 API と呼ぶ)や,受信バッファ領域定 義などのソースファイルを自動生成するツール を開発した.アプリ開発者が転送経路毎に生成 された API を Call するように記述するだけで, A method to reduce tradeoffs between performance goal and 実行時には API 内で論理→物理変換が行われ, ease of affinity change on clustered embedded systems. 論理定義に指定した宛先の物理アドレスへデー † Akihisa Erami, Fujitsu Kyushu Network Technologies Ltd. タが転送される.例えば図 1で,タスク B の割 † Jun Ohtsuka, Fujitsu Kyushu Network Technologies Ltd. ‡ Ryusuke Kiryu, Fujitsu Ltd. 付けを CPU#0 から CPU#2 へ物理定義上変更した. 1-25. Copyright 2012 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 74 回全国大会. 場合,再度自動生成すると受信バッファは CPU#2 のメモリ上 B’の位置へ移動し,CPU#0 のタスク A が call する API の内部はそれまでのチップ内通 信から,宛先 CPU#2 の B’へのチップ間通信へ変 更される.ここでタスク B のコア割付け変更に 際して,タスク A,B 共にコードを修正する必要 は無くなった.. sRIO ドライバ単体での遅延時間に比べ,フレー ムワークを適用した遅延時間はいずれのデータ 長においても一定の数 us のオーバヘッドしか観 測されなかった.TIPC の遅延時間と比べると約 1/4~1/5 の値であった.. 5. 考察. 遅延性能の測定結果は,ほぼ期待通りの低遅 延を実現できた.測定は全て 1 回のデータ転送 によるものであり,CPU#2 で受信データを返送す 遅延性能測定の構成について述べる.チップ間 の測定では2つの CPU#1/#2 間を sRIO で接続し, る際コアによるコピーが発生しない為,全デー タ長で同様のオーバヘッドになったのは予想通 CPU#1 から送信したデータを CPU#2 で折り返しそ りである.sRIO はハードによる送達確認機構を のまま CPU#1 へ返送する構成において,CPU#1 で 持つ等 GbE に比べ元々遅延性能に優れる[2]為, データ送信前から返送データ受信後までの所要 TIPC より結果が良いのは想定済である.初回の サイクル数を測定し時間に換算し 1/2 にした. チップ内の測定は同様の事をコア間で実施した. 測定結果が悪い結果になっているのは API がキ ャッシュミスした為と思われる.自動生成によ 評価環境にはチップ内・チップ間の DMA を複数 り経路毎個別の API を生成している為, 1 箇所 チャネル具備するマルチコア CPU を OS 無しで使 のドライバコードで全経路分を処理する場合に 用した.尚,参考の為に TIPC について,同程度 比べ,i キャッシュはミスする確率が高い.生成 の処理能力の CPU に Linux を載せ GbE で 2 台対 するコードのバイナリを極力 1 キャッシュライ 向させて同様の測定を実施した.尚,チップ間 ンに収める工夫を行ってはいるが,使用におい sRIO は実運用より遅い 1.25GHz×1 レーンで使用 ては無闇に 1 コアが扱う転送経路数を増やしす し,比較対象の TIPC で使用した GbE と物理的に ぎない様,アプリ設計に注意が必要であろう. 同条件にした. 一方,コア割付け変更の容易性については, 目的は達成されたが,弊害も出た.コア割付け 4. 性能評価結果 変更やバッファサイズ・数変更により,割付変 遅延性能測定結果を図 2,及び図 3 に示す. 更当事者でないコアについても受信バッファの 18000 16000 アドレスが変わり,その都度全 CPU で再ビルド 14000 が必要となった.これについては自動生成ツー 12000 ルのバッファ割付アルゴリズムを修正すること 10000 フレームワーク(チップ間) である程度軽減することができたが,フルメッ フレームワーク(チップ内) 8000 シュのトポロジを許容する仕組みである以上, 6000 4000 完全に避ける事はできない問題である. 遅延時間[ns]. 3. 性能評価方法. 2000 0 1. 2. 3. 4. 5 6 測定回. 7. 8. 9. 6. 結論. 10. 図 2 送受信合計遅延時間の 送受信合計遅延時間の測定結果[1KB 測定結果[1KB 転送] 転送] 700 600. 本稿のフレームワークを開発したことにより, 遅延性能目標とタスクのコア割付け変更の容易 化を両立させる事ができ,開発効率化に効果が あった.. 転送遅延[us]. 500 400. 7. 参考文献. TIPC フレームワーク sRIOのみ. 300. [1] “TIPC Home Page”, http://tipc.sourceforge.net/ [2] “Serial RapidIO vs 10Gigabit Ether” http://www.idt.com/content/facn_idt_feb2011 _Print.pdf. 200 100 0 0. 5000. 10000. 15000. 20000. 転送データサイズ[byte]. 図 3 TIPC とのチップ とのチップ間転送遅延比較 チップ間転送遅延比較. 1-26. Copyright 2012 Information Processing Society of Japan. All Rights Reserved..

(3)

図 図      3 33 3      TIPC TIPC TIPC との TIPC との との とのチップ チップ チップ チップ間転送遅延比較 間転送遅延比較 間転送遅延比較 間転送遅延比較

参照

関連したドキュメント

および皮膚性状の変化がみられる患者においては,コ.. 動性クリーゼ補助診断に利用できると述べている。本 症 例 に お け る ChE/Alb 比 は 入 院 時 に 2.4 と 低 値

耐震性及び津波対策 作業性を確保するうえで必要な耐震機能を有するとともに,津波の遡上高さを

層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS

補助 83 号線、補助 85 号線の整備を進めるとともに、沿道建築物の不燃化を促進

本案における複数の放送対象地域における放送番組の

据付確認 ※1 装置の据付位置を確認する。 実施計画のとおりである こと。. 性能 性能校正

⼝部における線量率の実測値は11 mSv/h程度であることから、25 mSv/h 程度まで上昇する可能性

定的に定まり具体化されたのは︑