动态加载intel MKL库的问题?

Lutx 2011-09-06 04:29:04
为一个仿真软件(Simulate.exe)开发了一个计算插件(MySolver.dll), 在该计算插件中会调用到Intel的MKL库(mkl_sequential.dll, ...). 这个计算插件在仿真软件中是动态加载的, 仿真完成后就释放, 也会同时释放MKL库.

现在的问题是: 启动仿真软件(Simulate.exe)后, 调入相应模型, 开始进行仿真计算, 这是会加载MySolver.dll以及其他相关的动态库(包括mkl), 然后计算一切正常, 完成后会卸载MySolver.dll. 然而要再次进行仿真计算时, 会重新加载MySolver.dll和相关库, 这时一调用mkl内相关函数就会出现异常, 导致计算失败, 异常的原因不明.

不知道是否把问题描述清楚了, 有没有人知道或者遇到类似的问题, 可以提供一些帮助信息, 非常感激!
...全文
260 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Lutx 2011-09-08
[Quote=引用 3 楼 lutx 的回复:]

引用 1 楼 intel_cyu 的回复:

你可以使用MKL custom DLL 工具建一个自己的DLL(使用MKL的静态库),然后在程序中,使用这个新建的DLL. 这样程序在加载的使用,将不再依赖于MKL的DLL.


应该在哪个目录下运行这个工具啊?
[/Quote]

知道了, 在 <mkl directory>\tools\builder 目录下运行.
这个方法可行, 我已经成功了.
回复
Lutx 2011-09-08
[Quote=引用 1 楼 intel_cyu 的回复:]

你可以使用MKL custom DLL 工具建一个自己的DLL(使用MKL的静态库),然后在程序中,使用这个新建的DLL. 这样程序在加载的使用,将不再依赖于MKL的DLL.
[/Quote]

应该在哪个目录下运行这个工具啊?
回复
Lutx 2011-09-07
谢谢, 我试一下这种方法
回复
intel_cyu 2011-09-07
你可以使用MKL custom DLL 工具建一个自己的DLL(使用MKL的静态库),然后在程序中,使用这个新建的DLL. 这样程序在加载的使用,将不再依赖于MKL的DLL.
回复
相关推荐
发帖
英特尔边缘计算技术
创建于2007-08-27

452

社区成员

英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
申请成为版主
帖子事件
创建了帖子
2011-09-06 04:29
社区公告
暂无公告