0

将 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() )

最好的

4

1 回答 1

1

是的你可以。

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

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

对于 IPP,这也是正确的。请参阅以下链接中的最后一个问答。

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

于 2016-08-01T12:10:28.333 回答