Page 1 of 1

intel compiler + openmp + x64

Posted: Mon Jun 17, 2013 1:07 pm
by smat
Добрый день!

Подскажите, что делать в такой ситуации:
Есть цикл, который распараллелен с помощью OpenMP
Например:

#pragma omp parallel for
for( int indexW = 0; indexW < w; indexW ++ )
{
BYTE &dst = img.at( indexW );
dst /= 2;
}


Вокруг него поставлены маркеры VMProtectBeginUltra.
для разработки использую visual studio 2008 + intel C++ composer XE 2011 Update 7.
Программа падает на этом цикле, если используется следующее сочетание:
1) платформа - x64
2) компилятор - intel
3) конфигурация - release
4) openmp включен
Во всех остальных вариантах - работает, то есть например, если исопльзовать компилятор из visual studio - все в порядке

архив с проектом, исходником и бинарниками.
https://www.dropbox.com/s/66dmahkfzgiov ... _clean.zip

На самом деле проблема была в реальном проекте, начал копать и оказалось, что даже в таком простом месте воспроизводится бага. В исходном проекте было немного по-другому. Там было два цикла, оба распараллелены через openmp. У одного именованный маркер сохранялся и был виден в GUI VMprotect, а у другого - маркер почему-то отображался неименованным. Ну и программа падала.
Подобные штуки у меня периодически всплывают и решать приходится перестановкой маркера или инструкций местами. Что я делаю не так? Или это бага компилятора/vmprotect?

Re: intel compiler + openmp + x64

Posted: Tue Jun 18, 2013 8:34 am
by Admin
А можно еще куда-нибудь выложить libiomp5md.dll?

Re: intel compiler + openmp + x64

Posted: Tue Jun 18, 2013 9:18 am
by smat
да, извините, забыл про него

https://www.dropbox.com/s/bx773q5meewy2 ... omp5md.dll

Re: intel compiler + openmp + x64

Posted: Tue Jun 18, 2013 9:26 am
by Admin
Оригинальный файл не хочет запускаться:

---------------------------
TestOMPSlock.exe - Ошибка приложения
---------------------------
Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК".
---------------------------
ОК
---------------------------

Re: intel compiler + openmp + x64

Posted: Tue Jun 18, 2013 10:21 am
by smat
Извините, это была версия dll для Win32
вот версия для x64: https://www.dropbox.com/s/222ughzvyuxzk ... omp5md.dll

Еще оригинальный файл имеет зависимость от VMprotectSDK64.dll.

Re: intel compiler + openmp + x64

Posted: Fri Jun 21, 2013 10:19 am
by smat
Удалось запустить?

Re: intel compiler + openmp + x64

Posted: Fri Jul 05, 2013 3:52 am
by Admin
Исправленная версия отправлена на емаил, указанный при покупке VMProtect.
Проверяйте.

Re: intel compiler + openmp + x64

Posted: Fri Jul 05, 2013 9:35 am
by smat
Потестировал. Не помогло, падает так же

Исходники с бинарниками
https://www.dropbox.com/s/ffv5qu0wbiz7g ... _clean.zip

Только бинарники
https://www.dropbox.com/s/4vp233x93nzem ... .2_bin.zip

Re: intel compiler + openmp + x64

Posted: Fri Jul 05, 2013 6:00 pm
by Admin
А теперь падает совершенно по другой причине. Компилятор вывел одну ветку кода за границы маркера и в конце сделал обратный переход обратно. Вмпротект ничего не знает про такой финт ушами.

Re: intel compiler + openmp + x64

Posted: Sat Jul 20, 2013 4:17 am
by Admin
В версии 3.0 будет полностью переделан алгоритм определения границ маркера и такой проблемы больше не возникнет.