0

当调用第一个 CUDA 运行时函数时,CUDA 会隐式初始化。

我正在计时我的代码的运行时间并通过循环(for([100 times]) {[Time CUDA code and log]})重复 100 次,这还需要考虑每次迭代时 CUDA 的初始化时间。因此,我需要在每次迭代后取消初始化 CUDA - 如何做到这一点?

我试过使用cudaDeviceReset(),但似乎没有未初始化的 CUDA。

非常感谢。

4

1 回答 1

3

cudaDeviceReset是在运行时 API 中销毁上下文的规范方式(调用cudaFree(0)是创建上下文的规范方式)。这些是正在运行的进程可用的唯一“重新初始化”级别。当进程加载 CUDA 驱动程序和运行时库并连接到内核驱动程序时,还会发生其他每进程事件,但我不知道如何以编程方式使这些事件发生,而不是分叉一个新进程。

但我真的怀疑你想要或应该在计算性能指标时考虑这种设置时间。

于 2013-01-18T07:57:48.950 回答