バイオインフォマティクスのタスクにおけるCUDAとSYCLの比較
プロテインデータベース検索におけるCUDAとSYCLの分析。
― 1 分で読む
近年、科学研究でいろんなタイプのコンピュータハードウェアを使うことが増えてきたんだ。これを「ヘテロジニアスコンピューティング」って呼ぶんだけど、研究者たちはNVIDIAやIntel、AMDのGPUみたいなさまざまなプロセッサを活用できるんだ。でも、研究者が直面する大きな課題は、各ハードウェアに合わせてソフトウェアを書き直さずに済むように、どうやってうまく動くソフトを作るかってこと。このアーティクルでは、特定のバイオインフォマティクスタスク、つまりタンパク質データベース検索に関して、CUDAとSYCLっていう2つのプログラミング言語を比較してみるよ。
CUDAとSYCLの理解
CUDAはNVIDIAが開発したプログラミング言語で、主に自社のGPUをプログラムするためのもの。これがめっちゃ人気で、NVIDIAのハードウェアでサクサク動くコードを書けるんだ。でも、CUDAはNVIDIAのデバイス専用だから、AMDやIntelのGPUでは使えないんだよね。
一方、SYCLはクローン開発グループが作った新しいプログラミングスタンダード。CUDAとは違って、SYCLはいろんなタイプのプロセッサで動くように作られてるの。開発者は一度SYCLコードを書けば、あまり手を加えなくてもいろんなハードウェアで動かせる可能性がある。これは、プログラマーがいろんなシステムでコードを動かしたいときにもっとフレキシブルな選択肢になるんだ。
この研究が大事な理由
CUDAとSYCLの選択は、研究者が最新のコンピューティングパワーをどれだけ簡単に活用できるかに大きな影響を与えるんだ。タンパク質データベースの検索みたいなバイオインフォマティクスの多くのアプリケーションは、GPUの速さから恩恵を受けられるからね。特定のタスクに対してCUDAとSYCLを比較することで、研究者はさまざまなハードウェアでのパフォーマンスと使いやすさについての洞察を得られるんだ。
タンパク質データベース検索タスク
バイオインフォマティクスでは、研究者はしばしばタンパク質の配列を比較して類似点や違いを見つける必要があるんだ。このための一般的な方法の一つがスミス・ウォーターマンアルゴリズムなんだけど、これは多くの配列のアライメントを比較しなきゃいけないから、効果的だけど結構複雑なんだよね。
この研究の主な目的は、CUDAとSYCLがどれだけ違うタイプのGPUでこのアライメントタスクをうまくこなせるかを評価すること。研究者たちは、一方の言語がもう一方よりも優れているか、さまざまなハードウェアで同じくらいのパフォーマンスを得られるかを見たいんだ。
実験設定
CUDAとSYCLのパフォーマンスをテストするために、研究者たちは10種類の異なるGPUを使ったんだよ。NVIDIA、AMD、Intelのモデルを混ぜてね。どちらのプログラミング言語でも同じタンパク質データベース検索アプリケーションを実行して、タスクの実行速度に関するデータを集めたんだ。
シングルGPUパフォーマンス
結果として、NVIDIAのGPUでは、CUDAとSYCLは似たようにうまく動いてた。実際、多くのテストモデルで速度に大きな差はなかったよ。例えば、あるGPUモデルではSYCLがわずかに優れていたけど、別のモデルではCUDAの方が良かったりしたけど、全体的にはその違いは最小限だったんだ。
AMDとIntelのGPUでは、SYCLが効率よく動作することが分かった。これはCUDAがNVIDIA専用だからできないこと。これでSYCLのポータビリティの利点が強調されて、より幅広いハードウェアで良いパフォーマンスを得ることができたんだ。
マルチGPUパフォーマンス
シングルGPUテストに加えて、研究者たちは同時に複数のGPUを使ったテストも実施したんだ。このマルチGPU設定では、SYCLはCUDAに比べて特別な遅延を引き起こさなかった。ほとんどの構成で、SYCLはCUDAと同じかそれ以上のパフォーマンスを発揮したんだよ。
面白い点は、異なるGPUを使ってSWアプリケーションを利用する際に、効率がシングルGPUを使った時に比べて落ちることがあるってこと。これは、GPU間での負荷分散がうまくいってない場合に、一部のGPUが活用されないことが原因なんだ。
結果の影響
この研究の結果は、CUDAとSYCLの両方が特にNVIDIAハードウェアでタンパク質データベース検索に強力なパフォーマンスを提供できることを示してるけど、SYCLはポータビリティの面で際立っていて、さまざまなGPUブランドでうまく動作することが分かったんだ。これは、より多くの研究者がワークフローで非NVIDIAハードウェアを使おうとする中で特に重要だよ。
多様なプラットフォームで動かせるコードを書く能力って、コンピューティングの環境が進化する中でますます重要になってきてる。いろんなハードウェアを使う研究者が多い中で、SYCLのポータビリティは今後の選択肢として魅力的になるかもしれないね。
今後の課題
この研究の結果は期待できるけど、研究者たちはSYCLがまだ発展途上のプログラミングモデルだって認めてる。彼らはコードを最適化して、さまざまなハードウェアでテストすることでSYCLの実装をさらに改善するつもりなんだ。
また、同じようなクロスプラットフォーム互換性を目指す他のプログラミングモデルについても探求する予定。これは、研究者が利用可能なコンピュータリソースを効率的に活用するために必要なツールを確保するために重要なんだ。
結論
タンパク質データベース検索におけるCUDAとSYCLの比較は、バイオインフォマティクス分野におけるプログラミング言語の進化を示してる。両方の言語がNVIDIAのGPUで良いパフォーマンスを発揮するけど、SYCLの多様なハードウェアブランドに対する適応性は大きな利点を提供するんだ。研究者たちが計算の効率やパフォーマンスを求め続ける中で、SYCLは特にヘテロジニアスコンピューティング環境での多様なハードウェアオプションが普及する中で、重要な役割を果たすかもしれないね。
タイトル: Comparing Performance and Portability between CUDA and SYCL for Protein Database Search on NVIDIA, AMD, and Intel GPUs
概要: The heterogeneous computing paradigm has led to the need for portable and efficient programming solutions that can leverage the capabilities of various hardware devices, such as NVIDIA, Intel, and AMD GPUs. This study evaluates the portability and performance of the SYCL and CUDA languages for one fundamental bioinformatics application (Smith-Waterman protein database search) across different GPU architectures, considering single and multi-GPU configurations from different vendors. The experimental work showed that, while both CUDA and SYCL versions achieve similar performance on NVIDIA devices, the latter demonstrated remarkable code portability to other GPU architectures, such as AMD and Intel. Furthermore, the architectural efficiency rates achieved on these devices were superior in 3 of the 4 cases tested. This brief study highlights the potential of SYCL as a viable solution for achieving both performance and portability in the heterogeneous computing ecosystem.
著者: Manuel Costanzo, Enzo Rucci, Carlos García Sánchez, Marcelo Naiouf, Manuel Prieto-Matías
最終更新: 2023-11-10 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2309.09609
ソースPDF: https://arxiv.org/pdf/2309.09609
ライセンス: https://creativecommons.org/licenses/by-nc-sa/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://www.pcgamer.com/intel-is-already-matching-amd-for-gaming-graphics-market-share/
- https://intel.github.io/llvm-docs/GetStartedGuide.html
- https://codeplay.com/portal/blogs/2022/12/16/bringing-nvidia-and-amd-support-to-oneapi.html
- https://www.uniprot.org/downloads
- https://doi.org/10.1016/0022-2836
- https://github.com/kokkos/kokkos
- https://github.com/LLNL/RAJA
- https://docs.nvidia.com/cuda/cuda-c-programming-guide/#maximize-instruction-throughput
- https://www.alcf.anl.gov/sites/default/files/SYCLcon_2020_Homerding_Tramm.pdf