Skip to content

Add python gpu impl - #2

Merged
coderfeli merged 2 commits into
mainfrom
add_python_gpu_impl
Nov 25, 2025
Merged

coderfeli merged 2 commits into
mainfrom
add_python_gpu_impl

Conversation

@coderfeli

Copy link
Copy Markdown
Collaborator

Motivation

Technical Details

Test Plan

Test Result

Submission Checklist

@coderfeli
coderfeli merged commit b7bd8da into main Nov 25, 2025
@coderfeli
coderfeli deleted the add_python_gpu_impl branch December 4, 2025 01:32
coderfeli added a commit that referenced this pull request May 24, 2026
The previous ``hasattr(num_records_bytes, "ir_value")`` check passed
through any fx Numeric type unchanged -- including ``fx.Int32`` and
``fx.Int32 * int`` arithmetic results.  ROCDL ``make.buffer.rsrc``
requires an i64 ``num_records`` operand, so feeding it an i32 fx value
fails the op verifier with:

    operand #2 must be 64-bit signless integer, but got 'i32'

Always wrap in ``Int64(...)``, which is idempotent for already-Int64
inputs and handles Python int / other Integer / raw ir.Value (i32,
index, float) by emitting the appropriate extension / cast (same
logic as ``Integer.__init__``).

In-tree callers all pass Python ints today so the bug is latent, but
the API allows fx-typed inputs; this prevents silent invalid IR for
future runtime-shape kernels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jhinpan referenced this pull request in jhinpan/FlyDSL-lab Jun 30, 2026
…l branches

Two issues raised in review:

1. docs.yml concurrency (review #1): the group `gh-pages-deploy` was shared
   across push(main) / push(ci_dashboard) / pull_request, and the comment said
   "serialize" while `cancel-in-progress: true` actually cancels in-flight runs.
   A PR build could cancel an in-progress main deploy. Qualify the group by
   `github.event_name` + `github.ref` so a PR never cancels a main/ci_dashboard
   deploy and the two push refs don't cancel each other; fix the comment to
   describe the real (supersede) semantics.

2. ingest.py resolve_pr was dead code (review #2): list_runs hardcoded
   branch=main, and `?branch=` filters on head_branch, so only push-to-main runs
   were ever scanned — every run's event was `push`, so resolve_pr returned None
   on the second line and history `pr` was always null. The dashboard's app.js
   has a full per-PR view that depends on this field. Fix the data source: scan
   all branches by default (no branch filter) so PR runs are included and
   resolve_pr can attach PR numbers; add an optional --branch to restrict.

Tests: add list_runs coverage (default no-filter vs explicit branch). 21 pass.
coderfeli added a commit that referenced this pull request Jul 12, 2026
…docs

#2 (stride): replace the ambiguous 0 sentinel for the outer_stride state field
with INT32_MIN. Now an explicit 0 (broadcast) stride is expressible, and the
dangerous case — a tile with a *dynamic* outer stride whose outer_stride state
was left unset — no longer silently falls back to stride 0 (whole-tile broadcast
reading wrong data); instead the unset sentinel propagates to an out-of-range
descriptor stride that faults. Static-layout tiles still fall back to the
compile-time layout stride. Python default + docstring updated to match.

#1 (phantom operand): document that the copy_atom_call global operand is a
shape/direction token only — its pointer is unused; the base address comes from
the `base` state field. Noted in the op doc (CopyAtom.td) and make_tdm_atom.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
coderfeli added a commit that referenced this pull request Jul 12, 2026
Review follow-ups from #830/#832:

- #3 signed integer WMMA: add signA/signB/clamp params to MmaOpGFX1250_WMMAType
  (default false). Threaded into the iu8 (ModsABClamp) and iu4 (ModsIUClamp)
  emit variants; the float paths ignore them and verify() rejects them there.
  Wired through the Python binding (sign_a/sign_b/clamp kwargs) and WMMA()
  (forwards them on the gfx12/gfx1250 path instead of raising). Adds a signed
  iu4 FileCheck + a sign-on-float negative verifier test.

- #2 device test: use make_tiled_copy_B (not _A) for the B operand in the
  scaled-WMMA test (was incidentally correct for the symmetric 16x16 case).

- #1 rank-1 TDM: verified NOT a bug — a rank-1 TDM lowers to a single whole-tile
  tensor.load.to.lds (tile0=128); no change needed.

Builds; gfx1250 wmma/mma_scale/tdm/neg FileCheck (incl. new signed iu4 + neg),
the copy/layout regression sweep, and the l0 atom unit test pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
loctxmoreh added a commit to loctxmoreh/FlyDSL that referenced this pull request Jul 18, 2026
f16 split-K HGEMM works on gfx90a (glc-scope coherence); bf16 split-K (SPLIT_K>1)
fail-fasts (no packed bf16 atomic). Mark TODO ROCm#2 done, move split-K to the
supported column in the triage + prebuilt-kernels compat table + CLAUDE.md arch
row, refresh triage counts (1071 passed / 2293 skipped, 2026-07-18). Both gfx90a
follow-ups (int8, split-K) are now complete; remaining gaps are hardware-fundamental.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant