The explosive growth of graph data sets has led to an increase in the computing power and storage resources required for graph computing.To handle large-scale graph processing,heterogeneous platforms have become neces...The explosive growth of graph data sets has led to an increase in the computing power and storage resources required for graph computing.To handle large-scale graph processing,heterogeneous platforms have become necessary to provide suf-ficient computing power and storage.The most popular scheme for this is the CPU-GPU architecture.However,the steep learning curve and complex concurrency control for heterogeneous platforms pose a challenge for developers.Additionally,GPUs from different vendors have varying software stacks,making cross-platform porting and verification challenging.Recently,Intel proposed a unified programming model to manage multiple heterogeneous devices at the same time,named oneAPI.It provides a more friendly programming model for simple C++developers and a convenient concurrency control scheme,allowing managing different vendors of devices at the same time.Hence there is an opportunity to utilize oneAPI to design a general cross-architecture framework for large-scale graph computing.In this paper,we propose a large-scale graph computing framework for multiple types of accelerators with Intel oneAPI and we name it as OneGraph.Our approach signifi-cantly reduces the data transfer between GPU and CPU and masks the latency by asynchronous transfer,which significantly improves performance.We conducted rigorous performance tests on the framework using four classical graph algorithms.The experiment results show that our approach achieves an average speedup of 3.3x over the state-of-the-art partitioning-based approaches.Moreover,thanks to the cross-architecture model of Intel oneAPI,the framework can be deployed on different GPU platforms without code modification.And our evaluation proves that OneGraph has only less than 1%performance loss compared to the dedicated programming model on GPUs in large-scale graph computing.展开更多
基金supported in part by the Key Research and Development Program of Guangdong,China(2021B0101310002)Natural Science Foundation of China(62172239)Intel Corporation.
摘要The explosive growth of graph data sets has led to an increase in the computing power and storage resources required for graph computing.To handle large-scale graph processing,heterogeneous platforms have become necessary to provide suf-ficient computing power and storage.The most popular scheme for this is the CPU-GPU architecture.However,the steep learning curve and complex concurrency control for heterogeneous platforms pose a challenge for developers.Additionally,GPUs from different vendors have varying software stacks,making cross-platform porting and verification challenging.Recently,Intel proposed a unified programming model to manage multiple heterogeneous devices at the same time,named oneAPI.It provides a more friendly programming model for simple C++developers and a convenient concurrency control scheme,allowing managing different vendors of devices at the same time.Hence there is an opportunity to utilize oneAPI to design a general cross-architecture framework for large-scale graph computing.In this paper,we propose a large-scale graph computing framework for multiple types of accelerators with Intel oneAPI and we name it as OneGraph.Our approach signifi-cantly reduces the data transfer between GPU and CPU and masks the latency by asynchronous transfer,which significantly improves performance.We conducted rigorous performance tests on the framework using four classical graph algorithms.The experiment results show that our approach achieves an average speedup of 3.3x over the state-of-the-art partitioning-based approaches.Moreover,thanks to the cross-architecture model of Intel oneAPI,the framework can be deployed on different GPU platforms without code modification.And our evaluation proves that OneGraph has only less than 1%performance loss compared to the dedicated programming model on GPUs in large-scale graph computing.