CARL: Compiler Assigned Reference Leasing
CARL: Compiler Assigned Reference Leasing
复制标题
DOI:
10.1145/3498730
复制
发表时间:
2022-03
期刊:
影响因子:
--
通讯作者:
C. Ding;Dong Chen;Fangzhou Liu;Ben Reber;Wesley Smith
中科院分区:
文献类型:
--
作者:
C. Ding;Dong Chen;Fangzhou Liu;Ben Reber;Wesley Smith
Data movement is a common performance bottleneck, and its chief remedy is caching. Traditional cache management is transparent to the workload: data that should be kept in cache are determined by the recency information only, while the program information, i.e., future data reuses, is not communicated to the cache. This has changed in a new cache design named Lease Cache. The program control is passed to the lease cache by a compiler technique called Compiler Assigned Reference Lease (CARL). This technique collects the reuse interval distribution for each reference and uses it to compute and assign the lease value to each reference. In this article, we prove that CARL is optimal under certain statistical assumptions. Based on this optimality, we prove miss curve convexity, which is useful for optimizing shared cache, and sub-partitioning monotonicity, which simplifies lease compilation. We evaluate the potential using scientific kernels from PolyBench and show that compiler insertions of up to 34 leases in program code achieve similar or better cache utilization (in variable size cache) than the optimal fixed-size caching policy, which has been unattainable with automatic caching but now within the potential of cache programming for all tested programs and most cache sizes.