-
Notifications
You must be signed in to change notification settings - Fork 22
Pgardner/unary bcast llk #919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for your contribution! 🚀 You can run tt-metal integration tests by adding the If you want to run metal post-commit tests, you can add the 📖 For more information, please refer to our CONTRIBUTING guide. |
1c75776 to
c24f022
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds ROW, SCALAR, and COL broadcast support for 32-bit data formats (Float32, Int32, UInt32) and UInt16 in the low-level kernel (LLK) library. The implementation targets both Wormhole B0 and Blackhole architectures.
Key Changes:
- Added broadcast type handling for ROW, SCALAR, and COL operations with unpack-to-dest support for 32-bit formats
- Refactored address register configuration logic to use dynamic register selection based on context
- Enhanced math datacopy operations with specialized D2B/B2D instruction sequences for different broadcast types and UInt16 format
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tt_llk_wormhole_b0/llk_lib/llk_unpack_A.h | Adds ROW/SCALAR/COL broadcast MOP configurations, refactors address register logic, adjusts semaphore timing, and updates unpacker x_end configuration for broadcast types |
| tt_llk_wormhole_b0/llk_lib/llk_math_eltwise_unary_datacopy.h | Implements broadcast-specific D2B/B2D instruction sequences, adds UInt16 handling for MOVB2D operations, configures address modes per format, and adds ADDR_MOD_3 initialization |
| tt_llk_wormhole_b0/common/inc/cunpack_common.h | Updates int8_math_enabled check to include UInt32 format and adds else clause to clear debug feature disable register |
| tt_llk_blackhole/llk_lib/llk_unpack_A.h | Mirrors Wormhole changes for Blackhole architecture including broadcast MOP configurations and address register refactoring |
| tt_llk_blackhole/llk_lib/llk_math_eltwise_unary_datacopy.h | Implements same broadcast D2B/B2D sequences and UInt16 handling as Wormhole version with Blackhole-specific FPU mode settings |
| tt_llk_blackhole/common/inc/cunpack_common.h | Adds else clause to clear debug feature disable register matching Wormhole implementation |
| tests/python_tests/test_bcast.py | New comprehensive test file covering ROW/SCALAR/COL broadcast types with supported formats including constraint filtering and golden reference generation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
771b574 to
dabd266
Compare
Co-authored-by: Copilot <[email protected]>
dabd266 to
ba0b7ba
Compare
…s before - maybe a timing change related to bit 11?
Ticket
tenstorrent/tt-metal#23354
Problem description
Adding ROW, COL, SCALAR unary_bcast for Float32, Int32, Uint32, Uint16
What's changed
New dataformat support
Type of change
Checklist