首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

VDSP (BF561) 浮點運算系列(9):long double 與 float 效能對比

     編輯:關於C++

VDSP 預設 double 同 float (32-bit),long double 為 64-bit IEEE 754 雙精度。比較兩者型別表示與運算效能。

型別表示對比

floatlong double
位元組48
符號位11
指數位811
尾數位2352
最小值1.17e-382.22e-308
最大值3.40e+381.79e+308
解析度1.19e-072.22e-16

High Performance 模式(預設 -fast-fp)

運算floatlong double
加減132 cycles166 cycles
乏法92 cycles179 cycles
除法240 cycles1506 cycles

long double 除法極慢(6.3x)。

Strict IEEE 模式(-ieee-fp)

運算floatlong double
加減310381
乏法274585
除法4971063

反常現象:Strict IEEE 下 long double 除法反而比 High Performance 快(1063 vs 1506),文檔說明兩種庫的差異未解釋此例外。

建議

嵌入式 DSP 應優先使用 float 或 fract,避免 long double 巨大開銷。若專案混用不同浮點設定編譯,會導致執行期錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved