# SPDX-License-Identifier: Apache-2.0 """Shared device sub-networks of the Autoware ports (PLAN.md section 1.2), built from host (numpy) weights with BatchNorm already folded, on the C17 builders (``ttaw.ops.conv``: ``FeatureMap``, ``Conv2d``, ``KSplitConv``, ``ConvTranspose2d``); every op traceable, weights prepared by the first (eager) call. ================== ====== ========================================================================= module id what it provides ================== ====== ========================================================================= ``second`` C24 SECOND backbone and SECONDFPN neck (CenterPoint, PointPainting, TransFusion, BEVFusion); ``RowLinear`` (1x1 convs as ``ttnn.linear`` on NHWC rows) ``centerhead`` C25 CenterPoint dense head: K-split shared conv, merged sibling heads, one packed fp32 output ``pillars`` C24 PillarFeatureNet of the pillar detectors (CenterPoint, PointPainting, TransFusion): identity-folded split PFN on 32-slot pillar tiles, input packing, ``FrameStaging`` ``resnet`` C27 ResNet bottleneck / basic-block builders from a parameter provider, cameras as batch (BEVDet image backbone + CustomResNet; BEVFormer, METEOR) ``transfusion_head`` C26 TransFusion query head (TransFusion, BEVFusion, PTv3): C21 selection, query init with QPE / KPE tables, one decoder layer on C20, merged prediction heads ``sparse_encoder`` C28 gather-GEMM sparse-conv encoder (BEVFusion, PTv3): one tile-ordered TILE + PADDED gather + one matmul per layer on C13 rulebooks, residual blocks, two-term tables ================== ====== ========================================================================= Importing a module never imports ttnn / torch (rule of the package): device work happens in the layer calls. """ __all__ = ["second", "centerhead", "pillars", "resnet", "transfusion_head", "sparse_encoder"]