Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
15480 Discussions

max_work_group_size vs reqd_work_group_size

Honored Contributor II


Can anybody tell what is real difference between these two attributes: max_work_group_size and reqd_work_group_size? 

for example between max_work_group_size(256) and reqd_work_group_size(256)? Is there any benefit in using reqd_work_group_size, while max_work_group_size is a super-set of it?  

I guessed the reqd_work_group_size leads to more optimized hardware, but after some tests I saw even the hardware size did not change that much. 

0 Kudos
1 Reply
Honored Contributor II

"max_work_group_size" is for cases where you want to change your work-group size at runtime, but you know the maximum limit for the work-group size and hence, supply the compiler with this info to prevent excessive local memory allocation. "reqd_work_group_size" is for cases where you are absolutely sure your work-group size is fixed at runtime, and supply the compiler with this info to minimize area utilization. In this case, if you try to invoke the kernel with a work-group size that is different from what is set in the kernel, you will get a runtime error. These attributes mainly affect local memory utilization and if you are not using local memory in your kernel, the area utilization difference will be minimal.