我可以将MKL函数与用户分配的数据一起使用吗?

时间:2016-08-01 11:23:13

标签: intel-mkl intel-ipp

使用MKL和用户(非64位对齐)分配数据是否存在问题?

我试图使用MKL功能

vcMulByConj(...)

使用OpenCV mat对象分配的继续内存。 (我相信它是用"新的" c ++操作实现的)

我经常收到访问冲突异常。

我知道MKL可以使用64位对齐分配

void* datta = MKL_malloc(n*n*sizeof(double),64);

我知道性能漏洞,虽然我可以使用自己的未对齐内存来使用MKL功能吗?

我的记忆模型有问题吗?

我会就IPP功能提出同样的问题

更新

MKL和IPP都与64位对齐,我可以为MKL和IPP库调用使用相同的内存分配机制吗?

(假设两个库都使用ippiMalloc())

最佳

1 个答案:

答案 0 :(得分:1)

是的,你可以。

使用对齐内存是一种可以提高性能的建议,但这不是必需的。 MKL函数通常可以在对齐和未对齐数据上正常工作。

https://software.intel.com/en-us/node/528558

对于IPP,情况也是如此。请参阅以下链接中的最后一个Q& A.

https://software.intel.com/en-us/articles/performance-tools-for-software-developers-memory-function-faq