首页> 外文学位 >Compiler techniques for thread-level speculation.
【24h】

Compiler techniques for thread-level speculation.

机译:用于线程级推测的编译器技术。

获取原文
获取原文并翻译 | 示例

摘要

Thread-Level Speculation (TLS) allows potentially dependent threads to execute in parallel, by postponing the detection and verification of inter-thread data dependences until runtime. Although TLS greatly simplifies automatic parallelization, only moderate performance improvements have been achieved for general-purpose applications. Thus adequate compiler techniques must be developed to fully utilize the underlying TLS support. In this thesis, we address the key compiler issues involved in the speculative parallelization and propose several optimization techniques to improve the performance of general-purpose applications under TLS.; One important task of a TLS compiler is to identify speculative threads with good performance potentials. We propose a loop selection algorithm that determines which loops to parallelize to maximize the program performance. For applications with limited loop-level parallelism, a partitioning algorithm is proposed to extract threads from sequential codes.; To further enhance the performance of parallel threads, we propose three compiler optimizations: instruction scheduling, reduction transformation and iteration merging. Instruction scheduling improves the efficiency of synchronizing frequently occurring memory dependences; reduction transformation reduces the impact of a class of reduction variables whose intermediate results are used by non-reduction operations; iteration merging improves the load balancing by dynamically combining loop iterations to achieve more balanced workloads.; All the proposed techniques are implemented in a TLS compiler framework built on the Intel's Open Research Compiler (ORC). We achieve an average program speedup of 1.38 for the SPEC2000 benchmarks. Our experimental results show that, in the context of TLS, adequate compiler support is crucial in delivering the desirable performance for general-purpose applications, and our proposed techniques are effective in exploiting speculative parallelism.
机译:线程级推测(TLS)通过将对线程间数据相关性的检测和验证推迟到运行时来允许潜在依赖的线程并行执行。尽管TLS大大简化了自动并行化,但是对于通用应用程序,仅实现了适度的性能改进。因此,必须开发适当的编译器技术以充分利用基础TLS支持。在本文中,我们解决了推测并行化中涉及的关键编译器问题,并提出了几种优化技术来提高TLS下通用应用程序的性能。 TLS编译器的一项重要任务是识别具有良好性能潜力的推测性线程。我们提出了一种循环选择算法,该算法确定要并行化的循环以最大化程序性能。对于循环级并行性有限的应用,提出了一种分区算法,用于从顺序代码中提取线程。为了进一步提高并行线程的性能,我们提出了三种编译器优化:指令调度,约简变换和迭代合并。指令调度提高了同步频繁发生的内存依赖关系的效率;归约变换可减少一类归约变量的影响,其中间结果被非归约操作使用;迭代合并通过动态组合循环迭代来实现更平衡的工作负载,从而改善了负载平衡。所有提议的技术都在基于英特尔开放研究编译器(ORC)的TLS编译器框架中实现。对于SPEC2000基准,我们实现了平均程序加速1.38。我们的实验结果表明,在TLS的上下文中,足够的编译器支持对于为通用应用程序提供理想的性能至关重要,并且我们提出的技术可有效地利用推测性并行性。

著录项

  • 作者

    Wang, Shengyue.;

  • 作者单位

    University of Minnesota.;

  • 授予单位 University of Minnesota.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2007
  • 页码 120 p.
  • 总页数 120
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号