WSEは小さな粒度のSparsityも利用可能
例えば非線形の関数としてReLUを使うと、入力値が負の場合は出力がゼロになる。このように、ニューラルネットではゼロが多く出てくる。掛け算の入力がゼロの場合、積和演算は何もしないのと同じ結果になり、演算量を減らせる。このため、CerebrasのWSEでは、ゼロの入力となる疎な行列のケースを有効に利用するようにしている。
Cerebrasのコアはファブリックからのデータの値によって命令の実行の可否を判断する。ファブリックへのデータの送り出し元はゼロのデータを省略し、受け手は不必要な演算を飛ばしてしまう。
WSEのコアは、独立の命令を実行しているので、細かい粒度で不必要な実行を飛ばして効率を上げることができる。
また、モデルを多少変形して疎な行列にして、計算を減らすという手もある。やり方としては、ReLUのようなゼロを作り出す関数を使う、あるいは小さな値はゼロとみなしてしまうというような方法である。
右の棒グラフは34層のフルコネクトのネットワークとスパース化を行ったネットワークを比較したもので、左端の密行列では、青のGPUとオレンジのCS-1で差は無いが、その右のペアの棒グラフのようにReLUを使うと、CS-1では1.7倍程度に性能が上がる。さらに値の小さい項を無視して25%疎にすると性能向上は約2倍になり、50%疎にすると2.4倍程度の性能となる。
ただし、ここでは計算性能の向上だけの比較で、スパース化に伴う精度への影響は比べられていない。
自然言語処理のBERTの場合、自然に疎行列にはならないが、フォワードやバックワードの計算過程でゼロ要素を増やすことはできる。次の図に示すように、精度の劣化を最小にする形で50%のゼロを追加することにより、計算性能を1.5倍に引き上げることができた。
CS-1は最も強力な単一ノードのマシンラーニングのシステムである。CS-1は細粒度の疎な計算の削減を利用できる柔軟性を持ち、適応的にダイナミックに計算を行うことができる。