TY - GEN
T1 - Splitting functions in code management on scratchpad memories
AU - Kim, Youngbin
AU - Cai, Jian
AU - Kim, Yooseong
AU - Lee, Kyoungwoo
AU - Shrivastava, Aviral
N1 - Funding Information:
This work was partially supported by Institute for Information & communications Technology Promotion (IITP) grant funded by the Korea government (MSIP) (No. B0101-16-0644, Research Project on High Performance and Scalable Manycore Operating System), and by funding from National Science Foundation grants CCF 1055094 (CAREER), and CNS 1525855.
Publisher Copyright:
© 2016 ACM.
PY - 2016/11/7
Y1 - 2016/11/7
N2 - As the number of cores increases, cache-based memory hierarchy is becoming a major problem in terms of the scalability and energy consumption. Software-managed scratchpad memories (SPM) is a scalable alternative to caches, but the benefit comes at the cost of explicit management of data. For instance, an instruction SPM needs a code management techniques to load code blocks to the SPM. This paper presents a technique to split functions into smaller functions, to break away with the fundamental limitations of function-level code management. Our function-splitting technique is able to generate more efficient mappings by modifying the characteristics of functions to be more suitable for function-level code management. We propose two optimization policies to improve performance and reduce size respectively. The performance optimization policy improves performance by 16% on average, which can only be achieved by using 20% more SPM space if without function-splitting The size optimization policy can reduce the minimum SPM size requirement by 31% while increasing only 7% execution time.
AB - As the number of cores increases, cache-based memory hierarchy is becoming a major problem in terms of the scalability and energy consumption. Software-managed scratchpad memories (SPM) is a scalable alternative to caches, but the benefit comes at the cost of explicit management of data. For instance, an instruction SPM needs a code management techniques to load code blocks to the SPM. This paper presents a technique to split functions into smaller functions, to break away with the fundamental limitations of function-level code management. Our function-splitting technique is able to generate more efficient mappings by modifying the characteristics of functions to be more suitable for function-level code management. We propose two optimization policies to improve performance and reduce size respectively. The performance optimization policy improves performance by 16% on average, which can only be achieved by using 20% more SPM space if without function-splitting The size optimization policy can reduce the minimum SPM size requirement by 31% while increasing only 7% execution time.
UR - http://www.scopus.com/inward/record.url?scp=85001055691&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85001055691&partnerID=8YFLogxK
U2 - 10.1145/2966986.2967075
DO - 10.1145/2966986.2967075
M3 - Conference contribution
AN - SCOPUS:85001055691
T3 - IEEE/ACM International Conference on Computer-Aided Design, Digest of Technical Papers, ICCAD
BT - 2016 IEEE/ACM International Conference on Computer-Aided Design, ICCAD 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 35th IEEE/ACM International Conference on Computer-Aided Design, ICCAD 2016
Y2 - 7 November 2016 through 10 November 2016
ER -