Intel® Software Development Emulator (Intel® SDE)
Product Overview
This emulator is called Intel® Software Development Emulator or Intel® SDE, for short.
The current version is 9.33.0 and was released on Jan 07, 2024. This version corresponds to the Intel® Architecture Instruction Set Extensions Programming Reference revision 319433-046 and the Intel® AVX512-FP16 Architecture Specification available on the Intel Instruction Set Architecture page. The Intel® SDE release notes are here. This is a minor update release.
Intel® SDE supports the following features from previous releases:
Capability to write binary instrumentation pin tools with Intel® SDE services.
Emulation support for the Intel® Advanced Matrix Extensions (Intel® AMX) present on Intel® processors.
Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instructions present on Intel® processors.
Support for the vector instructions for deep learning present on Intel® processors.
Support for Intel® Advanced Vector Extensions (Intel® AVX), Intel® Streaming SIMD Extensions 4(Intel® SSE 4), AES and PCLMULQDQ.
Intel® AVX2, RTM, BMI1, and BMI2 instructions, being introduced on the 4th Generation Intel® Core™ processor family.
The ADOX/ADCX instructions, being introduced on the 5th Generation Intel® Core™ processor family.
Support for the Intel® Secure Hash Algorithm (Intel® SHA) extensions present on the Intel® Atom™ processor family.
Related useful materials:
Intel is releasing this Intel® SDE so that developers can gain familiarity with our upcoming instruction set extensions. Intel® SDE can help ensure software is ready to take advantage of the opportunities created by these new instructions in our processors. We hope that developers will explore the new instructions using the currently available compilers and assemblers.
Intel® SDE is built upon the Pin dynamic binary instrumentation system and the XED encoder decoder. Pin controls the execution of an application. Pin examines each static instruction in the application approximately once, as it builds traces for execution. During this process, which is called instrumentation, for each instruction encountered Pin asks Intel® SDE if this instruction should be emulated or not. If the instruction is to be emulated, then Intel® SDE tells Pin to skip over that instruction and instead branch to the appropriate emulation routine. It also tells Pin how to invoke that emulation function, what arguments to pass, etc.
Intel® SDE queries CPUID to figure out what features to emulate. It also modifies the output of CPUID so that compiled applications that check for the emulated features are told that those features exist.
Intel® SDE comes with several useful emulator-enabled Pin tools and the XED disassembler:
The basic emulator capable of running workloads with new CPU features.
Various binary instrumentation based analysis tools such as the mix histogramming tool, ASCII debug tracing analysis tool, and many more
Transparent application debugging allows for debugging your emulated application on the system debugger.
Recording and deterministic replaying of single threaded and multithreaded workloads.
The XED command line tool which can disassemble PECOFF or ELF binary executables
Intel® SDE User's Manual:
- Licensing
- Installing Intel® SDE
- Getting Started
- Controlling the Emulation
- Analysis Tools
- Controlling Output File Names
- Chip Check Feature
- Checking for Bad Pointers and Data Misalignment
- The Controller
- Counting Instructions
- The Histogram Analysis Tool - Mix
- Measuring Memory Footprint
- Instruction Trace Tool
- The Debug ASCII Tracing Tool
- Mask Profiler
- Sparse Instructions Analysis Tool
- Detecting AVX-SSE Transitions
- Using SSC Marks
- Record and Replay
- Application Debugging