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
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Fix GPU single precision energy error in dav_subspace solver (deepmodeling#6946)
* Fix double precision GPU bug by using GEMV instead of GEMM
It appears that GEMM with dimension 1 can be buggy for GPU (cuBLAS)
* Fix GPU single precision energy error in dav_subspace solver
- Restore d_precondition host-to-device sync that was commented out in deepmodeling#5199
(this caused uninitialized GPU memory to be used as the preconditioner)
- Fix cuBLAS gemv calls using incx instead of incy for Y parameter
- Fix gemv_batched using incy instead of incx for x parameter
Fixes GPU single precision energy being ~0.027 eV off from correct value.
* Fix ROCm gemv incy parameter bug (same as CUDA fix)
Fixed 3 hipBLAS gemv calls that incorrectly used incx instead of incy
for the Y vector stride parameter:
- hipblasDgemv (double)
- hipblasCgemv (complex<float>)
- hipblasZgemv (complex<double>)
This is the same bug that was fixed in the CUDA version (math_kernel_op.cu).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Replace cudaErrCheck with CHECK_CUBLAS
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Xiaoyang Zhang <tsfxwbbzxy@163.com>
0 commit comments