[NE16] Add GAP9_w_NE16 platform: NE16 accelerator Engine on GAP9#183
Open
runwangdl wants to merge 14 commits intopulp-platform:develfrom
Open
[NE16] Add GAP9_w_NE16 platform: NE16 accelerator Engine on GAP9#183runwangdl wants to merge 14 commits intopulp-platform:develfrom
runwangdl wants to merge 14 commits intopulp-platform:develfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the NE16 neural engine as an accelerator Engine on top of the existing GAP9 platform, registered as a new composite platform
GAP9_w_NE16that mirrors theSiracusa_w_neurekapattern.Added
Deeploy/Targets/NE16/— full Target:Platform.py(NE16Platform extends GAP9Platform, engines=[NE16Engine, GAP9ClusterEngine]),Engine.py,Bindings.py,Parsers.py,Tiler.py,Deployer.py(extends GAP9Deployer to reuse ClDma transformers),Templates/{Allocate,Conv}Template.py,TileConstraints/{NE16Pointwise,NE16Depthwise,NE16Dense}Constraint.py,TopologyOptimizationPasses/Passes.py(incl._weightEncodeported frompulp-nnx/test/Ne16Weight.py).DeeployTest/deeployRunner_tiled_gap9_w_ne16.pyandDeeployTest/test_gap9_ne16_tiled_config.py— new runner + minimal test config covering PW 1x1, DW 3x3, Dense 3x3 RQ Conv.TargetLibraries/GAP9/CMakeLists.txt— forGAP9_w_NE16platform,add_subdirectoryonpulp-nnxwithUSE_NE16=ONand link it intodeeploygap9.Changed
DeeployTest/testUtils/platformMapping.py— registerGAP9_w_NE16in the platforms list,mapPlatform,setupMemoryPlatform, andmapDeployer.DeeployTest/testMVP.py— includeGAP9_w_NE16in theEngineColoringDeployerWrapperbranch (without it,NE16AdjustWeightMemoryLayoutPassnever fires and parsing backtracks).DeeployTest/testUtils/core/execution.py— build the GAP9 SDKimagetarget forGAP9_w_NE16too (sochip.soc.mram.binis produced beforegvsoc run).CMakeLists.txt,DeeployTest/CMakeLists.txt— acceptGAP9_w_NE16alongsideGAP9in the platform branches.Deeploy/Targets/NE16/Templates/ConvTemplate.py— swap Neureka-inherited subtile constants for NE16 spec perne16_task_defs.h:CIN_SUBTILE32/28 → 16 (single mode), output6→3, per-(cout,cinMajor) weight bytes PW 16, DW/Dense 144.Fixed
Deeploy/Targets/PULPOpen/Templates/FloatGemmTemplate.py— work around a pre-existingImportError: cannot import name 'float32_tPtr' from 'Deeploy.AbstractDataTypes'by defining it locally viaPointerClass(float32_t).Test plan
Ran on gvsoc
gap9.evk(insideghcr.io/pulp-platform/deeploy-gap9:devel), full pipelinegen -> parse -> lower -> codegen -> CMake -> build -> gapy image -> gvsoc flash run:Kernels/Integer/Conv/PW_2D_RQ/Regular_RQKernels/Integer/Conv/DW_2D_RQ(--enable-3x3)Kernels/Integer/Conv/Regular_2D_RQ(--enable-3x3)Follow-up (out of scope for this PR): PW
Unsigned_RQvariant currently produces non-zero errors — likely unsigned weight-offset orout_typeconf0 handling; tracked separately.PR Merge Checklist
develcommit and pointing todevel.CHANGELOG.mdfile has been updated.