You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 13, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Jul 13, 2026. It is now read-only.
Design testing approach to compare instructions generated by dpex and sycl #1186
We need to make sure that numba_dpex generate same llvm instructions as sycl.
Proposal:
LLVM uses FileCheck because they are comparing strings generated for the different platform. We may not need this flexibility, since we want to compare generated llvm code. It is always the same since we don't have options that affect llvm generated code. We may use this feature if cuda specific llvm ir will differe.
FileCheck is just a command line tool that needs to be called. We may want to write python wrapper for it.
Possible check flow:
create sycl kernel with filecheck llvm instructions in the code
run tests on those cpp files (we want to catch if sycl behavior changes)
create same dpex kernels (just kernels without instructions)
generate llvm ir code for each dpex kernel
run FileCheck on dpex llvm code comparing it to the corresponding filecheck of sycl kernel
4 and 5 can be performed as cli commands and put in the cpp code.
changed the title [-]Create design for testing instructions generated by dpex and sycl[/-][+]Design testing approach to compare instructions generated by dpex and sycl[/+]on Oct 20, 2023
Compare this line to the llvm output of cpp code. We can use Filecheck here, since we need to compile cpp code using cli anyway.
The llvm IR generated from a cpp code and that from a python code might not be always ad-verbatim for a complex program with lots of variables, branching and loops, especially if you are planning to do a line-by-line comparison. You can check it here:
Activity
[-]Create design for testing instructions generated by dpex and sycl[/-][+]Design testing approach to compare instructions generated by dpex and sycl[/+]chudur-budur commentedon Nov 2, 2023
The llvm IR generated from a cpp code and that from a python code might not be always ad-verbatim for a complex program with lots of variables, branching and loops, especially if you are planning to do a line-by-line comparison. You can check it here:
https://godbolt.org/
ZzEeKkAa commentedon Nov 2, 2023
Thank you @chudur-budur ! I've just updated proposal after talking to @diptorupd