Current technology trends in high-performance computing (HPC) are pushing us towards accelerated systems. While GPU-based systems are the most common option, not all applications work well on such architectures. Solutions, like programmable hardware in the form of FPGAs (Field Programmable Gate Arrays), can be a powerful alternative. However, the complexity of developing specialized computing units in FPGAs, which are optimized for a specific task, often limits their broad utilization. In this paper, we follow a co-design methodology to identify the key computational routines and to replace them by using user-friendly libraries that wrap complex FPGA access mechanisms. This simplifies the usage of specialized compute units in FPGAs. To demonstrate our approach, we focus on performance improvements for an HPC/BigData application called \((MP)^N\) , which is built around widely used data analytics algorithm computing the matrix profile for multidimensional time series. In this application, we identify a sorting kernel as one of the key time consumers and accelerate it designing a parallel sorting library and using it to offload sorting batches to the FPGA. At the same time, we enable efficient utilization of CPU resources through overlap and pipelining. We achieve a 2-fold run time improvement for computing a 128-dimensional time series of 7 million records, with the performance gap increasing as the number of records grows, highlighting the potential of CPU-FPGA co-design in HPC.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Leveraging CPU-FPGA Co-design for Matrix Profile Computation

  • Fariz Huseynli,
  • Amir Raoofy,
  • Martin Schulz

摘要

Current technology trends in high-performance computing (HPC) are pushing us towards accelerated systems. While GPU-based systems are the most common option, not all applications work well on such architectures. Solutions, like programmable hardware in the form of FPGAs (Field Programmable Gate Arrays), can be a powerful alternative. However, the complexity of developing specialized computing units in FPGAs, which are optimized for a specific task, often limits their broad utilization. In this paper, we follow a co-design methodology to identify the key computational routines and to replace them by using user-friendly libraries that wrap complex FPGA access mechanisms. This simplifies the usage of specialized compute units in FPGAs. To demonstrate our approach, we focus on performance improvements for an HPC/BigData application called \((MP)^N\) , which is built around widely used data analytics algorithm computing the matrix profile for multidimensional time series. In this application, we identify a sorting kernel as one of the key time consumers and accelerate it designing a parallel sorting library and using it to offload sorting batches to the FPGA. At the same time, we enable efficient utilization of CPU resources through overlap and pipelining. We achieve a 2-fold run time improvement for computing a 128-dimensional time series of 7 million records, with the performance gap increasing as the number of records grows, highlighting the potential of CPU-FPGA co-design in HPC.