To Intel 工程师:这是MKL的bug麽?

m2213231 2006-12-25 06:48:52
请问MKL是否是多线程安全的?
我同时在两个线程里面调用vdInvSqrt函数,但是Thread Checker分析我的程序之后报告说发现data race,共有四条,全部是在MKL库之内发生的(出问题的函数都是以vml开头的),我用Source View察看反汇编的代码,下面是其中一个冲突位置的代码:
1st Access:
"0x435E" "vmlGetMode+3a:mov DWORD PTR [0x44b1ech], offset32 _vml_core_v8_vml_GetMode"
2nd Access:
"0x4324" "vmlGetMode: mov eax, DWORD PTR [0x44b1ech]"

我用critical{}把调用的vml函数包起来就不会出现data race,请问这是怎么回事,是说不能在多个线程内同时调用vml的同一个函数么?
谢谢!
...全文
211 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
IntelPerLib 2006-12-25
  • 打赏
  • 举报
回复
很有趣的测试, 从来没有用Thread Checker 去检查过MKL库,不知是MKL问题,还是Thread Checker 错报了. MKL是线程安全的, 可以在多线程里调用MKL库. 否则发现线程不安全的情况,应该是MKL的bug.

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧