Confusion regarding kernel attributes (compute units, simd lanes) when not specified
I'm having a bit of trouble trying to understand how AOC behaves when kernel attributes are not declared (e.g. num_compute_units, num_simd_work_items and reqd_work_group_size). According to the best practices guide (https://www.altera.com/en_us/pdfs/literature/hb/opencl-sdk/aocl-best-practices-guide.pdf), "the offline compiler does not automatically determine the optimal number of compute units for a kernel.". However, a few pages after, the Resource-driven Optimization is presented where "during compilation, the offline compiler examines multiple values of the num_compute_units and num_simd_work_items kernel attributes in various combinations, and applies a set of heuristics to improve a base design incrementally.". This led me to a confusion: does the aoc automatically attempt to find values for num_compute_units and other attributes or not? I first thought that the Resource-driven optimizer was enabled only when -O3 flag was passed, but the changelog of this guide points that -O3 was deprecated. Thank you in advance.