У меня есть конфигурация: Intel (R) Core (TM) i7-4702MQ CPU (с архитектурой Haswell), Windows 8, Intel C++ Compiller XE 13.0. Я хочу, чтобы запустить свою программу с оптимизацией AVX2 и поставить флаги компиляции:Как проверить, поддерживает ли операционная система инструкции avx2
/QaxCORE-AVX2, /QxCORE-AVX2
Но когда я запускаю программу, я получаю сообщение об ошибке:
Fatal Error: This program was not built to run in your system. Please verify that both the operating system and the processor support Intel(R) AVX2, BMI, LZCNT, HLE, RTM, and FMA instructions.
Я бегу тест поддержки процессора AVX2, которая дана на странице: How to detect new instruction support in the 4th generation Intel Core processor family. Результат:
This CPU supports ISA extensions introduced in Haswell.
Как я могу проверить, что моя операционная система поддержки AVX2-расширения и что может быть причиной ошибки? Для использования расширений avx2 мне нужно установить как /QaxCORE-AVX2
, так и /QxCORE-AVX2
флаги?
обн: если я установить флаг
/QxAVX
, что программа была успешно запущена.
Возможно XSAVE отключена. Я не уверен, как включить его, но это, вероятно, конфигурация загрузки. – Mysticial
@Mysticial я создаю простой проект win32 с функцией IsProcessorFeaturePresent (PF_XSAVE_ENABLED). Эта функция возвращает True. –
проверка когда? Во время компиляции? Во время выполнения? В любом случае, это больше похоже на проблему, связанную с рынком, например, 2955U - это Celeron, формально основанная на архитектуре Haswell, но она даже не предлагает первое поколение AVX. – user2485710