在udacity上的测验:线程和"简介到并行编程"的块中,它询问语句是否在给定的SM May 合作解决问题"是对还是错。答案是错误的,但是我认为这应该是真的,因为:
- 它使用"可能"而不是"必须"。
- 一些论文正在谈论块间GPU通信。
我对此有任何误解吗?
在所有情况下都是正确的。
在典型的CUDA合作线程的感觉中,合作线程必须属于同一块(以便能够使用__syncthreads()
和__shared__
MOMEME等合作机制)。
SM可以同时包含多个执行的块。
从单独的块中的线程,即使居民在同一SM上,也无法在典型的cuda意义上进行"合作线程"。
cuda官方资料[1]提到了罗伯特·克罗维拉(Robert Crovella)在第8页中所说的:
- 不同块中的线程无法合作。
[1] https://www.nvidia.com/content/cudazone/download/getting_started_w_cuda_training_nvision08.pdf