2016-08-01 9 views
0

Есть ли проблема с использованием MKL с пользовательскими (не 64-разрядными) выделенными данными?Могу ли я использовать функции MKL с пользовательскими данными?

Я пытаюсь использовать функцию MKL

vcMulByConj(...) 

с продолжает распределенную память, используя OpenCV объект мат. (с уверенностью, что он реализован с использованием «новой» операции C++)

Я часто получаю исключение нарушения доступа.

Я знаю, что MKL будет работать с 64 битной выровненной распределения

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

Я знаю об уязвимости производительности, хотя, я могу использовать свою собственную невыровненную память для использования функций MKL?

Есть ли проблемы с моей моделью памяти?

Я бы задать тот же вопрос для IPP функции


Update:

Оба 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 бит, Могу ли я использовать такое же распределение памяти механизировать как для МКЛ и IPP (с использованием ippiMalloc() для обеих библиотек)? Я обновил свой вопрос – TripleS

+0

Конечно, вы можете. – kangshiyin

 Смежные вопросы

  • Нет связанных вопросов^_^