2016-08-01 64 views
0

使用MKL与用户(非64位对齐)分配的数据有问题吗?我可以在用户分配的数据中使用MKL功能吗?

我试图使用MKL功能

vcMulByConj(...) 

与继续使用OpenCV的垫目标分配的内存。 (我相信它使用“新”C++操作实现)

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

我知道,MKL将与64位对齐分配

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

我知道性能的漏洞,虽然,我可以用我自己的对齐的内存使用MKL职能的工作?

我的记忆模型有什么问题吗?

我会问同样的问题对IPP功能


更新:

两个MKL和IPP对齐到64位,我可以使用相同的内存分配机械化两个MKL和IPP库来电?

(比方说使用ippiMalloc()对库)

最佳

回答

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

+0

谢谢MKL和IPP都对齐到64位,我可以使用相同的内存分配机械化两个MKL和IPP(使用ippiMalloc()对库)?我更新了我的问题 – TripleS

+0

当然,你可以。 – kangshiyin

相关问题