The major limitation in heterogeneous CPU+GPU programming seems to be the slow memory transfer across the PCI-e bus when data needs to be passed back and forth between the Device and Host. I have read that the goal of AMD's Fusion APU's is to solve this problem. Does the Fusion APU attempt to solve this problem by having the GPU and CPU share a common physical memory region? And what I am really wondering is if the Tegra K1 (or X1) also attempt to solve this problem by having the CPU and GPU share a common physical memory region, therefore not needing to perform a cudaMemcpy.
1 Answer
Well I know that Intel somehow solved this problem by placing the GPU into the same NUMA switching complex as the CPU cores. This is implied from Intel Xeon E3-12x0v3/12x1v3 specs indicating for those Xeon E3-1200s with i7-compatible sockets but no GPU, the memory bandwidth that was used by GPU on i7s and E3-12x5v3/12x6v3 is made available to the CPU cores.
This does suggest that the shared L2 and L3 cache on Intel processors is available to both CPU cores and built-in GPU cores. So as long as the data fit in cache, no main memory access is needed.
-
\$\begingroup\$ Maxthon, my application domain is image/video processing, and the amount of data needed to be passed back and forth between the CPU and GPU is orders of magnitudes larger than that which can fit into any form of standard cache. I appreciate your response, but it didn't answer my specific 2 questions: QUESTION 1.)Does AMD's Fusion APU attempt to solve this problem by having the GPU and CPU share a common physical memory region? QUESTION 2.) Does NVIDIA's Tegra K1 (or X1) SoC also attempt to solve this problem by having the CPU and GPU share a common physical memory region? \$\endgroup\$ Commented May 5, 2015 at 12:12
-
\$\begingroup\$ @CosmoKramer I don't have any specific information about those two manufacturers, but Intel's i7 series have almost the same topology and obviously they did. And since the NUMA switching complex is shared the memory bandwidth is obviously the same so if you want to, you can give i7 a try. \$\endgroup\$ Commented May 5, 2015 at 12:17