问题1:基于任务的并行与基于数据的并行有什么区别吗?
答:有区别,前者往往是cpu上的当时,而后者往往是gpu上的。前者可以看成只有一个work-item的kernel实例。...最初OpenCL有两种工作模型的。包括任务并行的(clEnqueueTask),如上所述, 可以看成是(1,1,1)个work-item的一次kernel启动。...因为基本上除了CPU外,常见的GPU并不能很有效的执行此模型下的kernel实例。...在GPU上的常见做法依然建议使用数据并行的(一份kernel代码, N个work-item在同时执行它, 但对应不同的数据)。CUDA从来只建议使用数据并行的, 否则将十分低效。...(因为如前所述, 相当于只有1个线程的kernel了, 对于CUDA来说)。
问题2:GPU点对点通信是什么意思?
答:CUDA的P2P Access和P2P Copy。