CUDA之Static关键字

来源:互联网 发布:bad rabbit勒索软件 编辑:程序博客网 时间:2024/06/06 03:51
问:

 __global__ static void HelloCUDA(  )与__global__  void HelloCUDA(  )有什么区别吗?static关键字可以放在__global__之前吗?如果可以_global__ static与static _global__ 表达的是同一个意思吧? 


答:

 (1)有区别的。加上了static修饰后将限制符号的作用范围在本文件(以及,对应的目标文件),不会被导出为全局符号的。这可以防止符号污染。

 (2)__global__ static void,和static __global__ void, 和__global__ void static都一样,你如果将kernel放置在多个文件中,那么static修饰的kernel只能从本文件中调用的。不加static的话,开启-rdc=true(设备代码重定位),  可以允许你,例如main函数在一个文件,kernel们在另外一个或者多个文件里。 有的时候这样安排比较清晰。 

0 0