{"id":28623,"date":"2023-09-24T16:27:44","date_gmt":"2023-09-24T13:27:44","guid":{"rendered":"https:\/\/hgpu.org\/?p=28623"},"modified":"2023-09-24T16:27:44","modified_gmt":"2023-09-24T13:27:44","slug":"evaluating-the-performance-portability-of-sycl-across-cpus-and-gpus-on-bandwidth-bound-applications","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=28623","title":{"rendered":"Evaluating the performance portability of SYCL across CPUs and GPUs on bandwidth-bound applications"},"content":{"rendered":"<p>In this paper, we evaluate the portability of the SYCL programming model on some of the latest CPUs and GPUs from a wide range of vendors, utilizing the two main compilers: DPC++ and hipSYCL\/OpenSYCL. Both compilers currently support GPUs from all three major vendors; we evaluate performance on the Intel(R) Data Center GPU Max 1100, the NVIDIA A100 GPU, and the AMD MI250X GPU. Support on CPUs currently is less established, with DPC++ only supporting x86 CPUs through OpenCL, however, OpenSYCL does have an OpenMP backend capable of targeting all modern CPUs; we benchmark the Intel Xeon Platinum 8360Y Processor (Ice Lake), the AMD EPYC 9V33X (Genoa-X), and the Ampere Altra platforms. We study a range of primarily bandwidth-bound applications implemented using the OPS and OP2 DSLs, evaluate different formulations in SYCL, and contrast their performance to &quot;native&quot; programming approaches where available (CUDA\/HIP\/OpenMP). On GPU architectures SCYL on average even slightly outperforms native approaches, while on CPUs it falls behind &#8211; highlighting a continued need for improving CPU performance. While SYCL does not solve all the challenges of performance portability (e.g. needing different algorithms on different hardware), it does provide a single programming model and ecosystem to target most current HPC architectures productively.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this paper, we evaluate the portability of the SYCL programming model on some of the latest CPUs and GPUs from a wide range of vendors, utilizing the two main compilers: DPC++ and hipSYCL\/OpenSYCL. Both compilers currently support GPUs from all three major vendors; we evaluate performance on the Intel(R) Data Center GPU Max 1100, [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,89,104,90,3],"tags":[2099,7,451,1600,1782,14,1795,2063,905,2121,20,2066,1793,1586,1845],"class_list":["post-28623","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-nvidia-cuda","category-fluid-dynamics","category-opencl","category-paper","tag-amd-radeon-instinct-mi250x","tag-ati","tag-benchmarking","tag-cfd","tag-computer-science","tag-cuda","tag-fluid-dynamics","tag-hip","tag-intel","tag-intel-ponte-vecchio-max-1100","tag-nvidia","tag-nvidia-a100","tag-opencl","tag-performance-portability","tag-sycl"],"views":1447,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/28623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28623"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/28623\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}