登录 | 注册 | 充值 | 退出 | 公司首页 | 繁体中文 | 满意度调查
综合馆
一种面向科学计算的数据流优化方法
  • 摘要

    摘 要:传统数据流结构通过多上下文来隐藏指令等待源操作数的延迟,然而这种隐藏方式只能部分提高数据流处理器执行单元的利用率.在面向例如Stencil、FFT和矩阵乘法等典型科学应用时,传统数据流结构的执行单元利用率仍然较低.科学计算中的核心程序一般是对不同数据进行相同的操作,而且这些操作可以并行执行,数据之间没有直接依赖关系.传统数据流结构是面向通用计算的,通常采用循环来实现对不同数据的相同操作.在这些循环中,迭代是按照顺序依次执行的,这导致了传统数据流结构没有利用科学计算的并行性来提高性能.所以传统数据流结构在处理这些规则的科学应用时没有协调好数据流计算模式和科学计算特征,而数据流计算是非常适合科学计算这种类型的规则计算.基于科学计算的这些特征,该文提出了一种面向科学计算的数据流结构优化方法:循环流水优化方法.循环流水优化方法利用科学计算的分块和并行处理特征,对传统数据流结构中的上下文控制逻辑进行了改进,将科学计算中的循环采用硬件自迭代的方式实现,并将上下文切换逻辑进行了流水化,使数据流结构中的上下文以流水线方式进入执行单元阵列,从而提高计算单元的利用率.面对这种循环流水优化后的数据流结构,传统数据流结构上的指令映射算法不再适用.通过分析循环流水优化后的结构特征,该文进一步提出了一种改进的指令映射算法:LBC(Load Balance Centric)指令映射算法.LBC算法按照深度优先顺序依次映射数据流图中的所有指令,对每条指令分别计算执行单元阵列中所有位置的代价,取最小代价的位置作为最佳映射位置.LBC算法以执行单元负载均衡为核心,同时将定点指令和浮点指令分开处理,保证执行单元上的定点部件和浮点部件的负载均衡.每当映射一条指令时,LBC算法采用相邻节点传输延迟与已经映射的该类型指令数量的乘积作为负载代价,来实现计算部件的负载均衡.另外,LBC算法将网络拥堵也作为指令映射的影响因素.LBC算法将节点与所有父节点的距离之和作为传输代价,使指令间传输消息的路径最短,从而减小片上网络消息传递的跳数.实验结果表明,在处理典型科学应用时,相比于传统数据流结构,循环流水的优化方法将数据流结构的性能平均提高了4.6%.相比于传统指令映射算法SPDI和SPS,在循环流水优化后的数据流结构上,LBC指令映射算法将性能分别平均提升了182.6%和158.1%.

  • 作者

    申小伟  叶笑春  王达  张浩  王飞  谭旭  张志敏  范东睿  唐志敏  孙凝晖  SHEN Xiao-Wei  YE Xiao-Chun  WANG Da  ZHANG Hao  WANG Fei  TAN Xu  ZHANG Zhi-Min  FAN Dong-Rui  TANG Zhi-Min  SUN Ning-Hui 

  • 作者单位

    中国科学院计算技术研究所计算机体系结构国家重点实验室 北京100190;中国科学院大学计算机与控制学院 北京 100049/中国科学院计算技术研究所计算机体系结构国家重点实验室 北京100190/中国科学院电子学研究所 北京100090

  • 刊期

    2017年9期 ISTIC EI PKU

  • 关键词

    指令映射  数据流  循环流水  科学计算处理器  高性能计算  instruction mapping  dataflow  loop-in-pipeline  scientific processing unit  high-performance computing 

相似文献 查看更多>>
18.208.159.25