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
Describe the bug
When tests are built w/o optimizations, test/unit/gemm/threadblock/batched_gemv.cu crashes with unaligned access exception.
It's not clear whether it's the test which does not set the correct alignment on the gemm parameters, or cutlass itself assuming specific alignment where it should not have. Forcing alignment on the input avoids the issue, but I'm not sure if that's a fix or just a workaround.
[ RUN ] SM50_batched_gemv_threadblock.16x1x17x64_rcr_fp32_fp32_1N_4K
third_party/gpus/cutlass/test/unit/gemm/threadblock/batched_gemv.cu.cc:216: Failure
Expected equality of these values:
result
Which is: misaligned address
cudaSuccess
Which is: no error
kernel error: misaligned address
libc++abi: terminating due to uncaught exception of type cutlass::cuda_exception: std::exception
[1] 46252 IOT instruction blaze-bin/third_party/gpus/cutlass/test/gemm/threadblock/batched_gemv
Steps/Code to reproduce bug
Build cutlass with clang w/o optimizations. Run cutlass tests, observe some of them failing.
Expected behavior
The root cause is cutlass implicitly relying on everything being inlined and some of the intermediate operations optimized away.
When they are not, it exposes the fact that cutlass code has a lot of places where it passes an opaque pointer around, and assumes that it is aligned on a certain boundary. This assumption is not always guaranteed by the callers, in this case the batched_gemv.cu test.
E.g. accum does not have any alignment specified here:
This issue has been labeled inactive-30d due to no recent activity in the past 30 days. Please close this issue if no further response or action is needed. Otherwise, please respond with a comment indicating any updates or changes to the original issue and/or confirm this issue still needs to be addressed. This issue will be labeled inactive-90d if there is no activity in the next 60 days.
Describe the bug
When tests are built w/o optimizations, test/unit/gemm/threadblock/batched_gemv.cu crashes with unaligned access exception.
It's not clear whether it's the test which does not set the correct alignment on the gemm parameters, or cutlass itself assuming specific alignment where it should not have. Forcing alignment on the input avoids the issue, but I'm not sure if that's a fix or just a workaround.
Steps/Code to reproduce bug
Build cutlass with clang w/o optimizations. Run cutlass tests, observe some of them failing.
Expected behavior
The root cause is cutlass implicitly relying on everything being inlined and some of the intermediate operations optimized away.
When they are not, it exposes the fact that cutlass code has a lot of places where it passes an opaque pointer around, and assumes that it is aligned on a certain boundary. This assumption is not always guaranteed by the callers, in this case the batched_gemv.cu test.
E.g.
accum
does not have any alignment specified here:cutlass/test/unit/gemm/threadblock/batched_gemv.cu
Lines 90 to 95 in e1cd8c7
... and eventually the pointer to it is used to attempt loading a 8-byte word and that causes a misaligned access exception here:
cutlass/include/cutlass/transform/threadblock/predicated_tile_iterator.h
Lines 380 to 385 in e1cd8c7
Stack trace:
Environment details (please complete the following information):
Possible fix or workaround:
cutlass/test/unit/gemm/threadblock/batched_gemv.cu
Line 90 in e1cd8c7
The text was updated successfully, but these errors were encountered: