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適合做數據並行SPMD1GHz是什麼概念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移動處理器?