关于CUDA PTX代码的讨论

_梦魇花葬 2014-05-24 07:10:56
加精
什么是PTX代码呢?类似于高级语言编译器编译出来的汇编指令,PTX代码就是可以在GPU端执行的汇编指令。查看PTX代码可以更加直观的修改kernel代码。
在这里举个查看PTX代码必要性的例子。了解GPU基础架构的小伙伴们都知道,在GPU的存储层次中有个存储位置叫做“local memory”,它是在寄存器数量不足的情况下的一种补充,虽然名字叫做local memory,但是它位于global memory,这就意味这它的速度远远要慢于寄存器,也就是说我们应该避免使用它。那在什么情况下会使用这块显存呢?翻阅了很多资料,只得出了一种结论——“在寄存器数量不足的情况下,编译器会自动将数据分配到local memory”。但是,在如下的代码中,local memory的使用量不为0,也就是说kernel函数中有变量使用了local memory:
__global__ void test(float *left, float *right, float *result, int size)
{
if(threadIdx.x < size)
result[threadIdx.x] = left[threadIdx.x] + right[threadIdx.x];
}

究竟是哪个变量使用了PTX代码呢?通过查看,发现变量size被分配到了local memory中,因为是值传递,如果是指针传递,就不会发生将size分配到local memory中的这种情况了。
小伙伴们也来谈谈PTX代码的特殊经历吧~!!
...全文
3516 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eloudy 2015-03-26
  • 打赏
  • 举报
回复
linux中,nvcc -keep 或-ptx,然后到项目文件夹中去寻找  *.ptx文件 vs2010中到项目属性中,找 “配置属性” =》“cuda C/C++” 中寻找相关选项。比如:keep preprocessed files中选择“是” 望能找到。 请问学习ptx的文档是哪个比较好呢?
huikong2013 2014-11-22
  • 打赏
  • 举报
回复
请问楼主,怎样才能把编译的C程序转化成PTX呢,用NVCC?
_梦魇花葬 2014-07-15
  • 打赏
  • 举报
回复
好的,没问题,我会分享一些新的东西, 谢谢各位小伙伴的支持!~~
yangfeilong1988 2014-07-15
  • 打赏
  • 举报
回复
一起学习,版主可以提供一些新的!~~
_梦魇花葬 2014-07-15
  • 打赏
  • 举报
回复
希望各位小伙伴都能很好的学习到怎么查看PTX代码,有什么不懂的,可以提出来!
_梦魇花葬 2014-07-14
  • 打赏
  • 举报
回复
很正确,PTX代码是非常有用的,大家一起学习!~~
xx0_0dd815 2014-06-23
  • 打赏
  • 举报
回复
什么是PTX代码呢?类似于高级语言编译器编译出来的汇编指令,PTX代码就是可以在GPU端执行的汇编指令。查看PTX代码可以更加直观的修改kernel代码。
qq_16797523 2014-06-23
  • 打赏
  • 举报
回复
什么是PTX代码呢?类似于高级语言编译器编译出来的汇编指令,PTX代码就是可以在GPU端执行的汇编指令。查看PTX代码可以更加直观的修改kernel代码。
2706556716 2014-06-23
  • 打赏
  • 举报
回复
谢谢,学习了
yuea20000 2014-06-23
  • 打赏
  • 举报
回复
谢谢,学习了。。。。
qd73367 2014-06-23
  • 打赏
  • 举报
回复
谢谢分享,xxxxxxxxxxxx
郑卫星 2014-06-23
  • 打赏
  • 举报
回复
innovy 2014-06-20
  • 打赏
  • 举报
回复
好东西 ,值得学习
ft8266 2014-06-20
  • 打赏
  • 举报
回复
06-11 13:52
qq_16685649 2014-06-19
  • 打赏
  • 举报
回复
谢谢~!受教了
think93723 2014-06-18
  • 打赏
  • 举报
回复
謝謝分享 thanks
oicq007qiaoshi 2014-06-18
  • 打赏
  • 举报
回复
原来学校内学C语言的时候没当回事儿,毕业后后悔了! 亡羊补牢,为时不晚。现在继续学它!!
qq_16638613 2014-06-18
  • 打赏
  • 举报
回复
论坛真的不错 初学者要努力
qq_16638187 2014-06-18
  • 打赏
  • 举报
回复
好吧,看不懂的
bh779 2014-06-18
  • 打赏
  • 举报
回复
很实用呀
加载更多回复(18)

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧