2016-08-01 30 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

相關問題