我可以将 MKL 函数与用户分配的数据一起使用吗?
Can I use MKL functions with user allocated data?
将 MKL 与用户(非 64 位对齐)分配的数据一起使用是否存在问题?
我正在尝试使用 MKL 函数
vcMulByConj(...)
继续使用 OpenCV mat 对象分配内存。 (我相信它是使用 "new" c++ 操作实现的)
我经常收到访问冲突异常。
我知道 MKL 可以使用 64 位对齐分配
void* datta = MKL_malloc(n*n*sizeof(double),64);
我知道性能漏洞,但我可以使用我自己的未对齐内存来使用 MKL 函数吗?
我的内存模型有问题吗?
对于 IPP 功能,我会问同样的问题
更新:
MKL 和 IPP 都对齐到 64 位,我可以对 MKL 和 IPP 库调用使用相同的内存分配机制吗?
(假设对两个库都使用 ippiMalloc())
最佳
是的,你可以。
使用对齐内存是一个可以提高性能的建议,但这不是必需的。 MKL 函数通常可以在对齐和未对齐的数据上正常工作。
https://software.intel.com/en-us/node/528558
对于IPP,也是如此。看下面最后的问答link.
将 MKL 与用户(非 64 位对齐)分配的数据一起使用是否存在问题?
我正在尝试使用 MKL 函数
vcMulByConj(...)
继续使用 OpenCV mat 对象分配内存。 (我相信它是使用 "new" c++ 操作实现的)
我经常收到访问冲突异常。
我知道 MKL 可以使用 64 位对齐分配
void* datta = MKL_malloc(n*n*sizeof(double),64);
我知道性能漏洞,但我可以使用我自己的未对齐内存来使用 MKL 函数吗?
我的内存模型有问题吗?
对于 IPP 功能,我会问同样的问题
更新:
MKL 和 IPP 都对齐到 64 位,我可以对 MKL 和 IPP 库调用使用相同的内存分配机制吗?
(假设对两个库都使用 ippiMalloc())
最佳
是的,你可以。
使用对齐内存是一个可以提高性能的建议,但这不是必需的。 MKL 函数通常可以在对齐和未对齐的数据上正常工作。
https://software.intel.com/en-us/node/528558
对于IPP,也是如此。看下面最后的问答link.