本征值对角化的测试结果有点奇怪,DCU端和CPU端的对角化后本征值是相同的,但是DCU端明显慢了很多,而且矩阵越大越慢。测试程序在附件中,期待大神帮忙。
下图是测试输出结果:
dim: 维度
cpu:cpu端单个矩阵对角化时间
gpu:DCU端单个矩阵对角化时间
ratio:cpu端和DCU端时间比
diff:cpu端和DCU端本征值最大差。

编译方法:(hipfc 是用gcc和gfortran编译的)
hipfc -lhipblas -lhipsolver -lhipsparse -g dcu_math_zheev.f03 -L/public/software/mathlib/lapack/gnu/3.8.0/lib64 -lblas -llapack -o zheev_test
使用环境:
Currently Loaded Modulefiles:
程序运行:
srun --mpi=pmix_v3 zheev_test
提交时间:2022.Nov.29

暂无数据
您好,看到您三个问题都是关于线性代数库中API的,hipsolver这个库目前应该开发的还不是很完善,zheev这类接口就仅仅是有一个实现。目前的建议是您可以尝试使用MAGMA库,https://icl.utk.edu/magma/ 开发者社区有基于DTK-22.10编译好的:https://download.sourcefind.cn:65024/directlink/1/DTK-22.10_hpcapps-20221120/NFS3.2/MAGMA_2.6.0_nfs3.2_DTK22.10_single_11Nov2022.tar.gz
您可以看看这个库中应该有您需要的求解线性方程组,特征值分解,稀疏矩阵求解等的函数。路径下的include目录中有fortran的module文件。
hipsolver这个库后续我们也会逐步去开发,目前zheevd已开发了一段时间。补充:
同样的程序在Nvidia GPU上的实现测试是正常的,GPU端的速度一直比CPU端更快。详细信息如下:
dim: 7 cpu: 0.00s gpu: 0.00s ratio: 0.00 diff: 0.666E-15
dim: 12 cpu: 0.00s gpu: 0.00s ratio: 0.00 diff: 0.666E-15
dim: 20 cpu: 0.00s gpu: 0.00s ratio: 0.00 diff: 0.666E-15
dim: 33 cpu: 0.00s gpu: 0.00s ratio: 0.50 diff: 0.944E-15
dim: 54 cpu: 0.00s gpu: 0.00s ratio: 1.00 diff: 0.200E-14
dim: 90 cpu: 0.00s gpu: 0.00s ratio: 1.00 diff: 0.211E-14
dim: 148 cpu: 0.05s gpu: 0.00s ratio: 15.33 diff: 0.189E-14
dim: 244 cpu: 0.03s gpu: 0.00s ratio: 6.60 diff: 0.244E-14
dim: 403 cpu: 0.11s gpu: 0.01s ratio: 12.22 diff: 0.311E-14
dim: 665 cpu: 0.36s gpu: 0.02s ratio: 21.41 diff: 0.289E-14
dim: 1096 cpu: 1.33s gpu: 0.03s ratio: 40.21 diff: 0.555E-14
dim: 1808 cpu: 6.23s gpu: 0.08s ratio: 78.86 diff: 0.422E-14
dim: 2980 cpu: 40.06s gpu: 0.25s ratio: 158.35 diff: 0.113E-13