Difference between revisions of "Releases"

From Sniper
Jump to navigation Jump to search
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
<div class="nonumtoc">
 +
 +
== Download Sniper ==
 +
You can download the latest version of Sniper [[Download|here]].
 +
 
== Recent Sniper Releases ==
 
== Recent Sniper Releases ==
 +
 +
=== Version 7.4 (April 15th, 2021) ===
 +
 +
* Add initial ARM64 port
 +
* Automatically download Pin 3.18-98332
 +
* Require GCC >= 5, support modern compilers (GCC 9), Ubuntu 20.04
 +
 +
=== Version 7.3 (August 8th, 2019) ===
 +
 +
* Fix compilation and version detection issues for modern Pin versions (3.10)
 +
* Properly handle time during fast-forwarding and warmup by default
 +
* Remove transitional Pin 3 SIFT recorder code
 +
 +
=== Version 7.2 (February 16th, 2019) ===
 +
 +
* Improve SIFT recorder error handling to reduce crashes caused by aborts
 +
* Fix additional crashes caused by modern GCC behavior (NULL valued this pointer checks are removed by the compiler)
 +
* Verify thread count in the sift recorder. Support larger thread counts with the new --maxthreads option
 +
* Fix debug symbol parsing with modern Pin versions
 +
* Numerous bug fixes and improvements
 +
 +
=== Version 7.1 (October 28th, 2018) ===
 +
 +
* Fix compilation errors for GCC 6 and 7
 +
* Fix parallel make builds
 +
* Add Dockerfile for Ubuntu 18.04
 +
* Make zlib optional (Pin3 requires a PinCRT-compiled zlib which is found with Pinplay)
 +
* Numerous bug fixes and improvements
 +
 +
=== Version 7.0 (September 6th, 2018) ===
 +
 +
* Added Pin 3, GCC 5 support by default, keeping Pin 2 support in the new pin2 branch
 +
* Added initial RISC-V support
 +
* Add a new utility to automatically compile RISC-V requirements and SPEC CPU2006 binaries for RISC-V
 +
* Add a Docker image for Sniper and RISC-V compilation support
 +
* Fixes SIFT recorder address mapping issue caused by physical page mapping access restrictions in Linux kernels 4.0+
 +
 +
=== Version 6.1 (March 24th, 2015) ===
 +
 +
* Support for newer Pin versions, up to Pin 2.14-71313 / PinPlay 2.1
 +
* Support GCC 4.9
 +
* Integrate the Cheetah cache models
 +
* Remove legacy Graphite core models simple, magic and iocoom
 +
* A new dumpstats.py option (-c|--config) prints configuration parameters one-per-line
 +
* Numerous bug fixes and improvements
 +
 +
=== Version 6.0 (June 3rd, 2014) ===
 +
 +
* Add Instruction Window-Centric core model (internal name: ROB core model, use rob.cfg)
 +
* Add SMT support (IWC/ROB core model only, use smt*.cfg)
 +
* Add SniperLite, a fast cache-only model (use nehalem-lite.cfg)
 +
* Add DRAM cache prefetcher
 +
* Add support for non-standard SQLite paths through the SQLITE_PATH environment variable
 +
* Add sniperdiff.py for easy diff-ing of Sniper results and configurations
 +
* Branch predictor accuracy improvements
 +
* New roi-icount script to more easily specify fast-forward/warmup/detailed lengths by instruction count
 +
* Faster mode for running single-program / single-threaded PinBall (--pinball-non-sift)
 +
* Support for newer Pin versions, up to Pin 2.13.65163 / PinPlay 1.3
 +
* Numerous bug fixes and improvements
 +
 +
=== Version 5.3 (November 29th, 2013) ===
 +
 +
* Fast, cache-only one-IPC timing model (-c cacheonly)
 +
* Add energystats script to provide runtime energy counters
 +
* Add Python-based thread scheduler infrastructure and example
 +
* Add support for Query-Based Selection (Jaleel, MICRO 2010)
 +
* Add support for plotting Bottle graphs (Du Bois, OOPSLA 2013)
 +
* Memory tracker infrastructure to measure cache hit rates by allocation site
 +
* Support for McPAT 1.0
 +
* Various bug fixes and improvements
 +
 +
=== Version 5.2 (September 17th, 2013) ===
 +
 +
* Configurable coherency protocol (MSI/MESI/MESIF), made MESI the default
 +
* Add more cache statistics: LRU stack distance historgram, LLC miss latency breakdown
 +
* Implement auxiliary tag directories (ATD) to track constructive/destructive interference in shared caches
 +
* Implement 2-level TLB hierarchy with Nehalem configuration
 +
* New hooks HOOK_APPLICATION_ROI_{BEGIN,END}, called even when ROI markers are not used directly; these hooks can be used to trigger ROI from a script
 +
* Improved stop-by-icount script to support ROI-relative warmup and detailed lengths
 +
* Ondemand routine stack printer: configure routine_tracer/type=ondemand, then send a SIGUSR1 to Sniper to get a per-thread application backtrace
 +
* Emulate leaf 11 of the cpuid instruction to pass topology information to runtimes (used by Intel OpenMP)
 +
* Emulation of sched_* system calls, gettimeofday replacement, cpuid in SIFT mode
 +
* Improve handling of LD_LIBRARY_PATH: use SNIPER_SIM_LD_LIBRARY_PATH for the simulator, SNIPER_APP_LD_LIBRARY_PATH for the application
 +
* Re-implemented BigSmall scheduler to use thread affinity calls rather than the low-level (and error prone) moveThread API
 +
* sim.thread Python interface to interact with threads (get num threads, get appid, get/set affinity)
 +
* Use newest Pin version 2.13.61206
 +
* Numerous bug fixes and improvements
 +
 +
=== Version 5.1 (June 27th, 2013) ===
 +
 +
* New Suggestions for Optimization visualization (--viz-aso)
 +
* KCacheGrind-compatible output for profiling simulated applications (--profile)
 +
* Roaming (equal-time) scheduler allowing for thread migrations (scheduler/type=roaming)
 +
* Support for newest Pin version 2.12.58423
 +
* Various bugfixes and improvements
 +
 +
=== Version 5.0 (April 15th, 2013) ===
 +
 +
* Periodic sampling infrastructure
 +
* Extensible per-thread statistics infrastructure
 +
* Routine tracing infrastructure and per-function statistics
 +
* NUCA cache model
 +
* Distributed tag directories
 +
* sim.mem Python module for reading application memory
 +
* Various other improvements and bugfixes
 +
 +
=== Version 4.2 (February 9th, 2013) ===
 +
 +
* Various accuracy fixes for Nehalem core model
 +
* Add cache replacement policies: NRU, MRU, NMRU, PLRU, S-RRIP, Random
 +
* Add statistical DRAM performance model
 +
* Add syscall enter/exit hooks
 +
* Add topology view to visualization
 +
* Speed up McPAT by caching architecture-specific CACTI results
 +
* Fixes to running multiple multi-threaded workloads
 +
* Multi-programmed mode: end simulation at first/last program end, optional trace/application restart
 +
* [[Sniper and PinPlay|PinPlay support]]
 +
 +
=== Version 4.1 (December 11th, 2012) ===
 +
 +
* Visualization support (--viz)
 +
* Minor cleanups and bug fixes
 +
 +
=== Version 4.0 (November 28th, 2012) ===
 +
 +
* Thread migration and scheduler support
 +
* Pinned (round-robin), static, random thread schedulers
 +
* Heterogeneous configuration files with tags
 +
* Configurable address2set hash functions for non-power of two sized caches
 +
* Various prefetcher improvements
 +
* DRAM cache model
 +
* One-IPC fast-forward model
 +
* Fault injection framework
 +
* New SQLite3-based statistics format
 +
* ROI support for SIFT
 +
* Support for MPI applications (shared-memory backend)
 +
* Limited support for Jikes/DaCapo benchmarks
 +
* Use newest Pin 2.12.53271
 +
* Add script for generating topology images
 +
* Preserve history in Git repository
 +
* Many cleanups and bugfixes
 +
 +
=== Version 3.07 (September 7th, 2012) ===
 +
 +
* Prefetcher improvements, add global history buffer-based prefetcher
 +
* HOOK_PERIODIC_INS: Instruction-based periodic callback
 +
* Implement CLONE_CHILD_CLEARTID syscall interface
 +
* Add example scripts for periodic statistics, periodic McPAT, simulating limited iteration counts
 +
* Support for Pin 2.12
 +
* Fixes to Python environment
 +
* Various bugfixes
  
 
=== Version 3.06 (August 7th, 2012) ===
 
=== Version 3.06 (August 7th, 2012) ===
Line 53: Line 209:
 
* Support for building on 32-bit hosts
 
* Support for building on 32-bit hosts
 
* Remove configuration defaults from code, require everything to be specified in a configuration file
 
* Remove configuration defaults from code, require everything to be specified in a configuration file
 +
 +
</div>

Latest revision as of 19:24, 14 April 2021

Download Sniper

You can download the latest version of Sniper here.

Recent Sniper Releases

Version 7.4 (April 15th, 2021)

  • Add initial ARM64 port
  • Automatically download Pin 3.18-98332
  • Require GCC >= 5, support modern compilers (GCC 9), Ubuntu 20.04

Version 7.3 (August 8th, 2019)

  • Fix compilation and version detection issues for modern Pin versions (3.10)
  • Properly handle time during fast-forwarding and warmup by default
  • Remove transitional Pin 3 SIFT recorder code

Version 7.2 (February 16th, 2019)

  • Improve SIFT recorder error handling to reduce crashes caused by aborts
  • Fix additional crashes caused by modern GCC behavior (NULL valued this pointer checks are removed by the compiler)
  • Verify thread count in the sift recorder. Support larger thread counts with the new --maxthreads option
  • Fix debug symbol parsing with modern Pin versions
  • Numerous bug fixes and improvements

Version 7.1 (October 28th, 2018)

  • Fix compilation errors for GCC 6 and 7
  • Fix parallel make builds
  • Add Dockerfile for Ubuntu 18.04
  • Make zlib optional (Pin3 requires a PinCRT-compiled zlib which is found with Pinplay)
  • Numerous bug fixes and improvements

Version 7.0 (September 6th, 2018)

  • Added Pin 3, GCC 5 support by default, keeping Pin 2 support in the new pin2 branch
  • Added initial RISC-V support
  • Add a new utility to automatically compile RISC-V requirements and SPEC CPU2006 binaries for RISC-V
  • Add a Docker image for Sniper and RISC-V compilation support
  • Fixes SIFT recorder address mapping issue caused by physical page mapping access restrictions in Linux kernels 4.0+

Version 6.1 (March 24th, 2015)

  • Support for newer Pin versions, up to Pin 2.14-71313 / PinPlay 2.1
  • Support GCC 4.9
  • Integrate the Cheetah cache models
  • Remove legacy Graphite core models simple, magic and iocoom
  • A new dumpstats.py option (-c|--config) prints configuration parameters one-per-line
  • Numerous bug fixes and improvements

Version 6.0 (June 3rd, 2014)

  • Add Instruction Window-Centric core model (internal name: ROB core model, use rob.cfg)
  • Add SMT support (IWC/ROB core model only, use smt*.cfg)
  • Add SniperLite, a fast cache-only model (use nehalem-lite.cfg)
  • Add DRAM cache prefetcher
  • Add support for non-standard SQLite paths through the SQLITE_PATH environment variable
  • Add sniperdiff.py for easy diff-ing of Sniper results and configurations
  • Branch predictor accuracy improvements
  • New roi-icount script to more easily specify fast-forward/warmup/detailed lengths by instruction count
  • Faster mode for running single-program / single-threaded PinBall (--pinball-non-sift)
  • Support for newer Pin versions, up to Pin 2.13.65163 / PinPlay 1.3
  • Numerous bug fixes and improvements

Version 5.3 (November 29th, 2013)

  • Fast, cache-only one-IPC timing model (-c cacheonly)
  • Add energystats script to provide runtime energy counters
  • Add Python-based thread scheduler infrastructure and example
  • Add support for Query-Based Selection (Jaleel, MICRO 2010)
  • Add support for plotting Bottle graphs (Du Bois, OOPSLA 2013)
  • Memory tracker infrastructure to measure cache hit rates by allocation site
  • Support for McPAT 1.0
  • Various bug fixes and improvements

Version 5.2 (September 17th, 2013)

  • Configurable coherency protocol (MSI/MESI/MESIF), made MESI the default
  • Add more cache statistics: LRU stack distance historgram, LLC miss latency breakdown
  • Implement auxiliary tag directories (ATD) to track constructive/destructive interference in shared caches
  • Implement 2-level TLB hierarchy with Nehalem configuration
  • New hooks HOOK_APPLICATION_ROI_{BEGIN,END}, called even when ROI markers are not used directly; these hooks can be used to trigger ROI from a script
  • Improved stop-by-icount script to support ROI-relative warmup and detailed lengths
  • Ondemand routine stack printer: configure routine_tracer/type=ondemand, then send a SIGUSR1 to Sniper to get a per-thread application backtrace
  • Emulate leaf 11 of the cpuid instruction to pass topology information to runtimes (used by Intel OpenMP)
  • Emulation of sched_* system calls, gettimeofday replacement, cpuid in SIFT mode
  • Improve handling of LD_LIBRARY_PATH: use SNIPER_SIM_LD_LIBRARY_PATH for the simulator, SNIPER_APP_LD_LIBRARY_PATH for the application
  • Re-implemented BigSmall scheduler to use thread affinity calls rather than the low-level (and error prone) moveThread API
  • sim.thread Python interface to interact with threads (get num threads, get appid, get/set affinity)
  • Use newest Pin version 2.13.61206
  • Numerous bug fixes and improvements

Version 5.1 (June 27th, 2013)

  • New Suggestions for Optimization visualization (--viz-aso)
  • KCacheGrind-compatible output for profiling simulated applications (--profile)
  • Roaming (equal-time) scheduler allowing for thread migrations (scheduler/type=roaming)
  • Support for newest Pin version 2.12.58423
  • Various bugfixes and improvements

Version 5.0 (April 15th, 2013)

  • Periodic sampling infrastructure
  • Extensible per-thread statistics infrastructure
  • Routine tracing infrastructure and per-function statistics
  • NUCA cache model
  • Distributed tag directories
  • sim.mem Python module for reading application memory
  • Various other improvements and bugfixes

Version 4.2 (February 9th, 2013)

  • Various accuracy fixes for Nehalem core model
  • Add cache replacement policies: NRU, MRU, NMRU, PLRU, S-RRIP, Random
  • Add statistical DRAM performance model
  • Add syscall enter/exit hooks
  • Add topology view to visualization
  • Speed up McPAT by caching architecture-specific CACTI results
  • Fixes to running multiple multi-threaded workloads
  • Multi-programmed mode: end simulation at first/last program end, optional trace/application restart
  • PinPlay support

Version 4.1 (December 11th, 2012)

  • Visualization support (--viz)
  • Minor cleanups and bug fixes

Version 4.0 (November 28th, 2012)

  • Thread migration and scheduler support
  • Pinned (round-robin), static, random thread schedulers
  • Heterogeneous configuration files with tags
  • Configurable address2set hash functions for non-power of two sized caches
  • Various prefetcher improvements
  • DRAM cache model
  • One-IPC fast-forward model
  • Fault injection framework
  • New SQLite3-based statistics format
  • ROI support for SIFT
  • Support for MPI applications (shared-memory backend)
  • Limited support for Jikes/DaCapo benchmarks
  • Use newest Pin 2.12.53271
  • Add script for generating topology images
  • Preserve history in Git repository
  • Many cleanups and bugfixes

Version 3.07 (September 7th, 2012)

  • Prefetcher improvements, add global history buffer-based prefetcher
  • HOOK_PERIODIC_INS: Instruction-based periodic callback
  • Implement CLONE_CHILD_CLEARTID syscall interface
  • Add example scripts for periodic statistics, periodic McPAT, simulating limited iteration counts
  • Support for Pin 2.12
  • Fixes to Python environment
  • Various bugfixes

Version 3.06 (August 7th, 2012)

  • Fix modeled size of network messages
  • Build fixes for 32-bit, compiler overrides

Version 3.05 (August 7th, 2012)

  • Scheduler: expose application ID
  • Add example script roi-iter.py to dynamically select ROI based on SimMarkers
  • CPI stacks: --aggregate and --partial support, fixes for heterogeneous configurations
  • Traces: support for 32-bit executables
  • Build fixes for older Linux versions

Version 3.04 (July 18th, 2012)

  • Support for running multiple multi-threaded workloads in a single simulation
  • McPAT fixes for heterogeneous configurations
  • Build system fixes for newer Linux versions

Version 3.03 (June 28th, 2012)

  • Bugfixes in configuration parser, starting of multi-program workloads

Version 3.02 (June 25th, 2012)

  • Fixes for specifying heterogeneous configurations
  • L2 prefetcher improvements
  • Perfect cache modeling
  • Self-modifying code support
  • PyControl scripting interface
  • GCC 4.7 support
  • McPAT integration for area, power and energy predictions

Version 3.01 (June 12th, 2012)

  • Add heterogeneous cache configuration support
  • Emulate pause, sleep system calls
  • Improve support for 32-bit applications
  • Pin 2.11 support

Version 3.0 (May 16th, 2012)

  • Support for heterogeneous core types
  • Separate core microarchitectural characteristics into CoreModel class
  • Improve CPI stack detail
  • Add initial implementation for basic L2 prefetcher
  • Optionally access DRAM directly in configurations with a single LLC
  • Deprecate replacement of pthread_* synchronization calls
  • Support more SYS_futex options
  • Remove unused code for Graphite FULL mode
  • Fixes to the build system, including parallel builds (make -j)
  • Support for building on 32-bit hosts
  • Remove configuration defaults from code, require everything to be specified in a configuration file