「Bfloat16」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
1行目: | 1行目: | ||
+ | {{小文字}} | ||
'''bfloat16''' (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。 | '''bfloat16''' (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。 | ||
4行目: | 5行目: | ||
BF16は「単純に[[FP32]]の仮数部を切り詰めた」というものである。 | BF16は「単純に[[FP32]]の仮数部を切り詰めた」というものである。 | ||
− | 汎用的な[[FP16]] | + | 汎用的な[[FP16]]に対して「BF16はFP32と高速変換できる」のが利点であり、FP32との変換が頻繁に発生する用途(主に[[人工知能]])向けだと言われている。 |
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" |
2022年5月25日 (水) 02:34時点における版
bfloat16 (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。
GoogleがTensorFlow向けに開発しているもの。
BF16は「単純にFP32の仮数部を切り詰めた」というものである。 汎用的なFP16に対して「BF16はFP32と高速変換できる」のが利点であり、FP32との変換が頻繁に発生する用途(主に人工知能)向けだと言われている。
sign | exponent (5 bit) | fraction (10 bit) | ||||||||||||||
┃ | ┌───────┐ | ┌─────────────────┐ | ||||||||||||||
0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
15 | 14 | 10 | 9 | 0 |
sign | exponent (8 bit) | fraction (7 bit) | ||||||||||||||
┃ | ┌─────────────┐ | ┌───────────┐ | ||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
15 | 14 | 7 | 6 | 0 |
sign | exponent (8 bit) | fraction (23 bit) | ||||||||||||||||||||||||||||||
┃ | ┌─────────────┐ | ┌───────────────────────────────────────────┐ | ||||||||||||||||||||||||||||||
0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
31 | 30 | 23 | 22 | 0 |
FP32からBF16への丸め処理の発動条件は
- FP32の仮数部の「7ビット目が0」かつ「8ビット目が1」