TY - GEN
T1 - Polymorphic data layout for SX-aurora tsubasa vector engines
AU - Ebata, Naoki
AU - Isobe, Yoko
AU - Egawa, Ryusuke
AU - Takizawa, Hiroyuki
N1 - Funding Information:
This work was supported by 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,” Grant-in-Aid for Scientific Research(A) #20H00593
Publisher Copyright:
© 2020 IEEE
PY - 2020/11
Y1 - 2020/11
N2 - This paper presents an extension of Kokkos for modern vector processors, such as Vector Engines of SX-Aurora TSUBASA (VEs). Kokkos is a C++ library that provides polymorphic memory access patterns, and widely used for keeping high performance portability of applications. Although Kokkos does not officially support VEs as of July 2020, VEs can execute standard C++ programs, and the original Kokkos can indeed be compiled for VEs. However, the memory access pattern provided by Kokkos for standard processors is not necessarily suited for VEs. For example, it is known that memory access conflicts could drastically degrade the sustained memory bandwidth on VEs, even though, for memory access conflicts, standard processors assumed in Kokkos, i.e., x86 processors, are less performance-sensitive than VEs. Therefore, we propose an extended Kokkos implementation for VEs, which can provide memory access patterns suited for VEs. Specifically, we mainly focus on avoiding memory access conflicts on VEs. This paper introduces a mechanism to automatically avoid memory access conflicts, and explains its implementation. We evaluate our proposal using some benchmark codes, and the results demonstrate that our proposal can successfully exploit the high memory bandwidth of VEs.
AB - This paper presents an extension of Kokkos for modern vector processors, such as Vector Engines of SX-Aurora TSUBASA (VEs). Kokkos is a C++ library that provides polymorphic memory access patterns, and widely used for keeping high performance portability of applications. Although Kokkos does not officially support VEs as of July 2020, VEs can execute standard C++ programs, and the original Kokkos can indeed be compiled for VEs. However, the memory access pattern provided by Kokkos for standard processors is not necessarily suited for VEs. For example, it is known that memory access conflicts could drastically degrade the sustained memory bandwidth on VEs, even though, for memory access conflicts, standard processors assumed in Kokkos, i.e., x86 processors, are less performance-sensitive than VEs. Therefore, we propose an extended Kokkos implementation for VEs, which can provide memory access patterns suited for VEs. Specifically, we mainly focus on avoiding memory access conflicts on VEs. This paper introduces a mechanism to automatically avoid memory access conflicts, and explains its implementation. We evaluate our proposal using some benchmark codes, and the results demonstrate that our proposal can successfully exploit the high memory bandwidth of VEs.
KW - Kokkos
KW - Memory Access Conflict
KW - Polymorphic Data Layout
KW - SX-Aurora TSUBASA Vector Engine
UR - http://www.scopus.com/inward/record.url?scp=85104644739&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85104644739&partnerID=8YFLogxK
U2 - 10.1109/CANDAR51075.2020.00020
DO - 10.1109/CANDAR51075.2020.00020
M3 - Conference contribution
AN - SCOPUS:85104644739
T3 - Proceedings - 2020 8th International Symposium on Computing and Networking, CANDAR 2020
SP - 101
EP - 107
BT - Proceedings - 2020 8th International Symposium on Computing and Networking, CANDAR 2020
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 8th International Symposium on Computing and Networking, CANDAR 2020
Y2 - 24 November 2020 through 27 November 2020
ER -