C++ 将统一内存指针传递给内核会降低程序的速度

C++ 将统一内存指针传递给内核会降低程序的速度,c++,memory,cuda,C++,Memory,Cuda,在CUDA中,向内核传递统一内存指针是否会降低程序的速度 我让一个内核做一些事情,然后我在内核外部管理一些统一内存,然后将指向内核的指针作为参数传递。我用cuda_事件来记录时间。从1900ms到3000ms,内核运行速度要慢得多 为什么传递指针需要花费太多的时间?指针 如何提高程序的速度?将托管指针传递给内核本身不会影响性能。但是,读写指针地址所在的受管内存可能会触发大量通过PCI-e总线的临时内存传输。这可能会非常慢。可能是因为统一内存正在以某种方式复制与指针关联的数据。

在CUDA中,向内核传递统一内存指针是否会降低程序的速度

我让一个内核做一些事情,然后我在内核外部管理一些统一内存,然后将指向内核的指针作为参数传递。我用cuda_事件来记录时间。从1900ms到3000ms,内核运行速度要慢得多

为什么传递指针需要花费太多的时间?指针


如何提高程序的速度?

将托管指针传递给内核本身不会影响性能。但是,读写指针地址所在的受管内存可能会触发大量通过PCI-e总线的临时内存传输。这可能会非常慢。

可能是因为统一内存正在以某种方式复制与指针关联的数据。