Release v0.9.9
Pre-release🚀 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-devandumd-pythonpackages
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-sccacheinput is used to easily gate sccache in situations where
we need to disable it.SCCACHE_BASEDIRSis 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_ENABLEDenabled GHA Cache as the storage provider.- Changing
SCCACHE_GHA_VERSIONeasily purges the existing cache. 1 is
a sentinel value I picked at random. SCCACHE_GHA_RW_MODEmakes 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.