The Black-Scholes option pricing problem is one of the widely used financial benchmarks. We explore the possibility of developing a high-performance portable code using the SYCL (Data Parallel C++) programming language. We start from a C++ code parallelized with OpenMP and show optimization techniques that are beneficial on modern Intel Xeon CPUs. Then, we port the code to SYCL and consider important optimization aspects on CPUs and GPUs (device-friendly memory access patterns, relevant data management, employing vector data types). We show that the developed SYCL code is only 10% inferior to the optimized C++ code when running on CPUs while achieving reasonable performance on Intel GPUs. We hope that our experience of developing and optimizing the code on SYCL can be useful to other researchers who plan to port their high-performance C++ codes to SYCL to get all the benefits of single-source programming.
翻译:黑球选项定价问题是广泛使用的金融基准之一。 我们探索使用 SYCL (数据平行 C++) 编程语言开发高性能便携式代码的可能性。 我们从与 OpenMP 平行的 C++ 代码开始, 展示对现代 Intel Xeon CPU 有益的优化技术。 然后, 我们将代码移植到 SYCL, 并考虑CPU 和 GPU 的重要优化方面( 方便存储存取模式、 相关数据管理、 使用矢量数据类型 ) 。 我们显示, 开发的 SYCL 代码在运行 CPU 时, 仅比优化的 C++ 代码低10%, 同时在 Intel GPUs 上取得合理的绩效。 我们希望, 我们开发和优化 SYCL 代码的经验对于计划将其高性能 C++代码移植到 SYCL 以获取单一源编程的所有好处的其他研究人员来说是有用的。