自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CPU浮點(diǎn)運(yùn)算和整點(diǎn)運(yùn)算分別決定其什么性能?

商務(wù)辦公
簡(jiǎn)單來講在現(xiàn)代計(jì)算機(jī)環(huán)境下的日常使用中,整點(diǎn)運(yùn)算性能影響如壓縮與解壓縮,計(jì)算機(jī)進(jìn)程調(diào)度,編譯器語(yǔ)法分析,計(jì)算機(jī)電路輔助設(shè)計(jì),游戲AI處理類型的操作。

簡(jiǎn)單來講在現(xiàn)代計(jì)算機(jī)環(huán)境下的日常使用中,整點(diǎn)運(yùn)算性能影響如壓縮與解壓縮,計(jì)算機(jī)進(jìn)程調(diào)度,編譯器語(yǔ)法分析,計(jì)算機(jī)電路輔助設(shè)計(jì),游戲AI處理類型的操作。

而浮點(diǎn)運(yùn)算單元主要影響CPU的科學(xué)計(jì)算性能,如流體力學(xué),量子力學(xué)等,而更貼近我們?nèi)粘D芤姷降膽?yīng)用就是多媒體相關(guān)的應(yīng)用,如音視頻的編解碼,圖像處理等操作。

 

ZEN的核心架構(gòu)圖

而我們通常在測(cè)試CPU時(shí)使用如Sandra 2018,Super Pi,wPrime,F(xiàn)ritz Chess Benchmark,WinRAR,7-zip,x264 FHD Benchmark等軟件,這些測(cè)試軟件就能夠體現(xiàn)處理器理論整數(shù)運(yùn)算單元和浮點(diǎn)運(yùn)算單元性能的。

在具體使用的軟件中,如壓縮解壓軟件WinRAR,7-zip,程序員使用的GCC編譯器,網(wǎng)絡(luò)路由的選擇,游戲中的AI以及我們?nèi)粘T囉貌僮飨到y(tǒng)調(diào)度都是整點(diǎn)運(yùn)算。而我們?cè)谑褂胠ightroom等圖像處理軟件,語(yǔ)音識(shí)別,視頻的編解碼,以及科學(xué)家使用Matlab進(jìn)行科學(xué)計(jì)算時(shí)都用到了浮點(diǎn)運(yùn)算能力。

對(duì)于玩家最關(guān)心的就是這些到底對(duì)游戲有什么影響。首先CPU承擔(dān)著整個(gè)計(jì)算機(jī)中的任務(wù)進(jìn)程分配問題,所以如果游戲代碼優(yōu)化不好,進(jìn)行頻繁的Draw Call操作,會(huì)非常消耗CPU任務(wù)調(diào)度資源。同時(shí)現(xiàn)在游戲AI做操作行為判斷時(shí),也是使用整點(diǎn)運(yùn)算單元的。而現(xiàn)在很多游戲加入了防盜版機(jī)制,在運(yùn)行游戲時(shí)頻繁的加解密會(huì)消耗浮點(diǎn)運(yùn)算性能。所以有朋友使用較老的硬件運(yùn)行新游戲時(shí),會(huì)非常影響游戲運(yùn)行幀率。

所以整點(diǎn)運(yùn)算性能和浮點(diǎn)運(yùn)算性能都反映了CPU處理數(shù)據(jù)的能力。但是整點(diǎn)運(yùn)算性能還反映了控制程序流的的能力。

 

在計(jì)算機(jī)中,定點(diǎn)數(shù)不一定是整數(shù),而浮點(diǎn)數(shù)也不一定是小數(shù)。在計(jì)算機(jī)中,定點(diǎn)數(shù)是指小數(shù)點(diǎn)固定的數(shù),而浮點(diǎn)數(shù)是指小數(shù)點(diǎn)不固定的數(shù)。在計(jì)算機(jī)中采用IEEE 754標(biāo)準(zhǔn)進(jìn)行浮點(diǎn)數(shù)的存儲(chǔ)的,他可以精確的的表示某一個(gè)數(shù)據(jù)。

在早期浮點(diǎn)運(yùn)算單元并沒有一開始就加入到CPU設(shè)計(jì)中的。但是在計(jì)算機(jī)中,運(yùn)算單元都是邏輯電路,由浮點(diǎn)數(shù)的定義我們可以知道,在早期僅有整點(diǎn)數(shù)運(yùn)算單元而不帶有浮點(diǎn)數(shù)處理單元的 處理器上,處理浮點(diǎn)數(shù)的階碼、尾數(shù)的計(jì)算以及規(guī)格化就成為了很困難的事情,導(dǎo)致早期CPU在科學(xué)計(jì)算中依舊非常的緩慢。所以Intel就設(shè)計(jì)了獨(dú)立于8086和8088處理器外的8087數(shù)學(xué)輔助處理器。到后來隨著計(jì)算機(jī)不再是科學(xué)家的工具,也逐漸進(jìn)入了公眾視野,Intel在80486DX處理器核心內(nèi)初次集成了浮點(diǎn)運(yùn)算單元。

[[258896]]

 

Intel 8087協(xié)處理器

 

Intel Core i7 7700k處理器的CPU-Z信息

早期的Intel x87系列數(shù)學(xué)運(yùn)算輔助處理器只是作為一個(gè)提高浮點(diǎn)運(yùn)算速度的處理器,而在現(xiàn)代處理器中,浮點(diǎn)計(jì)算功能會(huì)通過SIMD(Single Instruction Multiple Data,單指令多數(shù)據(jù)流)的技術(shù)實(shí)現(xiàn)并行計(jì)算能力。在打開CPU-Z后,開支持指令集一欄可以看到,現(xiàn)代處理器帶有的SSE指令集就有處理浮點(diǎn)運(yùn)算的能力。而在之后的發(fā)展中,也逐漸引入了SSE2,SSE3,SSE4,AVX,F(xiàn)MA等更加適用于現(xiàn)代軟件開發(fā)的擁有強(qiáng)大浮點(diǎn)運(yùn)算能力的指令集。

那接下來就有問題了,現(xiàn)代處理器加入了很多高度并行化的浮點(diǎn)運(yùn)算單元,相較以往單純CPU的浮點(diǎn)運(yùn)算能力有了非常大的飛躍,但是相對(duì)于現(xiàn)代的圖形處理器來說,這么些浮點(diǎn)運(yùn)算能力是不夠看的,那為什么不像幾十年前一樣不在CPU中集成浮點(diǎn)運(yùn)算單元呢??

 

Nvidia Geforce 256核心照片

對(duì)于這個(gè)問題,首先大家要了解為什么會(huì)獨(dú)立出來圖形處理器這種專有硬件的。在20世紀(jì)90年代,計(jì)算機(jī)多媒體逐漸開始興盛起來,在1998年到1999年間,Intel和AMD的CPU中已經(jīng)擁有了SSE或3DNow!這樣的SIMD浮點(diǎn)運(yùn)算指令集。但是隨著電子游戲的發(fā)展,計(jì)算機(jī)的使用者對(duì)于計(jì)算機(jī)的圖形性能有了更高的要求,但是此時(shí)的CPU內(nèi)浮點(diǎn)運(yùn)算性能并不滿足需求,所以在此后圖形處理器開始負(fù)擔(dān)更多的浮點(diǎn)運(yùn)算工作。

 

Nvidia CUDA核心工作流程

但圖形處理器的使用者看到如此高效能的浮點(diǎn)運(yùn)算處理器的時(shí)候就在思考如何能讓這類設(shè)備承擔(dān)除了圖形計(jì)算之外的浮點(diǎn)計(jì)算性能。乘著GPGPU(General-purpose GPU)概念的逐漸興起,顯卡上的統(tǒng)一渲染架構(gòu)的出現(xiàn),也讓這種計(jì)算方式真正成為現(xiàn)實(shí)。Nvidia在2007年正式發(fā)布了CUDA并行計(jì)算平臺(tái)。之后也出現(xiàn)了如openCL的通用計(jì)算API(應(yīng)用程序編程接口)。

到此我們突然發(fā)現(xiàn),GPU都來?yè)孋PU的浮點(diǎn)運(yùn)算飯碗了,但為什么CPU非但沒有取消浮點(diǎn)運(yùn)算單元,反而其浮點(diǎn)運(yùn)算性能越來越強(qiáng)??

 

AMD推土機(jī)架構(gòu)示意圖

其實(shí)并不是沒有人想到這樣的情況,而是已經(jīng)與產(chǎn)品這么做了,就是AMD的推土機(jī)架構(gòu)。這個(gè)架構(gòu)放棄了之前的一個(gè)核心就由一套整數(shù)運(yùn)算單元和浮點(diǎn)運(yùn)算單元的組合,而是讓兩個(gè)核心共享一個(gè)浮點(diǎn)運(yùn)算單元組成一個(gè)簇,而AMD將這種架構(gòu)叫做CMT,又稱為群集多線程技術(shù),之后又將相對(duì)與Intel有優(yōu)勢(shì)的GPU核心集成進(jìn)CPU中,產(chǎn)生了APU處理器。

AMD當(dāng)時(shí)還為此成立了HSA基金會(huì),為解決CPU和GPU的內(nèi)存統(tǒng)一尋址問題,也提出了hUMA技術(shù)并用在了Sony的PS4游戲機(jī)上。

[[258897]]

 

Sony Playstation 4主機(jī),CPU和GPU共享8GB GDDR5內(nèi)存

那為什么廠商做了這么多還是做不到用大規(guī)模的GPU取代CPU中的浮點(diǎn)運(yùn)算單元呢?運(yùn)算精度才是重點(diǎn)。CPU中的浮點(diǎn)運(yùn)算單元是為了更高精度浮點(diǎn)運(yùn)算準(zhǔn)備的。如在Intel處理器中的AVX指令集可以處理512位擴(kuò)展數(shù)據(jù),這樣大大提升了計(jì)算精度和速度。而GPU中的處理器都是為高度并行計(jì)算而設(shè)計(jì)的結(jié)構(gòu)相對(duì)簡(jiǎn)單的核心,這些核心每一個(gè)都是SIMD處理器,但是能夠處理的數(shù)據(jù)精度是有限的,在Nvidia以及AMD圖形處理器上支持的數(shù)據(jù)精度大多是單精度和雙精度浮點(diǎn)計(jì)算(FP32和FP64),甚至隨著機(jī)器學(xué)習(xí),深度學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)的流行,新的圖形處理器甚至支持了半精度浮點(diǎn)運(yùn)算(FP16)。

其次,由于在計(jì)算精度上相較于CPU中的浮點(diǎn)運(yùn)算單元不高,所以在這些處理器中也沒有內(nèi)置數(shù)據(jù)校驗(yàn)和數(shù)據(jù)補(bǔ)償處理的運(yùn)算單元。所以對(duì)于使用GPU進(jìn)行科學(xué)計(jì)算的人,需要在編程階段就避免這樣的問題。同時(shí)CPU和GPU在設(shè)計(jì)上就是非常不同的,CPU的浮點(diǎn)單元個(gè)數(shù)很少,但是單個(gè)浮點(diǎn)運(yùn)算單元所提供的性能是很強(qiáng)的。而GPU中是用過海量的SIMD單元堆砌出來的浮點(diǎn)運(yùn)算能力。在CPU設(shè)計(jì)時(shí),還需要設(shè)計(jì)大量的多級(jí)緩存來提高CPU的運(yùn)算速度。而GPU中通常只為這些SIMD處理單元內(nèi)置不多的緩存,而提供大量的內(nèi)存(顯存)。

所以綜合上面的分析,我們可以得出的結(jié)論是雖然GPU擁有更強(qiáng)大的浮點(diǎn)運(yùn)算性能,但是限于其計(jì)算單元的設(shè)計(jì),統(tǒng)一內(nèi)存架構(gòu)的設(shè)計(jì),其還是不能完全取代CPU中的浮點(diǎn)運(yùn)算核心。CPU中的整點(diǎn)運(yùn)算單元在肩負(fù)著如壓縮解壓,編譯器編譯程序,網(wǎng)絡(luò)路由,控制程序流等任務(wù)同時(shí),其浮點(diǎn)運(yùn)算核心也依舊在處理著圖像處理,科學(xué)計(jì)算等需要更高精度計(jì)算的任務(wù)。

 

責(zé)任編輯:武曉燕 來源: 超能網(wǎng)
相關(guān)推薦

2021-06-11 18:27:10

LinuxLinux內(nèi)核

2015-12-02 10:21:34

JavaScript浮點(diǎn)數(shù)精度調(diào)整

2015-09-16 14:37:50

Android性能優(yōu)化運(yùn)算

2017-08-25 17:59:41

浮點(diǎn)運(yùn)算C語(yǔ)言

2009-06-03 18:38:07

多核CPU網(wǎng)絡(luò)

2009-06-21 13:48:05

ShellLinux運(yùn)算符

2009-04-22 09:00:15

曙光5000A百萬(wàn)億次超級(jí)計(jì)算機(jī)

2022-05-18 16:06:15

位運(yùn)算異或運(yùn)算

2023-11-01 08:08:47

PythonIS運(yùn)算符

2011-09-19 14:28:33

筆記本評(píng)測(cè)

2009-08-12 10:47:03

C#運(yùn)算符重載

2013-08-15 16:48:39

.Net基礎(chǔ)

2017-05-11 16:38:07

javascript邏輯運(yùn)算符

2012-08-27 14:28:16

AMD皓龍

2024-02-26 15:17:20

2024-10-09 08:00:00

2025-02-24 11:16:20

2025-02-07 00:12:34

C#編程as

2009-06-11 16:11:26

Java運(yùn)算器一則運(yùn)算

2009-11-18 09:02:55

PHP運(yùn)算符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)