论文标题
评估SYCL在基于GPU的系统上生物序列对齐的机会
Assessing Opportunities of SYCL for Biological Sequence Alignment on GPU-based Systems
论文作者
论文摘要
生物信息学和计算生物学是两个领域,这些领域已经利用GPU已有二十多年了,是CUDA最常用的编程语言。但是,由于CUDA是一种NVIDIA专有语言,因此这意味着强大的可移植性限制了多种异质体系结构,例如AMD或Intel GPU。为了面对这个问题,Khronos集团最近提出了SYCL标准,该标准是一个开放的,无特许权的,跨平台的抽象层,使得可以使用标准的单源C ++代码编写异质系统的编程。在过去的几年中,该SYCL标准的几项实施已经出现,成为了Intel的Oneapi。本文介绍了使用英特尔的Oneapi生态系统在CUDA开发的生物序列对齐工具SW \#Suite的迁移过程。实验结果表明,在手工编码方面,SW \#完全通过小型程序员干预进行了迁移。此外,可以将迁移的代码移植在不同体系结构之间(考虑多个供应商GPU和CPU),在5种不同的NVIDIA GPU上没有明显的性能降解。此外,切换到另一个SYCL实现时的性能保持稳定。结果,SYCL及其实施可以为生物信息学界提供有吸引力的机会,尤其是考虑到基于CUDA的遗产代码的广泛存在。
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.