Makoto Morishita, S. Ohshima, T. Katagiri, Toru Nagai
{"title":"基于OpenACC的GKV基准并行化","authors":"Makoto Morishita, S. Ohshima, T. Katagiri, Toru Nagai","doi":"10.1109/IPDPSW52791.2021.00109","DOIUrl":null,"url":null,"abstract":"The computing power of the Graphics Processing Unit (GPU) has received great attention in recent years, as 140 supercomputers with NVIDIA GPUs were ranked in the TOP500 for November 2020 [1]. However, CUDA, which is widely used in GPU programming, needs to be written at a low level and often requires the specialized knowledge of the GPU memory hierarchy and execution models. In this study, we used OpenACC [2], which semi-automatically generates kernel code by inserting directives into a program to speed up the application. The target application was benchmark program based on the plasma turbulence analysis code, gyrokinetic Vlasov code (GKV). With our implementation of OpenACC, kernel2, kernel3, and kernel4 of the benchmark were 31.43, 7.08, and 10.74 times faster, respectively, compared to CPU sequential execution. Thus, we succeeded in increasing the applications’ speed. In the future, we will port the rest of the code to the GPU environment to run the entire GKV on GPUs.","PeriodicalId":170832,"journal":{"name":"2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Parallelization of GKV benchmark using OpenACC\",\"authors\":\"Makoto Morishita, S. Ohshima, T. Katagiri, Toru Nagai\",\"doi\":\"10.1109/IPDPSW52791.2021.00109\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The computing power of the Graphics Processing Unit (GPU) has received great attention in recent years, as 140 supercomputers with NVIDIA GPUs were ranked in the TOP500 for November 2020 [1]. However, CUDA, which is widely used in GPU programming, needs to be written at a low level and often requires the specialized knowledge of the GPU memory hierarchy and execution models. In this study, we used OpenACC [2], which semi-automatically generates kernel code by inserting directives into a program to speed up the application. The target application was benchmark program based on the plasma turbulence analysis code, gyrokinetic Vlasov code (GKV). With our implementation of OpenACC, kernel2, kernel3, and kernel4 of the benchmark were 31.43, 7.08, and 10.74 times faster, respectively, compared to CPU sequential execution. Thus, we succeeded in increasing the applications’ speed. In the future, we will port the rest of the code to the GPU environment to run the entire GKV on GPUs.\",\"PeriodicalId\":170832,\"journal\":{\"name\":\"2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)\",\"volume\":\"20 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-06-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IPDPSW52791.2021.00109\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IPDPSW52791.2021.00109","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The computing power of the Graphics Processing Unit (GPU) has received great attention in recent years, as 140 supercomputers with NVIDIA GPUs were ranked in the TOP500 for November 2020 [1]. However, CUDA, which is widely used in GPU programming, needs to be written at a low level and often requires the specialized knowledge of the GPU memory hierarchy and execution models. In this study, we used OpenACC [2], which semi-automatically generates kernel code by inserting directives into a program to speed up the application. The target application was benchmark program based on the plasma turbulence analysis code, gyrokinetic Vlasov code (GKV). With our implementation of OpenACC, kernel2, kernel3, and kernel4 of the benchmark were 31.43, 7.08, and 10.74 times faster, respectively, compared to CPU sequential execution. Thus, we succeeded in increasing the applications’ speed. In the future, we will port the rest of the code to the GPU environment to run the entire GKV on GPUs.