「ブロック浮動小数点数」の版間の差分
Administrator (トーク | 投稿記録) ページの作成:「'''ブロック浮動小数点数'''とは、一定のブロック数で指数部を共有することで必要となるビット数を節約した浮動小数点数の表現方法のひとつです。 一般的な浮動小数点数では指数部と仮数部で表現されます。人工知能向けにFP16やBF16などはビット数を削る競争をしていましたが、8ビット、さらに4ビットくらいになると削るのも難しくなりまし…」 |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
'''ブロック浮動小数点数''' | '''ブロック浮動小数点数'''とは、「ひとつの指数部」を共有し、「仮数の配列」のような一定サイズのブロックとして扱うことでデータ容量を節約した[[浮動小数点数]]のことです。 | ||
一般的な浮動小数点数では指数部と仮数部で表現されます。人工知能向けにFP16やBF16などはビット数を削る競争をしていましたが、8ビット、さらに4ビットくらいになると削るのも難しくなりました。 | 一般的な浮動小数点数では指数部と仮数部で表現されます。人工知能向けにFP16やBF16などはビット数を削る競争をしていましたが、8ビット、さらに4ビットくらいになると削るのも難しくなりました。 | ||
そこで「指数部は共有し、複数のブロックで仮数部だけを可変にする」という節約法が編み出されました。 | そこで「指数部は共有し、複数のブロックで仮数部だけを可変にする」という節約法が編み出されました。 | ||
とくに[[人工知能]]の計算で使われる[[行列]]データは、多くの場合「同じ層のデータなら、数値の大きさの範囲が似通っている」という性質があります。つまり「指数部はほぼ同じ値」なので「何度も書くのは無駄」だということになります。それなら共有すればいいじゃんという結論に至ったようです。 | |||
データとしては「1個の指数部」「続く32個(32ブロック)は仮数部」というような表現となります。 | データとしては「1個の指数部」「続く32個(32ブロック)は仮数部」というような表現となります。 | ||
[[category: ブロック浮動小数点数]] | [[category: ブロック浮動小数点数]] | ||
[[category: 人工知能]] | |||