世界のスーパーコンピュータとそれを動かす人々


11月 11, 2015

混合精度演算の事例

HPCwire Japan

Itffany Trader

誰もが64ビット浮動小数点演算がHPCを支配していることを知っている。新しいXeonやハイエンドのGPUが出て来る際に、HPC人にとって最も関心があるスペックは恐らくピークの倍精度浮動所数点演算性能だ、そしてまだ…HPCの民主化とアクセラレータの登場に伴って、サブFP64および混合精度演算の新しい利用事例が出てきた。

最も適切な例のひとつは深層学習の領域にあり、ニューラルネットワークの学習と操作で、単精度もしくは半分の精度で十分であり、コスト、エネルギーおよびストレージ領域を節約する。

この速い新興のトレンドにおける詳細については、Nick Highamが彼のブログ「混合精度演算の登場」で素晴らしい概要を説明している。マンチェスター大学数学科の応用数学のRichardson教授は数値線形代数を中心とした数値解析の専門家である。さらに詳細はこちら。

HighamはIEEE規格の2008改定版に含まれていると彼が指摘し、いくつかのコンパイラではサポートされている、倍精度、単精度、半精度、および4倍精度演算の簡潔な定義を提供している。

そして、16ビットで数字が構成される半精度演算がある。彼が言うには、これは「計算ではなく、ストレージ用のIEEE規格でサポートされている。」相対精度で約10^{-4}で、FP16はますまずニューラルネットワークを学習および実行するのに「十分なもの」として見られている。ところでNVIDIAはこのセグメントに非常にフォーカスしており、3月のGPU Technology Conferenceにおいて徹底的に議論されている。

そして、性能を最適化するために混合精度を実現する方法はたくさんあり、どちらかひとつの問題ではないのだ。

Highamは、任意の開始点を受け入れる反復アルゴリズムの事例も含めて、「余計な精度」を呼び出す多くの例を上げている。彼は次のように書いている。「与えられた精度で1回は実行でき、そしてソリューションは2回目は同じアルゴリズムでより高い精度で実行する”ウォームスタート”だったのです。」

ムーアの法則の恩恵が減少し、データがヘテロな計算と階層化メモリ/ストレージに導かれる現代において、混合精度演算はどのコスト(時間、お金、電力、などなど)の数字においても、経済的観点から意味を増しているのだ。

ここにこの詳細を読むことができる。