Compiler and hardware support for reducing the synchronization of speculative threads

被引:13
|
作者
Zhai, Antonia [1 ]
Steffan, J. Gregory [2 ]
Colohan, Christopher B. [3 ]
Mowry, Todd C. [4 ]
机构
[1] Univ Minnesota, Dept Comp Sci & Engn, Minneapolis, MN 55455 USA
[2] Univ Toronto, Toronto, ON, Canada
[3] Google, Ann Arbor, MI 48104 USA
[4] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
关键词
design; experimentation; performance; thread-level speculation; chip-multiprocessing; automatic parallelization; instruction scheduling;
D O I
10.1145/1369396.1369399
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Thread-level speculation (TLS) allows us to automatically parallelize general-purpose programs by supporting parallel execution of threads that might not actually be independent. In this article, we focus on one important limitation of program performance under TLS, which stalls as a result of synchronizing and forwarding scalar values between speculative threads that would otherwise cause frequent data dependences and, hence, failed speculation. Using SPECint benchmarks that have been automatically transformed by our compiler to exploit TLS, we present, evaluate in detail, and compare both compiler and hardware techniques for improving the communication of scalar values. We find that through our dataflow algorithms for three increasingly aggressive instruction scheduling techniques, the compiler can drastically reduce the critical forwarding path introduced by the synchronization and forwarding of scalar values. We also show that hardware techniques for reducing synchronization can be complementary to compiler scheduling, but that the additional performance benefits are minimal and are generally not worth the cost.
引用
收藏
页码:1 / 33
页数:33
相关论文
共 50 条
  • [21] A compiler cost model for speculative parallelization
    Dou, Jialin
    Cintra, Marcelo
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2007, 4 (02) : 12
  • [22] Bulk disambiguation of speculative threads in multiprocessors
    Ceze, Luis
    Tuck, James
    Cascaval, Calin
    Torrellas, Josep
    33RD INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHTIECTURE, PROCEEDINGS, 2006, : 227 - 238
  • [23] TEST: A tracer for extracting speculative threads
    Chen, M
    Olukotun, K
    CGO 2003: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2003, : 301 - 312
  • [24] Enhancing software reliability with speculative threads
    Oplinger, J
    Lam, MS
    ACM SIGPLAN NOTICES, 2002, 37 (10) : 184 - 196
  • [25] Verifying a Compiler for Java']Java Threads
    Lochbihler, Andreas
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2010, 6012 : 427 - 447
  • [26] Hardware support for dynamic activation of compiler-directed computation reuse
    Connors, DA
    Hunter, HC
    Cheng, BC
    Hwu, WMW
    ACM SIGPLAN NOTICES, 2000, 35 (11) : 222 - 233
  • [27] A compiler framework for speculative analysis and optimizations
    Lin, J
    Chen, T
    Hsu, WC
    Ju, RDC
    Ngai, TF
    Yew, PC
    Chan, S
    ACM SIGPLAN NOTICES, 2003, 38 (05) : 289 - 299
  • [28] Compiler support for reducing the complexity of register file in media processors
    Ju, XM
    Shi, C
    Yao, QD
    EMBEDDED PROCESSORS FOR MULTIMEDIA AND COMMUNICATIONS, 2004, 5309 : 143 - 152
  • [29] ANATOMY OF A HARDWARE COMPILER
    KEUTZER, K
    WOLF, W
    SIGPLAN NOTICES, 1988, 23 (07): : 95 - 104
  • [30] Automatically reducing repetitive synchronization with a just-in-time compiler for Java']Java
    Stoodley, M
    Sundaresan, V
    CGO 2005: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2005, : 27 - 36