心血來潮,順便來出個作業好了
適用科目: 高等計算機結構、平行計算、系統研究專題
題目: CUDA for ARM
NVidia剛出了可支援ARM系統的CUDA 5.5,參考:
https://developer.nvidia.com/content/cuda-arm-platforms-now-available
https://developer.nvidia.com/cuda-downloads#source=pr
現在推出CUDA for ARM,NVidia想要做甚麼呢? 參考:
http://www.theregister.co.uk/2013/06/18/nvidia_cuda_arm_openacc/
問題1: 如果計算都在 GPU上做,CPU用Intel x86還是ARM是不是沒多大差別? (提示: 請考慮既有、現有與未來的計算環境、程式設計師、市佔率等因素,分別與綜合討論效能、成本、電力等面相。)
問題2: 你覺得CUDA與OpenCL相比,將來鹿死誰手?
1. You always want less latency for serial code (code that is inherently not parallelizable) which is what a faster CPU gives you. In fact, almost every piece of code has parallelizable and non-parallelizable parts. That is why my money is on hybrids becoming the new standard. AMD (APU, formerly known as Fusion) and Intel (Xeon Phi) have already entered the hybrid age (CPU and GPU fused together), and even NVIDIA seems to be going down a similar road when looking at Project Denver.
回覆刪除2. CUDA and OpenCL will both continue their co-existance, just like DirectX and OpenGL. Sometimes one is ahead, and sometimes the other.
One more thing regarding question 2:
回覆刪除The Khronos group learned a lot from the awful state machine in OpenGL that they now largely (but still not completely) deprecated in OpenGL 4.x. NVIDIA did not learn that lesson, so CUDA's state machine and especially their stream "architecture" (stream = queue of sequential tasks) is inherently worse than OpenCL's queues.
Domi, you seem to be interested and have a gift in computer architecture, and I wonder if you would like to perform research on this area ;)
回覆刪除