The GitHub Actions job "Lint" on tvm.git/tflite-range-dynamic-19412 has 
succeeded.
Run started by GitHub user Aharrypotter (triggered by Aharrypotter).

Head commit for run:
c1282345738bd0d21e64aa10e77e36120851ade5 / Aharrypotter 
<[email protected]>
[Relax][Frontend][TFLite] Support dynamic RANGE scalar bounds

Previously convert_range raised OpNotImplemented when start/limit/delta
were runtime (non-constant) scalar tensors, so any TFLite model that
computes RANGE bounds at runtime failed to import. This was one of the
"partial implementation" items tracked in apache/tvm#19412.

relax.op.arange only takes compile-time PrimExpr bounds, and its struct-info
length formula (InferTypeArange) has no negative-step branch, so feeding
symbolic bounds straight in would mis-declare descending ranges. Instead,
compute the element count in-graph and lift it to one symbolic output
dimension via relax.op.tensor_to_shape + match_cast (the bridge already used
by _get_shape_expr_from_tensor), so the declared and runtime lengths match by
construction. Values are rebuilt as arange(0, count) * delta + start. One
unified path covers both dtypes:

- int: count = -floor_divide(start - limit, delta), exact and sign-agnostic
  (no float-precision loss), equal to ceil((limit - start) / delta);
- float: count = ceil((limit - start) / delta).

No new Relax op is needed.

Replace the "not supported" test with a compile-and-run test covering
ascending/descending integer and float dynamic bounds.

Report URL: https://github.com/apache/tvm/actions/runs/28070582897

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to