AdaptiveCpp / AdaptiveCpp/AdaptiveCpp
Specifying required sub-group size for the kernel
- 主要言語
- 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 はまだ評価されていません。