Skip to content

Graphite release notes

gbezerra edited this page Feb 3, 2014 · 39 revisions

Graphite 3.0.11 Release Notes

  • Dynamic voltage and frequency scaling (DVFS)
    • Fixed bug with SYSTEM_NETWORK initial frequency

Graphite 3.0.9 Release Notes

  • Dynamic voltage and frequency scaling (DVFS)
    • Fixed bug with the convertToModule() function in common/system/dvfs_manager.cc
    • Fixed bug involving limits to max_frequency (now, it can be lower than 1.0 GHz)
  • PARSEC
    • Facesim - Create empty output directory so that simulation does not crash

Graphite 3.0.4 Release Notes

  • Pin
    • Upgraded to Pin version 2.13-62141
    • Used child injection (by default) to allow security restrictions with Ubuntu OS
  • BerkeleyDB
    • Please install BerkeleyDB using the following command (reasons follow)
      • $ sudo apt-get install libdb-dev
  • PARSEC
  • Core Power Modeling
    • Added power modeling for the processor cores
    • Graphite is integrated with McPAT 1.0 for core/cache power modeling
      • Graphite bases its core power models off the Niagara 1.0 core power model in McPAT
  • Dynamic Voltage and Frequency Scaling (DVFS)
    • Replaced previous dynamic frequency scaling mechanism with new DVFS functionality
    • Allows for multiple DVFS domains within a tile
    • DVFS domains and initial frequencies are defined in the configuration file
      • Look at [dvfs/domains] configuration parameter in carbon_sim.cfg for how to configure domains and starting frequencies of each domain
    • Technology files define DVFS tables
      • Look at technology/dvfs_levels_*nm.cfg for the DVFS tables at the different technology nodes
      • You can define your own tables by modifying these files
    • Added APIs' for obtaining & changing frequency and voltage from within the application
      • Look at common/user/dvfs.h for the APIs
    • Included costs for asynchronous communication between frequency domains (reported in the sim.out file)
      • The parameter [dvfs/synchronization_delay] is used to configure this cost in carbon_sim.cfg
  • Power Models Database
    • Power models for CACTI & DSENT are cached in a local disk BerkeleyDB database to avoid re-computation across simulations
      • The caching code for CACTI was borrowed from the Sniper simulator
    • The databases are created at /tmp/mcpat-$(USER).db and /tmp/dsent-$(USER).db respectively
    • A directory is also created at /tmp/dbenv-$(USER) for synchronization purposes so as to allow multiple simulations running simultaneously on the same machine to read & write concurrently in the database
  • Runtime Energy/Power Monitoring
    • It is now possible to log traces of power values during runtime
    • These traces can be enabled in carbon_sim.cfg, and they produce CSV files in the results directory
      • Enable the traces by setting [runtime_energy_modeling/power_trace/enabled] to true
  • Performance Enhancements
    • Improved speed of simulation by 40% when using the simple core model and by 15x when using the iocoom core model (in-order core with out-of-order memory support)
    • The performance improvements are due to 2 reasons:
      • Removing dynamic memory allocation calls in analysis routines
        • Pin's dynamic memory allocation performance is terrible since they use a centralized manager with Spin locks
      • Using IARG_THREAD_ID to get the thread-ID every time (well, most of the time) Graphite is invoked for performance & power modeling
        • Earlier, a system call was used which caused performance slowdown
  • Removed Feature
    • Removed the ability to configure tiles to different frequencies at start-up
    • If anyone still wants this functionality, they should add a call in software to change the frequency at the start of each different thread during simulation
  • Misc
    • Removed all floating point save/restore from code and all volatile variables
      • Pin has added support for floating point variables in the pintool
    • Use iocoom (in-order core with out-of-order memory) as default core model
    • Removed printing statistics of thread spawner(s), MCP and system network from sim.out

Graphite 2.2.28 Release Notes

  • McPAT/CACTI cache power modeling
  • Pin
    • Updated to Pin version 2.13.61206
  • Clock Skew Management
    • Changed default to lax_barrier for shared memory applications and lax_p2p for message passing applications

Graphite 2.2.23 Release Notes

  • Graphite now works with Ubuntu 12.04
    • See instructions on github wiki for how to run with Ubuntu
  • Pin
    • Graphite works with latest Pin version 2.12-58423
  • PARSEC
    • facesim works in full & lite modes
    • dedup, ferret, bodytrack work in lite mode only
  • Internal representation of target time
    • Changed internal representation of target time from cycles to picosec (see common/misc/time_types.h) to enable easier implementation of multiple clock domains, DVFS, etc.
  • Added instruction buffer
    • Reduces target energy and host simulation time by fetching a cache line worth of instructions from the L1-Icache in the IF stage and then reading locally from them
  • Makefile
    • Enable automatic recompilation when changing *.h (previously, this was broken)
    • Graphite can be compiled in parallel using the -j option
  • Power Modeling
    • Enable specifying temperature from the config file (temperature affects leakage power)
  • Regression infrastructure
    • tools/regress/run.sh for running regressions
    • tools/regress/config.py for configuring regressions
  • Minor bug fixes
    • Handling of dynamic instructions now immediate
  • Code cleanup
    • Removed 2nd user and memory networks
    • Removed basic block packaging of instructions (also improved performance)

Graphite 2.1.9 Release Notes

  • Debian Squeeze is now required for graphite.
  • Upgraded to Pin version 2.12-53271
  • Only 64-bit target and host architectures are now supported
  • Switched to using the internal Pin thread spawning interface from the os-threads interface
  • 2.5-3x performance improvement
    • Most improvement from removing redundant calls to getCurrentCore() from the memory subsystem models
  • New infrastructure for running simulations and viewing outputs
    • All simulation outputs now reside in dynamically created directories and no longer overwrite each other
    • For more information, look at Simulation Outputs
  • Added Private-L1 Shared L2 memory subsystem
    • The Shared-L2 is distributed among all the tiles on the processor
    • The directory entries are co-located with the L2 cache tags
    • Both full-map and limited directories (see carbon_sim.cfg) are supported
    • Location: common/tile/memory_subsystem/pr_l1_sh_l2_msi/
  • Changed interface functions for the cache models
    • The changes are in fetching/storing/invalidating the cache tag
    • Allows for maintaining more accurate access counters and energy information
    • Look at Cache Interface Changes (2.1.9 Release) for more information and guidance on how to switch over
    • Location: common/tile/memory_subsystem/cache/cache.[cc/h]
  • Graphite is now integrated with PARSEC 3.0 with better support for compiling and running benchmarks
    • blackscholes, swaptions, canneal, fluidanimate, streamcluster work in both full and lite modes
    • freqmine works in lite mode only
    • For more information, look at Adding and Running Applications
  • The DSENT network power modeling tool is now used (in place of Orion)
    • It models the energy of electrical routers and links as well as optical links
    • Location: contrib/dsent
  • Optical network model (atac)
    • Network model (atac) is integrated that uses optical links for broadcasts/long-distance unicasts
    • Performance and power models for this network is done
    • Location: common/network/models/network_model_atac.[cc/h]
  • Network modeling made simpler by including parametric models for routers and links
    • Network model performs just instantiation of routers and links as well as route computation
    • Latency calculation, contention modeling, energy counters update, forwarding network packet, etc. automatically performed
    • Location: common/network/components/router/, common/network/components/link
    • Look at the emesh_hop_by_hop and atac network models for usage examples
  • Removed a lot of obsolete tests
  • Miscellaneous bug fixes

Graphite 2.0.9 Release Notes

  • Support for Debian 6 Squeeze. Lenny is still the default. Edit "common/Makefile.common" to select Squeeze.
  • Pin 2.10 now required.
  • Version support. Graphite prints out version header in sim.out.
  • Better support for multiprocess simulations.
  • Miscellaneous bug fixes.