bug49334.cpp has one issue that causes flaky result reported in #53730.
The root cause is BlockedC is never initialized but in BlockMatMul_TargetNowait
it is directly read and written (via +=). Fixes #53730.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
openmp/libomptarget/test/offloading/bug49334.cpp | ||
---|---|---|
76 | @tianshilei1992 By changing N to 16, it uses only a single block thus becomes a simple matrix multiplication and the test lost the interest of having multiple concurent target tasks... |
openmp/libomptarget/test/offloading/bug49334.cpp | ||
---|---|---|
76 | Yes, but it can also make problems easier to be reproduced, like the one hidden in the test case itself. In addition, since the target region has nowait, one task or multiple tasks make no difference for the taskwait, which can meet our expectation for the test. |
openmp/libomptarget/test/offloading/bug49334.cpp | ||
---|---|---|
76 | I mean, the implicit task wait at the end of the parallel region. |
openmp/libomptarget/test/offloading/bug49334.cpp | ||
---|---|---|
76 | I think it is important to enable concurrent access to the same entry of the HostDataToTargetMap which was the initial purpose of the test. |
I think what @jdoerfert and @hyviquel suggested is to make N a compile-time parameter and have two RUN lines, one setting -DN=16, one setting -DN=256.
@tianshilei1992 By changing N to 16, it uses only a single block thus becomes a simple matrix multiplication and the test lost the interest of having multiple concurent target tasks...