Skip to content

ACT-Backend v1.7

Choose a tag to compare

@DEVANSH-DVJ DEVANSH-DVJ released this 16 Oct 06:39
· 84 commits to master since this release
c9ade6a

Changes since v1.6, the TAIDL v2.13 pin:

  • Moved the tests to act-env py3.14-jax0.11.2 and the pin to TAIDL v2.13 (#90)
  • Checked formatting and linting in the workflow (#92)
  • Generated a backend's sources in the tree's own layout (#93)
  • Mapped the element types the e-graph has and refused the rest by name (#96)
  • Refused the constructs the generator does not read, naming each one (#103)
  • Renamed the examples to mini_trn and mini_trn_double (#104)
  • Removed the container of a stopped run of exec.sh (#106)
  • Let the docker scripts take --cpu and --cuda13 (#108)
  • Checked a kernel's binary operations, and checked the selector's files only once (#110)
  • Shortened the comments and docstrings (#111)
  • Split the kernel reader into modules and dropped the constant N (#112)
  • Made the docker scripts exit on a failed command or an unknown argument (#117)
  • Left no earlier crate when a generation is refused (#119)

This release:

  • The version is 1.7 in pyproject.toml, in act_backend/__init__.py and in the README's install line, and 1.7.0 in the generated crate's Cargo.toml and Cargo.lock.
  • This release pins TAIDL v2.13, and its tests install TAIDL-TO v2.6.
  • A spec is written in the form TAIDL v2.13 reads, with ENTRY { unnamed and input k as %In<k>, and a spec that TAIDL v2.13 refuses when it loads never reaches the backend.
  • A semantics may contain a rank-0 result, an attribute named by an operation word, or and the two shifts, a constant written as true or false, and thirteen element types, including pred, f16 and f32.
  • Generation raises ValueError, naming the instruction and what is refused, for an element type the e-graph lacks, an address attribute in a semantics, a computational attribute that a rewrite cannot read, a division by a constant zero, an input marked in place, a constraint, and machine state.
  • A refused generation leaves no crate from an earlier one under targets/<name>/backend/.
  • A kernel's binary operation that does not have exactly two operands ends the compile, which reports its operand count.
  • A generated backend's sources are laid out like the tree's own, and the workflow runs the tree's formatters in check mode and ruff's default lints before the tests.
  • docker/cleanup.sh and docker/run.sh --persistent exit with the status of a failed docker ps, and docker/cleanup.sh with the status of a failed docker rm.
  • The scripts write their errors to stderr, and docker/cleanup.sh refuses an argument it does not know.
  • The examples are now mini_trn and mini_trn_double, and their kernel's module is attention, which changes four lines of an assembly but no call.
  • Its 253 tests run against the installed wheel in devanshdvj/act-env:py3.14-jax0.11.2 with TAIDL-TO v2.6, on amd64 and arm64.