-
Notifications
You must be signed in to change notification settings - Fork 34
[NetworkDeployer] Node Mangling to avoid duplication #93
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
|
Also, please do not forget to adjust the CHANGELOG ;) (This is also a note to me) |
|
@viv-eth Any plans to work on this in the next 2 weeks? Alternatively, I can offer to take it over, but will most likely include it in the next release. |
6a33901 to
fffe9c7
Compare
Xeratec
left a comment
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.
Please rebase the PR and make sure to extend the CHANGELOG in the right place. Otherwise, the changes are good. Thanks a lot!
fffe9c7 to
e0828c4
Compare
e0828c4 to
4e903b4
Compare
Xeratec
left a comment
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.
The changes were added under v0.2.0 and not under v0.2.1. I did change it and merge once the tests succeed.
* [NetworkDeployer] Mangle these n...odes * [DeeployTypes] Only mangle on duplicates * Update changelog --------- Co-authored-by: viv-eth <vivianep@iis.ee.ethz.ch>
* [NetworkDeployer] Mangle these n...odes * [DeeployTypes] Only mangle on duplicates * Update changelog --------- Co-authored-by: viv-eth <vivianep@iis.ee.ethz.ch>
This release includes improvements to the tiling and DMA code generation, new networks and operators, improved CI workflows, migration to PyTest, and support for PyPi package releases. Note: Since the release tag references the Docker container tagged with the release tag (ghcr.io/pulp-platform/deeploy:v0.2.1), the CI will initially fail. The Deeploy Docker image must be built after the release PR is merged and the CI restarted. ### List of Pull Requests - PyPi Package Deployment + Remove Banshee Dept [#154](#154) - PyTest Migration [#144](#144) - Update submodule `pulp-nn-mixed` [#145](#145) - Improve Profiling [#138](#138) - FP32 ReduceMean operator improvement [#137](#137) - Support for RMSNorm (Pow and Sqrt operators) [#136](#136) - Demo TinyViT compatibility with tiled Siracusa [#124](#124) - TinyViT on non-tiled Siracusa [#117](#117) - Support Fully Asynchronous DMAs [#114](#114) - Disallow shape inference [#128](#128) - Remove memory-aware node bindings [#123](#123) - Fix missing const's layout transformation and refactor NCHWtoNHWC passes [#122](#122) - Fix aliasing [#125](#125) - Support for 1D Autoencoder [#98](#98) - Refactor Logging for Improved Debugging [#115](#115) - Add reuse-tool as an SPDX license header linter [#113](#113) - Bug fixes, API Cleanup and Reduce Compiler Warning on PULP [#112](#112) - Fix PULP GEMM `batch` serialization [#109](#109) - Split CI Workflows by Platform and Task, Improve Formatting and Linting Reliability [#108](#108) - Refactor tiling code generation [#105](#105) - Change order of typeMatching entries [#68](#68) - Node Mangling to avoid duplication [#93](#93) - Prepare Post v0.2.0 Release [#104](#104) - Use Docker digests instead of arch-specific tags [#106](#106) - Fix `Unsqueeze` Op. when using ONNX opset 13 or higher (from attribute to input) [#119](#119) - Fix bias hoisting in generic GEMM with no bias [#126](#126)
This patch introduces a node‐name mangling pass in the Deploy front end to ensure every node in the graph has a unique, non‐empty name. Previously, nodes generated by
GraphSurgeonwithout an explicit name would collide, causing later layers to overwrite earlier layer bindings. With this change, each node is automatically assigned a name based on its operation and an incrementing counter, guaranteeing uniqueness and preserving all layer bindings.Added
DeployTypes._mangleNodeNames(self)helper that:"{op_name}_{idx}", using the op’s class or string reprself._mangleNodeNames()infrontEnd()immediately after tensor‐name manglingChanged
DeployTypes.frontEnd()to call_mangleNodeNames()before renaming graph inputs/outputsFixed
"", so no two nodes share the same namePR Merge Checklist
develcommit and pointing todevel.CHANGELOG.mdfile has been updated.