Skip to main content
QUICK REVIEW

[論文レビュー] Unlocking the Power of Inline Floating-Point Operations on Programmable Switches

Yifan Yuan, Omar Alama|arXiv (Cornell University)|Dec 11, 2021
Parallel Computing and Optimization Techniques被引用数 7
ひとこと要約

本稿では、浮動小数点値を指数部と仮数部に分解し、既存のハードウェアを活用してパイプライン段階で処理することで、プログラマブルスイッチ上で効率的なインライン浮動小数点演算を実現するソフトウェア定義浮動小数点表現Fpisaを提案する。Fpisaは、15nmプロセスで実装可能な最小限のハードウェア変更を伴いながら、分散学習で最大85.9%高いスループット、浮動小数点クエリ処理で2.7倍のスループットを達成し、最先端のシステムを上回る性能を発揮する。

ABSTRACT

The advent of switches with programmable dataplanes has enabled the rapid development of new network functionality, as well as providing a platform for acceleration of a broad range of application-level functionality. However, existing switch hardware was not designed with application acceleration in mind, and thus applications requiring operations or datatypes not used in traditional network protocols must resort to expensive workarounds. Applications involving floating point data, including distributed training for machine learning and distributed query processing, are key examples. In this paper, we propose FPISA, a floating point representation designed to work efficiently in programmable switches. We first implement FPISA on an Intel Tofino switch, but find that it has limitations that impact throughput and accuracy. We then propose hardware changes to address these limitations based on the open-source Banzai switch architecture, and synthesize them in a 15-nm standard-cell library to demonstrate their feasibility. Finally, we use FPISA to implement accelerators for training for machine learning and for query processing, and evaluate their performance on a switch implementing our changes using emulation. We find that FPISA allows distributed training to use 25-75% fewer CPU cores and provide up to 85.9% better throughput in a CPU-constrained environment than SwitchML. For distributed query processing with floating point data, FPISA enables up to 2.7x better throughput than Spark.

研究の動機と目的

  • プログラマブルスイッチにおけるネイティブな浮動小数点サポートの欠如が、分散ML学習やクエリ処理などのデータセンタワークロードの高速化を妨げている問題に対処すること。
  • ソフトウェアベースのフォーマット変換や専用FPUハードウェアといった従来の代替策が引き起こす高コストや柔軟性の欠如、高コストの問題を克服すること。
  • カスタムASICを必要とせず、P4プログラマブルスイッチ上で直接動作する汎用的で効率的かつハードウェア実装可能な浮動小数点表現(Fpisa)を設計すること。
  • 修正されたスイッチアーキテクチャ上でハードウェア合成とエミュレーションを用いて、Fpisaの実装可能性と性能向上効果を実証すること。

提案手法

  • Fpisaは32ビット浮動小数点数を指数部と符号付き仮数部に分解し、複数のパイプライン段階で処理することで、マルチサイクルボトルネックを回避する。
  • 整数ALUがネイティブにサポートしないサブオペレーションを実装するために、スイッチパイプライン内の既存のネットワーク指向ハードウェア要素(シフトレジスタやコンパレータなど)を再利用する。
  • 初期段階として、コンsumer向けIntel Tofino上で近似版Fpisa-aを実装し、ベースライン性能を評価し、スループットと精度の制限を同定する。
  • フル精度かつ高スループットなFpisa演算を実現するため、オープンソースのBanzaiスイッチアーキテクチャに基づく最小限の低コストハードウェア拡張を提案する。
  • 提案されたハードウェア変更は15nm標準セルライブラリを用いて合成され、面積、消費電力、タイミングの観点から実装可能性を検証する。
  • 性能評価は、実ワークロードを用いたエミュレーションにより実施:クエリ処理にはCheetah、分散学習にはFP32データを扱う修正版Cheetahベンチマークを用いる。

実験結果

リサーチクエスチョン

  • RQ1既存のハードウェア要素とソフトウェアレベルの分解のみを用いて、プログラマブルスイッチ上で浮動小数点演算を効率的に実装できるか?
  • RQ2コンsumer向けプログラマブルスイッチ上でソフトウェア定義表現(例:Fpisa)を用いて浮動小数点計算を実装する際の、性能と精度のトレードオフは何か?
  • RQ3最小限のコストで実装可能なハードウェア拡張により、Fpisaのスループットと精度を向上させつつ、面積や消費電力の増加を最小限に抑える方法は何か?
  • RQ4Fpisaは、従来のソリューションと比較して、分散機械学習学習や浮動小数点データベースクエリ処理といった実世界のアプリケーションをどの程度高速化できるか?
  • RQ5Fpisa互換のハードウェア拡張を、許容可能なコスト増で標準15nm CMOSプロセスに統合することが可能か?

主な発見

  • Fpisaは、CPU制限環境下でCPUコア使用率を25–75%削減し、SwitchMLと比較して最大85.9%高いスループットを達成する。
  • 浮動小数点データを扱う分散クエリ処理では、ネイティブSparkと比較して最大2.7倍のスループットを達成し、整数データ型と同等の性能向上効果を示す。
  • Intel Tofino上での初期Fpisa-a実装により、スイッチの既存パイプライン制限が原因で顕著なスループットと精度の制限が明らかになった。
  • Banzaiアーキテクチャへの提案されたハードウェア拡張は、15nm標準セルライブラリで合成可能であり、面積、消費電力、タイミングへの影響は最小限に抑えられる。
  • エミュレーション結果から、FpisaがスケールアップしたML学習およびクエリ処理ワークロードを加速でき、整数ベースのアクセラレータと同等の性能向上が得られることを確認した。
  • Fpisaは、専用FPUやFPGAベースアクセラレータの高コストと柔軟性の欠如を回避する汎用的で拡張可能かつハードウェア効率の良い代替手段を提供する。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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