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

怎么做网站的学校的大图环评怎么在网站做公示

怎么做网站的学校的大图,环评怎么在网站做公示,免费查询企业联系方式,门户类网站备案WARP GPU的线程从thread grid 到thread block#xff0c;一个thread block在CUDA Core上执行时#xff0c;会分成warp执行#xff0c;warp的颗粒度是32个线程。比如一个thread block可能有1024个线程#xff0c;分成32个warp执行。 上图的CTA#xff08;cooperative thre…WARP GPU的线程从thread grid 到thread block一个thread block在CUDA Core上执行时会分成warp执行warp的颗粒度是32个线程。比如一个thread block可能有1024个线程分成32个warp执行。 上图的CTAcooperative thread arrays即为thread block。 Warp内的32个线程是以lock-step的方式锁步执行也就是在没有遇到分支指令的情况下如果执行那么执行的都是相同的指令。通过这种方式32个线程可以共享pc源寄存器ID和目标寄存器ID。 虽然warp是以32的颗粒度但是具体在GPU内部执行时也可能是以16的颗粒度分两次执行比如早期的fermi架构。 如上图所示两个warp scheduler每个warp每次只能在16个CUDA core上执行。 后续的Pascal GPU架构 CUDA core增加到了32个每个周期都能执行一个warp。 寄存器 GPU的寄存器数量是影响划分CUDA thread block的数量的原因之一。 虽然内部执行是按照warp执行的按照调度顺序和ready进行调度。但是寄存器的分配是静态的按照thread number分配的而不是warp。在warp执行时32个线程每个线程读取源寄存器写入目标寄存器。假设每个寄存器4B那么每次32个线程读取128B。 因而128B也就是GPU L1 Cache Cacheline的大小。不同于CPU每一级的cache都要维护MOSEI的一致性对于GPU的thread来说私有memory不需要共享因此对于local memory可以write back。而全局共享memory则可以write evict。 CPU的寄存器在编译器编译时会根据寄存器的live time进行优化而且在CPU内部执行时进行重命名在有限的寄存器数量上尽量的解决依赖问题。GPU只在编译时优化尽量减少对memory的使用在内部执行时如果针对每个warp都增加一个寄存器重命名单元设计复杂。因此GPU每个线程需要的寄存器就是它编译时需要的寄存器上限寄存器上限也可以通过编译器控制。这就导致了实际GPU内部执行时对寄存器使用数量的波动。如下图所示因此也有很多文章研究如何优化寄存器的使用。 在编译时nvcc可以通过指定--maxrregcount指定寄存器的数量但是过多的寄存器会因为固定的寄存器资源而导致thread数量变少过少的寄存器也会导致需要频繁的访问memory因此也需要折衷。 WARP Divergence 之前讨论warp时说如果32个线程没有遇到分支那么每个线程都执行同一条指令但是如果存在分支呢 GPU没有CPU的分支预测使用active mask和predicate register来构建token stack来处理遇到分支时的问题。 GPGPU-sim按照下图模拟的token stack其中的 另一种可能的token stack则是按照如下的方式构建结合了指令predicate register和token stack。 上图中的b即为编译出的汇编指令SSY 0xF0即为push stackif else分支指令结束重聚的指令地址为0xF0。每个warp会有当前的active pc寄存器和active mask寄存器。我们假设一个warp内有8个thread在SSY 0xF0指令执行时会将active mask 压栈压栈的内容包括Fig1 中的entry type SSYactive mask和re-convergence pc也就是0xF0从SSY 0xF0指令可以获得. 在分支指令PO BRA 0xB8执行时会将DIV(divergence),active mask(0xF0这个并非pc而是active mask当前warp的每个thread的predicate register拼接而成8bit 每个bit表示一个thread是否满足if条件) 和 0xB8if语句块内的第一条指令的地址压栈。 然后gpu会默认执行else分支因为if需要跳转else直接顺序执行执行else分支时需要对active mask取反只执行不满足if条件的那些thread。 Else分支的最后一条汇编指令末尾会增加.S flag用于标志pop stack此时pop指令会将active mask出栈更新到active mask寄存器和active pc中然后执行if 分支直到执行完毕if内的最后一条指令对应地址0xE8此时再次出栈。 将当前active pc更新为0xF0active mask更新为0xFF此时if else分支执行完毕回到重聚点所有线程继续lock-step锁步执行。 这里只假设一个if else但是实际上可能存在if else的嵌套因此第一步SSY 0xF0可以理解成上下文切换时的先保存当前的active mask。 上述的方案与GPGPU-sim中的架构类似除了在指令中显式的增加了压栈出栈。 1. https://www.bu.edu/pasi/files/2011/07/Lecture2.pdf 2.Dynamic Warp Formation and Scheduling for Effificient GPU Control Flow 3. RegMutex: Inter-Warp GPU Register Time-Sharing  4. Analyzing Graphics Processor Unit (GPU) Instruction Set Architectures
http://www.hkea.cn/news/14384238/

相关文章:

  • 深圳市住房和城乡建设局网站首页请别人做网站需要注意什么
  • 丽江网站建设c3sales软件开发一般多少钱
  • 中太建设集团官方网站设计需要的软件
  • 昆明网站推广自学网站开发需要多久
  • 给公司做网站和公众号需要多少钱网站托管西安
  • 临沂网站开发怎么做招聘网站的调研
  • 如何借助织梦制作一个简单的网站在线做app的网站
  • 网站 制作公司教育培训网站案例
  • 如何设计旅游网站的域名著名的外贸网站
  • 小本本教你做网站服装网页设计图
  • 做动态图网站有哪些保定企业制作网站
  • 济南seo整站优化价格个人网站可以做充值
  • 国外网站 网站 推荐网站的运营费用吗
  • wordpress 网站 seo怎么建立信息网站平台
  • 建设工程法律网站ppt模板网免费下载
  • 那个网站适合学生做兼职优秀网页界面设计
  • 聊城建网站哪家好电子商务网站建设与管理课件
  • 郑州网站建设制作云浮疫控动态
  • 昆明自助建站软件wordpress免备案空间
  • 对网站设计的建议如何查看网站seo
  • 中铁建设集团有限公司基础设施事业部泰州seo公司
  • 深圳市城乡建设部网站首页做个产品网站要多少钱
  • 运营网站挣钱方法网页设计与制作实训报告心得体会2000字
  • 成都网站seo服务南通网站优建设
  • 怎么修改网站首页logojimdo和wordpress
  • wordpress创建分站点米趋外贸网站建设
  • 无锡建设信息中心网站长沙建设信息网站
  • 电子商务网站建设以什么为核心网站做友链有什么用
  • 网站怎么伪静态网络营销出来可以干什么工作
  • 微信网站开发需要什么知识手机如何搭建网站