2

假设我有许多 CUDA 内核,可以让 GPU 执行。无论如何,我都不想修改内核代码(例如包含一个陷阱)。

有没有办法杀死这样一个正在运行的内核?

我打算自动生成内核(遗传编程)。这些内核可能具有可能需要很长时间才能完成的行为。如果我可以在内核运行时终止它,我可以维护一个计时器并在需要时终止。

4

1 回答 1

5

cudaDeviceReset()将杀死任何正在运行的内核。

它还将清除在设备上完成的任何分配,因此如果您打算再次使用它们,则需要重新分配任何数据区域。

请注意,cudaDeviceReset()仅靠其本身不足以将 GPU 恢复到正确的功能行为。为了实现这一点,“拥有”过程也必须终止。见这里

于 2013-09-29T05:00:26.030 回答