【问题标题】:nsight VSE debugger error "code patching failed due to lack of code patching memory"nsight VSE 调试器错误“由于缺少代码修补内存,代码修补失败”
【发布时间】:2016-07-15 19:10:54
【问题描述】:

当我使用 nsight 调试 cuda 内核时,出现如下 nsight 调试错误。我不知道那是什么意思。看起来与 cuFFT 有关。但是任何人都可以给出一些指示吗?谢谢。

【问题讨论】:

  • 这是一个相当描述性的错误消息。您是否尝试过以下建议:“请增加 Nsight|Options|CUDA|Code Patching Memory 并重试”?
  • 内核的解包版本是“void __kernelTex(float2*, unsigned int, unsigned int, unsigned int, divisor_t, divisor_t, divisor_t, dimStride_t, dimStride_t, dimStride_t, dimStride_t)" 如果您无法识别具有该原型的内核,则它可能来自您正在使用的库。
  • @RobertCrovella 我正在尝试增加修补内存,但我的 Nsight 似乎没有该选项。我正在使用 Nsight 5.0。我怀疑 cuda fft 库 cuFFT 有什么问题。
  • @Nick X Tsui:请阅读一些documentation
  • 关于这个:“我正在尝试增加修补内存,但我的 Nsight 似乎没有那个选项。”你在Nsight 菜单上有一个Options... 选项吗?我碰巧有一台加载了 nsight 4.7 的机器,该选项位于 Nsight...Options...CUDA...CUDA Debugger...Code Patching Memory Factor。它当前设置为 2。您可能希望增加该数字作为测试。如果您找不到该选项,请具体说明您在遍历 Nsight...Options...CUDA...等时看到的内容。您可能需要向上或向下滚动某些窗格才能查看所有选项.

标签: cuda nsight


【解决方案1】:

正如 Nsight clear 报告的错误消息所示,该错误是由于 Nsight 设备上的可用内存不足,无法交互式调试您正在运行的代码。引用 Nsight 文档:

启用 CUDA 内存检查器时,会消耗额外的内存 在 GPU 上。如果 CUDA 调试器没有足够的补丁 RAM,它 会报如下错误:

Internal debugger error occurred while attempting to launch "KernelName - CUmodule 0x04e67f10: code patching failed due to lack of code patching memory.

如果发生这种情况,请转到 Nsight 增加补丁 RAM 系数 > 选项 > CUDA > 代码修补内存因子。

这是内核指令大小的乘数,相加 到 64k 的基本补丁 RAM 大小。

另一个选项是禁用共享或全局内存检查,在 为了使用更少的补丁内存。

原发帖人指出,将代码修补内存因子从 2 增加到 16 可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2022-06-14
    相关资源
    最近更新 更多