我没有找到多少有用的信息PTX信息--ptxas-options=-v,我发现了一个2008年NVCC有一个小的信息,但没有细节。
1) 64 bytes cmem[0], 12 bytes cmem[16]是什么意思?我想它是指常量记忆。我在代码中不使用任何常量mem,所以这必须来自编译器。(反渗透法的方法是什么?)
2) 49152+0 bytes smem是什么意思?是的,这是共享的记忆,但这两个#的意思是什么?
有没有医生能帮我做这件事?(它叫什么?)
4)在哪里可以找到解释*.ptx文件的文档?(我希望能够阅读/理解cuda的系统代码。)
发布于 2012-09-07 18:27:20
cmem被认为是这里。在您的例子中,它意味着64个字节用于将参数传递给内核,12个字节被编译器生成的常量占用。smem,第一个数字是您的代码请求的数据量,第二个数字(0)表示用于系统目的的内存量。ptxas输出格式的任何官方信息。例如,在“数据自动化系统占用计算器”中,他们只是简单地说,smem的值是没有任何说明的总和。发布于 2013-03-28 17:41:48
请看"NVCC的杂项使用“。他们提到,固定的银行分配是profile-specific.。
在PTX指南中,他们说除了64 10的常量内存外,他们还有另外10个内存库。驱动程序可以在这些区域中分配和初始化常量缓冲区,并将指针作为内核函数参数传递给缓冲区。
我猜,为nvcc提供的配置文件将处理哪些常量进入哪个内存。无论如何,我们不需要担心每个常量内存cmemn是否小于64 is ,因为每个库的大小为64 is,并且对于网格中的所有线程都是通用的。
https://stackoverflow.com/questions/12322906
复制相似问题