Fortran Coder

调用MKL,调试显示"没有为 mkl_core.dll 加载的符号文件"

查看数: 14295 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-7-12 00:59

正文摘要:

环境是VS2017+Intel parallel studio2019,要做一个有限元-边界元算法,代码里分别调用了pardiso,dgemm,dgesv三个函数,配置选项如下: 链接库:mkl_lapack95_ilp64.lib,  mkl_blas95_ilp64.lib,  ...

回复

vvt 发表于 2019-7-15 07:51:36
断点时查看传递给函数的各变量的值,是否正常,是否符合函数要求。
wojiaoshuhua 发表于 2019-7-13 13:47:19
fcode 发表于 2019-7-12 21:54
单步调试,找到出问题的地方,然后再分析传给MKL的数据如何

谢谢您,我单步调试的时候,发现问题出在调用dgesv上,请问一下,该怎么分析传给mkl的数据呢?
fcode 发表于 2019-7-12 21:54:03
单步调试,找到出问题的地方,然后再分析传给MKL的数据如何
wojiaoshuhua 发表于 2019-7-12 17:20:24
fcode 发表于 2019-7-12 08:03
1、用77还是95接口,不影响。
2、你这个问题也是小问题。注意调试的时候不要步入到MKL函数内部就好。
3、发 ...

谢谢您的指点,再向您请教一下,这种情况我该怎么排查问题。。。
我研究了一天,反复确认了函数里传递的实参符合mkl用户手册的规范,因为计算有限元问题,所以数组阶数很大,我不确定哪出了问题。。。。
fcode 发表于 2019-7-12 08:03:09
1、用77还是95接口,不影响。
2、你这个问题也是小问题。注意调试的时候不要步入到MKL函数内部就好。
3、发生异常是在MKL的内部(你没有MKL的源代码,当然不能调试到内部)(我也没有,别问我要)
4、异常虽然发生在MKL内部,但诱导出现异常的原因确是你。(99.99%的原因在于你,也不排除MKL有bug)
5、比如,你给出的数组大小超过了数组真实的大小,导致MKL误以为数组很大,读取了不该读取的内存。或者比如,某些函数对数组矩阵有要求(例如要求满秩、对称、正定等),你给出的并不满足使用条件等。

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

GMT+8, 2024-11-23 17:14

Powered by Tencent X3.4

© 2013-2024 Tencent

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