スパースコンピューティング(Sparse Computing)とは、データや演算の中に含まれるゼロ値や不要な計算を検出してスキップし、実質的な演算量を削減する技術です。AI分野では、ニューラルネットワークのパラメータやアクティベーションのスパース性(疎性)を活用して、学習・推論の効率を大幅に向上させます。
スパース性とAI
ニューラルネットワークの重みや活性化値には多くのゼロまたはゼロに近い値が含まれています。プルーニング(枝刈り)を適用したモデルでは、パラメータの50〜90%がゼロになる場合もあります。これらのゼロとの演算は結果もゼロになるため、スキップしても計算結果は変わりません。
ハードウェアでのスパースサポート
NVIDIA Ampere(A100)以降のGPUには、構造化スパース性(Structured Sparsity: 2:4パターン)をハードウェアレベルでサポートするTensor Coreが搭載されています。4つの値のうち2つがゼロの場合、演算スループットが2倍に向上します。この機能を活用するには、モデルのスパースパターンを2:4構造に適合させる必要があります。
ソフトウェアとアルゴリズム
非構造化スパース(任意の位置がゼロ)は汎用ハードウェアでの高速化が難しく、構造化スパースが実用化の焦点です。Mixture of Experts(MoE)モデルも一種のスパースコンピューティングと見なせ、入力ごとにネットワークの一部のみを活性化することで計算効率を高めています。