Skip to content

Conversation

@IanWood1
Copy link
Contributor

@IanWood1 IanWood1 commented Oct 3, 2025

This change implements attribute and node for pointwise op types. This does not implement the ASM emitter for PointwiseNode. That will be done in a followup PR.

@codecov-commenter
Copy link

codecov-commenter commented Oct 3, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@b5c4821). Learn more about missing BASE report.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2416   +/-   ##
=======================================
  Coverage        ?   77.44%           
=======================================
  Files           ?      244           
  Lines           ?    23370           
  Branches        ?        0           
=======================================
  Hits            ?    18100           
  Misses          ?     5270           
  Partials        ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@IanWood1 IanWood1 marked this pull request as ready for review October 3, 2025 17:12
Copy link
Member

@sjain-stanford sjain-stanford left a comment

Choose a reason for hiding this comment

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

Thanks for the quick turnaround on this! Looks great.

I have a few comments, most of them are minor. I can give it another look once you've addressed them.

Comment on lines 229 to 233
auto filteredShapes = shapes | std::views::filter([](const auto &shape) {
return !shape.empty();
});
FUSILLI_RETURN_ERROR_IF(filteredShapes.empty(), ErrorCode::CompileFailure,
"All input shapes are empty");
Copy link
Member

Choose a reason for hiding this comment

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

(Non blocking comment, feel free to ignore)
A lot of the shape and stride utility functions in this file don't return an ErrorOr<> and instead use assertions, by shifting the actual checks into node / tensor pre-validations.

Even this check for empty shapes IMO can be moved to PointwiseNode::preValidateNode(). Then you can simply have an assertion here (to check that input shapes are not empty) which should be unreachable by virtue of this being called in inferPropertiesNode which always runs after preValidateNode.

I'm OK if you want to leave it like this too.

Copy link
Member

@sjain-stanford sjain-stanford left a comment

Choose a reason for hiding this comment

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

LGTM!

Signed-off-by: Ian Wood <[email protected]>
@IanWood1 IanWood1 merged commit 211bb50 into nod-ai:main Oct 7, 2025
54 of 55 checks passed
@sjain-stanford sjain-stanford linked an issue Oct 9, 2025 that may be closed by this pull request
IanWood1 added a commit that referenced this pull request Oct 9, 2025
Implements ASM emitter methods for `PointwiseNode`. This is a followup
to #2416.

---------

Signed-off-by: Ian Wood <[email protected]>
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.

[Fusilli] Pointwise ops - bias add, relu

4 participants