Проблемы MKL <Parallel vs Sequencial> в Visual Studio 2017 - PullRequest
1 голос
/ 15 мая 2019

Я использую MKL для умножения матриц в моем текущем проекте.

Иногда - просто в режиме RELEASE и без шаблона, ни для способа воспроизвести ошибку - мое приложение вылетает или возвращает мне сумасшедшие числа (полностью вне ожидаемого, согласно моим юнит-тестам).Опять же, это что-то вроде случайности, но я с подозрением отношусь к параллелизму MKL.

А вот странность - свойства Intel Performance Libraries установлены следующим образом (смотрите вложения):

Отладка - Использование Intel MKL - Параллельный debug Релиз - Использование Intel MKL - Последовательный release

Этоникогда не зависал в режиме отладки.

В качестве следственного действия я заставил его во время выполнения быть последовательным, вызывая

mkl_set_num_threads(1);

каждый раз, когда нужно использовать мои подпрограммы MKL, как для DEBUG, так и для DEBUG.РЕЛИЗ.

Результаты?

Он больше не рухнул и не дал мне сумасшедших чисел в качестве вывода.

Это намного медленнее, хотя, очевидно.Я подозревал, что вышеприведенный флаг фактически не работает, потому что он не должен вести себя по-другому.

Вы когда-нибудь сталкивались с такой ситуацией, или я что-то не так сделал прямо здесь?

Я хочувернуться в многопоточный режим, но я не чувствую себя комфортно с этими случайными ошибками.

Большое спасибо.

...