我想知道当我们从主机到设备进行复制时,cudaMemcpy是在CPU上执行还是在GPU上执行?
换句话说,这个复制是顺序执行还是并行执行?
让我解释一下为什么我会问这个问题:我有一个包含500万个元素的数组。现在,我想从数组的不同部分复制2组50000个元素。所以,我在想是否先在CPU上形成一个包含所有要复制元素的大数组,然后只进行一次大型传输,还是应该调用两个cudaMemcpy,每个集合一个。
如果cudaMemcpy是并行执行的,那么我认为第二种方法会更快,因为你不必首先在CPU上顺序复制100000个元素。
换句话说,这个复制是顺序执行还是并行执行?
让我解释一下为什么我会问这个问题:我有一个包含500万个元素的数组。现在,我想从数组的不同部分复制2组50000个元素。所以,我在想是否先在CPU上形成一个包含所有要复制元素的大数组,然后只进行一次大型传输,还是应该调用两个cudaMemcpy,每个集合一个。
如果cudaMemcpy是并行执行的,那么我认为第二种方法会更快,因为你不必首先在CPU上顺序复制100000个元素。