CUDA的東西,對我來說似乎太高深了一點,按照我的理解,打個簡單點的比方來說明一下(理解不對的請各位指正):
1、Intel做的CPU只能進行混合加減運算,例如3+4-(5+1)這樣的,而我們要做乘法運算5×4.因爲CPU不支持乘法,所以我們只能用軟件來實現乘法的算法:5+5+5+5.性能稍微慢點(要算3次),這個也沒什麼問題,但現在我們要做算1×1+2×2+……+100×100。這下慘了,算的太慢了……
2、以前Intel可以加快CPU的計算速度,所以大家也就忍忍等下一代CPU出來。等不及的用兩個、四個、……、很多個CPU一塊算。問題是Intel的CPU現在不能再快了,於是Intel把兩個/四個CPU做在一起賣。當然了,習慣了只用一個CPU計算的,還是很慢。
3、NV做了一個專門做乘法計算的東西,叫GPU,算乘法很快,而且可以同時做10次乘法運算(恩,ATi也有這樣的東西)。於是1×1+2×2+……100×100,很快就能算出結果來……於是NV說,既然我的GPU也能算數,而且比Intel的CPU快,那我可以搶Intel的飯碗了。於是弄了個CUDA出來:大家算數的時候,把所有的乘法都提取出來,都交給GPU去算,就讓CPU去算加和減就好了。
4、NV忽悠了很多人,於是很多人都把自己要算數裏面的乘法都單獨拿出去,讓NV的GPU去算……恩,補充一下,NV的GPU有很多型號,有可以同時做10次乘法的,也有同時只能做8次乘法的,也有同時只能做4次乘法的……,所以用CUDA的話,爲了達到最高效率,把乘法挑出來這部工作,似乎有點痛苦。這次好不容易挑好了,NV又出來個同時可以算20次乘法的……
5、Intel不服氣,不就算乘法麼?於是弄了個Larrabee,乾的事情跟NV的GPU差不多,雖然乘法沒有NV算的快,不過Larrabee還能算加減哦(就是不能帶括號)……只要不帶括號的算式,或者算式在括號裏面的部分,都可以直接給Larrabee去算,不用單獨把乘法挑出來……而且因爲本來就用括號分隔的,Intel很容易就做了個編譯器,編譯器可以自動把括號裏面的東西交給Larrabee去算,所以大家直接輸入原來的算式就可以了。
6、AMD?AMD自己既有CPU,也有算專門乘法的GPU。AMD似乎什麼沒幹,等着MS做一個叫DirectCompute的超級牛X的計算器(軟件,只能跑在Windows平臺),那個計算器可以自己把乘法挑出去讓GPU算……AMD自己支持這個計算器就好了……Windows以外的,有另外一個計算器叫OpenCL,AMD也支持的……
以上是現狀,將來麼?不知道,如果NV能讓CUDA接受到一條算式就能夠自動把乘法都挑出來讓GPU去算,那麼應該會是NV贏……或者Intel能讓Larrabee算乘法比NV的GPU快,那麼Intel會贏……如果大家都用MS的DirectCompute計算器或者OpenCL算數,AMD還有點機會(只要AMD的GPU乘法算的足夠快)
CUDA的東西
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
D3D運行後截圖的方法
野小不
2018-08-27 07:53:59
DirectX11學習:第三篇---初始化DirectX11
engineer_ZHQ
2018-08-27 05:53:41
DirectX學習第二篇:構建框架
engineer_ZHQ
2018-08-27 05:53:37
DirectX11學習:第一天:環境配置
engineer_ZHQ
2018-08-27 05:53:37
windows10中創建Direct3D11設備出現0x887a002d錯誤的解決方案
acebdo
2018-08-27 03:13:54
D3DXMatrixLookAtLH
大_猫
2018-08-26 17:08:59
深入理解Direct3D9
lhc717
2018-08-26 13:40:59
DirectX 9 遊戲漢化詳解
lhc717
2018-08-26 13:40:57
徹底解析Fps與刷新率,什麼叫做垂直同步
lhc717
2018-08-26 13:40:50