Fortran Coder

查看: 13570|回复: 7
打印 上一主题 下一主题

[数学库] fortran代码中dgemm函数调用的疑问

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
11 点
跳转到指定楼层
楼主
发表于 2019-7-11 16:43:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
代码如下:
[Fortran] 纯文本查看 复制代码
        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

生成解决方案没有问题,但是得出的结果如图,根本不对啊,请教是什么问题呀

aaaa.png (25.34 KB, 下载次数: 368)

aaaa.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

4

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
11 点
沙发
 楼主| 发表于 2019-7-11 16:56:05 | 只看该作者
添加的库是mkl_blas95_ilp64.lib, mkl_intel_lp64_dll.lib, mkl_intel_thread_dll.lib, mkl_core_dll.lib, libiomp5md.lib

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2019-7-11 17:46:43 | 只看该作者
哪儿不对?
【2】【5】不就是 【50】 吗?2*5+2*5+2*5+2*5+2*5 = 50

4

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
11 点
地板
 楼主| 发表于 2019-7-11 18:03:21 | 只看该作者
fcode 发表于 2019-7-11 17:46
哪儿不对?
【2】【5】不就是 【50】 吗?2*5+2*5+2*5+2*5+2*5 = 50

对不起对不起,脑子懵了,还以为是10。。。

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2019-7-11 18:23:24 | 只看该作者
建议你用95接口,调用更简单

use blas95
call GEMM(a, b, c, 'N','N', alpha, beta)

4

帖子

1

主题

0

精华

新人

F 币
25 元
贡献
11 点
6#
 楼主| 发表于 2019-7-11 20:14:43 | 只看该作者
fcode 发表于 2019-7-11 18:23
建议你用95接口,调用更简单

use blas95

老师我想请教下,95接口的使用条件是什么呢?是跟代码的语法是否是for95有关系吗?

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

7#
发表于 2019-7-12 07:59:04 | 只看该作者
条件就是你的编译器提供95接口,很显然ivf是满足这个条件的。

代码的语法是不是95没关系。而且,只要编译器支持,一段代码可以77,90,95,2003,2008,2015混合着用(这些规范之间本来也有很大的交集)。没有人能明确的指出一段代码到底是什么标准。

1

帖子

0

主题

0

精华

新人

F 币
8 元
贡献
1 点
8#
发表于 2023-2-28 16:53:44 | 只看该作者
fcode 发表于 2019-7-12 07:59
条件就是你的编译器提供95接口,很显然ivf是满足这个条件的。

代码的语法是不是95没关系。而且,只要编译 ...

大佬,在Linux下调用gemm函数,需要在makefile文件里怎么加啊,我用make进行编译的,MKL库我也下载了,但这个gemm函数调用不过来
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 22:41

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表