Intel® Streaming SIMD Extensions

Intel® Software Development Emulator release 7.30

On September 20th 2015, we released version 7.30 of the Intel® Software Development Emulator. It is available here:

See the release notes for a full list of changes. The changes in this release are:

Оптимизировали, оптимизировали, да не выоптимизировали!

Оптимизация? Конечно, каждый сталкивался с данной задачей при разработке своих, сколь-нибудь значительных, требующих определённых вычислений, приложений. При этом способов оптимизировать код существует огромное множество, и, как следствие, различных путей сделать это в автоматическом режиме с помощью опций компилятора. Вот здесь и возникает проблема – как выбрать то, что нужно нам и не запутаться?

Links to instruction documentation

How long does a 6700K take to multiply two integers?


I just read on Wikipedia that an IBM 1620 took 17ms to multiple two integers, and I was wondering how long a modern CPU takes to execute the same operation.

I hope I'm in the right forum. I found this question from 2008 ( ), which, going by Google, seems to suggest that I should ask my question here.

Regardless, I'm looking forward to your answers.

How to avoid unsupported instructions?

I compile this inline asm line with Intel compiler:

  vpxor  ymm0, ymm0, ymm0

compiles ok, but is an AVX2 instruction, that will not run on my older i5 CPU and give an illegal instruction exception.

How can I tell the compiler to disable specific SIMD instructions? E.g. like this: /disable:AVX2 ?

Intel® System Studio (примеры и учебные материалы)

Intel® System Studio is a comprehensive and integrated tool suite that provides developers with advanced system tools and technologies to help accelerate the delivery of the next-generation, energy-efficient, high-performance, and reliable embedded and mobile devices. We have created a list of samples demonstrating different features of Intel System Studio, Also tutorials will show usage of features in your applications. By Downloading or copying all or any part of the sample source code, you agree to the terms of the Intel® Sample Source Code License Agreement
  • Разработчики
  • Linux*
  • Microsoft Windows* 10
  • Microsoft Windows* 8.x
  • Проект Yocto
  • Интернет вещей
  • Windows*
  • C/C++
  • Начинающий
  • Средний
  • Intel® System Studio
  • system studio sample
  • Intel System Studio code sample
  • system studio tutorials
  • system studio example code
  • Intel® Advanced Vector Extensions
  • Intel® Streaming SIMD Extensions
  • Отладка
  • Инструменты для разработки
  • Встроенное ПО
  • Процессоры Intel® Atom™
  • Процессоры Intel® Core™
  • Интернет вещей
  • Оптимизация
  • Параллельные вычисления
  • Векторизация
  • Do Non-Temporal Loads Prefetch?

    I can't find any information on this anywhere. Do non-temporal load instructions (e.g. MOVNTDQA), which use the separate non-temporal store rather than the cache hierarchy, do any prefetching? How does the latency and bandwidth compare to a normal load from main memory?

    Is the way to think about the store as if it is as "close" to main memory as the L3 cache, but also as "close" to the register files as the L1 cache?

    Possible bug in SDE - jump with 16-bit operand size

    The Software Developer's Manual, and the corresponding AMD document, indicate that after the new RIP is calculated, it is then truncated to whatever the instruction's operand size is.

    To see if this was actually true, I assembled a JMP instruction with a 66 prefix, to set an operand size of 16 bits.  I would expect this to jump to a 16-bit address.

    Running this instruction on my AMD Steamroller CPU, I got a segmentation fault.

    But running it with SDE, the trace shows a jump without truncating the destination address.

    It would appear that SDE is incorrect.

    Launch Key and EINIT Token

    The SGX Extensions Programming Reference, page 12, states that "The EINIT token is used by EINIT to verify that the enclave is permitted to launch." Some field in the EINIT token are MACed using Launch key, however, there seems to be a chicken-and-egg problem. Unless the enclave has called EINIT, the enclave is not operational yet, so calling EGETKEY for LaunchKey will return error. On the other hand, in order to compute the EINIT-Token CMAC, one need access to the launch key!!!

    Подписаться на Intel® Streaming SIMD Extensions