Open elliottbinder opened 9 months ago
@sarnex could you take a look?
Yes sure
Unfortunately this is a known limitation with the IGC vector compiler (used by ESIMD) and AOT mode. Per-kernel specification is not currently supported. There is already an open internal ticket for IGC tracking this limitation. If you have to use AOT mode, per-kernel GRF specification won't work, so I recommend using the IGC option to set auto GRF mode for all kernels, which should pick large GRF for kernels where it will have a benefit and leave others with small GRF mode. The IGC option is -ze-intel-enable-auto-large-GRF-mode
. You can also force large mode for all kernels with -ze-opt-large-register-file
. These will go inside your -Xsycl-backend
string.
Describe the bug Setting the kernel_properties to include grf_size<256> for an ESIMD kernel does not change the register file size.
To Reproduce
Save file as
no_large_grf_reproducer.cpp
Export environment variables to keep assembly code
Compile with
Look at the assembly code (.asm file in the
assembly
directory) and note the .thread_config numGRF value. This should be 256. This value is correctly set when not using [[intel::sycl_explicit_simd]]. It appears to also not work correctly when targeting intel_gpu_pvc.Environment (please complete the following information):