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

招商加盟的网站应该怎么做前端程序员需要掌握哪些基本技术

招商加盟的网站应该怎么做,前端程序员需要掌握哪些基本技术,郑州信息网官网,免费做微信链接的网站location: Beijing 1. why is GPU CPU的存储单元和计算单元的互通过慢直接促进了GPU的发展 先介绍一个概念#xff1a;FLOPS#xff08;Floating Point Operations Per Second#xff0c;浮点运算每秒#xff09;是一个衡量其执行浮点运算的能力#xff0c;可以作为计算…location: Beijing 1. why is GPU CPU的存储单元和计算单元的互通过慢直接促进了GPU的发展 先介绍一个概念FLOPSFloating Point Operations Per Second浮点运算每秒是一个衡量其执行浮点运算的能力可以作为计算机性能的指标。所以人们买计算机是往往关心一下计算机有多少FLOPS 然而计算机性能可能是过剩的下图是CPU与DRAM的关系 Fig. 1.1 计算机存算架构 DRAM每秒把200GB的数据也就是把25,000,000,000个FP64类型的浮点数传输给CPUCPU每秒可以计算2,000,000,000,000个FP64类型的浮点数。可以看出CPU可处理数据的能力是DRAM传输能力的80倍这种比值有个专业术语计算强度除非我们的程序对每个数据都做80次运算否则CPU的算力总是过剩的 所以从这里可以看出大部分时间计算机运行程序的速度并不取决于CPU的计算能力而是DRAM与CPU传输数据的时间延迟latency 以一段测试程序daxpy函数为例 Fig. 1.2 存取速度测试程序 这里我们默认alpha存在CPU的缓存中数组x和y存在DRAM中。当程序执行时我们用甘特图看看程序的执行 Fig. 1.3 程序运行甘特图 可以看出在程序运行的过程中CPU花了大量的时间在等待DRAM把数据传过来这段等待时间大概是占整个程序执行时间的99%以上 至于为什么这么慢我们可以理解为光速太慢CPU尺寸太大传输线太长……anyway这里不在追究不过值得一提的是NVIDIA、Intel、AMD都无法解决这个物理问题 这个问题没办法解决了吗或许我们可以另辟蹊径既然这种latency无法避免那我们就想办法“掩盖”这个latecy 如果总线在89ns内可以传输11659bytes数据通过daxpy函数可以看到这个函数89ns内只要了16bytes的数据所以为了让总线忙起来我们只需要让daxpy函数一次要11659/16729次数据就能让总线满负荷 比如下面一段程序一定程度上让总线忙一点 Fig. 1.4 高并发 通过这种一次加载大量数据让CPU和DRAM之间的传输线忙起来这从一定程度上“减少”了后面加载的数据的延迟使程序快速运行 理论上来讲即使这是单线程的程序我的循环中迭代729次也是没问题的 这里需要指出一个点并行性指的是计算机同时处理多个任务的能力在硬件限制下每个线程同时处理一个操作但硬件可以处理很多线程并发性指计算机有处理多个任务的能力不讲究同时。 这样通过多线程的模式也可以掩盖latency的的事实。 Fig. 1.5 多线程支持 从这里可以看出NVIDIA的优势通过对一批数据进行221184种不同的操作线程来掩盖latency的不足GPU就是为少量数据进行大量任务而设计的与此相比CPU期望通过一个线程解决所有问题。 因此解决latency的问题变为创造足够多的线程。 2. What is GPU Fig. 2.1 GPU架构 其中我们希望离SM较近的寄存器能够尽可能的填满因为每向较远的缓存访问数据latency都会灾难性的上升。每一个SM都是一个基础处理单元下图使SM的示意图 Fig. 2.2 SM示意图 warp使GPU的基本调度单元每个warp由32个线程组成作用是将大量线程分组并同时执行以实现并行计算和隐藏内存访问延迟Warp中的32个线程将同时执行相同的指令但操作不同的数据但如果遇到条件分支语句如if语句不同线程可能会选择不同的执行路径。在这种情况下Warp会以SIMD方式执行分支即每个线程都会执行分支中的指令但只有满足条件的线程会更新结果。 如果是单线程那所有任务都要排队执行而且最慢的任务可能卡着其他任务执行但如果是多线程所有任务都可以同时进入运算这样就会更快对延迟的处理更好。 但事实上各线程之间很少能够独立的进行因为很多算法或多或少需要一些邻居的数据比如卷积操作傅里叶变换。 Fig. 2.3 多线程支持 线程之间相互影响 3. How is GPU Fig. 3.1 AI识别猫 比如我让AI去识别一只猫首先先把照片切块所有这些块相对独立的操作GPU通过超量分配oversubscribed加载这些块希望GPU的内存能够满载。然后每个块由若干线程同时操作这些线程可以共享这个块的数据。 GPU的超量分配Oversubscription是指在GPU加速计算环境中分配给应用程序或作业的资源超出了物理GPU硬件的实际容量以覆盖latency。 Fig. 3.2 GPU图像识别 像这样一个大的任务被分解成若干线程块每个块相对独立每个块都有同时进行的并行线程这些并行的线程共享这个块的数据当然特定块中的线程可以有所交叉。 Fig. 3.3 GPU任务拆解 不同类型问题类型的计算强度如下图intensity Scalescompute Scales/data Scales 可以理解为对于Element-wise问题每增加到N个线程多加载到N个数据多N组运算对local问题每增加N到个线程多加载NN个数据多NN数量级次的运算在卷积中再多的数据也没办法与算术强度相抗衡但是对于All-to-All问题每增加到N个线程多加载N个数据多了N*N次运算算术强度就会增加N。 Fig. 3.4 算术强度 事实上矩阵的乘法就是All-to-All问题对于矩阵乘法NN的矩阵相乘有N行乘N列再进行N次相加所以compute Scales为O(NNN) 访问内存的数量级是O(NN) 因此算术强度是O(N) 。 下图的蓝线是矩阵计算的计算强度随矩阵规模增加的曲线橘线是GPU的计算强度曲线假设交点是50计算机运算FP32的最佳位置也就是这个点。对于白线100是双精度浮点数的最佳计算点。随着矩阵的增大运算量变得更大也就不太需要这么多的数据所以内存也就变得更闲了。GPU中存在一些tensor cores就是算力更强这个点也就会上移一些。当内存用完也就不需要增加算力了。 Fig. 3.5 于是对应于GPU的内部结构也就有了下图 Fig. 3.6 当数据存在L1可以计算32*32当数据存在L2可以计算大一些当数据存在HBM就会达到400。计算小矩阵更高效。 reference [1] NVIDIA 2021 GPU工作原理
http://www.hkea.cn/news/14471514/

相关文章:

  • 如何进入网站后台管理系统济南咨询行业网站开发
  • 嘉兴网站备案去哪里十堰秦楚网主页
  • 济南网站建设方案案例展示电脑维护网站模板
  • 网站咋做推广wordpress做菜鸟教程
  • 江北网站建设价格wordpress编辑小工具代码
  • 网站建设与管理模拟题1在网站怎么做代销
  • 网站开发实战演练外贸seo优化方法
  • 中国可以做交互的网站wordpress多用户商城主题
  • 无锡高端网站建设哪家好如何做网站数据分析
  • 赛罕区城乡建设局网站昆明网页设计培训学校
  • 企业网站建设需要哪些费用北京哪里制作网站
  • 有哪些网站可以做微商网站模板免费下载php
  • 如何创建私人网站北京公司做网站
  • 站长广告联盟平台网站备案查询背景布
  • 医院网站建设合同范本石家庄网站制作软件
  • 贵阳哪些公司建网站国内营销策划咨询公司
  • 网站建设发信息汕头市作风建设的网站
  • 微网站 杭州网站开发步骤说明书是什么
  • 泉州建设工程质量网站石家庄手机建网站
  • 商用营销型网站建设自助网站建设厦门网站制作
  • 邯郸做网站哪里好广州网站排名优化开发
  • 网站建设的域名高校网站群建设的公司有哪些
  • 黄山网站设计做油漆稀料用哪个网站
  • 免费网站维护什么网站可以做电影投资
  • 长春学校网站建设方案咨询网站有了如何做推广
  • 在淘宝做印刷网站怎么办厦门易尔通网站建设好吗
  • 山东泰安特产外贸seo网站推广
  • 长沙网站制作建设文章优化关键词排名
  • 做彩票网站空间去哪买北京网站建设公司代理
  • 建设钓鱼网站源码注册公司流程时间