Nsight Compute 无法确定SASS码对应的源码

本文讲述了如何在NsightCompute中设置SASS编译与源码关联,介绍了不同平台(如NVCC、VisualStudio和CMake)的关联操作方法。同时提醒,Compute提供的瓶颈位置只是统计值,真正的优化仍需开发者自行查找和调试。
摘要由CSDN通过智能技术生成

Nsight Compute 无法确定SASS码对应的源码

常规使用

Nsight Compute提供了将编译的SASS码与自己写的源码对应的功能,这可在 Source Page下,将View选为Source and SASS实现,像下面这样
在这里插入图片描述
然而,将SASS码与源代码关联这个操作不是默认开启的,需要我们在编译代码前进行一些额外的设置,为编译的代码关联对应的行

在不同平台中的关联操作

在不同平台上,关联操作的有所差异。
富连网上的操作大多数都是教你使用nvcc编译时如何添加行信息,即,使用NVCC编译时添加-lineinfo --generate-line-info编译选项。
使用Visual Studio组织CUDA项目时,则可以通过在项目属性中将生成GPU Debug 信息选择为实现,事实上,将下面那个生成行号信息选择为也能起到相同的效果。如下图所示
在这里插入图片描述
然而,还有朋友的项目是使用CMake组织的,这时,在生成的visual studio工程中使用前述操作将可能失效。正确的做法是,在CMakeLists.txt文件中,在CUDA选项后添加set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-lineinfo") .

后记

尽管我们能确定source码对应的SASS码了,当我们按照compute的分析对应各种可能的问题时,我们可能会感到困惑:它指示的瓶颈位置真的正确吗?
是的,你的顾虑没错,Compute指出的地方并不一定是真正的瓶颈所在。
它只是一个统计数值,只能给出大致位置和对应关系,真正的症结,还需要我们在附近上下翻找,CUDA代码优化,还是很难的啦,祝各位好运吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值