对于我的 CUDA 开发,我使用的是一台 16 核的机器和 1 个 GTX 580 GPU 和 16 个 SM。对于我正在做的工作,我计划启动 16 个主机线程(每个内核上 1 个),每个线程启动 1 个内核,每个线程有 1 个块和 1024 个线程。我的目标是在 16 个 SM 上并行运行 16 个内核。这可能/可行吗?
我试图尽可能多地阅读有关独立上下文的信息,但似乎没有太多可用的信息。据我了解,每个主机线程都可以有自己的 GPU 上下文。但是,如果我使用独立的上下文,我不确定内核是否会并行运行。
我可以将所有 16 个主机线程的所有数据读取到一个巨大的结构中,并将其传递给 GPU 以启动一个内核。但是,它会复制太多,并且会减慢应用程序的速度。