cur*_*rer 18 memory cuda ptxas gpu-constant-memory
我试图了解手写内核的每个CUDA线程的资源使用情况.
我把我的kernel.cu文件编译成了一个kernel.o文件nvcc -arch=sm_20 -ptxas-options=-v
我得到了以下输出
ptxas info : Compiling entry function 'searchkernel(octree, int*, double, int, double*, double*, double*)' for 'sm_20'
ptxas info : Function properties for searchkernel(octree, int*, double, int, double*, double*, double*)
72 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 46 registers, 176 bytes cmem[0], 16 bytes cmem[14]
Run Code Online (Sandbox Code Playgroud)
看看上面的输出,这是正确的
我在理解输出方面也遇到了一些问题.
我的内核调用了很多c++filt函数.IS 72字节是__device__和__global__函数堆栈帧的内存总和?
__device__和之间有什么区别0 byte spill stores
为什么0 bytes spill loads(我假设的是恒定记忆)的信息用不同的数字重复两次?在内核中我没有使用任何常量内存.这是否意味着编译器,引擎盖下,要告诉GPU使用的一些常量内存?
Tom*_*Tom 16
__global__和__device__函数的堆栈帧的内存总和吗?是,对的__constant__变量和内核参数,不同的"银行"时,即开始变得有点详细,但只要你用不到64KB您__constant__超过4KB变量和更少的内核参数,你会好.| 归档时间: |
|
| 查看次数: |
6494 次 |
| 最近记录: |