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是NVIDIA专有语言,它给各种异构架构(如AMD或Intel GPU)带来了严重的可移植性限制。为解决此问题,Khronos Group最近提出了SYCL标准,这是一种开放、免版税、跨平台的抽象层,使得异构系统的编程可以用标准单源C++代码编写。近年来,该SYCL标准涌现出多种实现,其中Intel的oneAPI是其中之一。本文介绍了将SW\#套件(一个用CUDA开发的生物序列比对工具)迁移到SYCL(使用Intel oneAPI生态系统)的过程。实验结果表明,SW\#在少量程序员手动编码干预下实现了完全迁移。此外,迁移后的代码可在不同架构(考虑多家厂商的GPU及CPU)之间移植,且在5种不同的NVIDIA GPU上未出现明显的性能下降。同时,当切换到另一个SYCL实现时,性能保持稳定。因此,SYCL及其实现可为生物信息学社区提供有吸引力的机会,特别是考虑到现有大量基于CUDA的遗留代码。