6,984 バイト追加,
2021年6月15日 (火) 07:13 '''bfloat16''' (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。
bfloat16は「単純にFP32の仮数部を切り詰めた」というものである。
汎用的なFP16に対して、BF16は「FP32に高速変換できる」のが利点。
{| class="wikitable" style="text-align:center; border-width:0;"
|+ [[FP16]]
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | sign
| style="border-width:0; background:#FFFFFF;" colspan="5" | exponent (5 bit)
| style="border-width:0; background:#FFFFFF;" colspan="10"| fraction (10 bit)
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | ┃
| style="border-width:0; background:#FFFFFF;" colspan="5" | ┌───────┐
| style="border-width:0; background:#FFFFFF;" colspan="10"| ┌─────────────────┐
|- style="font-size:9pt;"
| style="border-width:0; background:#FFFFFF;" | || style="background:#C4FCFF;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 1 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0
|-
| style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" | 15 || style="border-width:0; background:#FFFFFF;" | 14 || style="border-width:0; background:#FFFFFF;" colspan="3" | || style="border-width:0; background:#FFFFFF;" | 10 || style="border-width:0; background:#FFFFFF;" | 9 || style="border-width:0; background:#FFFFFF;" colspan="8" | || style="border-width:0; background:#FFFFFF;" | 0
|}
{| class="wikitable" style="text-align:center; border-width:0;"
|+ bfloat16
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | sign
| style="border-width:0; background:#FFFFFF;" colspan="8" | exponent (8 bit)
| style="border-width:0; background:#FFFFFF;" colspan="7" | fraction (7 bit)
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | ┃
| style="border-width:0; background:#FFFFFF;" colspan="8" | ┌─────────────┐
| style="border-width:0; background:#FFFFFF;" colspan="7" | ┌───────────┐
|- style="font-size:9pt;"
| style="border-width:0; background:#FFFFFF;" | || style="background:#C4FCFF;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 1 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0
|-
| style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" | 15 || style="border-width:0; background:#FFFFFF;" | 14 || style="border-width:0; background:#FFFFFF;" colspan="6" | || style="border-width:0; background:#FFFFFF;" | 7 || style="border-width:0; background:#FFFFFF;" | 6 || style="border-width:0; background:#FFFFFF;" colspan="5" | || style="border-width:0; background:#FFFFFF;" | 0
|}
{| class="wikitable" style="text-align:center; border-width:0;"
|+ FP32
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | sign
| style="border-width:0; background:#FFFFFF;" colspan="8" | exponent (8 bit)
| style="border-width:0; background:#FFFFFF;" colspan="23"| fraction (23 bit)
|- style="line-height:70%;"
| style="border-width:0; background:#FFFFFF;" colspan="2" | ┃
| style="border-width:0; background:#FFFFFF;" colspan="8" | ┌─────────────┐
| style="border-width:0; background:#FFFFFF;" colspan="23"| ┌───────────────────────────────────────────┐
|- style="font-size:9pt;"
| style="border-width:0; background:#FFFFFF;" | || style="background:#C4FCFF;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 1 || style="background:#9FFFAC;" | 0 || style="background:#9FFFAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 1 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0 || style="background:#FFACAC;" | 0
|-
| style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" | 31 || style="border-width:0; background:#FFFFFF;" | 30 || style="border-width:0; background:#FFFFFF;" colspan="6" | || style="border-width:0; background:#FFFFFF;" | 23 || style="border-width:0; background:#FFFFFF;" | 22 || style="border-width:0; background:#FFFFFF;" colspan="21" | || style="border-width:0; background:#FFFFFF;" | 0
|}
== 主なBF16をサポートする製品 ==
* [[Intel]]の[[CPU]] ([[AVX-512]]対応製品の一部)
* [[NVIDIA]]の[[GPU]] ([[NVIDIA Ampere]]搭載品)