AdaptiveCpp / AdaptiveCpp/AdaptiveCpp

Specifying required sub-group size for the kernel

オープン
#1,552 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
C++
スター
1.9k
フォーク
228
平均マージ
4日 1時間
マージ済み PR(30日)
25

説明

**Describe the motivation for the feature request**

Some devices (mainly Intel GPUs, but also AMD RDNA) have user-selectable sub-group size. Since the kernel algorithms (e.g., shuffle-based reduction) or performance can be dependent on sub-group size, it can be desirable to be able to control it.

**Describe the solution you'd like**

AdaptiveCpp `ACPP_EXT_CG_PROPERTY_PREFER_GROUP_SIZE` extension to pass arguments to the kernel via `queue::submit`. Same can be done for sub-group size. This can be hard to do with SMCP, but appears to be feasible with SSCP (which is what is used for Intel GPUs anyway).

**If applicable, describe alternatives you've considered**

- Implement [`sycl_ext_oneapi_kernel_properties`](https://github.com/intel/llvm/blob/2321b3a0ef0af596dba4f1a7334028029096aa51/sycl/doc/extensions/experimental/sycl_ext_oneapi_kernel_properties.asciidoc#kernel-properties), which is similar to the proposed solution but passes extra properties to `handle::parallel_for` instead of `queue::submit`
- SYCL standard has `reqd_sub_group_size` attribute exactly for this (but AdaptiveCpp does not like attributes)

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。