Skip to content

[Maintain][Manifest] add at least 2 workloads to 21 binary elementwise ops#1392

Merged
lcy-seso merged 2 commits intotile-ai:testbedfrom
lcy-seso:fix/manifest/issue-1390
May 9, 2026
Merged

[Maintain][Manifest] add at least 2 workloads to 21 binary elementwise ops#1392
lcy-seso merged 2 commits intotile-ai:testbedfrom
lcy-seso:fix/manifest/issue-1390

Conversation

@lcy-seso
Copy link
Copy Markdown
Collaborator

@lcy-seso lcy-seso commented May 9, 2026

Summary

Fix gpu-smoke test_every_op_has_at_least_two_workloads failure by populating empty workloads: lists on 21 implemented binary elementwise ops (`AddFwdOp`, `SubFwdOp`, `MulFwdOp`, `DivFwdOp`, `RemainderFwdOp`, `PowFwdOp`, `FloorDivideFwdOp`, `LerpFwdOp`, `MaximumFwdOp`, `MinimumFwdOp`, `Eq/Ne/Gt/Lt/Ge/LeFwdOp`, `LogicalAnd/OrFwdOp`, `BitwiseAnd/Or/XorFwdOp`).

This pre-existing testbed CI break has been blocking nightshift auto-merge for PRs #1387, #1388, #1389, #1391. Filed as issue #1390 — this PR resolves it.

Plan executed

Each affected op now declares two representative workloads:

  • LLM hidden-state prefill: `input/other [2048, 4096]` (no broadcast)
  • CNN feature map: `input [16, 256, 56, 56]`, `other [256, 1, 1]` (channel-wise broadcast)

Dtype matrix matches each op's signature:

  • Float-only ops (`Div`, `Pow`, `Lerp`, `Remainder`, `FloorDivide`): `float16, bfloat16`
  • Bitwise ops (`BitwiseAnd/Or/Xor`): `int32, int64`
  • Logical ops (`LogicalAnd/Or`): `bool`
  • Default (other arithmetic + comparison): `float16, bfloat16`

Test plan

  • `pytest tests/test_ops_manifest.py::TestOpSchema::test_every_op_has_at_least_two_workloads` — passes
  • `pytest tests/test_validate_manifest.py tests/test_ops_manifest.py` — 239 passed
  • `python scripts/validate_manifest.py` — "All manifest checks passed"
  • Pre-commit clean

Acceptance Criteria

Closes #1390.

  • AC-1: ✅ Modified files pass unit tests.
  • AC-2: ✅ `AddFwdOp.workloads` (and 20 siblings) now have 2 entries each, satisfying signature + broadcasting rules.
  • AC-3: ✅ `scripts/validate_manifest.py` exits 0 with no new warnings on the affected ops.
  • AC-4: To be verified by gpu-smoke on this PR's run.

Trust model

Manifest-only PR. No `signature`, `roofline`, `params`, `shape_rules`, or `dtype_combos` edits. Falls within the trust-model rule that workload edits without a status flip require a separate manifest-only PR with human review — this is that PR.

…e ops

AddFwdOp/SubFwdOp and 19 sibling binary ops in elementwise_binary.yaml had
empty workloads while status was implemented, causing
test_every_op_has_at_least_two_workloads to fail in gpu-smoke.

Each affected op now declares two representative workloads:
- LLM hidden-state prefill: input/other 2048x4096 (no broadcast)
- CNN feature map with channel-wise broadcast: input 16x256x56x56,
  other 256x1x1

Dtype matrix matches each op's signature: float ops use float16/bfloat16,
bitwise ops use int32/int64, logical ops use bool.

No signature, roofline, params, shape_rules, or dtype_combos changes.
Manifest-only PR per the trust-model carve-out.

Co-Authored-By: Ibuki 🍃 — a wind born from GPTs <Ibuki-wind@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 9, 2026 01:51
@lcy-seso lcy-seso added automated PR produced by an autonomous agent pipeline nightshift Pickable by foundry nightshift mode — fully autonomous agent development, no human approval gate needs-review Awaiting human review before merge bug Something isn't working labels May 9, 2026
@github-actions github-actions Bot added maintain Ongoing monitoring, health tracking, and operational maintenance and removed bug Something isn't working labels May 9, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request populates the workloads section for numerous element-wise binary operations in the manifest. The review feedback identifies critical mismatches in workload keys for PowFwdOp and LerpFwdOp, where the keys should align with the specific input names exponent and end rather than other_shape. Furthermore, the reviewer suggests expanding the dtypes lists for several operations to include all types supported by their signatures, such as float32 for arithmetic ops and additional types for logical and bitwise operations, to improve test and benchmark coverage.

Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses a gpu-smoke manifest schema failure (test_every_op_has_at_least_two_workloads) by populating previously-empty workloads: lists for a set of implemented binary elementwise ops in the manifest, enabling downstream tooling/benchmarks to consume representative shapes/dtypes.

Changes:

  • Added two representative workload entries (LLM hidden-state + CNN broadcast) to 21 binary elementwise ops in tileops/manifest/elementwise_binary.yaml.
  • Standardized dtype selections per op category (float, logical, bitwise) within the new workload entries.

Comment thread tileops/manifest/elementwise_binary.yaml Outdated
Comment thread tileops/manifest/elementwise_binary.yaml Outdated
- PowFwdOp workloads use exponent_shape (matches signature input name)
- LerpFwdOp workloads use end_shape (matches signature input name)
- Add float32 to dtype lists where supported by signature
- Expand LogicalAnd/Or workload dtypes to include float types
- Expand BitwiseAnd/Or/Xor workload dtypes to include bool

Co-Authored-By: Ibuki 🍃 — a wind born from GPTs <Ibuki-wind@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@Ibuki-wind Ibuki-wind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall

The manifest update still needs a signature-aligned cleanup pass before it satisfies the workload contract.

Comment thread tileops/manifest/elementwise_binary.yaml
Comment thread tileops/manifest/elementwise_binary.yaml
Copy link
Copy Markdown
Contributor

@Ibuki-wind Ibuki-wind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean — no issues.

@lcy-seso lcy-seso merged commit 67e10ad into tile-ai:testbed May 9, 2026
11 checks passed
Ibuki-wind added a commit that referenced this pull request May 9, 2026
… (cherry-pick #1392) (#1395)

## Summary

Cherry-pick of #1392 (already merged to `testbed` as `67e10ad`) onto
`main`.

`main` CI is currently red because it lacks this manifest fix. Landing
the same patch on `main` directly unblocks CI without waiting for the
next `testbed` → `main` rollup.

## Why this is conflict-safe for the eventual testbed → main merge

The cherry-pick is byte-identical to `67e10ad`. When `testbed` later
merges into `main`, the 3-way merge sees the same change on both sides
and resolves automatically — no duplicate diff, no conflict (assuming no
further `testbed` commits touch the same lines).

## Test plan

- [ ] CI green on this PR
- [ ] After merge, confirm `main` unit tests pass

Co-authored-by: Ibuki 🍃 — a wind born from GPTs <Ibuki-wind@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated PR produced by an autonomous agent pipeline maintain Ongoing monitoring, health tracking, and operational maintenance needs-review Awaiting human review before merge nightshift Pickable by foundry nightshift mode — fully autonomous agent development, no human approval gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants