引用:
作者hugebaby
如果 nvidia 對 cuda 那麼有信心,
那為何 fermi 還要支援 opencl directcompute,
老實講老黃對自己也沒信心。
現在 nvidia cuda 對軟體業的支援的確比 ati stream 高,
但是 cuda 本身算是一種高階語言,
使用上並不是那麼容易,所以在軟體推廣上本來就有局限性,
再者,gpu 本身是寬流水線架構,如果是大量同質性的資料計算,
用cuda 運算可以獲得的性能增加會比較多,
所以圖形渲染,影音資料編解...等,當然比單純 cpu 計算快很多,
你可以注意看 nvidia "支援" 的那些軟體大多是哪些類別。
反之,對於需要長流水線,有很多邏輯處理程序的軟體,
gpgpu 並沒有相對優勢。
問題是現在 ms 踩了進來,opencl directcompute 是開放的標準,
有了 ms 支持要推廣容易多了。
至於支援 cuda 的軟體有多少?
以全球各種平台各種軟體總和來講真的是少之又少,
恐怕連億分之一都沒有...
|
所以, 拓展市場, 增加支援度就是對自己的現有產品沒信心? 這是啥邏輯?
CUDA 同時提供高階與低階 API,
支援的軟體數量不用多, 光一個網頁用很大的 Flash 就有上十幾億潛在用戶
Adobe 旗下的重量級軟體像是 Photoshop 加進去全球也有幾百萬套以上
CUDA 一項都是主打平行處理, 有相依性的自然就交給CPU
這也是Directcompute的目的, 利用GPGPU 閒製的運算力來輔佐 CPU, 讓不僅僅是遊戲, 就連一般的應用也能簡單的獲得加速.
透過提供一個通用的介面, 讓 OS 與程式設計師能簡單的寫. 但是充其量也只是一個介面, 最後還是要交給驅動或是各家提供的軟體來轉譯 然後才交給硬體去執行, 不是有了 Directcompute 其他廠商就可以把自己的軟體收一收不做了.
嚴格來說, 三者都是 API(CUDA這個名字同時是一個架構也是一個 API. )
就像 C++ 跟 Java, BASIC, 這幾個程式語言存在很久了, 也沒看到誰取代誰.
決定因素有兩個,
上手程度/學習曲線
還有能做什麼
C++ 相對於 BASIC 來說難寫, 但是就是因為他的執行效率, 所以到現在仍然廣泛的在遊戲這種對效能很摳的產業中使用.
至於OPENCL, 我只能說, 我保持中立
開放, 基本上來說就意味著靠自己. 不會有廠商提供支援, 一切都是社群在推動.
往好的一面看, 跨平台支援度會很不錯是必然的