CPU和GPU的計算速度是如何計算的,一般軟體又如何佔用這些計算空間,1GHz是什麼概念?


鑒於這個問題本身比較大,所以樓主你可以先看回答,有什麼不懂的修改你的問題,我會跟進補充一些。

---------------------------------------

計算速度一般的衡量標準是FLOPS和IPS/IOPS,前者是每秒鐘能進行的浮點操作數,後者是每秒鐘進行的操作數(一般指整數運算)。

1GHz是時鐘頻率。如果把CPU進行計算比作是划船,時鐘就是相當於喊的號子,喊一下CPU就算一下。號子喊得越快,划船的頻率就越高。


拋磚引個玉先.

先回答第二個問題, 一般軟體的如何佔用這些計算空間.

程序會被編譯器轉化為指令.

格式大抵類似於

add $r1 $r2 $r3

這樣. 上面這條指令可以表示為"從寄存器r2和r3取到一個數字, 加起來, 然後存到寄存器r1里"

寄存器是一種存儲器, 只是從概念上理解, 你就理解為內存吧(實際上同內存有區別). 程序就是一堆這樣子指令的集合. 指令存在內存里, 由CPU從內存里取來指令, 以及指令相關的數據, 然後發送到CPU上的執行單元里, 去執行.

計算機的運算速度, 可以姑且理解為, 執行指令的速度(實際上還是要受很多其他因素的影響, 譬如我CPU執行快, 但是從內存拿數據卻很慢), 也就是, 單位時間能執行多少條指令.

1GHz是指CPU的時鐘頻率, 意思是, 每秒鐘10^9次. 處理器指令的執行可以簡化成這樣, 處理器內部有個時鐘, 時鐘每走一步, 處理器執行一條指令(真實的情況也更複雜. 比如流水線技術, 程序並不是每個時鐘執行完一條指令, 但是可以通過流水線"看上去每個時鐘執行一條指令").

所以處理器想要提升運算速度, 基本上有兩個辦法, 一個是把時鐘的頻率加快, 譬如你說的1GHz, 可以理解為每秒執行10^9條指令, 那好, 我讓我的時鐘頻率到2GHz, 要是我的硬體還受得了(CPU會更熱, 同時執行每條指令用的時間會更短, 要是電路沒設計好, 結果可能會錯), 那我的性能一下子就變成兩倍了.

但是頻率是沒有辦法無限提升的. 那我還有一個辦法, 我同時拿好幾塊處理器來計算不就行了嗎? 我還是1GHz, 但是有兩百個個處理器, 每個運算原來1/200的任務. 這樣我的性能不就可以變成200倍了么(實際上小於或大於200倍都可能)?

PS: 上面的回答只是為了概念性的說明, 細節上的錯誤是很多的. 如果修過計算機體系結構課程的話, 大抵就能明白CPU的運行機制了.


我理解的樓主問的計算空間 可能是指CPU的計算能力如何分配給各程序

程序在運行時 形式為進程(進一步又包含若干線程)或者任務

如果是單CPU的情況 則CPU會在各線程(任務)中根據其優先順序快速切換 輪流處理任務 並讓你以為這些任務是被同時執行的 .(實際上每次時鐘只能執行一條指令 不能真正同時處理兩個任務)

多CPU或者多核的情況 存在真正的並發 但線程多了也是類似的情況


CPU和GPU的計算速度是如何計算的,

每秒單位浮點運算數和定點運算數,

一般軟體又如何佔用這些計算空間,

CPU適合做多任務並行MPMD,GPU適合做數據並行SPMD

1GHz是什麼概念

1GHz的CPU算 20-30 個點哈密爾頓迴路問題大概需要1天時間(大概)


我學過數字電路之後才差不多明白GHz的概念


推薦閱讀:

智能手機的cpu性能 = 核心數 * 單核頻率?
會有i5 8400桌面U的藍天(神舟K680E)筆記本嗎?
為什麼14納米之後不研發13納米,而是以躍進的方式研發?
AMD RYZEN 5 1600的遊戲性能與intel i5 7500的比較?
如何評價AMD在2017.10.26全新發布的RYZEN移動處理器?

TAG:中央處理器CPU | 圖形處理器GPU | 電腦硬體 |