Skip to content

Releases: chenshih1/pyramulator

Pyramulator 0.3.0

Choose a tag to compare

@chenshih1 chenshih1 released this 19 Aug 06:59

Changes (0.2.0 → 0.3.0)

  • Pythonic API: Config attribute access (cfg.standard, cfg.speed, cfg.org, cfg.channels, cfg.ranks)
  • completions() iterator: collect_events=True pull model yields RequestInfo in a for loop
  • Unified returns: tick/run/run_until_idle/flush all return cycles advanced
  • stats property; validate() returns None on success; send_reads/send_writes accept any iterable

Install:

pip install pyramulator-0.3.0.tar.gz

Pyramulator 0.2.0

Choose a tag to compare

@chenshih1 chenshih1 released this 19 Aug 05:51

Changes

  • Build: LTO + section GC, Release build type, warnings scoped to bindings
  • Auto-fetch: build downloads pinned Ramulator tarball automatically when submodule is missing (with retries, configurable mirror)
  • Python: full 3.8–3.13 support (lowered requires-python to >=3.8, 3.8-compatible config_dir)
  • CI: unified template — ubuntu, Python 3.8–3.13, sdist smoke test, ruff + mypy

Install:

pip install pyramulator-0.2.0.tar.gz

v0.1.0

Choose a tag to compare

@chenshih1 chenshih1 released this 14 Aug 06:07

Initial release: Python bindings for the Ramulator DRAM simulator.

Highlights

  • Ramulator used unmodified — pinned git submodule, public API only (same calls as gem5's Gem5Wrapper)
  • Event-driven API: non-blocking send with backpressure, completion callbacks (RequestInfo with latency/core_id), flush() write barrier, run_until_idle()
  • Batch APIs for throughput (~150K req/s with callbacks): send_reads, send_writes, send_reads_range, C++-side batched run
  • Programmable statistics: get_stats() / reset_stats() exposing all 170+ Ramulator counters + derived metrics (avg_read_latency, row_hit_rate, measured_bandwidth)
  • Helpers: addresses(), one-call benchmarks, capacity estimation, Config.from_file

Install

git clone --recurse-submodules https://github.com/chenshih1/pyramulator.git
pip install .

See README and CHANGELOG for details.