AdaptiveCpp / AdaptiveCpp/AdaptiveCpp

Specifying required sub-group size for the kernel

Đang mở
#1,552 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
C++
Star
1.9k
Fork
228
Merge trung bình
4 ngày 1 giờ
Pull request đã merge (30 ngày)
25

Mô tả

**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)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.