大家好!
最近我们需要在DCU上做dgemm和dsyev(d)等线性代数的操作,尝试了Roc blas,Roc Solver和自己编译的magma 2.6.2的HIP版,发现:
- 用magma做dsyevd时,第一次调用dsyevd的耗时非常长,比如做1024矩阵的对角化,需要返回本征向量时,第一次调用需要21.25s,后面则只需1.20s;
- 用Rocblas做dgemm时,同样会出现第一次耗时长的问题,而用magma做dgemm则不存在该问题;
- 用RocSolver做dsyev总是报错,不成功。
请教大家这些问题该如何解决?
问题3,我复现了这个问题:调用rocsolver_dsyev接口成功,但是memcpy拷贝结果时出错,invalid address access。
原因是,info参数不是device端变量,请看一下你是否也是这个问题。
1)DCU确实会存在第一次调用时间长较长的现象
2)Rocblas确实存在第一次做dgemm时间较长的现象
3)请贴一下具体的报错,RocSolver目前的接口实现并不完全,请使用最新的版本。