Affiliation:
1. Korea University, Seoul, Korea
2. Purdue University, West Lafayette, IN
3. Carnegie Mellon University, Pittsburgh, PA
Abstract
Recent proposals for multithreaded architectures employ speculative execution to allow threads with unknown dependences to execute speculatively in parallel. The architectures use hardware speculative storage to buffer speculative data, track data dependences and correct incorrect executions through roll-backs. Because
all
memory references access the speculative storage, current proposals implement speculative storage using small memory structures to achieve fast access. The limited capacity of the speculative storage causes considerable performance loss due to
speculative storage overflow
whenever a thread's speculative state exceeds the speculative storage capacity. Larger threads exacerbate the overflow problem but are preferable to smaller threads, as larger threads uncover more parallelism.In this article, we discover a new program property called
memory reference idempotency
. Idempotent references are guaranteed to be eventually corrected, though the references may be temporarily incorrect in the process of speculation. Therefore, idempotent references, even from nonparallelizable program sections, need not be tracked in the speculative storage, and instead can directly access nonspeculative storage (i.e., conventional memory hierarchy). Thus, we reduce the demand for speculative storage space in large threads. We define a formal framework for reference idempotency and present a novel compiler-assisted speculative execution model. We prove the necessary and sufficient conditions for reference idempotency using our model. We present a compiler algorithm to label idempotent memory references for the hardware. Experimental results show that for our benchmarks, over 60% of the references in nonparallelizable program sections are idempotent.
Publisher
Association for Computing Machinery (ACM)
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Lock-free locks revisited;Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming;2022-03-28
2. Clank;ACM SIGARCH Computer Architecture News;2017-09-14
3. Clank;Proceedings of the 44th Annual International Symposium on Computer Architecture;2017-06-24
4. Coherence-Free Multiview;Proceedings of the 2016 International Conference on Supercomputing;2016-06
5. JavaScript Parallelizing Compiler for Exploiting Parallelism from Data-Parallel HTML5 Applications;ACM Transactions on Architecture and Code Optimization;2016-01-07