GPU support in Intel MPI
Intel oneMKL GPU 版本函数 zheev 调用测试
简介
Intel OneMKL 目前支持 GPU 卸载计算,通过使用处理器自带的 UHD 显卡即可进行测试。本文对 Fortran 版本 OneMKL 函数的调用,编译和测试进行介绍。 关于 Fortran 版本 MKL 函数详细使用可以参考 Intel 手册 《Developer Reference for Intel® oneAPI Math Kernel Library for Fortran》。
OneMKL GPU 卸载计算
函数调用
zheev
查询手册中关于 zheev 函数介绍。此函数针对 Hermitian 矩阵 A 进行特征值计算,反馈对应特征值和特征矩阵。调用形式如下:
call zheev(jobz, uplo, n, a, lda, w, work, lwork, rwork, info)
矩阵大小为 $n \times n$,此时工作空间数组 work 长度为 $max(1, lwork)$,而 $lwork >= max(1, 2n-1)$。
为了获取合适的工作数组 work 的长度,也可设置 lwork = -1,此时返回的 work 矩阵中第一个元素即是所需空间大小。此时对应 zheev 函数应该为两次调用,对应形式为:
CALL ZHEEV(JOBZ, UPLO, N, A, LDA, W, WORK , -1, RWORK_, INFO)
LWORK_ = WORK(1)
ALLOCATE(WORK_(LWORK_))
CALL ZHEEV(JOBZ, UPLO, N, A, LDA, W, WORK_, LWORK, RWORK_, INFO)