OpenHero 求救CUDA的几点困惑
开勇哥:(:)
你好.久闻你的大名.
我碰到如下问题:
1:一个BLOCK中有16个THREADS{也就是半个WARP块}是活动的,是否是说在GPU上的一个multiprocessor上运行了16个线程,可一个multiprocessor上只有8个processor(一个processor上在同一时间上只能运行一个thread),
总共也只能运行8*1=8个threads.这样就搞不清楚了.
2.假如是kernel<<<BLOCK_NAME,THREAD_NUM>>>中有BLODK_NUM*THREAD_NUM=8192,那它实际在同一时间在GPU上运行了多少个,是16*BLOCK_NAME吗,然后在一个thread等数据时,processor才执行下一个thread,看起来就像8912个threads同时运行.我分析的对吗?
3.在一个kernel中的怎么对一个二维数组用多线程并行方式的用cuda_MallocPitch()或其他命令对它赋值,赋值完后怎么在下一个kernel中引用它的元素.我看了下,很复杂哦.你能简单讲讲(最好附个例子).
感激不尽,打扰你了.