Skip to content

Fix Neureka#188

Draft
marchioa wants to merge 16 commits into
pulp-platform:develfrom
FondazioneChipsIT:am/neureka
Draft

Fix Neureka#188
marchioa wants to merge 16 commits into
pulp-platform:develfrom
FondazioneChipsIT:am/neureka

Conversation

@marchioa

@marchioa marchioa commented May 4, 2026

Copy link
Copy Markdown
Contributor

Current implementation of Neureka has a few bugs that need to be fixed. This PR wants to fix those bugs and provide some test to check the functionality. Most changes are related to the tiler for Dense and DW Convolutions.

Added

  • tests for Regular and DW Conv2D with 3x3 kernel (current tests are not 3x3 so it does not trigger 3x3 mode)
  • engine-aware DW lowering pass NeurekaNCHWtoNHWCDwConvPass which apply the weight layout depending on the engine.

Changed

  • Refactor the topology optimization pass NeurekaReshapePointwiseConvolutionPass
  • in _requantized_gemm_to_pw_fun, add a guard on mul and add shapes to check if they are consistent with PW output channels.

Fixed

  • Neureka's output-channels subtile size (in ConvTemplate)
  • Dense/DW/PW tile constraints
  • in _createIOBindings, set _live = True on network input and output buffers. They are externally allocated and effectively reserved for the whole inference (mirroring ConstantBuffer, which already hardcodes _live = True). This makes has_live_aliases() correctly see them as live, so any buffer aliasing a network I/O tensor is no longer deallocated while the I/O tensor is still in use.
  • latent bug in has_live_aliases(): visited = set(self.name) built a set of the name's characters instead of {self.name}

PR Merge Checklist

  1. The PR is rebased on the latest devel commit and pointing to devel.
  2. Your PR reviewed and approved.
  3. All checks are passing.
  4. The CHANGELOG.md file has been updated.
  5. If the docker was modified, change back its link after review.

@marchioa marchioa force-pushed the am/neureka branch 2 times, most recently from d0ed93d to 5081593 Compare June 4, 2026 07:42
marchioa added 8 commits June 30, 2026 11:12
…te conv layers

- in parser, weights are contrained to have 3 dimensions. That is correct for PW only. DW and Dense require 4 dimensions. The fix allows weights with 4 dimensions for DW and Dense.
- in tiler, again only 3-dim weights for PW is supported. Add support for 4-dim weights for DW and Dense.
- in test-runner, arguments for neureka are ignored. Add support for `enable-3x3` and `neureka-wmem` arguments.
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.

1 participant