Releases: chenshih1/pyramulator
Releases · chenshih1/pyramulator
Release list
Pyramulator 0.3.0
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=Truepull 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.gzPyramulator 0.2.0
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.gzv0.1.0
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 batchedrun - 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.