我开始学习CUDA,不得不直接进入一个项目,所以我目前缺乏扎实的理论背景;我会一路捡起它。
虽然我了解硬件的构建方式需要程序员处理线程块和网格,但我还没有能够在我的介绍性书中找到以下问题的答案:
我很好,如果是这样的话会被关闭,请务必指出原来的问题。
答案 0 :(得分:1)
线程块的数量可以是任意的。如果数量很大,硬件可以按顺序处理它们。此链接为您提供基本视图。
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#scalable-programming-model
另一方面,您可以使用有限数量的线程来通过增加每个线程的工作来处理任意大小的任务。此链接向您展示如何做到这一点以及为什么它更好。
https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/
您可能需要阅读以下两个内容以获得完整答案。
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html