首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公平绩效比较

公平绩效比较
EN

Stack Overflow用户
提问于 2017-09-12 22:05:34
回答 2查看 95关注 0票数 0

我正在为CUDA算法创建一个实现,并在CPU上使用CUDA时测量性能增益。

  • GPU特斯拉K20m GK110开普勒,2496 CUDA核心@706 GPU。
  • CPU:Intel Xeon E5-2609 V2 @ 2.50 GHz (无超线程或涡轮增压的IvyBridge四核,10 CPU L3)

我是比较多线程CUDA与单线程CPU。

因此,基于上述,比较这些处理器的计算时间是否公平?

EN

回答 2

Stack Overflow用户

发布于 2017-09-12 23:00:55

当然,做这种比较是不公平的。

  1. 为什么要用单线程执行来阻止CPU?
  2. 有时,不同的算法在不同的硬件上表现得更好。
  3. 我假设你已经写好了实现。你可能偏袒GPU。
  4. 为什么在这些替代方案之间的选择对任何人来说都是现实生活中的情景呢?

还有很多其他的原因。

另外,确保您使用的是正确的度量。时间/成本或时间/力量可能比仅仅测量时间更相关。或者是“你可以在一台机器上获得最快的性能”等等。

票数 2
EN

Stack Overflow用户

发布于 2017-09-13 02:43:33

我相信你确实有一个非常公平的研究问题要回答,但我确实同意@einpoklum的大部分关注,但我确实相信也许您的比较可以是公平的

作为一名研究科学家,在迁移到CUDA之前,我曾多次问自己同样的问题。

但是,IMHO,是的,如果考虑到一些关切,对列出的硬件进行一些比较是公平的:

  1. 比较的原因:我确实认为硬件成本和运行成本(投资、折旧和电力)是最有趣的,因为如果您可以用CUDA编写,这意味着您也可以使用CPU集群,但在我看来,在CPU上升级比CPU更便宜(即普通计算机可以处理多个CPU,而管理两个处理器的主板则不是通常的)。
  2. 过程目标:它可能听起来很明显,但很容易忽略代码目标,因为有些过程通过自己的方法具有太多的依赖性,而另一些过程则更容易被赖特并行处理(即蒙特卡罗模拟在GPU上的性能应该比CPU更好,而如果您的目标是解决混合模型,则恰恰相反)
  3. 正如@einpoklum所提到的,如果您编写代码,您的实现很有可能会有偏差,在这种情况下,我建议您为每种方法选择广泛的解决方案(例如,blas与cublas);
  4. 您的结果将限制在以上三个点的组合上,因此您不应该能够将结果外推到很远的地方。另一方面,如果目标是进行探索性的研究来解决或开发一个新的解决方案,那么就可以接受利用已经存在的、具有类似目标和方法的GPU和CPU的成熟实现的东西来进行“模型”,以便得到一个可外推的结果。

首先,我不是CUDA的开发人员,但我正在使用它来解决一些统计方程,一旦我找到了一种公开并行部分的方法,GPU方法就会成为考虑用户需求的最佳解决方案(即使用专用硬件的快速解决方案)。

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

https://stackoverflow.com/questions/46186002

复制
相关文章

相似问题

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