我是 GPU 世界的新手,我在 Matlab 环境中使用它们,所以我不需要欣赏这些设备的微妙之处。
我知道 GPU 可以分为多处理器(也称为流式多处理器),它们的单个处理器共享一个高速缓存。我不明白多处理器之间的通信是否需要主机。为了集中我的问题,我将举一个例子。
让我们进行流体动力学模拟,其中我将我的域离散化为个单元。之后,我分配给每个多处理器个单元。在这个超通用模拟中,我有一些连续性方程,在一个细胞和邻居之间,必须针对每个时间步进行更新。如果单元属于同一个多处理器,则可以,因为它们可以使用公共缓存共享内存。相反,对于那些(它们的一部分)相邻单元属于不同的多处理器的单元,情况是不同的。我的问题是:
属于不同多处理器的单元如何在每个时间步进行通信?
我可以使用内存传输到 CPU,但我认为它效率不高。
在我看来,这是格子玻尔兹曼方法计算方面的中心点。
帮助我理解这一点。