Impl/topic16 - #65
Impl/topic16#65FeelTheBeats wants to merge 6 commits into
Conversation
🤖 AI Code Review
📁
|
…lementwise ops - lower shaped-destination elementwise ops (add/sub/mul/div/neg/exp/relu/ gelu/sigmoid) through a per-element buffer loop instead of emitting a scalar definition for a float* destination (illegal IR) - reject tensor-op operands whose element count cannot satisfy the loop (scalar spill buffers were read out of bounds by dot/matmul/gemm/conv/ maxpool/softmax) - softmax: iterate over prod(shape[:-1]) rows with a full prod(shape) buffer; only axis=-1 is supported - reject mixed ret <value>/ret void and inconsistent return types - reject opcodes without a lowering (transpose/concat) - reject structured loops whose condition cannot change (DSL static SSA semantics would emit a non-terminating loop)
- F1: lock static-SSA DSL values (nested for 2.0, loop-carried 4.0), if/else merge structural check, while condition reassignment raises - F2: tensor-dest asm + lli numerics for unary/binary elementwise ops - F3: scalar operands with multi-element tensor ops raise; 1-element degeneration still numerics-tested - F4: 2D softmax all-rows numeric, row loop/full buffer structure, non-last axis raises - F5: mixed return types raise for both parsers; uniform returns assemble - F7: transpose/concat negative tests - F9: conv pad/stride, gemm trans_b non-square, matmul non-square, maxpool stride2, softmax tolerance, for step=2, trans_a negative
- design doc: drop the false 9.0 expectation for the DSL nested-for case, add the 5.7 known-limitations table (static SSA variable semantics, while guard, if/else merge), document per-row softmax and the fail-loud boundary list - dev doc: update the scalar-operand risk entry, record the stage-2 fix summary and remaining known limitations
No description provided.