Skip to main content
QUICK REVIEW

[論文レビュー] CINM (Cinnamon): A Compilation Infrastructure for Heterogeneous Compute In-Memory and Compute Near-Memory Paradigms

Asif Khan, Hamid Farzaneh|arXiv (Cornell University)|Dec 25, 2022
Advanced Memory and Neural Computing被引用数 7
ひとこと要約

CINM(Cinnamon)は、異種のメモリ中心計算(CIM)およびメモリ周辺計算(CNM)アーキテクチャ向けに、デバイスに依存しないおよびデバイスに依存する最適化を可能にする、画期的なエンドツーエンドコンパイラーインfraストラクチャである。MLIRに基づく階層的低下と再利用可能な抽象化を活用することで、UPMEM(CNM)およびメニスティルベースのCIMアクセラレータの両方で、手動最適化された実装を上回る高性能コードを生成し、CPU最適化ベースラインに対して最大5.1倍の高速化を達成した。

ABSTRACT

The rise of data-intensive applications exposed the limitations of conventional processor-centric von-Neumann architectures that struggle to meet the off-chip memory bandwidth demand. Therefore, recent innovations in computer architecture advocate compute-in-memory (CIM) and compute-near-memory (CNM), non-von- Neumann paradigms achieving orders-of-magnitude improvements in performance and energy consumption. Despite significant technological breakthroughs in the last few years, the programmability of these systems is still a serious challenge. Their programming models are too low-level and specific to particular system implementations. Since such future architectures are predicted to be highly heterogenous, developing novel compiler abstractions and frameworks become necessary. To this end, we present CINM (Cinnamon), a first end-to-end compilation flow that leverages the hierarchal abstractions to generalize over different CIM and CNM devices and enable device-agnostic and device-aware optimizations. Cinnamon progressively lowers input programs and performs optimizations at each level in the lowering pipeline. To show its efficacy, we evaluate CINM on a set of benchmarks for the well-known UPMEM CNM system and the memristors-based CIM accelerators. We show that Cinnamon, supporting multiple hardware targets, generates high-performance code comparable to or better than state-of-the-art implementations.

研究の動機と目的

  • 現在、低レベルのデバイス固有のプログラミングモデルに依存している、新興の異種CIMおよびCNMシステムにおけるプログラマビリティの重要な課題に取り組む。
  • 低レベルのデバイス詳細を抽象化する再利用可能なコンパイラー抽象化を通じて、多様なCIMおよびCNMハードウェアの高水準でポータブルなプログラミングを可能にする。
  • 異種メモリ中心アーキテクチャにおいて、デバイスに依存しないおよびデバイスに依存する最適化を両立する統一されたコンパイルパイプラインを構築する。
  • UPMEM(CNM)およびメニスティルベースのCIMアクセラレータを含む実世界のターゲットに対して最適化コードを生成することで、フレームワークの有効性を実証する。
  • 非フォン・ノイマンハードウェアとアプリケーション開発者との間の溝を埋め、簡潔で高水準のコードによって生産性を向上させる。

提案手法

  • 高水準のカーネルを段階的にデバイス固有のコードに変換する階層的低下パイプラインを構築するために、MLIR(Multi-Level Intermediate Representation)を採用する。
  • すべてのCIMおよびCNMデバイスを一般化するCINM抽象化レイヤーを導入し、統一インターフェースを通じてハードウェアターゲットの選択を可能にする。
  • CNMおよびCIMハードウェアに特化した型、演算、関数を表現するためのドメイン特化ダイアレクト「cnm」と「cim」を定義する。
  • タイリング、部分結果の管理、メモリアクセスパターン解析などの再利用可能で合成可能な最適化を適用し、データ局所性を向上させ、外部メモリへのデータ移動を削減する。
  • 既存および新規のMLIRパターンを活用して、負荷バランス、データレイアウト変換、メモリ階層に配慮したコード生成を実現する。
  • 一般用途およびドメイン特化ワークロードの両方をサポートするため、GEMM、BFS、DNNカーネルを含む多様なベンチマークに対するコード生成を可能にする。

実験結果

リサーチクエスチョン

  • RQ1どのようにして、デバイスに依存しない方法で、計算メモリ(CIM)およびメモリ周辺計算(CNM)アーキテクチャを統合的にサポートするコンパイラーインfraストラクチャを設計できるか?
  • RQ2性能を保持しつつ、異種CIMおよびCNMシステムの高水準プログラミングを可能にするために、どのような抽象化とコンパイラー技術が必要か?
  • RQ3再利用可能なコンponentを備えたMLIRベースの低下パイプラインは、実世界のCIMおよびCNMアクセラレータにおいて、手動最適化実装をどの程度上回るか?
  • RQ4部分結果の管理やタイリングといったフレームワークの最適化戦略が、多様なワークロードに与える性能への影響はどの程度か?
  • RQ5低レベルのデバイス固有実装と比較して、フレームワークはコード行数を著しく削減できるか。これにより、プログラマの生産性がどの程度向上するか?

主な発見

  • CINMが生成したコードは、UPMEM CNMシステムにおいて、CPU最適化構成に対して最大5.1倍の高速化を達成し、手動最適化されたPrIM実装と比較して平均1.6倍から2.0倍の向上を示した。
  • 平均して、CINMが生成したコードは、低レベルのUPMEM C/C++デバイスコードと比較して15倍も短く、開発者の生産性と保守性を顕著に向上させた。
  • hst-lカーネルでは、CINMがPrIM最適化版と比較して実行時間を3.7倍短縮した。主な要因は、優れたWRAM利用効率と部分結果管理の向上である。
  • vaカーネルでは、平均でPrIMより1.23倍の高い性能を達成し、特にデータ並列的で依存関係のないワークロードで顕著な向上が見られた。
  • フレームワークは、hst-lカーネルにおいて、手動最適化されたC/C++コードと比較して22.33倍も少ない行数で実装でき、多様なベンチマークで一貫した性能向上を示した。
  • CINMの階層的低下と再利用可能な抽象化により、メニスティルベースのCIMおよびUPMEM CNMシステムを含む複数のハードウェアターゲットで効果的な最適化が可能となり、移植作業の最小限化が達成された。

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

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

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

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