Grigori Goronzy <g...@chown.ath.cx> writes: > On 2015-05-28 13:04, Grigori Goronzy wrote: >> Work-group size should always be aligned to subgroup size; this is a >> basic requirement, otherwise some work-items will be no-operation. >> >> It might make sense to refine the value according to a kernel's >> resource usage, but that's a possible optimization for the future. > > Ping? > > This is rather simple, but I'd like an Rb, if possible. That also goes > for the Gallium support patch. >
For this patch: Reviewed-by: Francisco Jerez <curroje...@riseup.net> Thanks. > Grigori > >> --- >> src/gallium/state_trackers/clover/api/kernel.cpp | 2 +- >> src/gallium/state_trackers/clover/core/device.cpp | 5 +++++ >> src/gallium/state_trackers/clover/core/device.hpp | 1 + >> 3 files changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/src/gallium/state_trackers/clover/api/kernel.cpp >> b/src/gallium/state_trackers/clover/api/kernel.cpp >> index 05cc392..857a152 100644 >> --- a/src/gallium/state_trackers/clover/api/kernel.cpp >> +++ b/src/gallium/state_trackers/clover/api/kernel.cpp >> @@ -169,7 +169,7 @@ clGetKernelWorkGroupInfo(cl_kernel d_kern, >> cl_device_id d_dev, >> break; >> >> case CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: >> - buf.as_scalar<size_t>() = 1; >> + buf.as_scalar<size_t>() = dev.subgroup_size(); >> break; >> >> case CL_KERNEL_PRIVATE_MEM_SIZE: >> diff --git a/src/gallium/state_trackers/clover/core/device.cpp >> b/src/gallium/state_trackers/clover/core/device.cpp >> index 42b45b7..c42d1d2 100644 >> --- a/src/gallium/state_trackers/clover/core/device.cpp >> +++ b/src/gallium/state_trackers/clover/core/device.cpp >> @@ -185,6 +185,11 @@ device::max_block_size() const { >> return { v.begin(), v.end() }; >> } >> >> +cl_uint >> +device::subgroup_size() const { >> + return get_compute_param<uint32_t>(pipe, >> PIPE_COMPUTE_CAP_SUBGROUP_SIZE)[0]; >> +} >> + >> std::string >> device::device_name() const { >> return pipe->get_name(pipe); >> diff --git a/src/gallium/state_trackers/clover/core/device.hpp >> b/src/gallium/state_trackers/clover/core/device.hpp >> index de5fc6b..2857847 100644 >> --- a/src/gallium/state_trackers/clover/core/device.hpp >> +++ b/src/gallium/state_trackers/clover/core/device.hpp >> @@ -67,6 +67,7 @@ namespace clover { >> bool has_doubles() const; >> >> std::vector<size_t> max_block_size() const; >> + cl_uint subgroup_size() const; >> std::string device_name() const; >> std::string vendor_name() const; >> enum pipe_shader_ir ir_format() const; > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev