了解并行Nsight OutOfRangeLoad异常

时间:2012-07-15 05:07:10

标签: cuda gpu nvidia nsight

我刚刚使用启用内存检查程序选项运行Nisght 2.2并出现以下错误:

CUcontext blockIdx WarpIndex PC Active Mask Exception Exception Details

0x02af1c10 (0,0,0) 0 0x0001cc70 0x00000004 OutOfRangeLoad MemorySpace=Global Size=4

此外,输出如下:

GPU状态:

地址大小类型Mem块线程blockIdx threadIdx PC源

05500e20 4 adr ld g 0 2 {0,0,0} {2,0,0} 000170无可用来源

访问冲突摘要:

Nsight Debug 内存检查器检测到1次访问冲突。 错误=加载时访问冲突(全局内存) blockIdx = {0,0,0} threadIdx = {2,0,0} 地址= 0x05500e20 accessSize = 4

Nsight Debug

CUDA Memory Checker检测到1个线程导致访问冲突: 启动参数     CUcontext = 026f1c10     CUstream = 03460f58     CUmodule = 047e7538     CUfunction = 047c26b0     FunctionName = _Z19findHowManyBeforeWiPcPiS0_S0_S0_S_S0_S0_ii     gridDim = {1,1,1}     blockDim = {256,1,1}     sharedSize = 128     参数:     参数(原始):          0x05500400 0x05500800 0x05500c00 0x05500000          0x05501200 0x05500600 0x05500a00 0x05500e00          0x00000004 0x00000005 GPU状态:

地址大小类型内存块线程blockIdx threadIdx PC源

05500e20 4 adr ld g 0 2 {0,0,0} {2,0,0} 000170无可用来源

但是,我无法理解这些信息,除了错误发生在线程2的函数HowManyBeforeWi中。无论如何都找到发生错误的确切行,因为这看起来非常模糊。 / p>

1 个答案:

答案 0 :(得分:1)

调试器在抛出访问冲突的行中断。或者,您可以使用“反汇编”窗格将问题发生的位置与程序计数器(PC)相关联。