首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cublas无法同步停止事件?

cublas无法同步停止事件?
EN

Stack Overflow用户
提问于 2013-05-01 19:42:29
回答 1查看 2K关注 0票数 1

我正在使用matrixMulCUBLAS示例代码,并尝试将默认矩阵大小更改为更有趣的值rows=5k x cols=2.5k,然后示例失败,并在第#377行出现错误Failed to synchronize on the stop event (error code unknown error)!,此时所有计算都已完成,显然它正在清理cublas。这是什么意思?那么如何修复呢?

我已经安装了CUDA5.0,带有2 2GB内存的EVGA FTW nVidia GeForce GTX 670。驱动程序的最新版本是今天的314.22。

EN

Stack Overflow用户

回答已采纳

发布于 2013-07-23 21:41:26

一般来说,在windows上使用CUDA时,需要确保单个内核的执行时间不超过2秒左右。如果执行时间变长,您可能会遇到windows TDR事件。这是一个windows watchdog计时器,如果GPU驱动程序在特定时间段内没有响应,它将重置该计时器。这样的重置会暂停内核的执行,并生成虚假的结果,通常还会在系统托盘中显示一个短暂的“黑色”和一条简短的消息。如果您的内核执行触发了windows watchdog计时器,您有几个选择:

  1. 如果您有可能在系统中使用多个GPU (例如,这里通常不是指笔记本电脑),并且其中一个GPU是Quadro或Tesla设备,则Quadro或Tesla设备通常可以置于TCC模式。这将意味着GPU不能再驱动物理显示器(如果它正在驱动一个显示器),并且它将从WDDM子系统中删除,因此不再受看门狗计时器的影响。您可以使用NVIDIA GPU驱动程序附带的nvidia-smi.exe工具将给定GPU的设置从WDDM修改为TCC。使用windows文件搜索功能查找nvidia-smi.exe,然后使用nvidia-smi --help获取命令行帮助,了解如何从WDDM切换到TCC模式。
  2. 如果您不能使用上述方法(不要有2个GPU,不要有Quadro或Tesla GPU...)然后,您可能需要研究更改看门狗计时器设置。不幸的是,这需要修改系统注册表,并且进程和特定的键因操作系统而异。网上有许多资源,例如微软的here,以及其他关于堆栈溢出的问题,例如here,这可能会对此有所帮助。
  3. 第三种选择是简单地限制内核的执行时间。连续的操作可能会被分成多个内核调用。内核调用之间的“间隙”将允许显示驱动程序响应操作系统,并防止监视程序超时。

关于TCC支持的声明是一般性的。并非所有Quadro GPU都受支持。在特定的图形处理器上支持(或不支持) TCC的最终决定因素是nvidia-smi工具。这里的任何东西都不应被解释为在您的特定GPU上支持TCC的保证。

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16317505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档