To Intel 工程师:这是MKL的bug麽?
请问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的同一个函数么?
谢谢!