定點運算和浮點運算哪個速度快

時間 2021-12-21 14:13:42

1樓:來知曉

一般來講,定點運算更快,因為浮點運算涉及到複雜的定點轉換。

具體原理見下文:

目錄

基本概念

浮點數與定點數對映轉換

浮點到定點

定點到浮點

定點數與浮點數儲存的區別

參考資料

在分析講解定點和浮點之間對映前,我們需要了解以下基本概念。

位寬

乙個浮點數用多少位的整數來表示

如(16, 4),則表示用16位整數來表達浮點數

假設為有符號數

則其中:1位為符號位,4位數為表達整數,剩餘11位表達(0, 1)的小數

分布如圖:

標值

即指用多少位,來儲存小數

若位寬表示為(16, 4),則標值為Q15

一句話表達:浮點數乘以2^Q,然後圓整或截斷成整數,即得定點數。其中Q為定標值。

總體過程如下圖:

由於定點到浮點是浮點轉換的逆過程,所以核心只要掌握浮點到定點的對映即可。

主要思路:

檢視對應變數的浮點值範圍

取絕對值後,找到最大值,並截斷取整為maxNum

分析需要多少位來存maxNum,剩餘的位數則乙個留給符號位,其餘位留給小數字

如用32位定點存浮點數,用25位來存整數,留1位符號位,剩6位給小數,故位寬表示(32, 25),標值為Q6

定點值 fix = float * 2^6,將整數左移6位,低6位則是小數轉換而來

定點能表示的浮點數精度為:1/2^6=0.015625,用最小的定點數1,來轉化成最小浮點數,得到精度值

一句話表達:二進位制轉化為十進位制整數,定點整數除以2^Q,做浮點運算,結果即為對應浮點數。

總體過程如下圖:

主要步驟:

知道標值Q,則定點是浮點轉換的逆過程

公式為 float = fix / 2^6

整數部分,fix右移6位後得到的結果

小數部分,就是用定點除法運算fix/2^6的餘數mod,mod / 2^6做浮點運算所得結果

聯絡之前文章《計算機中浮點數儲存的本質》,下面將定點數與之對比:

總述:核心原理類似,具體實現不同

核心相同處

都是將整數移至高位,剩餘位給小數字

IEEE演算法裡科學計數法前面的步驟跟定點數相同

如:19.625,用32bit浮點存

IEEE科學計數法前的結果:10011.101,假設用8位存整數,1位存符號位,剩餘23位存小數

用Q23的定點表達:00010011.10100000000000000000000

具體不同處

定點數的標是可變的,32位浮點數IEEE演算法固定只用8位來存指數部分,1位來存符號位,剩餘位數存尾數

浮點數儲存演算法更複雜,定點數步驟僅相當於只到IEEE演算法科學計數法前面

IEEE演算法中,後面繼續採用科學計數法將整數再次壓縮成指數來儲存,從而提高了精度

為什麼能提高精度?

用更少位數來存整數,更多位數來存小數,以提高精度

參考資料計算機中浮點數儲存的本質分析

2樓:Joffe Chiu

按理論來講理論上浮點運算是會被定點運算慢的因為浮點運算複雜但現在CPU裡有整合專門的浮點運算FPU來提高這個計算速度.

就好比理論上鋁的散熱比鐵快,但鐵塊有水冷裝置...

然而,實際沒低很多...

Xbox Series X官宣GPU浮點運算達到12T,下一代家用機會改變遊戲畫質落後PC的局面嗎?

Chiral 這是田忌賽馬,大多數pc玩家的硬體配置水平是遠低於主機的。steam有出過資料。而且要考慮廠商對主機的優化能力,把ps4或xbox老機的類似配置pc拿出來,新點的遊戲能否流暢執行都是個問題。更不用說電腦遊戲區里各種為什麼開啟遊戲彈出黑屏彈出卡住之類主機根本不存在的問題。 不可能巨硬,賣...

cpu的運算速度的極限?

我覺得,頻率15G是極限 工藝0.7nm是極限 執行浮點極限這個估計沒有極限,以後的乙個基座上封裝上千上萬個核心,這是趨勢 好的工業設計都有理論支援。現代處理器設計理 論決定了今天的方案能走多遠。幾個關鍵因素 1,訊號由高低電平傳遞,二進位制表達 2,邏輯門與快取的架構 3,指令的執行方式 4,隨之...

為什麼 CPU 的浮點運算能力比 GPU 差,為什麼不提高 CPU 的浮點運算能力?

以前CPU弱,要是搞個浮點數運算的協處理器,運算速度跑的飛起。當然了,如果真為了計算,CPU一樣可以把ALU搞的很強大,不過沒必要。畢竟術業有專攻嘛,CPU主要是流程控制,而不是計算,然而GPU在處理光線之類的渲染的時候,會做大量的計算工作。 chapman zhang CPU是大學生,乙個大學生一...