注册计数nvlink错误
问题
由于编译时计算的最大寄存器数不匹配,NVIDIA编译器(nvcc)可能会在链接阶段失败。生成的CUDA内核编译时使用由NVCC决定的最大寄存器计数。内核可以在不同的CUDA文件中调用设备函数。设备函数可以被编译为使用更多的寄存器数量,超过内核的最大寄存器计数。
您可能会遇到以下模式的错误消息:
Nvlink错误:entry function 'xxx'带有n次调用的最大计数函数'多”他说。
Nvlink错误:entry function 'xx'带有n次调用的最大计数函数'多”他说。
在哪里'xxx'
而且'多'
是混乱的函数名,n
而且米
是整数,米
大于n
.
可能的解决方案
使用“-maxrregcount n”
NVCC的编译器标志来指定寄存器的最大数量。使用GPU代码配置参数中的编译器标志选项将编译器标志传递给NVCC。例如,
cfg = coder.gpuConfig;cfg.GpuConfig.compilerFlags = ' -maxrregcountn”;
在哪里n抛出的错误消息中寄存器计数的最小整数是多少nvlink
.