Aidge export ARM Cortex-M#

When imported automatically update availables implementations for aidge core objects.

Available implementations#

Supported operators: ✔️ Yes (∇ = grad), ✅ Generic impl., ☑️ MetaOp impl., ❌ No#

Operator (⧖ = custom prod. conso.)

Support

Impl specs
(— = any ; ✱ = additional requirements)

✅

1. — — → — —

✅

1. — —1 → — —1

✅

1. — — → boolean —

✅

1. float32 — → int64 —

❌

✅

1. float32 — → float32 —

❌

AvgPooling1D

✅

1. — nwc → — nwc
AvgPooling2D

✅

1. — nhwc → — nhwc
AvgPooling3D

❌

BatchNorm2D

✅

1. float32 nchw → float32 nchw
BitErrorRate

❌

BitShift

✅

1. — — → — —
CastLike

✅

1. — — → — —

✅

1. — — → — —

❌

✅

1. — — → — —
ComplexToInnerPair

✅

1. — — → — —

✅

1. — — → — —
ConnectedComponentLabeling

❌

ConstantOfShape

❌

✔️

1. — nwc | — nwc | — — → — nwc
Conv1DAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmConv1DAct)
1. — nwc | — nwc | — — → — nwc

✔️

1. — nhwc | — nhwc | — — → — nhwc

❌

ConvAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmConvAct)
1. — nhwc | — nhwc | — — → — nhwc
ConvDepthWise1D

❌

ConvDepthWise2D

✔️

1. — nhwc | — nhwc | — — → — nhwc
ConvDwAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvDw.ArmConvDwAct)
1. — nhwc | — nhwc | — — → — nhwc
ConvTranspose1D

✔️

1. — nwc | — nwc | — — → — nwc
ConvTranspose1DAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmConvTranspose1DAct)
1. — nwc | — nwc | — — → — nwc
ConvTranspose2D

✔️

1. — nhwc | — nhwc | — — → — nhwc
ConvTranspose2DAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmConvTranspose2DAct)
1. — nhwc | — nhwc | — — → — nhwc
ConvTranspose3D

❌

❌

❌

CryptoHash

❌

DepthToSpace

❌

✅

1. complex64 — → complex64 —

✅

1. — —1 → — —1
DropBlock

❌

Dropout

❌

✅

1. — — → boolean —
2. — — → — —

✅

1. float32 — → float32 —

✅

1. — — → — —

❌

✔️

1. — default | — — | — — → — —
2. — nhwc | — — | — — → — —
FCAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.Fc.ArmFCAct)
1. — default | — — | — — → — —
2. — nhwc | — — | — — → — —
FixedNBitFlip

❌

Flatten

❌

❌

❌

GatherElements

❌

GatherND

❌

✅

1. — — → — —
GlobalAveragePooling

✅

1. — nhwc → — nhwc
Greater

✅

1. — — → — —
GreaterOrEqual

✅

1. — — → — —
GridSample

❌

Hardmax

✅

1. float32 — → float32 —
HardSigmoid

✅

1. float32 — → float32 —
Heaviside

❌

Identity

✅

1. — — → — —
InnerPairToComplex

✅

1. float32 — → complex64 —
InstanceNorm

✅

1. float32 nchw → float32 nchw
2. float32 ncw → float32 ncw
LeakyReLU

✅

1. — — → — —

✅

1. — — → — —
LessOrEqual

✅

1. — — → — —

✅

1. float32 — → float32 —
LogSoftmax

❌

❌

✅

1. — ncdhw | — ncdhw → — ncdhw
2. — nchw | — nchw → — nchw
3. — chw | — chw → — chw
4. — default | — default → — default

✅

1. —1 —1 → —1 —1
MaxPooling1D

✅

1. —or_packed_last_1 nwc → —or_packed_last_1 nwc | — nwc
2. — nwc → — nwc
MaxPooling2D

✅

1. —or_packed_last_1 nhwc → —or_packed_last_1 nhwc | — nhwc
2. — nhwc → — nhwc
MaxPooling3D

❌

Memorize

✅

1. —1 —1 | —1 —1 → —1 —1 | —1 —1

✅

1. —1 —1 → —1 —1

❌

✅

1. — —1 → — —1
NBitFlip

❌

✅

1. — — → — —
NonMaxSuppression

❌

NonZero

❌

✅

1. boolean — → boolean —

❌

✅

1. — — → —or_packed_last —
PadConv
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmPadConv)
1. — nhwc | — nhwc | — — → — nhwc
PadConv1D
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmPadConv1D)
1. — nwc | — nwc | — — → — nwc
PadConvAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmPadConvAct)
1. — nhwc | — nhwc | — — → — nhwc
PadConvDw
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvDw.ArmPadConvDw)
1. — nhwc | — nhwc | — — → — nhwc
PadConvDwAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvDw.ArmPadConvDwAct)
1. — nhwc | — nhwc | — — → — nhwc
PadConvTranspose1D
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose1D)
1. — nwc | — nwc | — — → — nwc
PadConvTranspose1DAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose1DAct)
1. — nwc | — nwc | — — → — nwc
PadConvTranspose2D
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose2D)
1. — nhwc | — nhwc | — — → — nhwc
PadConvTranspose2DAct
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose2DAct)
1. — nhwc | — nhwc | — — → — nhwc
PaddedConv1D
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmPadConv1D)
1. — nwc | — nwc | — — → — nwc
PaddedConv2D
(aidge_export_arm_cortexm._Aidge_Arm.operators.Conv.ArmPadConv)
1. — nhwc | — nhwc | — — → — nhwc
PaddedConvDepthWise2D
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvDw.ArmPadConvDw)
1. — nhwc | — nhwc | — — → — nhwc
PaddedConvTranspose1D
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose1D)
1. — nwc | — nwc | — — → — nwc
PaddedConvTranspose2D
(aidge_export_arm_cortexm._Aidge_Arm.operators.ConvTranspose.ArmPadConvTranspose2D)
1. — nhwc | — nhwc | — — → — nhwc

✅

1. — nchw → — nchw

✅

1. —1 — → —1 —

✅

1. — —1 → — —1
Producer

✅

1. —or_packed_last — → —or_packed_last —
QFC
(aidge_export_arm_cortexm._Aidge_Arm.operators.Fc.ArmQFC)
1. — default | — — | — — → — —
2. — nhwc | — — | — — → — —
Quantizer
(aidge_export_arm_cortexm._Aidge_Arm.operators.Quantizer.QuantizerArm)
1. — — → — —
RandomNormalLike

❌

❌

Reciprocal

✅

1. float32 — → float32 —
ReduceMax

✅

1. — — → — —
ReduceMean

✅

1. — — → — —
ReduceMin

✅

1. — — → — —
ReduceSum

✅

1. — — → — —

✅

1. — — → — —
Reshape

✅

1. — default → — default

✅

1. — nhwc | — — | — — | — — → — nhwc

✅

1. float32 — → float32 —
Scatter

✅

1. — — → — —
SDLayerNorm

✅

1. float32 — → float32 —
2. int4 — → int4 —
3. int8 — → int8 —
4. int16 — → int16 —
5. int32 — → int32 —
SDShiftGELU

✅

1. float32 — → float32 —
2. int4 — → int4 —
3. int8 — → int8 —
4. int16 — → int16 —
5. int32 — → int32 —
SDShiftmax

✅

1. float32 — → float32 —
2. int4 — → int4 —
3. int8 — → int8 —
4. int16 — → int16 —
5. int32 — → int32 —
SDShiftSiLU

✅

1. float32 — → float32 —
2. int4 — → int4 —
3. int8 — → int8 —
4. int16 — → int16 —
5. int32 — → int32 —

✅

1. — — → — —

✅

1. — — → int64 —
Sigmoid

✅

1. — — → — —

❌

❌

❌

❌

✅

1. — — → — —
Softmax

✅

1. float32 — → float32 —

✅

1. — — → — —

✅

1. float32 — → float32 —
Squeeze

✅

1. — — → — —

✅

1. —1 — | int64 — → —1 —

❌

✅

1. — —1 → — —1

✅

1. —1 —1 → —1 —1
SVMRegressor

✅

1. float32 — → float32 —

✅

1. — — → — —

❌

✅

1. — — → — —

❌

Transpose

✅

1. — — → — —

❌

Unfold2D

✅

1. — nchw → — default

✅

1. —or_packed_last — → — —
Unsqueeze

✅

1. — — → — —

✅

1. — — → — —

CMSIS-NN implementations#

Supported operators: ✔️ Yes (∇ = grad), ✅ Generic impl., ☑️ MetaOp impl., ❌ No#

Operator (⧖ = custom prod. conso.)

Support

Impl specs
(— = any ; ✱ = additional requirements)
AvgPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
AvgPooling2D

✔️

1. int8 nhwc → int8 nhwc
ConvAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 nhwc | int32 — → int8 nhwc
ConvDwAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 chwn | int32 — → int8 nhwc
FCAct
(aidge_core.MetaOperator)

☑️

1. int8 — | int8 — | int32 — → int8 —
GlobalAveragePooling

✔️

1. int8 nhwc → int8 nhwc
GlobalAvgPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
MaxPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
MaxPooling2D

✔️

1. int8 nhwc → int8 nhwc
PadAvgPool
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadAvgPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadConv
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 nhwc | int32 — → int8 nhwc
PadConvAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 nhwc | int32 — → int8 nhwc
PadConvDw
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 chwn | int32 — → int8 nhwc
PadConvDwAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 chwn | int32 — → int8 nhwc
PaddedAvgPooling2D
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PaddedMaxPooling2D
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadGlobalAvgPool
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadGlobalAvgPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadMaxPool
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
PadMaxPoolAct
(aidge_core.MetaOperator)

☑️

1. int8 nhwc → int8 nhwc
QAdd
(aidge_core.MetaOperator)

☑️

1. int8 — | int8 — → int8 —
QAddAct
(aidge_core.MetaOperator)

☑️

1. — — → — —
QConv
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 nhwc | int32 — → int8 nhwc
QConvDw
(aidge_core.MetaOperator)

☑️

1. int8 nhwc | int8 chwn | int32 — → int8 nhwc
QFC
(aidge_core.MetaOperator)

☑️

1. int8 — | int8 — | int32 — → int8 —
Quantizer
(aidge_core.MetaOperator)

☑️

1. — — → — —