Define experimental RowFn contracts - #9386
Conversation
Merging this PR will degrade performance by 11.89%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | compress_fsst[(1000, 64, 8)] |
1 ms | 1.2 ms | -11.94% |
| ❌ | WallTime | words_gather_scalar[65536] |
8.3 µs | 9.4 µs | -11.83% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ct/row-fn-types (da08e03) with develop (c17e058)
Footnotes
-
89 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
5549426 to
be53543
Compare
be53543 to
83a8e70
Compare
83a8e70 to
87fc948
Compare
87fc948 to
0d24650
Compare
There was a problem hiding this comment.
Can we name this differently to plan. Its more like a Execution Receiver (or accept)?
There was a problem hiding this comment.
I feel like these names are not that much better, really what we want to express is that it is almost like a type checking phase, but it also verifies the flags.
Maybe VerifyRows or VerifyVisitor or something similar?
There was a problem hiding this comment.
Actually no it does do more than verification, it plans how to execute everything (do we use dense, do we prefilter, how do we handle errors, etc). Though I agree that plan can be a bit misleading
c02fe9d to
ff686a9
Compare
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
f41282a to
da08e03
Compare
Rationale for this change
RowFnAPI #9129RowFnover Vortex arrays #9130Defines the unstable author-facing
RowFncontracts. The execution backend is split into #9353.What changes are included in this PR?
Adds the
unstable_row_fnsfeature boundary,RowFnand visitor traits, typed input and output contracts, tuple adapters, planning, and the blanketScalarFnVTablescaffold.execute_rowsremains a temporary error until #9353 adds the backend.What APIs are changed? Are there any user-facing changes?
Adds
vortex_array::scalar_fn::unstable::rowbehind the non-defaultunstable_row_fnsfeature. The API has no compatibility guarantees.