/arch
(x64)
Задает архитектуру для создания кода на платформе x64. Дополнительные сведения о других целевых архитектурах см. в /arch
статьях /arch
(x86), (ARM64)/arch
и /arch
(ARM).
Синтаксис
/arch:
[AVX
|AVX2
|AVX512
]
Аргументы
/arch:AVX
Позволяет использовать инструкции Intel AVX.
/arch:AVX2
Позволяет использовать инструкции Intel AVX 2.
/arch:AVX512
Включает использование инструкций Intel Advanced Vector Extensions 512.
Замечания
Этот /arch
параметр позволяет использовать определенные расширения наборов инструкций, особенно для вычисления векторов, доступных в процессорах Intel и AMD. Как правило, недавно представленные процессоры могут поддерживать расширения за пределами старых процессоров, хотя следует обратиться к документации по конкретному процессору или проверить поддержку расширения набора инструкций, используя перед __cpuid
выполнением кода с помощью расширения набора инструкций.
/arch
влияет только на создание кода для собственных функций. /clr
При компиляции /arch
не влияет на создание кода для управляемых функций.
Расширения процессора имеют следующие характеристики:
В режиме по умолчанию используются инструкции SSE2 для скалярных вычислений с плавающей запятой и векторов. Эти инструкции позволяют выполнять вычисления с 128-разрядными векторами одноточия, двойной точности и 1, 2, 4 или 8-байтовых целых чисел, а также значениями скалярной с плавающей запятой с одной точностью и двойной точностью.
AVX
ввел альтернативную кодировку инструкций для векторных и скалярных инструкций с плавающей запятой. Он позволяет векторам либо 128 бит, либо 256 битам, и ноль расширяет все результаты вектора до полного размера вектора. (Для устаревшей совместимости векторные инструкции в стиле SSE сохраняют все биты за пределами бита 127.) Большинство операций с плавающей запятой расширяются до 256 бит.AVX2
Расширяет большинство целочисленных операций до 256-разрядных векторов и позволяет использовать инструкции fMA.AVX-512
появилась другая форма кодирования инструкций, которая позволяет использовать 512-разрядные векторы, а также некоторые другие необязательные функции. Также добавлены инструкции по другим операциям.
Каждый /arch
параметр также может включать использование других невекторных инструкций, связанных с этим параметром. Примером является использование определенных инструкций BMI при /arch:AVX2
указании.
Символ __AVX__
препроцессора определяется при /arch:AVX
/arch:AVX2
указании параметра компилятора./arch:AVX512
Символ __AVX2__
препроцессора определяется при /arch:AVX2
указании параметра компилятора./arch:AVX512
Символы __AVX512F__
, __AVX512BW__
__AVX512CD__
__AVX512DQ__
и __AVX512VL__
препроцессоры определяются при указании параметра компилятора./arch:AVX512
Дополнительные сведения см. в разделе "Предопределенные макросы". Этот /arch:AVX2
параметр был представлен в Visual Studio 2013 с обновлением 2 версии 12.0.34567.1. Добавлена ограниченная поддержка /arch:AVX512
в Visual Studio 2017 и расширена в Visual Studio 2019.
Установка параметра компилятора или /arch:AVX512
параметра компилятора /arch:AVX
/arch:AVX2
в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.
В раскрывающемся списке "Включить расширенный набор инструкций" выберите расширенные векторные расширения (/arch:AVX), расширенные расширения векторов 2 (/arch:AVX2) или расширенные расширения векторов 512 (/arch:AVX512).
Установка данного параметра компилятора программным способом
- См. раздел EnableEnhancedInstructionSet.
См. также
/arch
(Минимальная архитектура ЦП)
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по