Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FZ and DAZ in denormals

1,521 views

Published on

FZ and DAZ in denormals

Published in: Engineering
  • Be the first to comment

FZ and DAZ in denormals

  1. 1. 非正規化数の FZ(FTZ)とDAZの違い @ksmakoto(きしもと)
  2. 2. おさらい浮動小数点方式( 1/3) ● Knuth先生によればバビロニアには、 ある種の浮動小数点形式があった (TAoCP§4.1) ● 一般的に、全て固定長の  符号(sign)  指数部(exponent)  小数部(fraction) から成る(用語は揺れ有) ● 1970s以前は混沌、現在はIEEE754 ● URR([Hamada1987] 適応的可変長)
  3. 3. おさらい浮動小数点方式( 2/3) ● 端から、NaN ・ ± ∞ ・ 一般的な数 ・ 「非正規(化)数」・ ゼロ(・ マイナスゼロ) ● 一般的な場合の例 例: 1.602177e-19  符号(sign):    +  指数部(exponent): 10^(-19)  小数部(fraction): 1.602177
  4. 4. おさらい浮動小数点方式( 3/3) ● 具体的に(IEEE754 binary64) NaN : 0 11111111111 ......(全 0 以外) ∞ : 0 11111111111 000000...... DBL_MAX: 0 11111111110 111111...... 1 : 0 01111111111 000000......(ケチ表現) DBL_MIN: 0 00000000001 000000...... 、(以下 非正規化数) の最大 : 0 00000000000 111111.....( ケチ非 表現) の最小 : 0 00000000000 000.......001  0: 0 00000000000 000.......000
  5. 5. と非正規化数 gradual underflow ● アンダーフローとは ● 正規化数で表現できないくらい 絶対値が小さくなった and・or厳密には非ゼロだがゼロになった ● そこで、可能ならゼロにせず非正規化数に → gradual underflow ● ハードでの は だから いことも実装 大変 無 ソフトではもっと くなるから いことも遅 無 ● と のトレードオフだから、精度 速度 びたい こともある「選 」
  6. 6. SSEとgradual underflow ● 詳細はインテルの資料を参照 ● SSE(およびIA-64)には速度重視のための Flush-to-Zero (FZ (FTZ)) モードがある ● コード例はあとでアップロードします
  7. 7. FZとDAZ ● SSE2かSSE3以降には(資料とコードで違う) Denormals-Are-Zero (DAZ) というモードもある ● どう違うのか  → 次の図を見れば一発でわかります
  8. 8. FZとDAZ FZ DAZ x y x y op op 出力で0に 入力で0に x `op` y x `op` y
  9. 9. FZとDAZ ● コード例はあとでアップロードします
  10. 10. FZとDAZ ● コード例はあとでアップロードします

×