-
Notifications
You must be signed in to change notification settings - Fork 787
[SYCL] Fix DAE by avoiding creation of obsolete device images #4977
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Until DAE is enabled by default in the compiler driver, make sure that it works properly with the specialization constant/kernel bundle APIs. Tests intel/llvm#4977. Signed-off-by: Artem Gindinson <[email protected]>
1f62ecd
to
41f38df
Compare
Converted back to draft - I've found that a) the duplicate native program is still created, b) the copy vs by-pointer mechanism is not actually what I've described. Will investigate deeper why the change actually helps the DAE handling. |
Due to an unintentional copy of the RTDeviceBinaryImage object that was happening in ProgramManager::build(), the NativePrograms map was getting populated by an extra entry. No duplicating entry was being created in the m_EliminatedKernelArgMasks, which made the image-based lookup in ProgramManager::getEliminatedKernelArgMask() exit early. The returned empty KernelArgMask led to errors during kernel argument setting whenever several native programs were created (e.g. for `kernel_bundle` or device code split use cases). Tested in intel/llvm-test-suite#575. Signed-off-by: Artem Gindinson <[email protected]> Co-authored-by: Maksim Sabianin <[email protected]>
41f38df
to
9f7d7e4
Compare
/verify with intel/llvm-test-suite#575 |
Signed-off-by: Artem Gindinson <[email protected]>
/verify with intel/llvm-test-suite#575 |
/verify with intel/llvm-test-suite#575 |
CUDA compilation failures for reduction tests in Jenkins/llvm-test-suite do not seem to be related to either of my patches. |
FYI - #5008. |
Until DAE is enabled by default in the compiler driver, make sure that it works properly with the specialization constant/kernel bundle APIs. Extend onto device code split tests Tests intel/llvm#4977. Signed-off-by: Artem Gindinson <[email protected]>
…#575) Until DAE is enabled by default in the compiler driver, make sure that it works properly with the specialization constant/kernel bundle APIs. Extend onto device code split tests Tests intel#4977. Signed-off-by: Artem Gindinson <[email protected]>
Due to an unintentional copy of the
RTDeviceBinaryImage
object thatwas happening in
ProgramManager::build()
, theNativePrograms
mapwas getting populated by an extra entry. No duplicating entry was
being created in the
m_EliminatedKernelArgMasks
, which made theimage-based lookup in
ProgramManager::getEliminatedKernelArgMask()
exit early. The returned empty
KernelArgMask
led to errors duringkernel argument setting whenever several native programs were created
(e.g. for
kernel_bundle
or device code split use cases).Tested in intel/llvm-test-suite#575.
Signed-off-by: Artem Gindinson [email protected]
Co-authored-by: Maksim Sabianin [email protected]