Skip to content

Releases: sarchlab/akita

v5.0.0-beta.5

15 Jun 07:59
deb34ff

Choose a tag to compare

v5.0.0-beta.5 Pre-release
Pre-release

What's Changed

  • Daisen Bot: frontend-configurable LLM provider, model picker, and fixes by @syifan in #381
  • fix(writeback): do not reuse transaction slots with in-flight bottom-port transactions by @syifan in #384

Full Changelog: v5.0.0-beta.4...v5.0.0-beta.5

v5.0.0-beta.4

14 Jun 14:23
d6e3065

Choose a tag to compare

v5.0.0-beta.4 Pre-release
Pre-release

Highlights

  • Memory controllers use global storage (#382): idealmemcontroller, simplebankedmemory, and dram now back onto a global, identity-addressed storage — a request's address indexes the backing store directly, with no per-controller storage address conversion.
  • simplebankedmemory bank-selection conversion (#382): an optional, bank-selection-only address conversion (BankAddrConv*) lets a banked memory used as one of several interleaved controllers stripe finely across all banks (storage stays global).
  • Add Domain back to the modeling package (#374, #375).
  • mem/cache: reuse removed transaction slots to bound the Transactions slice (#378).

Breaking changes

  • Removed the storage address-conversion fields from idealmemcontroller and simplebankedmemory Specs, and the address converter from dram (HasAddrConverter + interleaving fields). Storage is always global now. simplebankedmemory adds BankAddrConv* for bank selection. No further per-controller storage conversion is supported.

v5.0.0-beta.2

12 Jun 17:48
98a326f

Choose a tag to compare

v5.0.0-beta.2 Pre-release
Pre-release

Second beta of Akita v5. This release covers roughly three months of work since v5.0.0-beta.1 — the headline is simulation checkpoint/resume, plus a round of API consolidation in preparation for the v5.0.0 freeze.

Highlights

Simulation checkpoint and resume

A running simulation on a SerialEngine can be saved to a .tar.gz archive and resumed later, with an oracle-tested contract: run to the end equals checkpoint, rebuild, restore, run to the end — including mid-transaction checkpoints taken with SerialEngine.RunUntil. Components built on modeling.Component[Spec, State, Resources] get this for free; Build validates at construction that Spec/State cannot silently lose data. See the Writing Checkpointable Code tutorial.

Protocols as first-class packages

A protocol is a named set of message types organized into roles. Defining one (messaging.DefineProtocol) registers every message it carries with the checkpoint codec, and ports bind the role they speak where they are declared: DeclarePort("Top", memprotocol.Responder). Each framework protocol now lives in its own package: mem/memprotocol, mem/memcontrolprotocol, mem/vm/vmprotocol, mem/datamoverprotocol, noc/packetization. Protocols are opt-in — plain messages without a protocol remain fully supported. A CI audit guarantees every library message type in Akita itself is registered. See the new Protocols tutorial.

Uniform memory-agent control protocol

Every memory agent speaks the same control verbs over its Control port — Pause, Drain, Enable, Reset, Invalidate, Flush — with a shared lifecycle state model and a reusable conformance harness (mem/memcontrolprotocol).

Externalized port creation

Components declare their port topology (DeclarePort); setup code builds and attaches the instances via modeling.MakePortBuilder and AssignPort. Port names are hierarchical and globally unique ("Comp.Port"), enforced at registration.

Other notable changes

  • Messages are value types: construct and send messages by value; type-switch on value cases. Send no longer returns an error — guard with CanSend.
  • Time is integer picoseconds: VTimeInSecVTimeInPicoSec.
  • Package restructure: timing and transport extracted into their own packages; generated mocks untracked.
  • Tracing API improvements and tracing support in acceptance tests.
  • Daisen2 frontend rewritten in React; monitoring2 live monitor UI and slice pagination.
  • New documentation site with a full tutorial sequence (components, talking components, events, hooks, protocols, checkpointing): https://akitasim.dev/docs/akita/tutorial/

Migrating from v4 / beta.1

Message and protocol types moved into per-protocol packages:

Before Now
mem.ReadReq / mem.WriteReq / mem.DataReadyRsp / mem.WriteDoneRsp memprotocol.…
mem.AccessReq / mem.AccessRsp memprotocol.…
mem.ControlReq / mem.ControlRsp / mem.ControlCommand / mem.Cmd* memcontrolprotocol.Req / .Rsp / .Command / .Cmd*
vm.TranslationReq / vm.TranslationRsp vmprotocol.…
datamover.DataMoveRequest / …Response datamoverprotocol.…
VTimeInSec timing.VTimeInPicoSec

Plus the structural changes above: value-type messages, CanSend-guarded Send, and the declare/build/assign port pattern. The tutorials show all current conventions.

Known limitations

  • Checkpointing requires a SerialEngine and restoring with the same binary (build-id pinned); run with tracing off for deterministic resume.
  • This is a beta: APIs may still change before v5.0.0. Known candidates are tracked in sarchlab/akita-dev (#147, #136, #138).

v5.0.0-beta.1

18 Mar 00:12

Choose a tag to compare

v5.0.0-beta.1 Pre-release
Pre-release

Beta release of Akita v5

This pre-release contains the V5 rewrite of the Akita simulation framework.

Key changes from v4:

  • Module path updated to github.com/sarchlab/akita/v5
  • All packages moved to repository root (previously under v5/ directory)
  • New hooking package
  • Standardized control protocol for cache and memory components
  • Improved pipeline and middleware patterns

This is a pre-release. APIs may change before the stable v5.0.0 release.

v4.9.0

06 Dec 19:43
48a639c

Choose a tag to compare

What's Changed

  • Use AkitaRTM to control Daisen trace collection by @KaiyanM in #331

New Contributors

Full Changelog: v4.8.0...v4.9.0

v4.8.0

07 Nov 14:51
1795428

Choose a tag to compare

What's Changed

  • Lock toolchain versions: Go 1.24, Node.js 18.20.7, Python 3.10.15, and Go tools by @Copilot in #338
  • Bump vite from 6.3.6 to 6.4.1 in /monitoring/web by @dependabot[bot] in #344
  • Bump vite from 7.0.7 to 7.0.8 in /daisen/static by @dependabot[bot] in #343
  • Investigate correctness of unified memory fix for multi-GPU system by @MaxKev1n in #342
  • Simple Banked Memory by @syifan in #348

Full Changelog: v4.7.1...v4.8.0

v4.7.1

30 Sep 17:34
9bb3087

Choose a tag to compare

What's Changed

  • Bump vite from 6.2.7 to 6.3.6 in /monitoring/web by @dependabot[bot] in #318
  • Bump vite from 7.0.0 to 7.0.7 in /daisen/static by @dependabot[bot] in #317
  • 311 update tlb to use unified control protocol by @DX990307 in #320
  • Fix failing TLB unit test by adding missing mock expectations by @Copilot in #323
  • Duplicate Akita CLI for v5 components by @syifan in #325
  • Create queueingv5 package with struct-only buffer and pipeline implementations by @Copilot in #329
  • Frontend milestones by @YuanhuanO in #332

Full Changelog: v4.7.0...v4.7.1

v4.7.0

07 Sep 23:28
783ff0f

Choose a tag to compare

What's Changed

  • Only record the first milestone if one task has multiple milestones at the same time by @Copilot in #290
  • Add copilot-setup-steps.yml for structured development environment setup by @Copilot in #302
  • remove qurey function by @DX990307 in #303
  • Add milestone instrumentation to TLB by @YuanhuanO in #252
  • Start v5 development: Add examplesv5, migration guide, and update README by @Copilot in #306
  • Add idealmemcontrollerv5 (V5 Spec/State/Ports/Middlewares) by @syifan in #307
  • Add auto page allocation option to MMU with proper physical page management using ReverseLookup and page size validation by @Copilot in #300

Full Changelog: v4.6.1...v4.7.0

v4.6.1

26 Aug 19:07
3180b58

Choose a tag to compare

What's Changed

  • Fix linter version by @syifan in #259
  • Fix TLB hanging issue by @syifan in #260
  • Update acceptance tests by @sylvzhz in #265
  • 119 ideal memory ctrl on v4 by @DX990307 in #268
  • 253 tlb unit test by @DX990307 in #256
  • Daisen Bot v1.0 by @EnzeXu in #257
  • Update traffic class by @xuzhongwm in #270
  • Established component linter cli by @sylvzhz in #271
  • Fix PR #274 comments and CI errors: add panic protection, cleanup, and deprecation warnings by @Copilot in #275
  • Fix unit test error in #274: sort table names for deterministic output by @Copilot in #279
  • Add comprehensive GitHub Copilot instructions for Akita development by @Copilot in #277
  • Add SQLite database support for memory tracer using data recorder by @Copilot in #274
  • Fix CI errors in #281: Pin golangci-lint to v2.4.0 and resolve new linting rules by @Copilot in #282
  • Improve TLB and Address Translator Builder by @sajannat in #266
  • Daisen Bot v2.0: workshop ready by @EnzeXu in #272
  • Add WithOutputFileName method to simulation builder for custom output file names by @Copilot in #285
  • v4.6.1 by @syifan in #286

New Contributors

Full Changelog: v4.5.1...v4.6.1

v4.6.0

26 Aug 00:53
4d54d16

Choose a tag to compare

What's Changed

Full Changelog: v4.5.1...v4.6.0