SYCL for CUDA: an Overview of Implementing PI for CUDA

SYCL for CUDA: an Overview of Implementing PI for CUDA

SYCL for CUDA: An Overview of Implementing PI for CUDA Alexander Johnston - Senior Software Engineer LLVM 2020 SYCL in a nutshell • SYCL is a Khronos open standard interface that enables parallel processor architectures • Standard C++ • Single Source • Requires a Runtime Library and Device Compiler • More at https://sycl.tech 2 © 2020 Codeplay Software Ltd. Summary • Driver Modifications • PI library plugin mechanism • PI CUDA backend • Performance 3 © 2020 Codeplay Software Ltd. Driver Modifications • Modified the Device Compilation stage to enable the driver to perform device compilation for NVPTX • This requires passing the generated NVPTX through NVIDIA SDK tools during the Device Compilation step 4 © 2020 Codeplay Software Ltd. PI Plugin Mechanism • PI library provides a plugin mechanism for backend libraries • Each backend must link up to a dispatch table of PI library functions • An instance of a backend is loaded at runtime when requested 5 © 2020 Codeplay Software Ltd. PI CUDA Backend • Implemented 95 PI library functions with native CUDA calls • Provided opaque containers to the PI library with CUDA specific information inside • Implemented all SYCL builtins in libclc as native CUDA calls 6 © 2020 Codeplay Software Ltd. Performance 7 © 2020 Codeplay Software Ltd. Further Resources • Get the repo at https://github.com/intel/llvm/ • Getting started guide for the CUDA backend at https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedG uide.md#build-dpc-toolchain-with-support-for-nvidia-cuda • Code examples at https://github.com/codeplaysoftware/SYCL- For-CUDA-Examples 8 © 2020 Codeplay Software Ltd. Thank you! [email protected] @codeplaysoft [email protected] codeplay.com.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us