Skip to main content
QUICK REVIEW

[論文レビュー] ELZAR: Triple Modular Redundancy using Intel Advanced Vector Extensions Technical Report

Dmitrii Kuvaiskii, Oleksii Oleksenko|arXiv (Cornell University)|Jan 1, 2016
Radiation Effects in Electronics参考文献 28被引用数 3
ひとこと要約

ELZARは、命令ではなくAVXレジスタにデータをレプリケートすることにより、故障耐性のための三重モジュラー再冗長性を実装するコンパイラフレームワークである。SIMD並列処理を活用しているが、制御フローやメモリアクセスのためのAVX命令が不足しているため、パフォーマンスオーバーヘッドは依然として高く、将来のAVX拡張機能に、ベクタ化されたガザーやスキャッタ、フラグ切り替え比較といった重要な改善が含まれる場合にのみ、推定オーバーヘッドが48%まで低下する。

ABSTRACT

Instruction-Level Redundancy (ILR) is a well-known approach to tolerate transient CPU faults. It replicates instructions in a program and inserts periodic checks to detect and correct CPU faults using majority voting, which essentially requires three copies of each instruction and leads to high performance overheads. As SIMD technology can operate simultaneously on several copies of the data, it appears to be a good candidate for decreasing these overheads. To verify this hypothesis, we propose Elzar, a compiler framework that transforms unmodified multithreaded applications to support triple modular redundancy using Intel AVX extensions for vectorization. Our experience with several benchmark suites and real-world case-studies yields mixed results: while SIMD may be beneficial for some workloads, e.g., CPU-intensive ones with many floating-point operations, it exhibits higher overhead than ILR in many applications we tested. We study the sources of overheads and discuss possible improvements to Intel AVX that would lead to better performance.

研究の動機と目的

  • SIMD命令(Intel AVXなど)が一時的障害耐性のための命令レベル再冗長性(ILR)においてパフォーマンスオーバーヘッドを低減できるかどうかを調査すること。
  • AVXレジスタを用いてデータをレプリケートし、多数決ベースの障害検出・是正が可能かどうかを評価すること。
  • 現在のAVX命令セットをILRに適用した際のパフォーマンスボトルネックを特定すること。
  • ELZARのパフォーマンスオーバーヘッドを大幅に低減するためのAVX拡張を提案すること。

提案手法

  • LLVMをコンパイラバックエンドとして用い、変更のないマルチスレッドアプリケーションをAVXベースの三重モジュラー再冗長性に変換する。
  • 4つの256ビットAVXレジスタにデータをレプリケートし、多数決による障害検出・是正を可能にする。
  • 既存のAVX命令(例:vperm、vblend)を用いてラッパー関数を実装し、制御フローやメモリアクセス操作をエミュレートする。
  • ロード/ストアチェックをFPGAにオフロードしてCPUのオーバーヘッドを低減する。
  • ELZARと、ELZARのオーバーヘッドを模倣するダミーインラインアセンブリを含む「遅延化されたネイティブバージョン」との比較により、パフォーマンスを評価する。
  • 提案されたAVX拡張(例:ベクタ化されたガザーやスキャッタ、フラグ切り替え比較)をモデル化し、将来のパフォーマンス向上を推定する。

実験結果

リサーチクエスチョン

  • RQ1AVXベースのデータレプリケートは、一時的障害耐性のための従来のILRよりも低いパフォーマンスオーバーヘッドを達成できるか?
  • RQ2現在のAVX命令セットをILRに適用する際の主なパフォーマンスボトルネックは何か?
  • RQ3メモリアクセスおよび制御フロー用の新規命令をAVXに追加することで、どの程度のパフォーマンス向上が達成できるか?
  • RQ4FPGAによるチェックのオフロードは、ELZARにおけるCPUオーバーヘッドをどの程度低減できるか?
  • RQ5どのような具体的なAVX命令セット拡張が、ELZARのパフォーマンスオーバーヘッドを最も効果的に低減できるか?

主な発見

  • ELZARは、4つのAVXレジスタにデータをレプリケートすることで故障耐性を実現し、多数決により一時的CPU障害を検出・是正する。
  • SIMD並列処理を活用しているが、現在のAVXには制御フローやメモリアクセスに必要な重要な命令が不足しており、高いパフォーマンスオーバーヘッドが生じている。
  • 現在のAVXを用いたELZARのパフォーマンスオーバーヘッドは、期待よりも著しく高く、多くのベンチマークで平均100%を超える。
  • 提案されたAVX拡張(例:ベクタ化されたガザーやスキャッタ、フラグ切り替え比較)により、ELZARのオーバーヘッドは推定48%まで低下する。
  • ストリングマッチベンチマークでは実験でネイティブバージョンよりも高速に動作しており、おそらく「遅延化されたネイティブバージョン」に意図しないインライン最適化が発生したためである。
  • 本研究は、単純で的を射たAVX命令セットの拡張が、従来のILRに代わるSIMDベースのILRを現実の選択肢にできると結論づける。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。