0

我对 CUDA 调用 cudaEventSynchronize 有疑问。

AFAIK,它主动轮询事件,从而消耗 CPU 周期。如果我想让它同步,以便可以像内核执行一样产生 CPU,我该怎么做?

更具体地说,在以下情况下的预期行为是什么:

  • 使用 CUDA_LAUNCH_BLOCKING=1 环境变量。
  • 使用 cudaDeviceScheduleBlockingSync
  • 使用 cudaDeviceScheduleYield

我一直在经历奇怪的行为,需要一些帮助来阐明这一点。Nvidia 有关特定技术方面的信息非常不愿意对此提供帮助……我想实现细节必须保密。

提前致谢,

何塞。

4

1 回答 1

1

如果您希望 cudaEventSynchronize 使用阻塞同步,则需要使用创建事件
cudaError_t cudaEventCreateWithFlags (cudaEvent_t event, unsigned int flags)

cudaEventBlockingSync并作为旗帜传递。

于 2012-08-01T12:11:34.230 回答