新手提问 大牛们来看看

我是cuda 的新手 最近才接触的 想问下有经验的人,对于kernel函数 是不是每个线程都要完整的执行啊?那么如果在kernel函数里边声明一个shared变量 是每个线程执行的时候都要声明一遍吗 求教了:( :cry2: 谢谢解答了

如果kernel里面没有限定执行的进程的语句那就是每个进程都要执行的

后面一个我就不知道是不是会多次声明。这个没关系吧,shared变量在同一个block里面可以共用的。。不同block是不能访问的

第二个我补充:不会,因为共享内存时在实际执行内核前静态分配的,而且只分配一次,声明只是语言上的概念,共享内存的声明则只是告诉编译器这块内存区域是要用作block内的线程共享的,是和硬件直接相关的,因此不用担心每个线程执行时都要声明一遍

谢谢了 懂了 呵呵