Add SYCL Support to CalorimeterIslandCluster
GSoC '22 Project - Electromagnetic Cluster Finding on GPUs
SYCL support can be enabled with cmake options:
-DUSE_SYCL=ON
and specifying a compatible SYCL compiler using
-DCMAKE_CXX_COMPILER=<dpcpp>
As of now only Intel OneAPI DPCPP is supported.
eicweb/oneapi_jug_xl:nightly
provides a OneAPI environment for
running / developing SYCL-enabled code.
More information about the project and the proposal can be found in the student blog here
Merge request reports
Activity
requested review from @wdconinc
assigned to @AjaxLight
Performance Report on SYCL Code
The following performance studies were done on Compute Canada's HPC Systems on an AMD EPYC 32-core CPU with
-O2
flag enabled for both Control (Sequential) and Test (SYCL) code. Simple hotspots collection was performed for both types to determine wall-clock time of execution (includes overhead time). No GPUs were used due to limitationsFew points to note:
- Only
OpenCL
is currently supported and hence performance gains can only be seen on an AMD GPU.CUDA
has experimental support for OneAPI and is currently not supported. Since we don't have access to AMD GPUs for testing the following performance runs were carried out on the same AMD EPYC CPUs. Therefore, we see negligible / worse performance from SYCL Code. Take the following with a grain of salt. - Testing was carried out with a separate freestanding test build as VTune doesn't work with Gaudi. Test repo here
Report:
-
Screenshots of VTune Hotspots results perf_cmpr.pdf
- Only
added 2 commits
enabled an automatic merge when the pipeline for 5613e4a9 succeeds