【问题标题】:What is the difference between CUDA core and CPU core?CUDA核心和CPU核心有什么区别?
【发布时间】:2019-04-22 21:48:35
【问题描述】:

我在 CUDA 上做了一些工作,在 CPU 上做了很多工作,我试图了解两者之间的区别。我的 I5 处理器有 4 个内核,售价 200 美元,而我的 NVidia 660 有 960 个内核,成本大致相同。

如果有人能解释两种处理单元架构在能力优缺点方面的主要区别是什么,我会非常高兴。例如,CUDA 核心是否有分支预测?

【问题讨论】:

  • CPU 核心是通用的,GPU 核心通常是非常专用的。
  • 我明白这一点,但我想更深入地了解是什么让 GPU 内核非常具体,以及它们不能做什么,而 CPU 内核可以做到。
  • talonmies 当您开发具有多线程可读潜力的软件时,了解您可以使用的架构的优缺点非常重要,这样您就可以做出更好的选择,而不是在一个月后发现开发表明,尽管 Cuda 有许多处理器,但每个处理器都有一些缺点,这些缺点可能对您的性能至关重要,并且不适合您的问题。
  • 虽然这不是一个询问具体编程问题的问题,但它确实属于这里,因为它的答案可以帮助程序员(如我)为他们正在编写的软件选择合适的基础架构。
  • @OopsUser 我建议您查看GPU Architecture 幻灯片 3-25,这将使您了解 NVIDIA Kepler SMX 如何执行指令。

标签: cuda cpu


【解决方案1】:

这是一个计算机体系结构问题,需要很长的答案。对于不准确的风险,我会尽量保持简单。 您基本上通过询问 CUDA 核心处理分支预测来自我回答您的问题,答案是否定的。 CPU 内核必须处理计算机执行的每一项操作、计算、内存获取、IO、中断,因此它具有庞大的复杂指令集,并使用了优化获取指令分支预测的速度。
它还具有大缓存和快速时钟速率。 要实现指令集,您需要更多的逻辑,因此与 GPU 相比,每个内核需要更多的晶体管更多的成本。

GPU 内核具有更少的高速缓存、更简单的指令和更少的每个时钟的时钟频率,但是它们经过优化可以作为一个组进行更多的计算。 指令集越简单,缓存内存越少,每个内核的成本就越低。

【讨论】:

    【解决方案2】:

    Cuda 核心是矢量单元的更多通道,聚集成经线。本质上,cuda 核心是更广泛的 AVX 或 VSX 或 NEON 向量中的条目。

    最接近 CPU 内核的是 SMX。它可以处理多个上下文(warp、超线程、SMT),并具有多个并行执行管道(Kepler 为 6 个 FP32,Haswell 上为 2 个,Power 8 上为 2 个)。每个 SMX 都是独立的,就像任何内核或通用 CPU 一样。

    此类比在此处进一步详细说明:https://stackoverflow.com/a/36812922/6218300

    【讨论】:

      【解决方案3】:

      它们现在原则上与 CPU 内核相同。不久前这不是真的,例如他们在 2005 年无法处理整数操作数。

      在比较 2 核 i5 的 CPU 核心复杂性时,请记住,最初的 80386 CPU 只有大约 275K 个晶体管,而 Core2Duo 大约有 2.3 亿个。 1000 倍以上,所以数字很合适。

      最大的不同是内存处理变得比过去需要分段寄存器时更加复杂。没有虚拟内存等,当您尝试移植普通 CPU 程序时,这是一个非常薄的瓶颈,但真正的问题是非本地内存访问非常昂贵,需要 400-800 个周期。他们正在使用一种在 GPU 世界之外只有 SUN Niagara T1/T2 通用 CPU 拥有的技术。在等待内存访问时,它们会使用其他准备好的指令(称为包装)调度不同的线程集。但是,如果所有线程都在您的数据周围进行非线性跳跃,那么您的性能就会失败。

      【讨论】:

      • 在不知道哪里错的情况下投反对票是现代 stackoverflow 的典型懦弱,也是这个曾经伟大的网站正在消亡的原因。内存访问是个问题。
      【解决方案4】:

      您需要了解 CPU 与 GPU 之间的根本区别以及近期 GPGPU 兴起的需求。 Udacity

      另外,this book 可能对初级程序有所帮​​助。

      虽然这不是一个编程问题。希望它可以帮助某人。

      【讨论】:

        猜你喜欢
        • 2018-04-30
        • 2017-09-04
        • 2014-10-12
        • 2013-10-11
        • 1970-01-01
        • 2014-04-06
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        相关资源
        最近更新 更多