SimSYCL: A SYCL Implementation Targeting Development, Debugging, Simulation and Conformance
Department of Computer Science, University of Innsbruck, Innsbruck, Austria
12th International Workshop on OpenCL and SYCL (IWOCL’24), 2024
@inproceedings{thoman2024simsycl,
title={SimSYCL: A SYCL Implementation Targeting Development, Debugging, Simulation and Conformance},
author={Thoman, Peter and Knorr, Fabian and Crisci, Luigi},
booktitle={Proceedings of the 12th International Workshop on OpenCL and SYCL},
pages={1–12},
year={2024}
}
The open SYCL standard has established itself as a cross-vendor, cross-platform means to develop software which benefits from GPU and accelerator parallelism. Inherent difficulties in portability between and debuggability of programs for these targets remain. However, as we demonstrate, the SYCL specification lends itself to be implemented purely in software in a manner that is accessible to debuggers and which can be employed to simulate the characteristics of different hardware targets. We introduce SimSYCL, a novel library-only SYCL implementation with extensive simulation and verification capabilities. By executing all SYCL commands synchronously on the host CPU, it is able to diagnose various manifestations of undefined behavior within kernels, and grants developers the ability to step into kernels with an ordinary debugger to discover other logic errors. We demonstrate that the reduced complexity of this approach, combined with an implementation focus on fast compilation, considerably speeds up the edit-compile-debug cycle compared to other SYCL implementations while maintaining reasonable runtime performance. Furthermore, we show how SimSYCL’s simulation capabilities allow unit-testing user code for cross-platform portability, and that its comprehensive validation detects and reports several classes of user errors which remain undiagnosed by performance-focused implementations.
April 21, 2024 by hgpu