我们能否通过使用GPU函数的parfor
或spmd
块的gpuArray
来计算CPU的某些部分来提高性能呢?这是一种提高性能的合理方法,还是在此过程中存在局限性?我在某个地方读到,当我们有一些GPU单元时,我们可以使用这个程序。这是除了CPU并行循环之外,我们可以使用GPU计算的唯一方法吗?
发布于 2015-02-13 12:57:11
在gpuArray
循环或spmd
块中使用spmd
可能会给性能带来好处,但实际上取决于以下几个因素:
因此,如果您的机器中有两个高性能的GPU,并且在一个并行池中运行两个工作人员,那么这个问题可能会使单个GPU完全被占用--您可能会看到很好的加速。如果你管理4名工人,你可能还会得到适当的加速。
我建议的一件事是:如果可能的话,尽量避免将gpuArray
数据从客户端传输到工作人员,因为这比通常的数据传输要慢( gpuArray
首先被gather
编辑到CPU,然后在工作人员上重新构建)。
https://stackoverflow.com/questions/28496472
复制相似问题