【发布时间】:2015-07-07 00:20:05
【问题描述】:
我需要测量使用new 分配普通CPU 内存和调用cudaMallocManaged 之间的时间差。我们正在使用统一内存,并试图找出将事物切换到cudaMallocManaged 的权衡。 (内核似乎运行得慢了很多,可能是由于缺少缓存或其他原因。)
无论如何,我不确定为这些分配计时的最佳方式。 boost 的process_real_cpu_clock、process_user_cpu_clock 或process_system_cpu_clock 之一会给我最好的结果吗?还是我应该只使用 C++11 中的常规系统时间调用?或者我应该使用 cudaEvent 的东西来计时?
我认为我不应该使用 cuda 事件,因为它们用于计时 GPU 进程,并且不能准确地计时 cpu 调用(如果我错了,请纠正我。)如果我可以只在mallocManaged 一个,在计时new 调用时,最准确的比较是什么?我只是对内存分配和时间知之甚少。由于 boost 和 nvidia 的劣质文档,我阅读的所有内容似乎都让我更加困惑。
【问题讨论】: