Forum Discussion
Altera_Forum
Honored Contributor
12 years ago --- Quote Start --- There is another version of the optimization guide coming that will discuss this more but here are some attributes you can try: max_share_resources (x) num_share_resources (y) max_share_resources tells the compiler to attempt to reuse common portions of the compute unit if it *does not* affect the throughput of the kernel num_share_resources tells the compiler to attempt to reuse common portions of the compute unit *regardless* if it affects the throughput of the kernel By the sounds of it you will probably want to use num_share_resources. This attribute gets expored when you run -O3 but you can apply it manually to avoid having to recompile if you already have a specific performance target in mind. There is another attibute called "max_unroll_loops(x)" were you can put a limit on how much unrolling occurs with the kernel (this is also explored with the -O3 flag) --- Quote End --- Hi BadOmen, I have already try to use max_share_resources (x) and num_share_resources (y) attribute with my design . Reuse common portion of the hardware involves to factorize the datapath of the compute unit . But what is very surprising is that when using max_share_resources (x) and num_share_resources (y) attribute with my design , my throughput decreased but logic utilization stayed constant.How that can be explained ? P.S. : There is no "num_simd_work_items" and "num_compute_unit" attribute in the kernel ; and unrolling pragma