Intel® Software Development Emulator Release Notes

2018-01-30 version 8.16.0
  • Added the emulation to the control-flow enforcement technology.
  • Added the '-future' chip knob, this knob allow executing instructions that will be available in future CPUs.
  • Fixed a few issues related to the emulation of the XSAVE family of instructions.
  • Changed the default behavior of chip-check on Windows systems to exclude NTDLL from the checks.
  • Added an option to emulate double precision vector instructions as single precision operations.
2017-10-23 version 8.12.0
  • Added support for additional Intel® AVX-512 instructions introduced in the next ICL (Ice Lake) CPU.
  • Added support to run Intel SDE on Sierra Mac OS (10.13). Refer to the main Intel SDE page for system configuration instructions.
  • Added improvements to the Intel SDE controller.
  • Fixed some issues related to tracing multi-threaded workloads with self-modifying-code.
2017-08-06 version 8.9.0
  • Fixed controller issues with handling some corner use cases.
  • Added support for running on latest Linux kernels.
  • Fixed issues with running applications on AVX-512 hosts.
  • Fixed some issues related to handling signals in Mac OSX.
2017-06-08 version 8.5.0
  • Added emulation support to the KNM (Knights Mill) CPU.
2017-05-23 version 8.4.0
  • Added a few Mix histogram tool improvements.
  • Added support for running on Skylake CPU with the latest OS versions.
  • Stability improvements for running on Mac.
  • Augmented the support for tracing multi-process workloads.
  • Multiple tracing and emulation bug fixes.
2017-01-23 version 7.58.0
  • Added support to run Intel SDE on Sierra Mac OS (10.12). Refer to the main Intel SDE page for system configuration instructions.
  • Added emulation support for the vector instructions for deep learning. There instructions are supported under the -knm chip.
  • Added an option to run Intel SDE with the host CPUID. This is done by using the -use-host-cpuid knob.
  • Added a few improvements to the mix histogram tool.
2016-07-07 version 7.49.0
  • Added an option to print large numbers in Mix output with 1000's separator (use with '-num-grouping' knob).
  • Improved the emulation of TSX and made it more accurate and closer to the HW.
  • Fixed a few issues related to capture and replay of Windows applications.
  • Added support for GO applications.
2016-05-09 version 7.45.0
  • Added an analysis tool to report statistics about memory operation that cross cache lines.
  • Integrated the pinplay technology for program record and replay.
2016-03-03 version 7.41.0
  • Solved some issues related to running on Mac OSX.
  • Added an analysis tool to report statistics about the VPCONFLICT instructions.
  • Fixed the emulation of CPUID when running on Haswell host.
2016-01-18 version 7.39.0
  • Added support for dynamically dumping the Mix stats using controller events.
  • Fixed the option to collect TSX statistics using the controller and terminate the run with early-out.
2015-12-10 version 7.36.0
  • Fixed a few issues with the Mix histrogram tool.
  • Updated the emulation of the CPUID instruction for the Intel Knights Landing CPU.
  • Improved support for running on Windows 10.
2015-09-10 version 7.30.0
  • Added support to Win10 desktop applications.
  • Added support to Linux systems with kernel version 4 or later.
  • Added improvements to the MIX instruction histogram tool.
  • Added improvements to the chip-check analysis tool.
  • Fixed small issues with TSX statistics.
  • Improved the way image name can be specified to the SDE controller.
  • Updated the MSVS debugger install kit to support VS2015.
2015-04-01 version 7.21.0
  • Fixed the emulation of the CPUID instruction for a various chips.
  • Changed the XED category for some AVX instruction for better accounting in mix histogram tool.
  • Fixed a small issue with the dynamic mask profiler.
  • Improved TSX debug logs and statistics report.
  • Added support to Mac OSX 10.10 (Yosemite) and dropped support to Mac OSX 10.7 (Lion).
2015-01-11 version 7.15.0
  • Improved TSX logs and statistics report
  • Updated the MSVS debugger installer kit with disassembly improvements.
  • Added new ways to control start and stop of the a region of interest.
2014-10-02 version 7.8.0
  • Added support for additional Intel® AVX-512 instructions (AVX512-VMBI and AVX512-IFMA).
  • Better support for running on native Haswell host.
2014-07-29 version 7.2.0
  • Added -p4 (Pentium4) and -p4p (Pentium4-Prescott) knobs to SDE.
  • Updated CPUID definition files.
2014-07-20 version 7.1.0
  • Added support for additional Intel® AVX-512 instructions.
  • Support for debugging integration with Microsoft Visual Studio 2012 and Visual Studio 2013.
  • New controller implementation.
  • Improved TSX statistics.
2014-03-06 version 6.22.0
  • Exclude PAUSE from chip-check because it is a NOP on older CPUs and on quark. 
2014-02-13 version 6.20.0
  • Added support for XSAVEC and CLFLUSHOPT.
  • Disabled TSX CPUID bits when TSX emulation is not requested.
  • Improved disassembly for MPX instructions.
  • Added an option for running chip-check only on the main executable.
  • Added support for -quark (Pentium ISA).
  • Added application debugging for Mac OSX with the lldb debugger.
2013-11-16 version 6.12.0
  • Added support to Mac OSX version 10.9.
  • Improved the TSX statistics information.
  • Various fixes with the emulation of floating-point instructions of Intel AVX-512.
  • Enabled the alignment checker tool by default for instructions that require alignment.
  • Fixed mismatch between mix and dynamic mask profiler.
  • Updated the Intel MPX runtime libraries for Windows. 
  • Performance improvements when modeling a CPU prior to AVX-512.
2013-09-21 version 6.7.0
  • Debugging with GDB is now supported with Intel® AVX-512. Download the new GDB from here.
  • Emulation of  Intel® AVX2 FMA and  Intel AVX-512 FMA uses native FMA instructions when running on Haswell host.
  • Various fixes with the emulation of floating-point and conversion instructions of Intel AVX-512.
  • Disassembly of control transfer instructions displays the 'bnd' prefix when used with Intel® MPX.
  • Updated the XED ISA set names for Intel AVX-512. This is visible in 'mix' statistics output.
  • This release goes with 2013-08-29 version of the Intel MPX runtime.
2013-07-22 version 6.1.0
  • Emulation support for the Intel®Advanced Vector Extensions 512 (Intel® AVX-512) instructions present on the Intel Knights Landing microarchitecture.
  • Emulation support for the Intel® Secure Hash Algorithm (Intel® SHA) extensions present on the Intel Goldmont microarchtiecture. 
  • Emulation support for the Intel® Memory Protection Extensions (Intel® MPX)  present on the Intel Skylake and Goldmont microarchitectures.
  • Support for Hardware Lock Elision introduced on the Intel Haswell microarchitecture
  • Improved support for Restricted Transactional Memory introduced on the Intel Haswell microarchitecture.
  • Improved support for the OS X* operating system (Mountain Lion)
  • The footprint tool now has the ability to compute footprint over time for working-set estimation.
  • A new tool called the dynamic mask profiler is provided using -dyn_mask_profile knob. The output is in a simple XML format.
The Intel SDE development team has grown to include Tevi Devor, Michael Gorin, Ariel Slonim and Ady Tal.
2013-01-03 version 5.38
  • Improvements in RTM emulation stability. Added statistics knobs.  Updated knobs.
  • Support for debugging integration with Microsoft Visual Studio 2012. See main page for information.
  • Improved multithreaded stability when using the AVX/SSE transition checker
  • Mac OS X: support for code-signed binaries, simplifying execution. See main page for information about the "taskport".
  • XED: added elf/dwarf support back to the command line tool
  • TZCNT ZF flags fix
2012-11-01 version 5.31 - major update
  • Major update including fixes for the processor codenamed Haswell and introduction of instructions in the processor codenamed Broadwell
  • First public SDE release for OS X, 10.6 and 10.7.  See additional information on the main Intel SDE web page for required permissions.
  • HSW's RTM mode is supported with the "-rtm-mode full" option. This feature is very new and the Intel SDE implementation might be a little unstable.
  • Completely new mechanism for handling of CPUID. CPUID values now come from an input file.
  • SDE's -chip-check feature checks to make sure instructions are valid for the specified chip. See "sde -help" for the various chip options.
  • Exception handling fixes
  • Haswell BMI emulation fixes, including flags output.
  • Debugtrace multithreading safety improvements
  • Mix top-blocks sorting issues.  Mix also has better support for allocating stats to overlapping blocks.
  • Mix default blocks size is now 1500 instructions to avoid fragmenting large hot blocks.
  • XED now can emit "dot" graphs for specified regions:  path-to-sde-kit/xed -i SOMEEXE -as 0x40316b -ae 0x4031b3 -dot; dot -O -Tpdf
  • Mix has prefix a legacy-prefix histogram
  • Footprint tool can now collect stats about unique memory pages as well as unique cache lines. The footprint tool is now faster as well.
  • Improved speed of AVX/SSE transition checker by roughly 12%. See the -ast knob in "sde -thelp".
  • Fixed some numerical errors in our software emulation of the FMA instruction for denormal numbers.
  • Various stability improvements from using a newer version of Pin.
  • Better handling of MXCSR exception status bigs for AVX1/2 instructions. We still do not support raising unmasked floating point errors from emulated instructions.
  • Can now set environment variables from the command line with the -env VAR VALUE option.
  • The commands for the GDB interface have been updated. See "monitor help sde" when attached as described on the main page. Please use GDB 7.4 or later.
  • The chip check error message includes the instruction bytes of the offending instruction.
  • Multiprocess output file handling. You used to have to supply "-i" to get the process id inserted in to the file name to avoid multiprocess applications from overwriting the common output files. Now we attempt to detect the creating of other processes and add the PID to the file names automatically.  The parent / child relationship is recorded in the file name.
  • Better support for unused bits in the VEX encodings in 32b mode.
The Intel SDE development team has grown to include Tevi Devor, Michael Gorin, Ariel Slonim and Ady Tal.
2011-12-15 version 4.46
  • Linux* 3.x is supported
  • Better support for running on Intel® AVX-enabled hosts
  • All output files now begin "sde-" and end with ".txt" by default
  • Mix is faster and does more analysis of SIMD operations
  • Mix has line number support for the top blocks when the information is available in the application
  • The -ptr-chk option now checks the memory refernces of gather operations
  • Fixed support for file descriptor leak when exec'ing thousands of threads on Linux*.
  • Misc other stability improvements.
2011-07-01 version 4.29
  • Support for the Haswell new instructions in the Intel AVX programmers reference version 11.
  • Mix now includes category and instruction length histograms automatically so the corresponding knobs were removed.
  • Many other changes
2010-12-23 verison 3.89 (Linux* only)
  • Fixed runtime libraries. Version 3.88 accidentally included runtime libraries that require a newer version of glibc than is present on older systems (like RHEL4).
2010-12-21 version 3.88
  • Support for the post-32nm processor instructions for the processor codenamed Ivy Bridge in the 008 revision of the Intel AVX programmers reference document
  • Many stability improvements
  • "sde -thelp" goes to stdout, not stderr
  • mix has a "-demangle 0" option to turn off demangling
  • xed disassembler handles uninitialized code sections in windows binaries
  • xed supports dwarf line number information with the -line knob on Linux*.
  • mix has improved memory efficiency
  • To debug on Linux*, you no longer need the -avx-gdb knob but you must use gdb 7.2 or later which supports a new XML remote-debug protocol.
2010-03-11 version 3.09
  • When pin or sde crashes due to bugs in user applications, the output of the circular buffer use for -itrace-execute (etc.) was not being dumped to disk. It is now.
  • Fixed circular buffer used for -itrace-execute and -itrace-execute-emulate. It was not initializing the circular buffer when -itrace-lines was used and would just crash immediately.  In addition to *actually* making the feature work, I sped it up immensely by reusing allocated string buffers.
  • Fixed 14 scalar Intel AVX instructions that were referencing too much memory (128b instead of 32b or 64b).
  • Made the xsave emulator be enabled all the time even when xsave is present on the hardware. One can disable it with '-xsave 0'.
  • All output log / stats file names now end in .txt by default.
  • Added a descriptive header to the top of the Intel AVX/Intel SSE transition output file.
  • debugtrace now print mmx (and x87) register values
  • vmaskmov* instructions are now implemented in a thread-safe way.
  • vpmov[sz]x instructions now correctly reference less memory to avoid extra page accesses.
  • New memory pointer checker. This option check all memory references for accessibility before the user application program is allowed to access memory.  There is also a null pointer checker which previously would only check Intel AVX instructions. The null checker writes to stderr (if accessible) and to a file sde-null-check.out.txt. The pointer checker writes to stderr (if accessible) and to a file sde-ptr-check.out.txt. The new knobs are: -null-check and -ptr-check
  • enforcing VL=128 on any Intel AVX scalar instructions.
  • fixed for the -no-avx and -no-aes knobs in the sde driver
  • xed: many corner case bugs fixed after yet another validation review
2010-02-08 version 3.00
  • Changed output files to have .txt suffix.
  • debugtrace prints x87 and mmx registers
  • thread-safety fix for vmaskmov* instructions
  • reduced amount of memory referenced by vpmov[sz]* instructions.
  • New memory pointer checker (See -ptr-check and -null-check knobs)
  • Added VL=128 requirement for Intel AVX scalar instructions.
  • Fixed knobs -no-avx and -no-aes in the sde front end driver
2009-12-31 version 2.94
Major update.
  • Better support for recent Linux* distributions, like Ubuntu* 9.10.
  • Better support for debugging with GDB on Linux*.
  • Using GDB 7.0.50, and "sde -debug -avx-gdb -- yourapp", gdb can directly obtain Intel AVX register values without requiring "monitor yreg N" or "monitor yregs" commands.
  • Windows version supports latest dbghelp.dll
  • Fixes for paths with spaces
  • Using Pin's "safecopy" mechanism to access user memory
  • Spelling fixes
  • Tool arguments grouped more sensibly; See the output of "sde -thelp"
  • Support for Intel AVX unmasked zero divide exceptions on Windows
  • Intel AVX/Intel SSE transition tracing feature with -ast-trace knob
  • Intel AVX/Intel SSE transition checker emits previous block information
  • CPUID leaf-zero emulation support
  • Alignment checker upgrades
  • XED disassembler supports windows debugging symbols (via dbghelp.dll)
  • Fix for Nan case in Intel®SSE4.1 roundss on Linux* only
  • Fix for Intel® SSE4 PEXTRW gpr,xmm
  • More CPUID feature knobs for Intel® SSE technologies
  • Fix for case emulation of FMA single precision that affected accuracy
  • Support for FZ and DAZ in FMA routines
  • Data watch point support
  • Fix for MXCSR.OE and IE for vcomiss/vucomiss an Nan inputs
  • New chip-check feature to restrict instructions to specific chips. See "sde -thelp"
  • Fast icounting feature (faster than using mix)
  • Fixes for Nan issues on windows with sqrt, mul, div, sub and cmp - it was quieting SNANs.
  • Upgraded pin can execute instructions with illegal instructions and an application-installed handler will be invoked.
  • New -itrace* knobs
  • Circular buffer support in debugtrace

2009-01-30 version 1.70
2009-01-09 version 1.61
Synchronizing with Intel AVX architecture update.
New 3-operand FMA instructions, removed VPERMIL2{PS,PD}, miscellaneous bug fixes.
New footprint feature.
Rearranged mix output, added function summaries.
New version of dbghelp.dll required for windows (See the FAQ).

2008-08-10 version 1.13

Initial Release
For more complete information about compiler optimizations, see our Optimization Notice.