メインメニューを開く
MonoBook
検索
差分
← 古い編集
Bfloat16
290 バイト追加
,
2023年10月2日 (月) 01:49
編集の要約なし
{{小文字}}
'''bfloat16''' (brain floating point、BF16)
とは、浮動小数点を16ビット長で表す形式のひとつである。
とは、[[浮動小数点]]を16ビット長で表す形式のひとつです。
bfloat16は「単純にFP32の仮数部を切り詰めた」というものである。
[[Google]]が[[TensorFlow]]向けに[[開発]]したものです。
汎用的なFP16に対して、BF16は「FP32に高速変換できる」のが利点。
BF16は「単純に[[FP32]]の仮数部を切り詰めた」という[[仕様]]になっています。汎用的な「[[FP16]]」に対して「BF16はFP32と高速変換できる」のが利点であり、FP32との変換が頻繁に発生する用途(主に[[人工知能]])向けだと言われています。
{| class="wikitable" style="text-align:center; border-width:0;"
|+ [[FP16]]
|- style="line-height:70%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;"
|sign
|
colspan="
2
5
"
| sign
|
style="border-width:0; background:#FFFFFF;
" colspan="5
" | exponent (5 bit)|
colspan="10"
style="border-width:0; background:#FFFFFF;
" colspan="10
"| fraction (10 bit)
|- style="line-height:70%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;
" colspan="2
" | ┃|
colspan="5"
style="border-width:0; background:#FFFFFF;"
|┌───────┐
|
colspan="
5
10
"
| ┌───────┐
|
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 ||
colspan="3"
style="border-width:0; background:#FFFFFF;
" colspan="3
" | || style="border-width:0; background:#FFFFFF;" | 10 || style="border-width:0; background:#FFFFFF;" | 9 ||
colspan="8"
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%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;"
|sign
|
colspan="
2
8
"
| sign
|
style="border-width:0; background:#FFFFFF;
" colspan="8
" | exponent (8 bit)|
colspan="7"
style="border-width:0; background:#FFFFFF;
" colspan="7
" | fraction (7 bit)
|- style="line-height:70%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;
" colspan="2
" | ┃|
colspan="8"
style="border-width:0; background:#FFFFFF;"
|┌─────────────┐
|
colspan="
8
7
"
| ┌─────────────┐
|
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 ||
colspan="6"
style="border-width:0; background:#FFFFFF;
" colspan="6
" | || style="border-width:0; background:#FFFFFF;" | 7 || style="border-width:0; background:#FFFFFF;" | 6 ||
colspan="5"
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%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;"
|sign
|
colspan="
2
8
"
| sign
|
style="border-width:0; background:#FFFFFF;
" colspan="8
" | exponent (8 bit)|
colspan="23"
style="border-width:0; background:#FFFFFF;
" colspan="23
"| fraction (23 bit)
|- style="line-height:70%;"
|
colspan="2"
style="border-width:0; background:#FFFFFF;
" colspan="2
" | ┃|
colspan="8"
style="border-width:0; background:#FFFFFF;"
|┌─────────────┐
|
colspan="
8
23
"
| ┌─────────────┐
|
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
ACFFAC
;" |
0
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="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;
" colspan="6
" | || style="border-width:0; background:#FFFFFF;" | 23 || style="border-width:0; background:#FFFFFF;" | 22 ||
colspan="21"
style="border-width:0; background:#FFFFFF;
" colspan="21
" | || style="border-width:0; background:#FFFFFF;" | 0
|}
FP32からBF16への丸め処理の発動条件は
* FP32の仮数部の「7ビット目が0」かつ「8ビット目が1」
== 主なBF16をサポートする製品 ==* [[Intel]]の[[CPU]] ([[AVX-512]]対応製品の一部)* [[NVIDIA]]の[[GPU]] ([[NVIDIA Ampere]]搭載品)
== 関連項目 ==
* [[半精度浮動小数点数]]
* [[binary16]]
* [[bfloat16]]
[[category: 人工知能]]
Administrator
ビューロクラット
、
インターフェース管理者
、
管理者
8,454
回編集