前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CUDA编程之认识CPU与GPU

CUDA编程之认识CPU与GPU

作者头像
AI异构
发布2020-07-29 14:54:36
8170
发布2020-07-29 14:54:36
举报
文章被收录于专栏:AI异构AI异构

CPU vs GPU

CPU vs GPU

CPU

CPU架构示意图

  • 追求单线程的最高性能,对延迟敏感,指令级并行
  • 大量的晶体管用于缓存而非计算单元,而缓存并不 提供原生/峰值计算能力
  • CPU有强大的ALU,时钟频率很高,但由于散热、晶体管尺寸等影响,近年来,频率提升接近停止
  • CPU的容量较大的cache,一般包括L1、L2和L3三级高速缓存;L3可以达到8MB,这些cache占据相当一部分片上空间;
  • CPU有复杂的控制逻辑,例如:复杂的流水线(pipeline)、分支预测(branch prediction)、乱序执行(Out-of-order execution)等;
  • 分支预测和超线程性能提升小,但消耗晶体管多
  • SSE和AVX指令能够很好的提升性能,但难以使用
  • 多核技术易于使用,但是集成核心数量有限
GPU

GPU架构示意图

  • GPU是一种高吞吐的设计,有大量的ALU
  • cache很小;缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为thread提高服务的
  • 没有复杂的控制逻辑,没有分支预测等这些组件
  • 原生计算能力百倍于主流CPU的高性能处理器
  • 硬件多线程、高存储器带宽、高延迟
  • 对存储器带宽的要求高于延迟
  • 通过并发访存及线程切换掩盖存储器访问延迟

总的来说,CPU擅长处理逻辑复杂、串行的计算任务;而GPU擅长的是大规模的数据并行(data-parallel)的计算任务

CPU+GPU异构

  • GPU使用CUDA、OpenCL等,CPU使用C/C++等(主机与设备模型)
  • CPU 顺序执行、控制GPU、多核及SSE/AVX技术(CPU主机端——主要用于控制与调度)
  • GPU 执行数据并行代码(GPU设备端——主要用于并行的计算)

GPU异构编程模型

主流的GPU异构编程: AMD (OpenCL) 不支持CUDA,主要通过OpenCL开发 NVDIA (CUDA/OpenCL) 相比于OpenCL,CUDA更容易使用,效率也更高!

参考

CUDA编程指南3.0 [【CUDA】学习记录(3)-硬件结构]https://www.jianshu.com/p/2fbd02311266

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI异构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CPU vs GPU
    • CPU
      • GPU
      • CPU+GPU异构
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档