This installment of a "SYCL Sparkler" explores in depth a way to implement a reasonably efficient implementation for Homomorphic Encryption using modern C++ with SYCL. As a result of their work, the authors learned some valuable optimization techniques and insights that the they have taken time to share in this very interesting and detailed piece.
A key value of using C++ with SYCL, is the ability to be portable while supporting the ability to optimize at a lower level when it is deemed worth the effort. This work helps illustrate how the authors isolated that optimization work, and their thought process on how to pick what to optimize. The code for this implementation is available open source online. None of the performance numbers shown are intended to provide guidance on hardware selection. The authors offer their results and observations to illustrate the magnitude of changes that may correspond to the optimizations being discussed. Readers will find the information valuable to motivate their own optimization work on their applications using some of the techniques highlighted by these authors.
Key Insights shared include: pros/cons of a hand-tuned vISA, memory allocation overheads, multi-tile scaling, event-based profiling, algorithm tuning, measuring of device throughput, developing with 'dualities' to increase portability and performance portability.
Just click on START button on Telegram Bot