Skip to content

Release v0.9.9

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Jul 17:03
8f2f3d2

🚀 Release v0.9.9

📦 What's Included

C++ Build Artifacts

Contains: Compiled C++ libraries, public headers, CMake config files, and dependencies.

System Packages (.deb / .rpm)

  • Ubuntu 22.04: DEB packages are attached under Assets
  • Ubuntu 24.04: DEB packages are attached under Assets
  • Ubuntu 24.04 (arm64): DEB packages are attached under Assets
  • Fedora 39: RPM packages are attached under Assets
  • Includes: umd-runtime, umd-dev and umd-python packages

Python Wheels

  • manylinux_2_28 wheels for Python 3.9-3.13 (x86_64 and aarch64)
  • Compatible with Ubuntu 20.04+, RHEL 8+, and other modern Linux distributions
  • Includes Python bindings for tt-umd
  • PyPI: https://pypi.org/project/tt-umd/

🚀 Release Notes for v0.9.9

Changed

  • Release notes for version 0.9.9 not found in CHANGELOG file.

📋 Pull Requests Summary

  • Bump version from 0.9.8 to 0.9.9 (#3002)
  • Add fix for harvested core issue (#3001)
  • Temporarily disable exalens tests on p150 (#3006)
  • Temporarily disable P300-viommu (#3005)
  • Cluster: discover ttsim cluster descriptor from simulator directory (#2954)
  • TTDevice: allow supplying SocDescriptor at remote create() (#2953)
  • Unify simulation get_io_window behind a create_tlb_window hook (#2916)
  • Refactor simulation cluster options handling in tests (#2972)
  • Update fan telemetry for 19.10 (#2957)
  • Introduce sccache for build-tests.yml using GHA Cache (#2976)
  • Fix false-positive NOC hangs from the per-op MMIO timeout (#2996)
  • Switch P300 CI runner from bh-gh-7 to P300-viommu (#2994)
  • Add Blackhole runtime telemetry buffer accessors (#2965)
  • Move destructive hang tests into a dedicated test target (#2968)
  • Temporarily disable bh-gh-7 in test blacklist (#2992)
  • Disable exalens tests on n300 (#2980)
  • Modify ETH_LIVE_STATUS-based APIs to be precise and add harvesting utility for BH (#2856)
  • Fix dead-store in scalar PCIe memcpy timeout accounting (#2966)
  • Add basic ttsim microbenchmark tests (#2964)

📝 Detailed Pull Request Information

Bump version from 0.9.8 to 0.9.9 (#3002)

Author: Aleksandar Djordjevic | Date: 2026-07-09 | Commit: 8f2f3d2

We need fix for noc hang detection so our CI becomes stable.

Add fix for harvested core issue (#3001)

Author: Nenad Buncic | Date: 2026-07-09 | Commit: 6cf1936

test_remote_tt_device hardcoded noc_read32(9, 0, 0), which is a DRAM
endpoint on NOC0. On SKUs where that bank is harvested (e.g. Blackhole
p100 → d9-0), the read hits a dead endpoint and aborts with
DeviceTimeoutError. Now it reads a live Tensix core sourced from the
SoC descriptor, matching the other tests in the file.

Temporarily disable exalens tests on p150 (#3006)

Author: Aleksa Jovanovic | Date: 2026-07-09 | Commit: dad9e94

No description section found.

Temporarily disable P300-viommu (#3005)

Author: Aleksa Jovanovic | Date: 2026-07-09 | Commit: 52fd690

Temporarily disable P300-viommu for PRs and merge queue due to recent
failures in CI.

Cluster: discover ttsim cluster descriptor from simulator directory (#2954)

Author: Pavle Janevski | Date: 2026-07-09 | Commit: c3a1898

Discover an optional cluster_descriptor.yaml beside a ttsim .so
(mirroring the soc_descriptor.yaml convention) and build a constrained
ClusterDescriptor from it. When the file is present, the simulator's
soc_descriptor.yaml is also resolved so each chip's SocDescriptor is
built from simulator-provided data rather than a default arch
descriptor. Behaviour is unchanged when the file is absent.

TTDevice: allow supplying SocDescriptor at remote create() (#2953)

Author: Pavle Janevski | Date: 2026-07-08 | Commit: ad368d1

Add an optional, defaulted SocDescriptor to the remote
TTDevice::create() overload. A remote TTDevice is normally
initialized over ARC, which constructs its SocDescriptor; simulated
remote chips have no ARC to probe, so the caller can supply the
descriptor directly. Silicon callers are unaffected. The parameter is
temporary and should be removed once ttsim provides a mocked ARC.

Unify simulation get_io_window behind a create_tlb_window hook (#2916)

Author: Pavle Janevski | Date: 2026-07-08 | Commit: de06404

Third step toward a common implementation for the RTL and TTSim
simulation TTDevice backends, stacked on #2914. This PR unifies the
TLB window setup. The get_io_window logic (TLB index allocation, size
resolution, QUASAR bypass) and the constructor TLB helpers move into
SimulationTTDevice; the only backend-specific part — building the
concrete TlbHandle/TlbWindow — is delegated to a new
create_tlb_window hook.

Refactor simulation cluster options handling in tests (#2972)

Author: Aleksa Jovanovic | Date: 2026-07-08 | Commit: 4e8b454

Extract the simulator ClusterOptions setup into shared test helpers so
it can be reused across test suites, following up on a review comment.

Update fan telemetry for 19.10 (#2957)

Author: Aleksa Marković | Date: 2026-07-08 | Commit: 501f638

Update fan speed and fan RPM telemetry methods in FirmwareInfoProvider

Introduce sccache for build-tests.yml using GHA Cache (#2976)

Author: Aleksa Marković | Date: 2026-07-08 | Commit: af2c355

Introduce sccache for build-tests.yml using GHA Cache.

  • SCCache is obtained by
    sccache-action,
    seamlessly downloads it in the environment.
  • use-sccache input is used to easily gate sccache in situations where
    we need to disable it.
  • SCCACHE_BASEDIRS is used to cut the absolute paths used by SCCache
    and make the cache shareable with other environments, like /localdev
    which situate tt-umd on a different absolute path.
  • SCCACHE_GHA_ENABLED enabled GHA Cache as the storage provider.
  • Changing SCCACHE_GHA_VERSION easily purges the existing cache. 1 is
    a sentinel value I picked at random.
  • SCCACHE_GHA_RW_MODE makes the cache read-only when the workflow is
    not being run on main. PRs will fill the cache pretty quickly with
    artifacts that probably won't be used very often.
  • SCCache is wired in with CMake cache options.

Fix false-positive NOC hangs from the per-op MMIO timeout (#2996)

Author: Pavle Janevski | Date: 2026-07-08 | Commit: f948c9f

The per-op MMIO timeout (#2629) reported false-positive NOC hangs on
healthy devices whenever the budget was set low (e.g. exalens' 2 ms).
Two mechanisms were at play. First, a TLB window with no hang detector
wired left an empty timeout callback, so any overrun aborted with
DeviceTimeoutError on time alone — nothing distinguished a
slow-but-healthy op from a genuinely hung one. Second, the
hang-detector's own NOC-liveness probe reads through exactly such a
no-hang-check window; when the budget sat below the probe read's latency
the probe itself timed out and was interpreted as a hang, so a healthy
device threw NocHangError during device init.
The fix defaults a no-hang-check window to treating every overrun as a
false alarm, so a bare per-op timeout never aborts on time alone and the
probe read completes and is judged by value (HANG_READ_VALUE) rather
than by elapsed time. With the probe no longer time-sensitive, the
default budget no longer needs headroom for it, so it is lowered back to
2 ms, and the probe reader no longer swallows a DeviceTimeoutError as
a hang.

Switch P300 CI runner from bh-gh-7 to P300-viommu (#2994)

Author: William Ly | Date: 2026-07-08 | Commit: 0001961

No description section found.

Add Blackhole runtime telemetry buffer accessors (#2965)

Author: Alexander Nash | Date: 2026-07-07 | Commit: 7dbc912

This branch adds accessors to read the Blackhole runtime telemetry
buffer's address and size from ARC scratch RAM, exposing where firmware
publishes runtime telemetry data.

Move destructive hang tests into a dedicated test target (#2968)

Author: Aleksa Jovanovic | Date: 2026-07-07 | Commit: 5fa2498

Move the destructive NOC hang tests into their own test target so they
no longer run on every CI pass.

Temporarily disable bh-gh-7 in test blacklist (#2992)

Author: Aleksa Jovanovic | Date: 2026-07-07 | Commit: 6749e78

Temporarily disable bh-gh-7 since it is offline from unknown reasons.

Disable exalens tests on n300 (#2980)

Author: Aleksa Marković | Date: 2026-07-06 | Commit: 7f881d9

Temporarily disable exalens tests on n300 due to NOC0 hang bug during
discovery in exalens tests. Pending investigation.

Modify ETH_LIVE_STATUS-based APIs to be precise and add harvesting utility for BH (#2856)

Author: Nenad Buncic | Date: 2026-07-06 | Commit: 3d9d653

Makes the ETH status APIs core-precise: each status is now paired with
its ETH core's NOC0 coord, sized correctly per arch (16 WH / 14 BH),
plus a helper to filter harvested cores.

Fix dead-store in scalar PCIe memcpy timeout accounting (#2966)

Author: Copilot | Date: 2026-07-03 | Commit: 3e7c9e1

Clang Static Analyzer (deadcode.DeadStores) flagged a real dead store
in device/pcie/device_memcpy.cpp: remaining = 0 in scalar read/write
helpers was written but never meaningfully consumed.
This change removes the redundant write pattern while preserving
timeout-guard semantics for single-word MMIO operations.

// before
std::size_t remaining = sizeof(value);
...
remaining = 0;
timer.record_and_check(t, sizeof(value));
// after
std::size_t remaining = 0;
...
timer.record_and_check(t, sizeof(value));

Add basic ttsim microbenchmark tests (#2964)

Author: Aleksa Jovanovic | Date: 2026-07-03 | Commit: d8cd928

Add basic cluster open and read/write microbenchmark for TTSim.



This release was automatically generated when the VERSION file was updated.
Release notes were extracted from CHANGELOG file.