Bioinformatics and Computational Biology are two fields that have been exploiting GPUs for more than two decades, being CUDA the most used programming language for them. However, as CUDA is an NVIDIA proprietary language, it implies a strong portability restriction to a wide range of heterogeneous architectures, like AMD or Intel GPUs. To face this issue, the Khronos Group has recently proposed the SYCL standard, which is an open, royalty-free, cross-platform abstraction layer, that enables the programming of a heterogeneous system to be written using standard, single-source C++ code. Over the past few years, several implementations of this SYCL standard have emerged, being oneAPI the one from Intel. This paper presents the migration process of the SW\# suite, a biological sequence alignment tool developed in CUDA, to SYCL using Intel's oneAPI ecosystem. The experimental results show that SW\# was completely migrated with a small programmer intervention in terms of hand-coding. In addition, it was possible to port the migrated code between different architectures (considering multiple vendor GPUs and also CPUs), with no noticeable performance degradation on 5 different NVIDIA GPUs. Moreover, performance remained stable when switching to another SYCL implementation. As a consequence, SYCL and its implementations can offer attractive opportunities for the Bioinformatics community, especially considering the vast existence of CUDA-based legacy codes.
翻译:摘要:生物信息学和计算生物学是利用GPU超过二十年的两个领域,其中CUDA是最常用的编程语言。然而,由于CUDA是英伟达的专有语言,这对其在异构架构(如AMD或英特尔GPU)上的可移植性造成了严重限制。为应对这一问题,科纳斯组织近期提出了SYCL标准——一种开放、免版税、跨平台的抽象层,使得异构系统的编程能够使用标准单源C++代码编写。过去几年中,该SYCL标准催生了多种实现方案,其中英特尔的oneAPI是代表之一。本文介绍了将CUDA开发的生物序列比对工具SW\#套件迁移至采用英特尔oneAPI生态系统的SYCL的过程。实验结果表明,SW\#在仅需少量人工编码干预的情况下实现了完全迁移。此外,迁移后的代码可跨不同架构(涉及多供应商GPU及CPU)移植,且在5款不同的英伟达GPU上未出现显著性能下降。当切换至其他SYCL实现时,性能仍保持稳定。因此,SYCL及其实现可为生物信息学社区提供富有吸引力的机遇,尤其考虑到当前存在大量基于CUDA的遗留代码。