You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ifx编译Fortran代码时无法找到MKL通用GEMM_F95例程的问题

问题原因与解决办法

核心原因

Intel MKL本身不附带标准BLAS95模块的实现:

  • 你通过use BLAS95调用的DGEMM_F95是BLAS95标准定义的Fortran 95风格封装接口,这类接口并非MKL默认提供的组件。
  • 直接调用的dgemm属于传统BLAS的底层核心例程,是MKL原生支持的标准BLAS接口,因此编译链接完全正常。

BLAS95是Netlib推出的对传统BLAS的Fortran 95封装层,并非MKL的内置模块;MKL仅实现了传统BLAS的所有底层例程,没有默认包含BLAS95的封装函数,这就是链接错误的根源。

解决办法

有两种可行方案:

方案1:改用MKL自带的Fortran 95 BLAS接口

MKL提供了兼容BLAS95规范的自有接口模块,只需将代码中的模块引用替换为:

use mkl_blas95

保持原编译命令ifx test.f90 -o test.exe -Qmkl即可正常编译链接——mkl_blas95是MKL内置模块,对应的实现已包含在MKL库中,无需额外依赖。

方案2:单独编译链接BLAS95库

  1. 从Netlib获取BLAS95的源码包
  2. 用ifx编译生成静态库(例如blas95.lib)
  3. 修改编译命令,添加BLAS95库的链接参数:
ifx test.f90 -o test.exe -Qmkl blas95.lib

内容的提问来源于stack exchange,提问作者FusRoDah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:21:04