4.6K Views
March 22, 23
スライド概要
2023/3/13「TIER IV Computing System Workshop 2023」
発表者:石川貴大
TIER IV Autowareにおける リソース競合の定量化 2023 / 03 / 13 TIER Ⅳ | Takahiro Ishikawa @sykwer 1
TIER IV プロフィール 石川貴大 (Takahiro Ishikawa) Twitter, Github @sykwer 2020.06〜 TIER IV 在籍 2022.03 東京大学情報理工コンピュータ科学 修了 (加藤研) 2023.04 同専攻 社会人博士 入学予定 専門 オペレーティングシステム, リアルタイムシステム TIER IV での担当 アプリケーションのパフォーマンス, リアルタイム性 ミドルウェア, Linux Kernel, Hypervisor, OS開発 2
TIER IV 01 / 背景と概要 Autowareにおける リソース競合の定量化 TIER Ⅳ | Takahiro Ishikawa 02 / 参考研究の手法 03 / Autowareへの適用 04 / まとめ @sykwer 3
TIER IV Autowareはリアルタイムタスク Autoware (我らが自動運転アプリケーション) には入力〜出力の時間制約がある 4
TIER IV リアルタイムってなに? ● リアルタイムの意味は濫用されがち ○ RTOS: タスクの立ち上がり時間, Context Switchのオーバーヘッドが非常に小さい ● ○ スケジューリング理論 ○ 機能安全保証 うんうん それもリアルタイ ムだね。。。 リアルタイムシステム = 出力の正しさに論理的な正 しさだけではなく, 時間的な制約が加わるシステム = リアルタイム制約のあるシステム ● 予測可能性 = システムが時間制約を守る能力を向 上させる要素 5
TIER IV リアルタイムスケジューリングの前提 前提1: Taskの立ち上がり やContext Switchの遅延 はゼロ 前提2: 最悪実行時間を見 積もることができる Deadline Relative Deadline Slack Current Period 6
TIER IV AutowareでWCET保証は不可能 ● プラットフォーム要因: マイクロアーキテクチャにおけるオペレーションに最悪実行時 間を定義できない ● アプリケーション要因: 外部環境由来によって処理の増減が激しい, キャッシュやメ モリ帯域といったリソースの競合が激しい (Memory Intensive) 7
TIER IV スループット指向システムの予測可能性 ● Autoware は ROS (Robot Operating System) のノードが200以上立ち上がる (スレッド数にして1000以上) ● ノード同士は相互依存関係を持って, Publish/Subscribe 通信を行う ● OS には当面 Linux を採用 → 研究の方向性 (の内の一つ): スループット指向のシステムにて予測可能性をマシに していく 8
TIER IV メモリ資源競合の定量化 ● 本発表の取組: リソース競合の中でも, キャッシュやメモリ帯域といったメモリ資源の 競合について定量化してみる ● 仮説: タスク固有の「リソース競合への感応性」と「システムのリソースに与える負 荷」を定量化 → リアルタイムにリソース競合由来の遅延を算出可能 ● 先行研究: クラウド環境上でのアプリケーション同士のメモリ競合を同様の考え方で 定量化した論文 (MICRO ‘11) ● 先行研究の手法をAutowareに応用してみる 9
TIER IV 01 / 背景と概要 Autowareにおける リソース競合の定量化 TIER Ⅳ | Takahiro Ishikawa 02 / 参考研究の手法 03 / Autowareへの適用 04 / まとめ @sykwer 10
TIER IV 参考研究の概要 Bubble-Up: increasing utilization in modern warehouse scale computers via sensible co-locations (MICRO ‘11) ● 目的: クラウド上の同じホストになるべく多くのアプリケーションを同居させ, クラウド リソースの利用効率を上げたい ● 手段: Applicationそれぞれに対して「固有のsensitivity (システム負荷からの影響 の受けやすさ)」と「contentiousness (システムへの負荷)」 を算出 ● リソース競合によるパフォーマンスの低下を予測 → 根拠をもってアプリケーション を同一ホストに同居させることが可能に 11
TIER IV 参考研究の手法概要 それぞれのアプリケーション固有の「sensitivity (システム負荷からの影響の受けやす さ)」と「contentiousness (システムへの負荷)」を算出 12
TIER IV 参考研究の手法 (手順1) 定められたアドレス範囲に, ランダムアク セス/逐次アクセスをすることで負荷とす る 13
TIER IV 参考研究の手法 (手順2) 1段階目 “Reporter” と呼ばれるアプリケーションの “sensitivity curve” を作成 2段階目 対象アプリケーションと同居したときの “Reporter” のパフォーマンス低下を計測 逆引き (Performance低下度 → Appの相当するメモリ負荷度 ) ReporterのSensitivity Curve 14
TIER IV 参考研究における手法まとめ App1 Reporter Reporter Bubble Bubble App2 Sensitivity Curve の算出 App2 App1 App2 Contentiousness の算出 App2 15
TIER IV 参考研究における評価 ● bigtable, search, youtube などのアプリケーションに対して Sensitivity Curveを作 成 / Contentiousness算出 → それぞれのアプリケーションの特色が判明 ● それぞれのアプリケーションに様々な負荷 (行列計算, 二分木探索, 様々なパター ンのメモリアクセス) を与えて, パフォーマンス低下を予測 → 誤差約2%以下で予測 に成功 ● 許容されるパフォーマンス低下の度合いを制約として, クラウド上リソースの Utilization を上げることに成功 16
TIER IV 01 / 背景と概要 Autowareにおける リソース競合の定量化 TIER Ⅳ | Takahiro Ishikawa 02 / 参考研究の手法 03 / Autowareへの適用 04 / まとめ @sykwer 17
TIER IV Autowareへの適用 概要 ● 参考研究と本発表内容のギャップ: Application単位ではなく, Autoware のプロセ ス同士の競合を扱う点 ● 今回は SensingモジュールのLiDAR点群前処理に注目 18
TIER IV AutowareのSensingモジュール (点群処理) ロボットタクシーのLiDAR点群前処理 19
TIER IV AutowareのSensingモジュール (点群処理) velodyne_convert_node: LiDARパケットをxyz空間の3次元点群に変換 20
TIER IV AutowareのSensingモジュール (点群処理) crop_box_filter_self: 自車のボディから反射した点群を除去 21
TIER IV AutowareのSensingモジュール (点群処理) crop_box_filter_self: 自車のミラーから反射した点群を除去 22
TIER IV AutowareのSensingモジュール (点群処理) distortion_corrector: 自車が移動しつつLiDARが回転する由来の歪みを補正 23
TIER IV AutowareのSensingモジュール (点群処理) ring_outlier_filter: 回転式LiDARの性質を生かした効率的な外れ値除去 24
TIER IV 参考研究における手法 (再掲) ring_outlier_filter Reporter Reporter Bubble Bubble … Sensitivity Curve の算出 ring_outlier_filter … Contentiousness の算出 25
TIER IV 計測の注意 : Isolatedに計測すべし ● Core Isolated = Timer割り込みが 入らないようにし, RCU Callbackを オフロード ● Fix Hz = CPUの周波数を常に一定 にする. Turbo BoostをOffにするこ とを忘れずに ● Core Affinity = IsolateしたCoreで は計測対象のプロセスを動作させる ● Reporter, 計測対象ノードは Isolate Isolated環境で動作 計測対象を動作させるノード 26
TIER IV 手順1: Sensitivity Curve (Reporter, ring_outlier_filter) 時間がなくて ring_outlier_filter しか計測できなかった ... 27
TIER IV 手順2: Contentiousness 負荷ベンチマークとしては「二分木の探索 (4MiB)」, ランダムアクセス (4, 8, 12MiB) を用意した 28
TIER IV 予測精度の評価 29
TIER IV 01 / 背景と概要 Autowareにおける リソース競合の定量化 TIER Ⅳ | Takahiro Ishikawa 02 / 参考研究の手法 03 / Autowareへの適用 04 / まとめ @sykwer 30
TIER IV まとめ ● Autowareの時間性能面での予測可能性を高めるという目的で, メモリリソース競合 の定量化を目指した ● 仮説: タスク固有の「リソース競合への感応性」と「システムのリソースに与える負 荷」を定量化 → リアルタイムにリソース競合由来の遅延を算出可能 ● クラウド環境上で同様の考え方の手法を実現した先行研究を応用 ● Autowareのノードに対して手法を適用し, 十分な予測精度を出すことに成功 ● 今後の課題 1) 3つ以上のノードが同時にメモリ負荷をかけた場合 2) ノード自体の Contentiousness の算出 3) リソース競合由来の遅延予想をOSに実装 31
TIER IV CONTACT US https://tier4.jp/ Thanks Again ! 32