「Bfloat16」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
7行目: | 7行目: | ||
{| 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=" | + | | colspan="2" style="border-width:0; background:#FFFFFF;" |sign |
− | + | | colspan="5" style="border-width:0; background:#FFFFFF;" |exponent (5 bit) | |
− | | style="border-width:0; background:#FFFFFF; | + | | colspan="10" style="border-width:0; background:#FFFFFF;" |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;" | ┃ |
− | | style="border-width:0; background:#FFFFFF;" colspan=" | + | | colspan="5" style="border-width:0; background:#FFFFFF;" |┌───────┐ |
− | + | | colspan="10" style="border-width:0; background:#FFFFFF;" |┌─────────────────┐ | |
|- 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;" | || style="border-width:0; background:#FFFFFF;" |15|| style="border-width:0; background:#FFFFFF;" |14|| colspan="3" style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" |10|| style="border-width:0; background:#FFFFFF;" |9|| colspan="8" style="border-width:0; background:#FFFFFF;" | || 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=" | + | | colspan="2" style="border-width:0; background:#FFFFFF;" |sign |
− | + | | colspan="8" style="border-width:0; background:#FFFFFF;" |exponent (8 bit) | |
− | | style="border-width:0; background:#FFFFFF; | + | | colspan="7" style="border-width:0; background:#FFFFFF;" |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;" | ┃ |
− | | style="border-width:0; background:#FFFFFF;" colspan=" | + | | colspan="8" style="border-width:0; background:#FFFFFF;" |┌─────────────┐ |
− | + | | colspan="7" style="border-width:0; background:#FFFFFF;" |┌───────────┐ | |
|- 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;" | || style="border-width:0; background:#FFFFFF;" |15|| style="border-width:0; background:#FFFFFF;" |14|| colspan="6" style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" |7|| style="border-width:0; background:#FFFFFF;" |6|| colspan="5" style="border-width:0; background:#FFFFFF;" | || 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=" | + | | colspan="2" style="border-width:0; background:#FFFFFF;" |sign |
− | + | | colspan="8" style="border-width:0; background:#FFFFFF;" |exponent (8 bit) | |
− | | style="border-width:0; background:#FFFFFF; | + | | colspan="23" style="border-width:0; background:#FFFFFF;" |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;" | ┃ |
− | | style="border-width:0; background:#FFFFFF;" colspan=" | + | | colspan="8" style="border-width:0; background:#FFFFFF;" |┌─────────────┐ |
− | + | | colspan="23" style="border-width:0; background:#FFFFFF;" |┌───────────────────────────────────────────┐ | |
|- 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:#FFACAC;" | 0 || style="background:#FFACAC;" | | + | | 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;" |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="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;" | || style="border-width:0; background:#FFFFFF;" |31|| style="border-width:0; background:#FFFFFF;" |30|| colspan="6" style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" |23|| style="border-width:0; background:#FFFFFF;" |22|| colspan="21" style="border-width:0; background:#FFFFFF;" | || style="border-width:0; background:#FFFFFF;" |0 |
|} | |} | ||
− | == 主なBF16をサポートする製品 == | + | ==主なBF16をサポートする製品== |
− | * [[Intel]]の[[CPU]] ([[AVX-512]]対応製品の一部) | + | |
− | * [[NVIDIA]]の[[GPU]] ([[NVIDIA Ampere]]搭載品) | + | *[[Intel]]の[[CPU]] ([[AVX-512]]対応製品の一部) |
+ | *[[NVIDIA]]の[[GPU]] ([[NVIDIA Ampere]]搭載品) |
2021年6月15日 (火) 08:37時点における版
bfloat16 (brain floating point、BF16)とは、浮動小数点を16ビット長で表す形式のひとつである。
GoogleがTensorFlow向けに開発しているもの。
BF16は「単純にFP32の仮数部を切り詰めた」というものである。 汎用的なFP16に対して、BF16は「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 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
31 | 30 | 23 | 22 | 0 |