首页 > 其他分享 >浅析GPU架构与异构计算CUDA

浅析GPU架构与异构计算CUDA

时间:2023-06-19 18:46:00浏览次数:43  
标签:异构计算 cache CPU units 内存 DRAM GPU 浅析

  下图有几个重点的元素,也是我们下文重点要阐述的概念,绿色代表的是computational units(可计算单元) 或者称之为 cores(核心),橙色代表memories(内存) ,黄色代表的是control units(控制单元)。

  因此想要理解GPU的底层核心构成,就必须明确这几个元素的作用,下文会逐一讲解每个元素的作用。

Computational units(cores)

  总的来看,CPU的Computational units是“大”而“少”的,然而GPU的Computational units是“小”而“多”的,这里的大小是指的计算能力,多少指的是设备中的数量。通过观察上图,显然可以看出,绿色的部分,CPU“大少”,GPU“小多”的特点。

  CPU的cores 比GPU的cores要更加聪明(smarter),这也是所谓“大”的特点。

  在过去的很长时间里,CPU的core计算能力增长是得益于主频时钟最大的频率增长。相反,GPU不仅没有主频时钟的提升,而且还经历过主频下降的情况,因为GPU需要适应嵌入式应用环境,在这个环境下对功耗的要求是比较高的,不能容忍超高主频的存在。例如英伟达的Jetson NANO,安装在室内导航机器人身上,就是一个很好的嵌入式环境应用示例,安装在机器人身上,就意味着使用电池供电,GPU的功耗不可以过高。

  CPU比GPU聪明,很大一个原因就是CPU拥有"out-of-order exectutions"(乱序执行)功能。出于优化的目的,CPU可以用不同于输入指令的顺序执行指令,当遇到分支的时候,它可以预测在不久的将来哪一个指令最有可能被执行到(multiple branch prediction 多重分支预测)。通过这种方式,它可以预先准备好操作数,并且提前执行他们(soeculative execution 预测执行),通过上述的几种方式节省了程序运行时间。

memory

  CPU的memory系统一般是基于DRAM的,在桌面PC中,一般来说是8G,在服务器中能达到数百(256)Gbyte。

  CPU内存系统中有个重要的概念就是cache,是用来减少CPU访问DRAM的时间。cache是一片小,但是访问速度更快,更加靠近处理器核心的内存段,用来储存DRAM中的数据副本。cache一般有一个分级,通常分为三个级别L1,L2,L3 cache,cache离核心越近就越小访问越快,例如 L1可以是64KB L2就是256KB L3是4MB。

  从第一张图可以看到GPU中有一大片橙色的内存,名称为DRAM,这一块被称为全局内存或者GMEM。GMEM的内存大小要比CPU的DRAM小的多,在最便宜的显卡中一般只有几个G的大小,在最好的显卡中GMEM可以达到24G。GMEM的尺寸大小是科学计算使用中的主要限制。十年前,显卡的容量最多也就只有512M,但是,现在已经完全克服了这个问题。

关于cache,从第一张图中不难推断,左上角的小橙色块就是GPU的cache段。

 

 

参考:https://zhuanlan.zhihu.com/p/598173226

标签:异构计算,cache,CPU,units,内存,DRAM,GPU,浅析
From: https://www.cnblogs.com/superego-zhang/p/17491900.html

相关文章

  • unity发布后GPU占用过高
    发布后显示GPU占用98%,太夸张了吧同工程哪怕是空场景也是占用很高,除非新建工程对比很久才发现,是垂直同步的问题,场景质量为最低的时候,不开垂直同步反而增大了性能消耗,包括CPUhttps://zhuanlan.zhihu.com/p/453296774......
  • Android Framework层——App启动过程浅析
    1.关于Android系统的启动系统的启动过程非常复杂,这里只是简单的了解。先上谷歌提供的架构分层图⬇**引导程序BootLoader进行初始化Linux内核->启动init进程->init进程fork出zygote进程(处于c++framework层)->zygote进程fork出system_server进程(处于javaframework层)**system_ser......
  • 【Linux交换分区】 交换分区格式浅析
    完成本文,使用了两个工具 1.strace 2.googlecodesearch. ----swap分区有一个大小为PAGE_SIZE的页面,称为signature页,上面记录swap分区的基本信息。staticstructswap_header_v1{charbootbits[1024];/*Spacefordisklabeletc.*/unsig......
  • 武汉星起航电子商务有限公司浅析全球电商市场发展趋势
    随着科技的不断进步和全球数字化的推动,全球电商市场正以惊人的速度增长和演变。以下是星起航整理的全球电商市场可能面临的一些发展趋势:移动端购物的持续增长:移动设备的普及和用户对便捷购物体验的需求推动了移动端购物的迅速增长。随着智能手机和平板电脑的普及,越来越多的消费者......
  • Pytorch中查看GPU信息
    本文摘自:知乎 用Pytorch中查看GPU信息1.返回当前设备索引torch.cuda.current_device()2.返回GPU的数量torch.cuda.device_count()3.返回gpu名字,设备索引默认从0开始torch.cuda.get_device_name(0)4.cuda是否可用torch.cuda.is_available()......
  • HTTP请求:requests的进阶使用方法浅析
    1背景上篇文章讲解了requests模块的基础使用,其中有get、put、post等多种请求方式,使用data、json等格式做为请求参数,在请求体中添加请求头部信息的常见信息,如:headers、cookies,以及对请求响应的处理方法。接下来讲解一下requests的高级用法。2进阶方法举例2.1requests.request......
  • 浅析微信小程序自动化部署miniprogram-ci介绍及实际使用
    一、miniprogram-ci介绍1、miniprogram-ci简介miniprogram-ci是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。开发者可不打开小程序开发者工具,独立使用miniprogram-ci进行小程序代码的上传、预览等操作。文档:https://www.npmjs.com/package/min......
  • 广告相关技术栈浅析
    在线实时竞价供应方平台(SSP):面向出版商(网站或移动应用的所有者),提供实时竞价的广告资源管理和销售平台,可以将出版商的广告资源与多个广告交易平台、需求方平台和广告网络进行关联,实现收益最大化。需求方平台(DSP):面向广告主或代理商,提供实时竞价的广告资源购买和投放平台,可以通过技术......
  • GPU技术在大规模计算和并行计算中的应用和挑战
    目录1.引言2.技术原理及概念3.实现步骤与流程4.应用示例与代码实现讲解5.优化与改进GPU技术在大规模计算和并行计算中的应用和挑战随着计算机硬件的不断发展和计算能力的提高,大规模计算和并行计算已经成为了人工智能和机器学习领域的重要研究方向。而GPU(图形处理器)......
  • 浅析CSS实现超过3行折叠并显示...查看详情
    要实现效果如下:尾部带查看详情,前面有三个点省略号。之前单独看这个布局,即使借助JavaScript也不是一件容易的事啊(需要计算文字宽度动态截取文本,然后append上三个点和查看详情。vue-clamp就是这么做的,包括很多博客也是这么讲的,但是讲真,如果是个列表,这种不断的判断,肯定不是......