摘要:
把一个n元素数组里面的值全部加起来的程序,大家都会写,一个for循环搞定。但是如果在cuda代码里面也这么写的话,速度会比cpu上还慢,毕竟人家一对一对拼的话,肯定是干不过cpu的。在cuda里面的算法是n个线程一起参与这个运算。nvidia貌似有个官方的算法,几乎所有看到的cuda代码里面都是用的它:for(int i=(blockDim.x>>1);i>0;i>>=1){ if(threadIdx.x < i){ pis[threadIdx.x] += pis[threadIdx.x+i]; } __syncthreads();}if(threadIdx 阅读全文