2026-09-21T20:51:51.207990Z PL:POPLIN 1125237.1125237 D: Planning convolution with a per-tile memory limit of 383385.6 bytes across 1472 tiles. 2026-09-21T20:51:51.208074Z PL:POPLIN 1125237.1125237 D: Creating non-joint plan (NONE_MATMUL pass)... 2026-09-21T20:51:51.208084Z PL:POPLIN 1125237.1125237 D: Creating plan with objective { minimise cycles : tile temp memory bound = 383385B } 2026-09-21T20:51:51.332710Z PL:POPLIN 1125237.1125237 D: Found new best candidate plan using {"type":"AMP","convUnits":"16","convInputLoadElems":"4"}: Cost{cycles=81210, memory=231136, tiles=1472} 2026-09-21T20:51:51.368624Z PL:POPLIN 1125237.1125237 D: Found new best candidate plan using {"type":"AMP","convUnits":"16","convInputLoadElems":"4"}: Cost{cycles=50151, memory=121408, tiles=1472} 2026-09-21T20:51:51.384866Z PL:POPLIN 1125237.1125237 D: Found new best candidate plan using {"type":"AMP","convUnits":"16","convInputLoadElems":"4"}: Cost{cycles=33825, memory=72640, tiles=1472} 2026-09-21T20:51:51.638435Z PL:POPLIN 1125237.1125237 D: Evaluated a total of 11741541 constraints to find the best plan 2026-09-21T20:51:51.638517Z PL:POPLIN 1125237.1125237 D: Found best plan using {"type":"AMP","convUnits":"16","convInputLoadElems":"4"}: Cost{cycles=33825, memory=72640, tiles=1472}. 2026-09-21T20:51:51.638525Z PL:POPLIN 1125237.1125237 D: for input {1}x(729x16x72), kernel {1}, output = {1}x(729x16x729), pass=NONE_MATMUL 2026-09-21T20:51:51.638528Z PL:POPLIN 1125237.1125237 D: breakdown of memory and cycle estimates: 2026-09-21T20:51:51.638530Z PL:POPLIN 1125237.1125237 D: - total parallel split: 1472 2026-09-21T20:51:51.638532Z PL:POPLIN 1125237.1125237 D: - total serial split: 1 2026-09-21T20:51:51.638535Z PL:POPLIN 1125237.1125237 D: - broadcast operands before loop: 0 copy cycles, 0 exchange cycles, 0 bytes 2026-09-21T20:51:51.638538Z PL:POPLIN 1125237.1125237 D: - rearrangement before slice: 0 cycles, 0 bytes (0 overhead, 0 per-loop iteration) 2026-09-21T20:51:51.638539Z PL:POPLIN 1125237.1125237 D: - dynamic slice: 0 cycles, unknown bytes 2026-09-21T20:51:51.638542Z PL:POPLIN 1125237.1125237 D: - transform: 11313 copy cycles, 3553 exchange cycles, 23328 bytes (input 1268, weights 1280, output 11664) 2026-09-21T20:51:51.638545Z PL:POPLIN 1125237.1125237 D: - exchange: 10382 cycles, n/a bytes. (Input 7142, Weight 320, Reduce 2920 + 0) 2026-09-21T20:51:51.638547Z PL:POPLIN 1125237.1125237 D: - tile level transform: 0 cycles, 0 bytes 2026-09-21T20:51:51.638549Z PL:POPLIN 1125237.1125237 D: - inputs cast: 0 cycles, 0 bytes 2026-09-21T20:51:51.638551Z PL:POPLIN 1125237.1125237 D: - compute: 8577 cycles, 72640 bytes 2026-09-21T20:51:51.638552Z PL:POPLIN 1125237.1125237 D: - reduction: 0 cycles, 0 bytes 2026-09-21T20:51:51.638554Z PL:POPLIN 1125237.1125237 D: - dynamic update: 0 cycles, unknown bytes 2026-09-21T20:51:51.638556Z PL:POPLIN 1125237.1125237 D: - add in-place: 0 cycles, 0 bytes 2026-09-21T20:51:51.638557Z PL:POPLIN 1125237.1125237 D: - output cast: 0 cycles, 0 bytes 2026-09-21T20:51:51.638560Z PL:POPLIN 1125237.1125237 D: - total: 33825 cycles, 72640 bytes 2026-09-21T20:51:51.638579Z PL:POPLIN 1125237.1125237 D: Plan: transform #0 Transform: extraFieldDims 1 dilatePostConv {} swapOperands true expandDims {} outChanFlattenDims {} flattenDims {0,1,2} combineConvGroupsFactor 1 partition #0 Partition: fieldSplit {1,2} batchSplit 1 outChanSplit.serial 1 outChanSplit.parallel 46 kernelSplit {1,1} inChanSplit.serial 1 inChanSplit.parallel 1 convGroupSplit 16 fieldAxisGrainSize {1,1} inChanGrainSize 16 outChanGrainSize 16 types #0 Types: partialType half resultType half transform #1 Transform: extraFieldDims 0 dilatePostConv {} swapOperands false expandDims {} outChanFlattenDims {} flattenDims {} combineConvGroupsFactor 1 types #1 Types: partialType half resultType half convGroupsPerGroup 1 inChansPerGroup 16 partialChansPerGroup 16 method {"type":"AMP","convUnits":"16","convInputLoadElems":"4"} isJointPlan false startTile 0 linearizeTileDirection ASCENDING totalTiles 1472 broadcastInputBeforeLoop false 2026-09-21T20:51:51.638600Z PL:POPLIN 1125237.1125237 D: for params: Params: inputType half outputType half batchSize 729 numConvGroups 16 inputFieldShape {1} kernelShape {1} inputChannelsPerConvGroup 72 outputChannelsPerConvGroup 729 inputTruncationLower {0} inputTruncationUpper {0} inputDilation {1} inputPaddingLower {0} inputPaddingUpper {0} flipInput {0} kernelTruncationLower {0} kernelTruncationUpper {0} kernelDilation {1} kernelPaddingLower {0} kernelPaddingUpper {0} flipKernel {0} outputTruncationLower {0} outputTruncationUpper {0} stride {1} outputPaddingLower {0} outputPaddingUpper {0} outputFieldShape {1} 2026-09-21T20:51:51.638631Z PL:POPLIN 1125237.1125237 D: Options: availableMemoryProportion 0.6 pass NONE_MATMUL partialsType half interTilePartialsType float interIpuPartialsType float use128BitConvUnitLoad 0 planConstraints {} planConstraintsOutputFilename enableMultiStageReduce 1 enableFastReduce 0 remapOutputTensor 1 enableConvDithering 0 disableTransformations 0 insertTransformsCycleCountProgs 0 experimental.convTransformsEstimates 0 gatherConvOutput 0 experimental.slicVmac16 0 disableSRForAMPVertices 0 enableTileLevelExpandDims 0 Estimated cost {cycles 33825, temporary bytes 72640} Plan: transform #0 Transform: extraFieldDims 1 dilatePostConv {} swapOperands true expandDims {} outChanFlattenDims {} flattenDims {0,1,2} combineConvGroupsFactor 1 partition #0 Partition: fieldSplit {1,2} batchSplit 1 outChanSplit.serial 1 outChanSplit.parallel 46 kernelSplit {1,1} inChanSplit.serial 1 inChanSplit.parallel 1 convGroupSplit 16 fieldAxisGrainSize {1,1} inChanGrainSize 16 outChanGrainSize 16 types #0 Types: partialType half resultType half transform #1 Transform: extraFieldDims 0 dilatePostConv {} swapOperands false expandDims {} outChanFlattenDims {} flattenDims {} combineConvGroupsFactor 1 types #1 Types: partialType half resultType half convGroupsPerGroup 1 inChansPerGroup 16 partialChansPerGroup 16 method {"type":"AMP","convUnits":"16","convInputLoadElems":"4"} isJointPlan false startTile 0 linearizeTileDirection ASCENDING totalTiles 1472 broadcastInputBeforeLoop false