not sure 2014 mkl version, from https://software.intel.com/en-us/articles/introduction-to-the-conditional-numerical-reproducibility-cnr
There is requirement before 11.1:
In MKL versions before 11.1, there was one more limitation: Input and output arrays in function calls must be aligned on 16, 32, or 64 byte boundaries on systems with SSE / AVX1 / AVX2 instructions support (resp.). MKL 11.1 has dropped this requirement. CNR can be obtained on unaligned input arrays, but aligning data will typically lead to better performance.
You can simply try with different shape to check if it gets segv for all shapes.
You can simply try with different shape to check if it gets segv for all shapes.
shape改为[16, 32, 64]
也会Segmentation fault
在早期我们用MKL 11. x 等 命名版本, 后来才改成 MKL 2017/2018/2019 , 请问 2014 MKL version, 是从哪里下载的, 具体安装时的文件名是什么?
另外 在跑的时候 export MKL_VERBOSE=1 能打印出信息吗? 我们是 11.2 时引进MKL verbose 功能的。
https://software.intel.com/en-us/articles/verbose-mode-supported-in-intel-mkl-112
请问 2014 MKL version, 是从哪里下载的
确认了下,这个版本的so文件应该不是完整的(相对于2019版),是单独编译的,年初1月份的时候intel这边同学提供的。
所以,这个段错误,应该是so不是官方导致的(只打包了部分函数)。
share the 2014 information to us, I got them :). thank you!
[yhu5@snb04 baidu_sgemm]$ ./a.out
Major version: 11
Minor version: 1
Update version: 2
Product status: Product
Build: 20140122
It reminder me that the version 11.1. 2 (2014.01,22) don't support sgemm_batch, which are used in the 3D shape test code.
could you please check the 2014_mklml.lib , for example enter command:
nm 2014_libmklml.lib | grep sgemm_batch (maybe only definition, no implementation)
nm 2014_libmklml.lib | grep sgemm_batch (maybe only definition, no implementation)
感谢 的回复,我尝试了你提供的命令查看了下,结果如下。好像2014MKL的so文件确实没有sgemm_batch的实现?
运行:nm 2014_libmklml_intel.so| grep sgemm_batch
输出:
U cblas_sgemm_batch
运行:nm 2019_libmklml_intel.so| grep sgemm_batch
输出:
00000000001d75f0 T cblas_sgemm_batch
0000000000218d50 T mkl_blas__sgemm_batch
000000000024a7d0 T mkl_blas_errchk_sgemm_batch
00000000002abe10 T mkl_blas_sgemm_batch
0000000000218d50 T sgemm_batch
0000000000218d50 T sgemm_batch_
使用2014版本的
libmklml_intel.so
编译develop分支的whl包,在输入为3D shape时,调用layers.matmul
会出现Segmentation fault
Note: 目前paddle-dev是没有问题的,只是替换mkl为2014的,会出错。
1. 复现环境
2.7.15
2. 复现代码
错误日志: