TY - GEN
T1 - Automatically avoiding memory access conflicts on SX-Aurora TSUBASA
AU - Ebata, Naoki
AU - Egawa, Ryusuke
AU - Isobe, Yoko
AU - Takaki, Ryoji
AU - Takizawa, Hiroyuki
N1 - Funding Information:
ACKNOWLEDGMENT This work is partially supported by MEXT Next Generation High-Performance Computing Infrastructures and Applications R&D Programʠ R&D of A Quantum-Annealing-Assisted Next Generation HPC Infrastructure and its Applications ʡ and Grant-in-Aid for Scientific Research(B) #16H02822 and #17H01706.
Publisher Copyright:
© 2020 IEEE.
PY - 2020/5
Y1 - 2020/5
N2 - This paper presents a method for automatically avoiding performance degradation due to memory access conflicts on Vector Engines (VEs) of NEC SX-Aurora TSUBASA. Although VEs have the world's top-class theoretical memory bandwidth, the sustained memory bandwidth is significantly decreased if frequent memory access conflicts occur. In order to fully utilize the potential memory bandwidth of VEs, programmers need to optimize codes manually to avoid the conflicts. However, optimizing all applications executed on VEs is a very time-consuming and cumbersome task for programmers. Therefore, we propose a method to automatically avoid memory access conflicts. First, we introduce a metric that can predict memory memory access conflicts based on memory addresses. Then, based on the metric, we implement an array-like C++ class that automatically avoids memory access conflicts. We evaluate the performance gain by our approach using a simple benchmark and kernel codes of a computational fluid dynamics application. The evaluation results demonstrate that the proposed method can successfully reduce the negative effects of memory access conflicts on performance.
AB - This paper presents a method for automatically avoiding performance degradation due to memory access conflicts on Vector Engines (VEs) of NEC SX-Aurora TSUBASA. Although VEs have the world's top-class theoretical memory bandwidth, the sustained memory bandwidth is significantly decreased if frequent memory access conflicts occur. In order to fully utilize the potential memory bandwidth of VEs, programmers need to optimize codes manually to avoid the conflicts. However, optimizing all applications executed on VEs is a very time-consuming and cumbersome task for programmers. Therefore, we propose a method to automatically avoid memory access conflicts. First, we introduce a metric that can predict memory memory access conflicts based on memory addresses. Then, based on the metric, we implement an array-like C++ class that automatically avoids memory access conflicts. We evaluate the performance gain by our approach using a simple benchmark and kernel codes of a computational fluid dynamics application. The evaluation results demonstrate that the proposed method can successfully reduce the negative effects of memory access conflicts on performance.
KW - Data Arrangement
KW - Memory Access Conflict
KW - NEC Vector Engine
UR - http://www.scopus.com/inward/record.url?scp=85091574219&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85091574219&partnerID=8YFLogxK
U2 - 10.1109/IPDPSW50202.2020.00139
DO - 10.1109/IPDPSW50202.2020.00139
M3 - Conference contribution
AN - SCOPUS:85091574219
T3 - Proceedings - 2020 IEEE 34th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2020
SP - 822
EP - 829
BT - Proceedings - 2020 IEEE 34th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2020
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 34th IEEE International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2020
Y2 - 18 May 2020 through 22 May 2020
ER -