「Bfloat16」を編集中
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | '''bfloat16''' (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。 | |
− | '''bfloat16''' (brain floating point、BF16) | ||
− | [[Google]]が[[TensorFlow]] | + | [[Google]]が[[TensorFlow]]向けに開発しているもの。 |
− | BF16は「単純に[[FP32]] | + | BF16は「単純に[[FP32]]の仮数部を切り詰めた」というものである。 |
+ | 汎用的な[[FP16]]に対して、BF16は「FP32から高速変換できる」のが利点で、出し入れの激しい[[人工知能]]向けだと言われている。 | ||
{| class="wikitable" style="text-align:center; border-width:0;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
− | |+[[FP16]] | + | |+ [[FP16]] |
|- style="line-height:70%;" | |- 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="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="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="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;" | || 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;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
− | |+bfloat16 | + | |+ bfloat16 |
|- style="line-height:70%;" | |- 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="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="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="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;" | || 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;" | {| class="wikitable" style="text-align:center; border-width:0;" | ||
− | |+FP32 | + | |+ FP32 |
|- style="line-height:70%;" | |- 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="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="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:# | + | | 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;" | || 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]]搭載品) | |
− | ==主なBF16をサポートする製品== | ||
− | *[[Intel]]の[[CPU]] ([[AVX-512]]対応製品の一部) | ||
− | *[[NVIDIA]]の[[GPU]] ([[NVIDIA Ampere]]搭載品) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |