fortran代码中dgemm函数调用的疑问
代码如下:program TestMKLDgemm
implicit none
real*8:: alpha, beta
integer :: i, j
integer, parameter :: m = 5, k = 5, n = 5
real*8 :: A(m,k), B(k,n), C(m,n)
!// C = alpha*A*B + beta*C
alpha = 1.d0
beta= 0.d0
A=5.d0
B=2.d0
C = 1.d0
call DGEMM('N', 'N', M, N, K, alpha, A, M, B, K, beta, C, M)
print*, B
PRINT*
print*, A
PRINT*
print*, C
READ*
end program TestMKLDgemm
生成解决方案没有问题,但是得出的结果如图,根本不对啊,请教是什么问题呀 添加的库是mkl_blas95_ilp64.lib, mkl_intel_lp64_dll.lib, mkl_intel_thread_dll.lib, mkl_core_dll.lib, libiomp5md.lib 哪儿不对?
【2】【5】不就是 【50】 吗?2*5+2*5+2*5+2*5+2*5 = 50 fcode 发表于 2019-7-11 17:46
哪儿不对?
【2】【5】不就是 【50】 吗?2*5+2*5+2*5+2*5+2*5 = 50
对不起对不起,脑子懵了,还以为是10。。。
建议你用95接口,调用更简单
use blas95
call GEMM(a, b, c, 'N','N', alpha, beta) fcode 发表于 2019-7-11 18:23
建议你用95接口,调用更简单
use blas95
老师我想请教下,95接口的使用条件是什么呢?是跟代码的语法是否是for95有关系吗? 条件就是你的编译器提供95接口,很显然ivf是满足这个条件的。
代码的语法是不是95没关系。而且,只要编译器支持,一段代码可以77,90,95,2003,2008,2015混合着用(这些规范之间本来也有很大的交集)。没有人能明确的指出一段代码到底是什么标准。 fcode 发表于 2019-7-12 07:59
条件就是你的编译器提供95接口,很显然ivf是满足这个条件的。
代码的语法是不是95没关系。而且,只要编译 ...
大佬,在Linux下调用gemm函数,需要在makefile文件里怎么加啊,我用make进行编译的,MKL库我也下载了,但这个gemm函数调用不过来
页:
[1]