Fortran Coder

查看: 1923|回复: 1
打印 上一主题 下一主题

[数学库] 求助!求问用oneMKL的BLAS库求矩阵乘法

[复制链接]

28

帖子

10

主题

0

精华

熟手

F 币
140 元
贡献
81 点
跳转到指定楼层
楼主
发表于 2023-4-5 19:54:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Proteus 于 2023-4-5 20:00 编辑

[Fortran] 纯文本查看 复制代码
program main
    implicit none
    integer :: n, m, k, lda, ldb, ldc, info
    real(kind=8), dimension(:,:), allocatable :: A, B, C
    real(kind=8) :: alpha, beta
    external dgemm
    ! 设置矩阵的大小
    m = 3
    n = 3
    k = 3
    ! 设置矩阵 A、B、C 的值
    allocate(A(m,k))
    allocate(B(k,n))
    allocate(C(m,n))
    A = reshape([1., 2., 3., 4., 5., 6., 7., 8., 9.], [m, k])
    B = reshape([1., 2., 3., 4., 5., 6., 7., 8., 9.], [k, n])
    C = 0.0
    ! 设置矩阵乘法的参数
    alpha = 1.0
    beta = 0.0
    lda = m
    ldb = k
    ldc = m
    ! 调用 BLAS 库的 DGEMM 子程序进行矩阵乘法
    call dgemm('N', 'N', m, n, k, alpha, A, lda, B, ldb, beta, C, ldc)
    ! 输出结果
    write(*, *) 'Result:'
    write(*, *) C
end program main
问题:提示“Intel MKL ERROR: Parameter 3 was incorrect on entry to DGEMM”,计算出C的结果全是0.0

编译器:Win10 + Visual Studio 2019 + oneAPI
已在项目属性中配置好oneMKL库了,之前运行过调用oneMKL库中的pardiso函数,是可以运行的,且计算结果是没问题的

不知道这个为什么出来的结果不对
求问大佬,求大佬相助!!!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

28

帖子

10

主题

0

精华

熟手

F 币
140 元
贡献
81 点
沙发
 楼主| 发表于 2023-4-5 20:17:02 | 只看该作者
是我配置函数库的时候出了问题,已解决。呜呜呜呜呜。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 20:56

Powered by Tencent X3.4

© 2013-2024 Tencent

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