Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16597 Discussions

Compile kernel as task not as NDRange

Altera_Forum
Honored Contributor II
2,200 Views

Hi, 

 

My design has multiple kernels communicating through channels forming a chain like this: 

 

Kga -> Kconf -> Kene -> Kst 

 

It is running correctly in emulation, but some information in the optimization report seems strange to me: 

Specifically, one kernel (Kga) is compiled as NDRange, although no work-item function is used in any kernel. 

 

Is there any function/statement that is causing this kernel to be compiled as NDRange?
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
540 Views

Try adding __attribute__((max_global_work_dim(0))) for that kernel, this should ensure it is compiled as a single work-item kernel.  

 

source: aocl programming guide, 2.3.1.1 (https://www.altera.com/en_us/pdfs/literature/hb/opencl-sdk/aocl_programming_guide.pdf#page=136)
0 Kudos
Altera_Forum
Honored Contributor II
540 Views

Thanks for the info.  

I added that attribute, but unfortunately that kernel is still being compiled as ND-Range. 

 

The log shows warnings: 

"Compiler Warning: Channel ordering barrier insertion in X of Kernel Kga, but kernels may hang as a result" 

 

I don´t know how to interpret this warning. Have you experienced something like this before?
0 Kudos
Altera_Forum
Honored Contributor II
540 Views

If you are able to post your code it will help immensely :)

0 Kudos
Altera_Forum
Honored Contributor II
540 Views

I recompiled it and now it gets compiled as task. 

 

thank you.
0 Kudos
Altera_Forum
Honored Contributor II
540 Views

An alternative to using __attribute__((max_global_work_dim(0))) is also __attribute__((task)) which should also do the same thing

0 Kudos
Reply