CPU、GPU和CUDA之间的关系及基础概念

全球大名鼎鼎的三家芯片公司:英伟达NVIDIA、英特尔intel、AMD。英伟达主要生产图形处理器即GPU。英特尔则主要生产CPU,其CPU性能一直是最强的。AMD则是两者的结合,即生产CPU也生产GPU。

CUDA则是由NVIDIA开发的一款新的操作GPU计算的硬件和软件架构,将GPU视作一个数据并行计算设备,而且无须将计算映射到图形API。

1、CPU和GPU组成

CPU(Central Processing Unit, 中央处理器):计算机的运算核心和控制核心,主要功能为解释计算机指令以及处理计算机软件中的数据。遵循冯诺伊曼架构。

冯诺伊曼架构:

GPU(Graphic Processing Unit,图形处理器):专门用于图形信号处理的单芯片处理器(现在可用于大规模并行计算等多个领域),分担了部分原本属于CPU的工作。(主要是并行计算部分)

2、CPU和GPU组成

CPU主要包括运算器(Arithmetic and Logic Unit,ALU)、控制单元(Control Unit,CU)、寄存器(Register)、高速缓存器(Cache)和通信的数据、控制及状态总线。

GPU则由许多计算单元和超长流水线组成适合处理大量类型统一的数据。

CPU与GPU结构对比:

3、CPU与GPU区别

CPU擅长统领全局等复杂操作(脑力劳动),而GPU擅长对大量数据进行简单重复操作(体力劳动)。

4、CPU单核和多核

单核即CPU集成了一个运算核心,任务执行时需要一个一个排队。

多核即CPU集成了多个运算核心,相当于多个CPU同时工作,可以同时执行多个线程任务,或者单个任务由多个CPU同时执行。但内存等资源通常是共用的,当需要处理的负载较大时,资源可能会彼此冲突。

5、CPU的核心数和线程数

核心数:指物理上,即硬件上存在着几个核心。

线程数:逻辑上的概念,即模拟出的CPU核心数。

例如可以通过一个CPU核心模拟出2线程的CPU,这个单核心的CPU就具备了一个类似双核心CPU的功能。像Intel酷睿CPU的核心有的就是四核八线程的。通过超线程技术使一个核心可以对应两个线程后,该核心可以同时运行两个线程。

6、GPU显存

GPU显存:暂时存储GPU要处理的数据和处理完毕的数据,显存容量大小决定GPU能够加载的数据量大小。

深度学习训练场景下,显存容量决定一次能加载训练数据的量(包括模型的大小,神经元的权重参数等都储存于显存),在使用大模型训练或数据量大时,显存尤为重要。

7、CUDA

CUDA全称Computer Unified Device Architecture(计算机统一设备架构),是一种并行计算架构,使显卡可以用于图像渲染和计算以外的目的(例如通用并行计算)。

CUDA使软件开发人员可以在NVIDIA的GPU上进行并行编程,可将CPU程序修改为GPU并行程序。

8、CUDA计算模型(步骤)

CUDA计算模型中,程序分为两部分:主机(Host)端和设备(Device)端。主机端是在CPU上执行的程序部分,设备端是在GPU上执行的程序部分。内核(Kernel)是设备端程序的另一种叫法。

一般情况下,CPU执行主机端的程序会准备好数据并将其复制进显卡内存中,然后设备端程序由GPU执行完后,主机端程序会将生产的数据结果从显卡内存中取回。

9、CUDA程序架构

CUDA程序构架分为两部分:主机和设备。(主机指CPU,设备指GPU)。在CUDA架构中,主程序由CPU执行,当遇到数据并行处理的部分,CUDA会将程序编译成GPU能执行的程序,并传送到GPU。这个程序在CUDA力被称作核(Kernel)。CPU负责程序中串行部分,GPU则负责并行计算任务的处理,主机和设备端调用不同的处理单元。

10、CUDA常见概念、术语表

CPU

GPU

层次

算术逻辑和控制单元

流处理器(SM)

硬件

算术单元

批量处理器(SP)

硬件

进程

Block

软件

线程

Thread

软件

调度单位

Warp

软件

11、CUDA函数

CUDA还指基于扩展C编程语言的只管和可扩展编程模型,将CPU和GPU(所谓的主机和从机)统一到异构计算系统中

CUDA-C包含3种类型的函数:
(1)主机函数:调用、执行都仅由主机端完成

(2)内核函数:定义时加上_global_限定符,主机端调用,设备端执行

(3)设备函数:定义时加上_device_限定符,仅由设备端调用、执行。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GPU高性能编程CUDA实战》是一本介绍GPU编程技术的实用指南。它以CUDA(Compute Unified Device Architecture)为核心,向读者展示如何利用GPU的并行计算能力来加速各种应用程序。 本书首先对GPU架构和CUDA编程模型进行了全面介绍,并讲解了CUDA的基本概念和编程原理。读者可以从中了解到GPU相对于传统CPU的优势,以及如何利用CUDA进行高效的并行编程。 接着,书中详细讲解了CUDA的编程语言和工具。读者将学会如何使用CUDA C/C++来编写并行计算的代码,并通过实际案例演示了如何调试和优化CUDA程序。此外,本书还介绍了NVIDIA的性能分析工具和CUDA GPUs的内存管理技巧,帮助读者更好地利用GPU的性能。 《GPU高性能编程CUDA实战》的一个重要特点是它提供了大量的实例代码和实战案例。通过这些案例,读者可以了解到如何用CUDA来加速图像处理、矩阵运算、深度学习等各种应用。这些示例代码都经过优化和测试,读者可以直接运行和验证,并通过它们来学习和实践CUDA编程技术。 总之,《GPU高性能编程CUDA实战》是一本很好的学习资源,特别适合对并行计算和GPU编程感兴趣的开发人员和研究者。通过阅读本书,读者可以系统地了解CUDA编程的基本概念和技术,并通过实战案例来提高自己的GPU编程能力。无论是想加速现有应用程序,还是开发新的GPU应用,都能从这本书中获得很多实用的知识和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值