首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab如何在CPU并行循环中实现GPU计算?

Matlab如何在CPU并行循环中实现GPU计算?
EN

Stack Overflow用户
提问于 2015-02-13 09:37:12
回答 1查看 199关注 0票数 0

我们能否通过使用GPU函数的parforspmd块的gpuArray来计算CPU的某些部分来提高性能呢?这是一种提高性能的合理方法,还是在此过程中存在局限性?我在某个地方读到,当我们有一些GPU单元时,我们可以使用这个程序。这是除了CPU并行循环之外,我们可以使用GPU计算的唯一方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-13 12:57:11

gpuArray循环或spmd块中使用spmd可能会给性能带来好处,但实际上取决于以下几个因素:

  1. 你的系统上有多少个GPU?
  2. 您拥有何种类型的GPU(有些GPU在处理“超额订阅”方面比其他GPU更好--即在使用同一个GPU的多个进程中)
  3. 你经营多少工人?
  4. 您的alogrithm需要多少GPU内存?
  5. 首先,这个问题对GPU来说是多么的合适。

因此,如果您的机器中有两个高性能的GPU,并且在一个并行池中运行两个工作人员,那么这个问题可能会使单个GPU完全被占用--您可能会看到很好的加速。如果你管理4名工人,你可能还会得到适当的加速。

我建议的一件事是:如果可能的话,尽量避免将gpuArray数据从客户端传输到工作人员,因为这比通常的数据传输要慢( gpuArray首先被gather编辑到CPU,然后在工作人员上重新构建)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28496472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档