CUDA的東西

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乘法算的足夠快)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章