有沒有低功耗GPU陣列的 CUDA並行計算方案?
有沒有低功耗的GPU陣列,可以是用ARM這類嵌入式處理器加上GPU陣列構成的低功耗並行計算方案啊,要支持CUDA;
主要是覺得現在顯卡太笨重了,功耗非常大,而且依賴於PC這種大體積的傢伙,希望有體積小,功耗低的GPU陣列方案,當然性能越高越好,功耗越低越好;自己推測這種方案應該是ARM類的處理器加上大規模的GPU陣列,跑嵌入式linux或者Android,支持CUDA並行計算;有知道相關信息的高手,勞請指點一二;謝謝;
這個事情我在2007年就想過。用大量ARM組成的陣列跑GPU程序。後來Intel出了Larrabee,正是這種架構,但用了更強勁的x86。
但這條路是走不通的。因為大量的功耗會被消耗在控制器和cache上。最終還是不會超過GPU的能耗比。現在Xeon Phi仍然干不過NVIDIA的卡,也是如此。NV的晶元已經做到非常高的能耗比,能超過它的不多。所以你的狀況更適合的是用NV的ARM+CUDA板。看到很多知友對當今FPGA的發展了解得還不夠,不請自來怒答一發!
首先, FPGA比GPU最大的優勢是什麼?當然是能效了。不然和GPU爭個什麼勁兒…要比能效GPU干不過FPGA很正常。我們現在做很多應用搞下來,GPU速度是FPGA的2到3倍,但GPU功耗160到200W,FPGA頂滿了也就20W。比能效FPGA吊打GPU3、4倍輕輕鬆鬆。我們現在就是靠著FPGA能效更高這一點到把各種經典的在GPU上實現過的演算法往FPGA上搬,然後再優化一下就可以去灌水了。
GPU相對於FPGA的三大優勢:開發便捷,積累的庫和常式多;運算的絕對速度高,尤其是浮點運算的時候;價格便宜一些。
但是這三點優勢在被逐漸消解。首先OpenCL用於FPGA開發已經大大降低了開發難度,和以前用HDL開發比已經低了不少,雖然還是有難度但已經和GPU開發難度接近(不直接調用現成庫或者模板的話)。其次隨著FPGA嵌入硬浮點乘法器,其浮點運算能力也在加強。價格問題我估計是最不好解決的,因為靈活性不是無代價的。不過FPGA倒不急於或者說不應該去和GPU拼圖像方面的應用。有大把的其它應用可以拼呢。在那些市場,大家都是後來者。另外需要注意的是,由於FPGA底層結構和GPU完全不同。因此要注意選擇合理的編碼風格和優化方法。同時基於OpenCL的FPGA開發方法也在不斷的完善進步,現在看來還有很大的提升空間。我們現在也遇到同樣的問題,現在正考慮FPGA的實現,最大的優勢是功耗很低,而且對於某些演算法比GPU有優勢~而且可以用opencl或類似於CUDA的高級語言來開發!
另外也有嵌入式實現,就是FPGA+arm,有高端和低端,高端主要針對HPC鄰域
缺點就是門檻比較高,演算法的優化思路和CUDA之類的不太一樣,靈活性很高,導致不同的優化方式加速比差別很大~謝邀。
先給一個在大部分情況下成立的答案:沒有!======懶人分割線,沒興趣的就不用繼續看下去了=====
那為什麼沒有呢?因為題主說出了兩個較為矛盾的feature:輕量和陣列。
集成塊和PCB從應用目的上來說並沒有什麼差別,如果能靠n個小核實現更好的功耗性能比的話,為何不直接這樣做進一個GPU呢?(其實也不是沒人干過,比如Intel的膠水雙核。。。)其實高級GPU的內部也是一堆小核(可以認為是SM或者CUDA核心),所以這裡就要說到集成塊里除了膠水還有啥。為了保證內部小核之間的通信性能,需要有一大堆的Cache(緩存),Share memory(共享內存)和I/O bus(匯流排)。前兩者在矽片外部就沒法做,太慢了;Bus在矽片內部可以做成同步匯流排,拿出來很多時候就要變成非同步了,而且可能引入很多交換機構(片內有時也有,叫NoC)。
除非。。。
你能保證你的應用幾乎不涉及核間I/O,大家都是獨立在跑的。在這種情況下,如果能把和外部通信的匯流排做的比較輕量(既然是要低功耗,設備上也不可能出現上百個PCI-E通道吧。。。。),有可能能達到減功耗的效果。然而應用面太窄開發成本極高,不如直接去用FPGA,相比GPU功耗極低性能極高。可以用Tegra x1啊4個arm核+一個跑CUDA的GPU晶元功耗大概10w
推薦閱讀:
※GPU 中的計算單元之間能不能通信?
※opencl的前景如何?
※高通和英偉達,誰能成為汽車處理器的贏家?
※Imagination Technologies 的行業地位如何,有哪些領先技術優勢?
※為什麼顯卡不裝驅動也能使用?