CUDA 应用程序在几秒钟后超时并失败 - 如何解决此问题?

2023-12-04

我注意到 CUDA 应用程序在失败并退出之前的最大运行时间往往为 5-15 秒。我意识到最好不要让 CUDA 应用程序运行那么长时间,但假设使用 CUDA 是正确的选择,并且由于每个线程的顺序工作量必须运行那么长时间,有什么方法可以延长这个时间或绕过它?


我不是 CUDA 专家,---我一直在使用 AMD Stream SDK 进行开发,据我所知,它大致相当。

您可以禁用 Windows 看门狗定时器,但那是强烈不推荐,原因应该是显而易见的。 要禁用它,您需要重新编辑HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Watchdog\Display\DisableBugCheck,创建一个 REG_DWORD 并将其设置为 1。 您可能还需要在 NVidia 控制面板中执行某些操作。在 CUDA 文档中查找有关“VPU 恢复”的一些参考。

理想情况下,您应该能够将内核操作分解为对数据的多次传递,以将其分解为在时间限制内运行的操作。

或者,您可以划分问题域,以便每个命令计算更少的输出像素。也就是说,不是一下子计算 1,000,000 个输出像素,而是向 GPU 发出 10 个命令,每个命令计算 100,000 个。

必须适合时间片的基本单元不是整个应用程序,而是单个命令缓冲区的执行。在 AMD Stream SDK 中,通过使用 CtxFlush() 调用显式刷新命令队列,可以将长操作序列分解为多个时间片。也许CUDA有类似的东西?

你应该not必须在每个时间片上通过 PCIX 总线来回读取所有数据;您可以将纹理等保留在 GPU 本地内存中;您只是偶尔完成一些命令缓冲区,以向操作系统证明您没有陷入无限循环。

最后,GPU 是fast,因此,如果您的应用程序无法在 5 或 10 秒内完成有用的工作,我会将其视为出现问题的迹象。

[2010 年 3 月编辑更新:] (再次过时,请参阅下面的更新以获取最新信息)上面的注册表项已过时。我认为这是 Windows XP 64 位的关键。 Vista 和 Windows 7 有新的注册表项。您可以在此处找到它们:http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx或在这里:http://msdn.microsoft.com/en-us/library/ee817001.aspx

[2015 年 4 月编辑更新:] 这真的已经过时了。为 Cuda 编程禁用 TDR 的最简单方法(假设您已安装 NVIDIA Nsight 工具)是打开 Nsight Monitor,单击“Nsight Monitor options”,然后在“General”下将“WDDM TDRenabled”设置为 false。这将为您更改注册表设置。关闭并重新启动。对 TDR 注册表设置的任何更改只有在重新启动后才会生效。

[编辑 2018 年 8 月更新:]尽管 NVIDIA 工具现在允许禁用 TDR,但 AMD/OpenCL 开发人员也面临同样的问题。对于这些:记录 TDR 设置的当前链接位于https://learn.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CUDA 应用程序在几秒钟后超时并失败 - 如何解决此问题? 的相关文章

  • Tensorflow 训练期间 GPU 使用率非常低

    我正在尝试为 10 类图像分类任务训练一个简单的多层感知器 这是 Udacity 深度学习课程作业的一部分 更准确地说 任务是对各种字体呈现的字母进行分类 数据集称为 notMNIST 我最终得到的代码看起来相当简单 但无论如何我在训练期间
  • 由于连接超时,无法通过 ImageIO.read(url) 获取图像

    下面的代码似乎总是失败 URL url new URL http userserve ak last fm serve 126 8636005 jpg Image img ImageIO read url System out printl
  • UnimplementedError:图形执行错误:在张量流上运行 nn

    我一直遇到这个错误 我不知道为什么 特别是因为我完全遵循某人的代码并且该人在运行此错误时没有错误 img shape 128 128 3 load pretrained model base model tf keras applicati
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • OpenCV 2.4.3rc 和 CUDA 4.2:“OpenCV 错误:没有 GPU 支持”

    我在这张专辑中上传了几张截图 https i stack imgur com TELST jpg https i stack imgur com TELST jpg 我正在尝试在 Visual Studio 2008 中的 OpenCV 中
  • 如何在CUDA应用程序中正确应用线程同步?

    一般来说 我在应用程序中偶尔会使用线程同步 因为我并不经常需要此功能 我并不是真正的高级 C C 程序员 但我也不是初学者 我开始学习 CUDA C 对当今 GPU 与 CPU 的能力相比感到兴奋 我意识到 CUDA 编程主要是关于并行线程
  • C 中的 CUDA:如何使用 cudaMemcpyAsync 修复错误 11

    我目前正在尝试使用 CUDA 运行一个简单的多 GPU 程序 它的基本作用是将一个包含一些虚拟数据的大型数组复制到 GPU GPU 进行一些数学计算 然后将结果数组复制回来 我在 VS2017 的输出中没有收到任何错误 但我设置的一些错误消
  • CUDA Thrust 库中counting_iterators 的用途和用法

    我很难理解counting iterator在 CUDA 的推力库中 它的目的是什么以及如何使用 它在其他编程语言 例如 C 中也可用吗 计数迭代器只是一个迭代器 它从每次迭代器递增时前进的序列中返回下一个值 最简单的例子是这样的 incl
  • Cuda:最小二乘求解,速度较差

    最近 我使用Cuda编写了一个名为 正交匹配追踪 的算法 在我丑陋的 Cuda 代码中 整个迭代需要 60 秒 而 Eigen lib 只需 3 秒 在我的代码中 矩阵 A 是 640 1024 y 是 640 1 在每一步中 我从 A 中
  • ASP.NET MVC 中的表单超时问题

    如何在 ASP NET MVC 中关闭表单身份验证 我有注册 登录和忘记密码页面 旨在进入 Web 应用程序 最初我 我目前将我的 asp net mvc Web 应用程序托管为单个代码库和多个数据库格式 我遇到表单在一段时间内过期 并且
  • 将内核链接到 PTX 函数

    我可以使用 PTX 文件中包含的 PTX 函数作为外部设备函数 将其链接到另一个应调用该函数的 cu 文件吗 这是另一个问题CUDA 将内核链接在一起 https stackoverflow com questions 20636800 c
  • 使用 Cuda 并行读取多个文本文件

    我想使用 CUDA 在多个文件中并行搜索给定字符串 我计划使用 pfac 库来搜索给定的字符串 问题是如何并行访问多个文件 示例 我们有一个包含 1000 个文件的文件夹 需要搜索 这里的问题是我应该如何访问给定文件夹中的多个文件 应该动态
  • 对 CUDA 操作进行计时

    我需要计算 CUDA 内核执行的时间 最佳实践指南说我们可以使用事件或标准计时函数 例如clock 在Windows中 我的问题是使用这两个函数给出了完全不同的结果 事实上 与实践中的实际速度相比 事件给出的结果似乎是巨大的 我实际上需要这
  • CUDA 代码会损坏 GPU 吗?

    在测试包含内存错误的 CUDA 时 我的屏幕被冻结了 重新启动后我无法再检测到显卡 我的代码是否有可能物理损坏该卡 这发生在 Ubuntu 14 04 下 我不知道该卡的型号 因为我无法检测到它 但我记得它是一张相当新的卡 感谢所有的评论我
  • 如何在不超时的情况下解析大型 CSV 文件?

    我正在尝试解析 50 MB 的 csv 文件 文件本身很好 但我正在尝试解决所涉及的大量超时问题 每个设置上传明智 我可以轻松上传并重新打开文件 但浏览器超时后 我收到 500 内部错误 我的猜测是我可以将文件保存到服务器上 打开它并保留我
  • 一维纹理内存访问比一维全局内存访问更快吗?

    我正在测量标准纹理和 1Dtexture 内存访问之间的差异 为此 我创建了两个内核 global void texture1D float doarray int size int index calculate each thread
  • CUDA cutil.h 在哪里?

    有谁知道包含 cutil h 的 SDK 工具包在哪里 我尝试了 CUDA toolkits3 2 和 toolkits5 0 我知道这个版本已经不支持 cutil h 我还注意到一些提到的如何在 Linux 中包含 cutil h htt
  • 如何转储所有 NVCC 预处理器定义?

    我想达到同样的效果 gcc dM E lt dev null 如所描述的here https stackoverflow com q 2224334 1593077 但对于 nvcc 也就是说 我想转储所有 nvcc 的预处理器定义 唉 n
  • nvidia GPU 上的内核真的有超时吗?

    寻找为什么我的内核产生奇怪的错误消息或仅 0 结果的答案我发现了这个answer https stackoverflow com questions 3988645 cl out of resources for 2 millions fl
  • Mxnet - 缓慢的数组复制到 GPU

    我的问题 我应该如何在 mxnet 中执行快速矩阵乘法 我的具体问题 数组复制到 GPU 的速度很慢 对此我们能做些什么呢 我创建随机数组 将它们复制到上下文中 然后相乘 import mxnet as mx import mxnet nd

随机推荐

  • 如何将 16 位 wav 转换为原始音频

    我正在尝试使用 sox 将星号语音邮件转换为原始音频 原始wav的编码信息是PCM S16 LE 所以我想我可以这样做sox msg0000 wav msg0001 raw但其中的原始文件是乱码 根据 VLC 的说法 与 6 秒的源文件相比
  • 上传具有多种变体选项的新产品

    我正在尝试通过 ruby 而不是使用 Rails 上传产品 我已通过 API 上传了 100 多个产品 但我无法上传具有多个选项值的产品 即使我分配三个选项值 它也不会填充其他两个 这是脚本 require shopify api requ
  • NSArray initWithObjects: 是否保留对象?

    当使用 initWithObjects 将对象添加到 NSArray 时 任何人都可以为我确认这些项目被保留 我很确定它们是 但是找不到有关 initWithObjects 的任何地方提到它 CREATE DRINKS Coffee dri
  • 从 httpsession 检索浏览器区域设置?

    是否可以从 httpsession 对象 javax servlet http HttpSession 派生首选语言 可以从 servletrequest 中获取它 但我没有 感谢您的任何想法 斯文 用户的首选区域设置可作为请求标头 Acc
  • 在 Oracle DB 的 CLOB 字段中存储文件

    我的 oracle 表中有一个具有 CLOB 数据类型的列 如何在此列中存储 txt 文件以及如何检索同一文件 下面是表定义 fileID Number logFile CLOB 提前致谢 在 PL SQL 中将文件加载到 CLOB 中非常
  • 在R中逐行读取大文件而不带标题

    我在 R 中有一个非常大的数据文件 千兆 如果我尝试用 R 打开它 我会收到内存不足错误 我需要逐行读取文件并进行一些分析 我发现了一个关于这个问题的上一个问题 其中文件是由 n 行读取并跳转到带有 clump 的某些行 我已经使用了 Ni
  • Protractor:如何让配置文件更加灵活?

    我有一个想法让我的配置更加灵活 例如我有 10000 个具有相同参数的配置文件 seleniumAddress http localhost 4444 wd hub specs C Users Lilia Sapurina Desktop
  • 找不到经过训练的 NLU 模型(Actions on Google)

    我们正在使用 google SDK 上的 Actions 开发启动 我们迁移了我们的开发项目 UAT 突然它停止工作了 以前我们使用相同的方法并且每次都有效 机器人对初始短语响应一次 然后停止响应 它说抱歉 机器人名称 没有响应 请稍后再试
  • 如何在 Android 上打印堆栈跟踪(带有符号函数名称)?

    这个问题已经被问过很多次了 但从未得到真正的答案 今天我花了 5 到 6 个小时尝试将一些库移植到 Android libunwind liwdfl 这些库可能从未打算在 ARM 上运行 当然 无济于事 问题是Android缺少backtr
  • 当MySql数据库中添加新记录时,使用Jquery自动更新Div

    我正在为我的朋友制作一个社交网站 我想知道当数据库中添加新记录时 如何更新包含数据库中少量插入记录的 Div 简而言之 你一定见过 Facebook 的实时通知 当有人做某事时 这些通知就会淡出 这一切都发生在没有刷新整个实时通知 div
  • 以编程方式检查 SD 卡是否可用

    我的应用程序适用于仅具有 SD 卡的手机 因此 我想以编程方式检查 SD 卡是否可用以及如何找到 SD 卡可用空间 是否可以 如果是 我该怎么做 Boolean isSDPresent android os Environment getE
  • 在 Windows 中托管 Git 存储库

    目前是否有办法在 Windows 中托管共享 Git 存储库 据我所知 您可以使用以下命令在 Linux 中配置 Git 服务 git daemon 是否有本地 Windows 选项 缺少共享文件夹 来托管 Git 服务 编辑 我目前正在使
  • 创建两列无​​序列表

    我希望制作一个类似于下面的两列无序列表 但也想知道如何整合加号的图像 我正在寻找一种没有 CSS3 优点的解决方案 以便它可以支持较旧的浏览器 这是我的网站的链接 http jobspark ca job listings 由于我正在使用
  • magento 的 NGINX-FPM 配置设置

    我正在运行一个用 magento 开发的电子商务网站 我的服务器有 512mb RAM 和 2 6 core2duo 当我在网站上一次发送 50 个请求时 除了少数请求外 它不会响应 我也安装了清漆 我想知道我想要为我的网站进行的最佳设置
  • 变异,触发器/函数可能看不到它 - 触发器执行期间出错

    CREATE OR REPLACE TRIGGER UPDATE TEST 280510 AFTER insert on TEST TRNCOMPVISIT declare V TRNCOMPNO NUMBER 10 CURSOR C1 I
  • 使用 Findbugs 编写一个检测器来搜索“System.out.println”的使用

    我正在尝试编写一个错误检测器来使用 Findbugs 查找方法调用 System out println 的实例 我知道字节码中的 System out println 被编译为对 GETSTATIC 的调用 将 System out 推入
  • android - 活动切换时意外的短暂方向变化

    我想在我的 Android 应用程序中动态设置屏幕方向 为此我使用 activity setRequestedOrientation ActivityInfo SCREEN ORIENTATION PORTRAIT 和类似的 到目前为止 效
  • 定义 Vue-Router 路由时访问 Vuex 状态

    我有以下 Vuex 商店 main js import Vue from vue import Vuex from vuex Vue use Vuex init store const store new Vuex Store state
  • Jetty 和最大内容大小

    我使用 Jetty 9 4 8 我想限制可以发布到服务器的数据量 为此 我添加到 jetty xml
  • CUDA 应用程序在几秒钟后超时并失败 - 如何解决此问题?

    我注意到 CUDA 应用程序在失败并退出之前的最大运行时间往往为 5 15 秒 我意识到最好不要让 CUDA 应用程序运行那么长时间 但假设使用 CUDA 是正确的选择 并且由于每个线程的顺序工作量必须运行那么长时间 有什么方法可以延长这个