Skip to main content
QUICK REVIEW

[論文レビュー] HDCC: A Hyperdimensional Computing compiler for classification on embedded systems and high-performance computing

Pere Vergés, Mike Heddes|arXiv (Cornell University)|Apr 24, 2023
Ferroelectric and Negative Capacitance Devices被引用数 11
ひとこと要約

HDCCは、ハイパーディメンショナル コンピューティング (HDC) の高レベルな分類タスクを最適化された自己完結型 C コードに翻訳するオープンソースのコンパイラであり、組み込みおよび HPC 環境向けにマルチスレッド実行と SIMD 加速を可能にし、再現性のある結果と Torchhd に対する大幅なスピードアップを提供します。

ABSTRACT

Hyperdimensional Computing (HDC) is a bio-inspired computing framework that has gained increasing attention, especially as a more efficient approach to machine learning (ML). This work introduces the \name{} compiler, the first open-source compiler that translates high-level descriptions of HDC classification methods into optimized C code. The code generated by the proposed compiler has three main features for embedded systems and High-Performance Computing: (1) it is self-contained and has no library or platform dependencies; (2) it supports multithreading and single instruction multiple data (SIMD) instructions using C intrinsics; (3) it is optimized for maximum performance and minimal memory usage. \name{} is designed like a modern compiler, featuring an intuitive and descriptive input language, an intermediate representation (IR), and a retargetable backend. This makes \name{} a valuable tool for research and applications exploring HDC for classification tasks on embedded systems and High-Performance Computing. To substantiate these claims, we conducted experiments with HDCC on several of the most popular datasets in the HDC literature. The experiments were run on four different machines, including different hyperparameter configurations, and the results were compared to a popular prototyping library built on PyTorch. The results show a training and inference speedup of up to 132x, averaging 25x across all datasets and machines. Regarding memory usage, using 10240-dimensional hypervectors, the average reduction was 5x, reaching up to 14x. When considering vectors of 64 dimensions, the average reduction was 85x, with a maximum of 158x less memory utilization.

研究の動機と目的

  • 組み込みシステムとHPCに適した、依存関係のない自己完結型のHDC分類のC実装を提供する。
  • HDC学習タスクのためのモダンなコンパイラパイプライン(トークナイザ、文法、IR、リターゲタブルなバックエンド)を提供する。
  • パフォーマンス最大化とメモリ使用量最小化のため、C intrinsicによるマルチスレッドとSIMDを有効にする。
  • 再現可能な実験とデータを伴うオープンソース提供を保証する。

提案手法

  • HDCCはHDC学習タスクの高レベルな記述を入力として受け取り、エンコーディング、訓練、推論の要素を備えたHDC学習モデルへ翻訳する。
  • このコンパイラは、エンコーディングと処理にバンドリングとバインディング操作を用いた MAP(Multiply-Add-Permute)ハイパースペースを使用する。
  • 埋め込みはランダムまたはレベル初期化が可能で、MULTIBUNDLE、NGRAM、BATCHBIND などのエンコーディングパターンを用いる。実装はメモリと速度の最適化のためエンコーディングを最適化する。
  • 訓練はエンコード済みサンプルをバンドリングして連想メモリを更新する。推論はクエリハイパーベクターをクラスプロトタイプとコサイン類似度で比較し、推論を速めるための訓練後正規化を行う。
  • SIMDベクトルintrinsics、POSIXスレッドによるマルチスレッド、およびデータをストリーミング方式で読み取りエンコーディングによるメモリ使用を削減するメモリ効率の高いアプローチをサポートする。
  • バックエンドはCコード生成へリターゲット可能で、OpenCL/OpenGLバックエンドを介してFPGA/GPUsへ拡張が可能。

実験結果

リサーチクエスチョン

  • RQ1オープンソースのコンパイラは、組み込みシステムの制約を伴うHDC分類タスクに対して、効率的で自己完結型のCコードを生成できるか。
  • RQ2複数のデータセットとハイパースペース次元にわたる訓練/推論の速度とメモリ使用量において、HDCC生成実装はTorchhdとどのように比較されるか。
  • RQ3HDCC生成HDC分類器におけるマルチスレッドとSIMDがパフォーマンスとメモリフットプリントに与える影響はどの程度か。
  • RQ4ISOLET、EMG、欧州言語、MNISTなど異なるデータセットやハードウェアプラットフォームへの適用性はどの程度か。
  • RQ5結果を再現し、他のベクター象徴アーキテクチャへコンパイラを拡張するための実践的な手順は何か。

主な発見

  • HDCCは、10240次元ハイパーベクターを使用した場合、Torchhdと比較してデータセットと機械全体で最大132xの訓練および推論スピードアップ、平均25xを達成します。
  • メモリ使用量は平均で5x、10240次元で最大14x、64次元ベクトルでは平均85x、最大158xの削減となり、Torchhdと比較して。
  • HDCC生成コードは自己完結型(外部依存関係なし)で、低メモリと高スループットに最適化されており、組み込みCPUとHPCシステムに適している。
  • Torchhdと比較して、ISOLET、EMG、欧州言語、MNISTデータセット全体で類似した精度を示しつつ、顕著な速度とメモリ利点を提供する。
  • 実験は4台のマシン(Apple M2およびIntel Xeonプラットフォームを含む)で、複数の次元設定(64–10240)で実施され、ハードウェアを跨る頑健性を示した。

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

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

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

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