首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CUDA中更改arch参数会使我使用更多的寄存器

在CUDA中更改arch参数会使我使用更多的寄存器
EN

Stack Overflow用户
提问于 2013-02-24 23:37:29
回答 1查看 475关注 0票数 0

我一直在我的Tesla K20m上写一个内核,当我用-Xptas=-v编译软件时,我得到了以下结果:

代码语言:javascript
复制
ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function '_Z9searchKMPPciPhiPiS1_' for 'sm_10'
ptxas info    : Used 8 registers, 80 bytes smem, 8 bytes cmem[1]

正如您所看到的,只使用了8个寄存器,但是,如果我提到参数-arch=sm_35,我的内核执行时间会急剧增加,并且使用的寄存器数量也会增加,我想知道为什么

代码语言:javascript
复制
nvcc mysoftware.cu -Xptxas=-v -arch=sm_35 
ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function '_Z9searchKMPPciPhiPiS1_' for 'sm_35'
ptxas info    : Function properties for _Z9searchKMPPciPhiPiS1_
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 21 registers, 16 bytes smem, 368 bytes cmem[0]

由于在许多书中提到,为卡使用正确的架构是为了提高性能,我想知道为什么我的架构大幅下降。

谢谢。

编辑:相似问答:Registers and shared memory depending on compiling compute capability?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-25 03:05:45

使用sm_20及更高版本进行编译可以实现IEEE数学和ABI兼容。这两个选项会增加寄存器数量并降低性能。可以禁用这两个选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15053339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档