Intel® Developer Zone:
Расширения набора команд для архитектуры Intel

Расширения набора команд для архитектуры Intel (ISA) продолжают способствовать совершенствованию функциональностей, производительности и возможностей взаимодействия с пользователем. Представленные далее расширения ISA - это новые и уже запланированные расширения, которые будут использоваться в будущих поколениях процессоров. Заблаговременно публикуя эти расширения, корпорация Intel гарантирует экосистеме программного обеспечения своевременность для инноваций и выхода на рынок с улучшенными и новыми продуктами во время запуска в производство новых процессоров.

Обзор

Средства и файлы для загрузки

  • Компилятор Intel® C++

    Компилятор Intel® C++ доступен для загрузки всеми лицензированными пользователями из Центра регистрации Intel®. Оценочные версии решения Intel® для разработчиков ПО также доступны для бесплатной загрузки.

  • Intel Intrinsics Guide

    Справочник Intel по intrinsic-функциям — это интерактивное справочное руководство по важнейшим командам Intel, представляющее собой функции на языке C для доступа к множеству команд Intel, включая расширения Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Vector Extensions (Intel® AVX) и многие другие без необходимости написания кода на языке ассемблера.

Intel® Advanced Vector Extensions (Intel® AVX)

Среди различных сегментов отрасли продолжает расти необходимость в более высоких вычислительных мощностях. Для удовлетворения растущего спроса и развития моделей применения, мы продолжаем разрабатывать инновационные решения и представляем в нашей современной продукции набор  Intel® Advanced Vector Extensions (Intel® AVX).

Intel® AVX — это новый набор 256-битных команд для Intel® SSE, предназначенный для приложений, интенсивно использующих операции с плавающей запятой. Он был выпущен в начале 2011 года как часть семейства процессоров под кодовым названием Sandy Bridge на основе микроархитектуры Intel® и используется для различных платформ, от ноутбуков до серверов. Intel AVX повышает производительность благодаря более широким векторам, новому расширенному синтаксису и богатой функциональности. Это обеспечивает лучшее управление данными и приложениями общего назначения, например для обработки изображений, аудио/видео, научных имитаций, финансового анализа, трехмерного моделирования и анализа.

Intel® Advanced Vector Extensions 512 (Intel® AVX-512)

В будущем некоторые новые продукты будут иметь значительную поддержку 512-битной версии SIMD. Программы смогут упаковывать числа с плавающей запятой с удвоенной восьмикратной или единичной шестнадцатикратной степенью точности в рамках 512-битных векторов, а также восьми 64-битных и шестнадцати 32-разрядных целых чисел. Это позволит удвоить обработку элементов данных, которые могут быть обработаны IntelAVX/AVX2 с помощью одной команды, и в четыре раза увеличить возможности Intel SSE.

Команды Intel AVX-512 очень важны, так как они открывают новые возможности повышения производительности для самых требовательных вычислительных задач. Команды Intel AVX-512 предлагают наивысшую степень поддержки компилятора, включая беспрецедентный уровень разнообразия дизайна возможностей команд.

Команды Intel AVX-512 содержат 32-векторные регистры с шириной 512 бит и восемь специальных регистров маскирования. Intel AVX-512 представляет собой гибкий набор команд, включающий в себя поддержку широковещательного, встраиваемого маскирования для прогнозирования, встроенного управления команд округления данных с плавающей запятой, содержит встроенные функции подавления ошибок операций с плавающей запятой, инструкции разброса, высокоскоростные математические команды и компактное представление больших перемещаемых значений.

Intel AVX-512 имеет уровень совместимости с командами Intel AVX, которые надежнее предшествующих характеристик перехода к новым параметрам для операций SIMD. В отличие от Intel SSE и Intel AVX, которые не могут использоваться совместно без потерь производительности, совместное использование команд Intel AVX и Intel AVX-512 поддерживается без каких-либо негативных последствий. Регистры Intel AVX YMM0–YMM15 назначаются для регистров Intel AVX-512 ZMM0–ZMM15 (в режиме x86-64) подобно тому, как регистры Intel SSE назначаются для регистров Intel AVX. Поэтому в процессорах с поддержкой команд Intel AVX-512, команды Intel AVX и Intel AVX2 работают с меньшим числом битов (128 или 256) первых 16 регистров ZMM.

Дополнительную информацию о командах Intel AVX-512 см. в блоге  «AVX-512 Instructions» (Команды AVX-512). Описание команд представлено в справочнике программиста по набору команд для Intel® Architecture (см. вкладку «Обзор» на этой странице).

An Embree-Based Viewport Plugin for Autodesk Maya* 2014 with Support for the Intel® Xeon Phi™ Coprocessor
- Charles Congdon (Intel)Опубликовано: 02/02/20150
Download PDF Purpose This code recipe describes how to obtain, build, and use the Embree-based Viewport Plugin for Autodesk Maya* 2014 on either Microsoft Windows* or Linux*. This plugin (actually a suite of plugins) runs under Autodesk Maya 2014 on the Intel® Xeon® processor (referred to as ‘h...
Quick Linking Intel® MKL BLAS, LAPACK to R
- Ying H (Intel)Опубликовано: 12/17/20140
Overview R is a popular programming language for statistical computing and machine learning. There is one article we published already- Using Intel® Math Kernel Library (Intel MKL) with R to show how to integrate Intel MKL BLAS and LAPACK libraries within R to improve the math computing performa...
Diagnostic 15542: Loop was not vectorized: inner loop was already vectorized.
- Devorah H. (Intel)Опубликовано: 10/30/20140
Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070 Cause: The vectorization report generated when using Visual Fortran Compiler's optimization options ( -O2  -Qopt-report:2 ) states that loop was not vectorized since the inner loop was vectorized. Example: An example below will g...
Diagnostic 15541: Loop was not vectorized: outer loop was not auto-vectorized: consider using SIMD directive.
- Devorah H. (Intel)Опубликовано: 10/30/20140
Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070 Cause: The vectorization report generated when using Visual Fortran Compiler's optimization options ( -O2 -assume:dummy_aliases -Qopt-report:2 ) states that loop was not vectorized due vector dependence, outer loop depends on inner...
Подписаться на Статьи Intel Developer Zone
Встречаем архитектуру Haswell и AVX2.0
Опубликовано Maxym Dmytrychenko (Intel) Размещено 25.07.2011 7
Каждая новая процессорная архитектура привносит какие-то новшества. Иногда это касается только «внутренней кухни», вроде техпроцесса, планировщика и КЭШей. Такие изменения, как правило, вызывают бурные обсуждения среди всяческих аналитиков, но простых программистов заботят мало. Далеко не каждый ...
AVX debugging или все-таки как?
Опубликовано Maxym Dmytrychenko (Intel) Размещено 29.01.2010 3
AVX определен, зафиксирован и уже идет к нам. Ранее много говорилось о разных способах разработки: компиляция, эмуляция, документация и даже профайлинг (очень рекомендую заглянуть сюда /en-us/avx/ ), – но довольно мало было информации по поводу отладки. Хотя, если сказать честно – все уже было. Н...
Подписаться на Блоги Intel® Developer Zone

    Intel® Software Guard Extensions (Intel® SGX)

    Точка зрения Intel

    Сегодняшние вычислительные процессы становятся все более сложными и используют сотни программных модулей различных групп разработчиков, разбросанных по всему миру. Наряду с этим всегда существовало стремление выполнения рабочих задач на открытых платформах, начиная с архитектур, работающих в защищенных режимах, для их разделения между операционными системами и приложениями. Однако недавние атаки вредоносных программ продемонстрировали способность злоумышленников проникать в весьма привилегированные режимы выполнения и получать контроль над всем программным обеспечением, используемым на платформе.

    Intel® Software Guard Extensions (Intel® SGX) — это название расширений архитектуры Intel, созданных для повышения безопасности программного обеспечения с помощью механизма инверсионной изоляции (inverse sandbox). При таком подходе вместо попыток идентификации и изоляции всех вредоносных программ на платформе, правомочное программное обеспечение может быть закрыто внутри определенной области и защищено от атак вредоносных программ, независимо от уровня привилегий последних. Это дополняет усилия по стремлению обеспечения безопасности платформы от атак вредоносных программ, наподобие того, как мы используем сейфы в наших домах для защиты ценных вещей даже с использованием сложных замков и систем сигнализации для предотвращения вторжения и для поимки злоумышленников.

    Приступая к работе (для всех расширений ISA)

    Обзор

    Средства и файлы для загрузки

    • Без изменений для существующих материалов

    Технические материалы

    Контент не найден
    Подписаться на Блоги Intel® Developer Zone
    How to use XDB to do kernel debug on Yocto with Minnowboard MAX
    - ALICE H. (Intel)Опубликовано: 01/12/20151
    Introduction Minnowboard MAX is an open hardware which is utilized Intel Atom processor. This hardware is a small and low cost but offer exceptional performance, flexibility, openness and standards. We can prepare micro sd card or usb flash device to expand the hardware storage and easy exchange...
    Innovative Technology for CPU Based Attestation and Sealing
    - adminОпубликовано: 08/14/20130
    Download white paper as PDF By:Ittai Anati, Shay Gueron, Simon P Johnson, Vincent R Scarlata Intel Corporation Abstract Intel is developing the Intel® Software Guard Extensions (Intel® SGX) technology, an extension to Intel® Architecture for generating protected software containers. The container...
    Using Innovative Instructions to Create Trustworthy Software Solutions
    - adminОпубликовано: 08/14/20130
    Download white paper as PDF By:Matthew Hoekstra, Reshma Lal, Pradeep Pappachan, Carlos Rozas, Vinay Phegade, Juan del Cuvillo Intel Corporation Abstract Software developers face a number of challenges when creating applications that attempt to keep important data confidential. Even diligent use o...
    Innovative Instructions and Software Model for Isolated Execution
    - adminОпубликовано: 08/14/20130
    Download white paper as PDF By:Frank McKeen, Ilya Alexandrovich, Alex Berenzon, Carlos Rozas, Hisham Shafi, Vedvyas Shanbhogue and Uday SavagaonkarIntel Corporation Abstract For years the PC community has struggled to provide secure solutions on open platforms. Intel has developed innovative new ...
    Подписаться на Статьи Intel Developer Zone

    Intel® Memory Protection Extensions (Intel® MPX)

    Компьютерные системы все чаще сталкиваются с вредоносными атаками повышенной сложности, и одним из наиболее часто наблюдаемых их проявлений является причина или использование возможности переполнения буфера (или переполнений) в приложениях.

    Intel® Memory Protection Extensions (Intel® MPX) — это название расширений для Intel Architecture, созданных для повышения надежности программного обеспечения. Расширения Intel MPX должны обеспечивать работу аппаратных функций, которые могут быть использованы в сочетании с изменениями компилятора для проверки ссылок на память во время компиляции, становящиеся небезопасными во время выполнения приложений. Две наиболее важные цели Intel MPX — это использование упомянутой возможности для только что скомпилированного кода и обеспечение работы механизмов совместимости с компонентами предыдущих версий программного обеспечения. Intel MPX будут доступны в будущих версиях процессоров Intel®.

    Pointer Checker in ICC: requires dynamic linking of runtime libraries
    - Kittur Ganesh (Intel)Опубликовано: 07/10/20140
    The -check-pointers switch, which enables the Pointer Checker feature, cannot be used with the -static flag on Linux* (/MT on Windows*) which forces all Intel libraries to be linked statically. The reason is that, by design, the Pointer Checker library “libchkp.so” must be shared by all executabl...
    Using Intel® SDE's chip-check feature
    - Mark Charney (Intel)Опубликовано: 10/03/20130
    Intel® SDE includes a software validation mechanism to restrict executed instructions to a particular microprocessor. This is intended to be a helpful diagnostic tool for use when deploying new software. Use chip check when you want to make sure that your program is not using instruction features...
    Using Intel® MPX with the Intel® Software Development Emulator
    - Ady Tal (Intel)Опубликовано: 07/23/20131
    Intel has announced a new technology called Intel® Memory Protection Extensions (Intel® MPX). To find out more, check out the Instruction Set Extensions web pages.  Once you know about Intel MPX, you may want to experiment with Intel® SDE. This article explains how to run Intel MPX with Intel SDE...
    Linux* ABI
    - Milind Girkar (Intel)Опубликовано: 07/18/20130
    by Milind Girkar, Hongjiu Lu, David Kreitzer, and Vyacheslav Zakharin (Intel) Description of the Intel® AVX, Intel® AVX2, Intel® AVX-512 and Intel® MPX extensions required for the Intel® 64 architecture application binary interface.
    Подписаться на Статьи Intel Developer Zone
    Контент не найден
    Подписаться на Блоги Intel® Developer Zone

      Intel® Secure Hash Algorithm Extensions (Intel® SHA Extensions)

      Алгоритм Secure Hash Algorithm (SHA) является одним из наиболее часто используемых криптографических алгоритмов.  Основным назначением SHA является обеспечение целостности данных, аутентификация сообщений, цифровые подписи и повторное дублирование данных.  С ростом использования решений безопасности применение алгоритма SHA можно видеть все в большем числе приложений. Расширения Intel® SHA направлены на совершенствование производительности интенсивных вычислительных алгоритмов, используемых процессорами на базе архитектуры Intel®.

      Расширения Intel® SHA представляют собой семейство семи наборов команд Intel® Streaming SIMD Extensions (Intel® SSE), которые используются совместно для повышения производительности обработки механизмов SHA-1 и SHA-256 процессорами на базе архитектуры Intel.  Учитывая растущее значение SHA для наших используемых повседневно вычислительных устройств, новые команды призваны обеспечить необходимое повышение производительности хеширования данных в едином буфере. Выигрыш в производительности не только поможет сократить время реагирования и снизить энергопотребление для конкретного приложения, но также позволит разработчикам использовать SHA в новых приложениях для защиты данных, обеспечивая при этом соответствие требованиям к удобству применения. Команды задаются таким образом, что упрощает их учет во время процесса обработки алгоритма для большинства библиотек ПО, обеспечивая упрощение разработки.

      Innovative Technology for CPU Based Attestation and Sealing
      - adminОпубликовано: 08/14/20130
      Download white paper as PDF By:Ittai Anati, Shay Gueron, Simon P Johnson, Vincent R Scarlata Intel Corporation Abstract Intel is developing the Intel® Software Guard Extensions (Intel® SGX) technology, an extension to Intel® Architecture for generating protected software containers. The container...
      Using Innovative Instructions to Create Trustworthy Software Solutions
      - adminОпубликовано: 08/14/20130
      Download white paper as PDF By:Matthew Hoekstra, Reshma Lal, Pradeep Pappachan, Carlos Rozas, Vinay Phegade, Juan del Cuvillo Intel Corporation Abstract Software developers face a number of challenges when creating applications that attempt to keep important data confidential. Even diligent use o...
      Innovative Instructions and Software Model for Isolated Execution
      - adminОпубликовано: 08/14/20130
      Download white paper as PDF By:Frank McKeen, Ilya Alexandrovich, Alex Berenzon, Carlos Rozas, Hisham Shafi, Vedvyas Shanbhogue and Uday SavagaonkarIntel Corporation Abstract For years the PC community has struggled to provide secure solutions on open platforms. Intel has developed innovative new ...
      Intel® SHA Extensions Implementations
      - adminОпубликовано: 07/18/20130
      The Intel® Secure Hash Algorithm (SHA) Extensions are designed to improve the performance of SHA-1 and SHA-256 on Intel® Architecture (IA) processors. This code download provides optimized assembly and intrinsic routines using the Intel® SHA Extensions. A sample test application using published k...
      Подписаться на Статьи Intel Developer Zone
      Контент не найден
      Подписаться на Блоги Intel® Developer Zone
        Updated Intel® Software Development Emulator
        - Mark Charney (Intel)7
        Hello, On October 2, 2014, we released version 7.8 of the Intel® Software Development Emulator. It is available here: http://www.intel.com/software/sde   See the release notes for a full list of changes.   This release includes:   Support for AVX512 VBMI and AVX512 IFMA instructions Better support for running on Haswell hosts Updated CPUID information For more information on the new instructions see http://www.intel.com/software/isa  
        Resources about Intel® Transactional Synchronization Extensions (Intel TSX)
        - Roman Dementiev (Intel)4
        Hi, you might find this collection of technical material about Intel TSX instructions useful: http://www.intel.com/software/tsx By a suggestion from some senior forum contributors I am making this post sticky. Best regards, Roman
        Links to instruction documentation
        - Thomas Willhalm (Intel)25
        Intel Instruction Set Architecture Extensions  Intel® Architecture Instruction Set Extensions Programming Reference includes: Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instructions (AVX512F, AVX512DQ, AVX512BW, AVX512VL, AVX512CD, AVX512PF, AVX512ER) Intel® Secure Hash Algorithm (Intel® SHA) extensions Intel® Memory Protection Extensions (Intel® MPX) The Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A and 2B (available here) are the instruction set reference. Haswell (2013) new instructionsare in theprogrammer's reference manual. In appendix C of the Intel 64 and IA-32 Architectures Optimization Reference Manual (available here), the latencies and throughput of instructions are listed. The documentation of the Intel C++ Compiler contains documentation of the intrinsics. The AVX Programming Reference and examples for using AVX are available on the AVX community page. (The interactive Intel Intrinsics Guide is also available there, which is usef...
        How to work with AVX on windows
        - siva rama k.4
        Hi, I am interested in AVX instructions set using in my application for speed up.But i am new to AVX. How can i know whether my system processor is able to support AVX or not? My System Configurations as OS; Windows 7 with 64-bit CPU: Inter(R) Xeon(R) CPU  W3505 @2.53GHz. Anybody can help me.. Thanks in Advance.  
        Is profiling information running on SDE accurate and trustable?
        - WEI Z. (Intel)1
        Hi,          I am trying to look at AVX 512 performance, currently, I wrote a simple function for evaluation as below, I configured the optimization and enabled AVX-512 etc in the project properties setting(vs2013 integrated with Intel-parallel-studio ), and I see the AVX-512 instructions are used from the asm files generated by compiler. void complexVectorConjMpy(float *inputPtr1, float *inputPtr2, float *outputPtr, int numData) {     int idxData;     float data1Re, data1Im, data2Re, data2Im;     #pragma ivdep     __assume_aligned(inputPtr1, 64);     __assume_aligned(inputPtr2, 64);     __assume_aligned(outputPtr, 64);           for (idxData = 0; idxData < numData; idxData++)     {         data1Re = inputPtr1[2 * idxData];         data1Im = inputPtr1[2 * idxData + 1];         data2Re = inputPtr2[2 * idxData];         data2Im = inputPtr2[2 * idxData + 1];                  outputPtr[2 * idxData]     = data1Re * data2Re + data1Im * data2Im;         outputPtr[2 * idx...
        TSX example code doesn't work
        - YangHun P.5
        I have intel xeon cpu E3-1230 v3 machine which has TSX. I just want to test that TSX runs well. From manual, i got this example pseucode void rtm_wrapped_lock(lock) { if (_xbegin() == _XBEGIN_STARTED) { if (lock is free) /* add lock to the read-set */ return; /* Execute transactionally */ _xabort(0xff); /* 0xff means the lock was not free */ } /* come here following the transactional abort */ original_locking_code(lock); } void rtm_wrapped_unlock(lock) { /* If lock is free, assume that the lock was elided */ if (lock is free) _xend(); /* commit */ else original_unlocking_code(lock); }My test code for RTM which is a set of TSX is like this. void main(void) { int i; int sum[20]; int data[20]; pthread_mutex_t mutex; pthread_mutex_init(&mutex,NULL); for(i=0;i<20;i++) { data[i]=i; sum[i]=0; } omp_set_num_threads(4); #pragma omp parallel for private(i) for(i=0;i<2...
        SDE 7.15 for Linux has no 64-bit libs
        - andysem3
        The recently released SDE 7.15 for Linux seem to have 32-bit libraries instead of 64-bit in intel64/pin_ext_lib and intel64/xed_ext_lib. Is this an oversight or am I missing something?  
        SSE ucomiss/comiss strange behavior
        - Naer J.7
        Hello. When I run this code : #include <cmath> // for NAN c++11 and up #include <iostream> #include <xmmintrin.h> int main(int argc, char ** argv) { float nan_value = NAN; __m128 const a = _mm_load_ss(&nan_value); __m128 const b = _mm_setzero_ps(); std::cout << "gt : " << (nan_value > 0) << std::endl; std::cout << "lt : " << (nan_value < 0) << std::endl; std::cout << "ge : " << (nan_value >= 0) << std::endl; std::cout << "le : " << (nan_value <= 0) << std::endl; std::cout << "eq : " << (nan_value == 0) << std::endl; std::cout << "ne : " << (nan_value != 0) << std::endl << std::endl << std::endl; std::cout << "ugt : " << _mm_ucomigt_ss(a,b) << std::endl; std::cout << "ult : " << _mm_ucomilt_ss(a,b) << std::endl; std::cout << "uge : " << _mm_ucomige_ss(a,b) << ...
        Подписаться на Форумы