当前位置: 首页 > news >正文

泰坦科技网站建设科技感网站模板

泰坦科技网站建设,科技感网站模板,it运维工程师工作内容,百度答主招募入口官网了解GPU并行计算CUDA一、CUDA和GPU简介二、GPU工作原理与结构2.1、基础GPU架构2.2、GPU编程模型2.3、软件和硬件的对应关系三、GPU应用领域四、GPUCPU异构计算五、MPI与CUDA的区别一、CUDA和GPU简介 CUDA#xff08;Compute Unified Device Architecture#xff09;#xf… 了解GPU并行计算CUDA一、CUDA和GPU简介二、GPU工作原理与结构2.1、基础GPU架构2.2、GPU编程模型2.3、软件和硬件的对应关系三、GPU应用领域四、GPUCPU异构计算五、MPI与CUDA的区别一、CUDA和GPU简介 CUDACompute Unified Device Architecture是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构ISA以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C和FORTRAN。 GPUGraphic Processing Unit图形处理器显卡的处理核心。电脑显示器上显示的图像在显示在显示器上之前要经过一些列处理这个过程有个专有的名词叫“渲染。以前的计算机上没有GPU渲染就是CPU负责的。 渲染是个什么操作呢其实就是做了一系列图形的计算但这些计算往往非常耗时占用了CPU的一大部分时间。而CPU还要处理计算机器许多其他任务。因此就专门针对图形处理的这些操作设计了一种处理器也就是GPU。这样CPU就可以从繁重的图形计算中解脱出来。 NVIDIA公司在1999年发布Geforce 256图形处理芯片时首先提出GPU的概念随后大量复杂的应用需求促使整个产业蓬勃发展至今。 最早的GPU是专门为了渲染设计的那么他也就只能做渲染的那些事情。渲染这个过程具体来说就是几何点、位置和颜色的计算这些计算在数学上都是用四维向量和变换矩阵的乘法因此GPU也就被设计为专门适合做类似运算的专用处理器了。但随着GPU的发展GPU的功能也越来越多比如现在很多GPU还支持了硬件编解码。 全球GPU巨头NVIDIA英伟达AMD超威半导体。 二、GPU工作原理与结构 GPU采用流式并行计算模式可对每个数据行独立的并行计算。 GPU与CPU区别 CPU基于低延时设计由运算器ALUArithmetic and Logic Unit 算术逻辑单元和控制器CU,Control Unit以及若干个寄存器和高速缓冲存储器组成功能模块较多擅长逻辑控制串行运算。GPU基于大吞吐量设计拥有更多的ALU用于数据处理适合对密集数据进行并行处理擅长大规模并发计算因此GPU也被应用于AI训练等需要大规模并发计算场景。 2.1、基础GPU架构 GPU为图形图像专门设计在矩阵运算数值计算方面具有独特优势特别是浮点和并行计算上能优于CPU的数十数百倍的性能。 GPU的优势在于快而不是效果好。比如用美团软件给一张图要加上模糊效果CPU处理的时候从左到右从上到下进行处理。可以考虑开多核但是核数毕竟有限制比如4核、8核 分块处理。 使用GPU进行处理因为分块之前没有相互的关联关系可以通过GPU并行处理就不单只是4、 8分块了可以切换更多的块比如16、64等。 2.2、GPU编程模型 软件层面上不管什么计算设备大部分异构计算都会分成主机代码和设备代码。整体思考过程就是应用分析、内存资源分配、线程资源分配再到具体核函数的实现。 CUDA中线程也可以分成三个层次线程、线程块和线程网络。 线程是CUDA中基本执行单元由硬件支持、开销很小每个线程执行相同代码线程块Block是若干线程的分组Block内一个块至多512个线程、或1024个线程根据不同的GPU规格线程块可以是一维、二维或者三维的线程网络Grid是若干线程块的网格Grid是一维和二维的。 线程用ID索引线程块内用局部ID标记threadID配合blockDim和blockID可以计算出全局ID用于SIMTSingle Instruction Multiple Thread单指令多线程分配任务。 首先需要关注的是具体线程数量的划分在并行计算部分里也提到数据划分和指令划分的概念GPU有很多线程在CUDA里被称为thread同时我们会把一组thread归为一个block而block又会被组织成一个grid。 假如我们要对一个长度为1024的数组做reduce_sum减少和求和恰好我们正好有1024个thread此时直接一一对应就行但如果是一张很大的图片呢 如果有很多核函数要处理不同的数据呢GPU上有很多thread但要完全和实际应用中需要处理的数据大小完全匹配是不可能的事实上在满足规定的情况下我们可以给一个block内部分配很多thread对于到硬件上也真的是相应数量的thread会自动归为一组直接在一个SM上实行吗答案当然不是此时我们就要关注硬件引入了wrap概念GPU上有很多计算核心也就是Streaming Multiprocessor (SM)在具体的硬件执行中一个SM会同时执行一组线程在CUDA里叫warp直接可以理解这组硬件线程会在这个SM上同时执行一部分指令这一组的数量一般为32或者64个线程。一个block会被绑定到一个SM上即使这个block内部可能有1024个线程但这些线程组会被相应的调度器来进行调度在逻辑层面上我们可以认为1024个线程同时执行但实际上在硬件上是一组线程同时执行这一点其实就和操作系统的线程调度一样。 意思就是假如一个SM同时能执行64个线程但一个block有1024个线程那这1024个线程是分1024/6416次执行。 解释完了执行层面再来分析一下内存层面上的对应一个block不光要绑定在一个SM上同时一个block内的thread是共享一块share memory一般就是SM的一级缓存越靠近SM的内存就越快。GPU和CPU也一样有着多级cache还有寄存器的架构把全局内存的数据加载到共享内存上再去处理可以有效的加速。所以结合具体的硬件具体的参数SM和寄存器数量、缓存大小等做出合适的划分确保最大化的利用各种资源计算、内存、带宽是做异构计算的核心。 2.3、软件和硬件的对应关系 GPU在管理线程(thread)的时候是以block(线程块)为单元调度到SM上执行。每个block中以warp(一般32个线程或64线程)作为一次执行的单位(真正的同时执行)。 一个 GPU 包含多个 Streaming Multiprocessor 而每个 Streaming Multiprocessor 又包含多个 core 。Streaming Multiprocessors 支持并发执行多达几百的 thread 。一个 thread block 只能调度到一个 Streaming Multiprocessor 上运行直到 thread block 运行完毕。一个Streaming Multiprocessor 可以同时运行多个thread block 因为有多个core。 通俗点讲stream multiprocessor(SM)是一块硬件包含了固定数量的运算单元寄存器和缓存。 写cuda kernel的时候跟SM对应的概念是block每一个block会被调度到某个SM执行一个SM可以执行多个block。 cuda程序就是很多的blocks(一般来说越多越好)均匀的喂给这80个SM来调度执行。具体每个block喂给哪个SM没法控制。 不同的GPU规格参数也不一样比如 Fermi 架构2010年的比较老: 每一个SM上最多同时执行8个block。(不管block大小)每一个SM上最多同时执行48个warp。每一个SM上最多同时执行48*321,536个线程。 当warp访问内存的时候processor(处理器)会做context switch(上下文切换)让其他warp使用硬件资源。因为是硬件来做所以速度非常快。 三、GPU应用领域 GPU适用于深度学习训练和推理图像识别、语音识别等计算金融学、地震分析、分子建模、基因组学、计算流体动力学等高清视频转码、安防视频监控、大型视频会议等三维设计与渲染、影音动画制作、工程建模与仿真CAD/CAE、医学成像、游戏测试等等。 GPU常见的应用领域如下所示 游戏GeForce RTX/GTX系列GPUPCs、GeForce NOW云游戏、SHIELD游戏主机。专业可视化Quadro/RTX GPU企业工作站 。数据中心基于GPU的计算平台和系统包括DGXAI服务器、HGX超算、EGX边缘计算、AGX自动设备 。汽车NVIDIA DRIVE计算平台包括AGX XavierSoC芯片、DRIVE AV自动驾驶、DRIVE IX驾驶舱软件、Constellation仿真软件 。消费电子智能手机市场占据了全球GPU市场份额的主导地位此外智能音箱、智能手环/手表、VR/AR眼镜等移动消费电子都是GPU潜在的市场。比如拍照、导航地图的合成、UI图标、图像框、照片的后处理等都需要GPU来完成。 更详细的应用场景参考华秋元器件一文看完GPU八大应用场景抢食千亿美元市场 GPU算力 TOPs OPS是Tera Operations Per Second的缩写1TOPS代表处理器每秒钟可进行一万亿次操作。 四、GPUCPU异构计算 异构计算从常见的搭配有CPUGPU、CPUFPGA、CPUDSP等。 CPU的核心少但每一个核心的控制和计算能力都不弱因此常作为主机。而GPU的计算核心很多 所以当遇到大数据量且逻辑简单的任务CPU就会交给GPU来进行计算同时CPU的核心虽少但也是有多个线程的多线程可以调度并同时控制多张GPU同时完成多个任务这本身也是一种并行思想并且GPU也可以在接收到任务后让CPU的线程先去处理别的事情完成异步控制来进一步提高效率这本质上也是一种时域上的并行。 之所以出现GPUCPU异构计算因为CPU和GPU各自有优缺点 CPU 适用于一系列广泛的工作负载特别是那些对于延迟和单位内核性能要求较高的工作负载。作为强大的执行引擎 CPU 将它数量相对较少的内核集中用于处理单个任务并快速将其完成。这使它尤其适合用于处理从串行计算到数据库 运行等类型的工作。GPU 最初是作为专门用于加速特定 3D 渲染任务的 ASIC 开发而成的。随着时间的推移这些功能固定的引擎变得更加可编程化、更加灵活。尽管图形处理和当下视觉效果越来越真实的顶级游戏仍是 GPU 的主要功能但同时它也已经演 化为用途更普遍的并行处理器能够处理越来越多的应用程序。 五、MPI与CUDA的区别 MPI全称Massage Passing Interface是支持c、c等语言的并行编程的拓展库主要是负责多进程之间的通信。用于编写并行计算程序。我们通过MPI并行库来编写并行化的程序。 由于“天河二号”等高性能计算机在运行的时候是同一个程序会运行在很多节点上每个节点上都是一个进程。这些进程也就是这些节点之间需要相互通信来达到程序的并行。因此想要利用“天河二号”的计算能力来帮助自己运行程序就需要将自己的程序改为MPI的并行程序至于超级计算机分配哪些任务给哪些节点是我们不需要知道的以及节点之间如何通信利用中心架构进行通信还是非中心架构进行通信也是我们不需要知道的我们要了解的就是如何将自己在个人计算机上运行的普通程序改成可以在超级计算机上运行的MPI程序即可。 MPI框架下同一个程序在多个节点中以进程形式存在这些进程组成一个group每个进程都有唯一的进程号MPI的点对点通信有两种一种是消息发送一种是消息的接收最简单的为MPI_Send()和MPI_Recv()。 相对应的还有另外三种通信方式缓存通信、同步通信、就绪通信。 1缓存通信用户提供通信缓冲区避免了系统内存拷贝提高了通信效率但是缓冲区需用户自己管理。 2同步通信发送进程只有当接受进程开始接收不需要全部接收的时候才返回。 3就绪通信发送进程的发送操作只有当接受进程已经开启了接收操作的时候才能够成功调用否则发送操作将会出错。
http://www.tj-hxxt.cn/news/232060.html

相关文章:

  • 网站建设对接流程连锁销售公司网站的建设方案
  • win7局域网网站建设wordpress侧边悬浮框
  • 德保网站建设交换友情链接的目的
  • 网站建设设计费用摊销年限西安有做网站的吗
  • 潍坊网站建设wancet搜索关键词优化排名
  • 网站建设的一些原理网站建设外包多少钱
  • 路桥区高质量营销型网站建设wordpress采集软件
  • 网站+做+app中山手机建网站
  • 国外营销型网站如何用网站做招聘
  • 建站宝盒模板网站一定也做数据库吗
  • 广州一起做网店官网网站优化网络公司
  • 长沙有哪些做网站的公司厦门十家较好的网站建设公司
  • 大旺建设局网站学校校园网站建设实施方案
  • 网站建设如何开票本地生活网免费发信息
  • 江山有做网站开发吗南通仿站定制模板建站
  • 郑州做公司网站的公司新闻发布会筹备方案
  • 武昌网站建设的公司上海市城乡建设部网站首页
  • 个人如何建立公司网站佛山短视频拍摄
  • 交流平台网站怎么做不了公司变更说明
  • 企业做网站etp和源程序网站定制兴田德润实力强
  • 网站建设 sql智能网站建设背景
  • 查商家信息有哪些网站商贸公司注册需要多少钱
  • 用公司的信息做网站违法吗房地产开发与管理专业
  • 直播网站建设品牌刚刚传来最新消息
  • 做包装一般看什么网站禁止wordpress评论外链
  • 青岛网站建设方案公司wordpress调用图像描述
  • 支付公司网站建设会计分录东莞专业的单位网站建设
  • 网站产品优化阳江招聘网娱乐业
  • 提供网站制作公司在线代理ip网页
  • 做民族网站的配色哪些颜色适合中国住建网的官网