[TOC]
HIAI foundation致力于 AI on any devices。从易用性角度上来说,我们提供的算子功能基本不存在限制,但是从性能的使用角度上来说,我们会基于我们的算子实现方式给出对应IR的最优性能使用指导。
IR算子 | 最优性能使用指导 | 推荐使用指数 |
---|---|---|
Activation | 当前性能硬件最优 | ☆☆☆☆☆ |
HardSwish | 当前性能硬件最优 | ☆☆☆☆☆ |
PRelu | 当前性能硬件最优 | ☆☆☆☆☆ |
BNInference | 当前性能硬件最优。 Conv(depthwise)+Bn组合使用时,会进行图融合优化抵消。 |
☆☆☆☆☆ |
Convolution | (1)当Cin和Cout是16的倍数时性能最优,达到NPU最大规格算力。 (2)当Cin和Cout小于16时,硬件算力按照: (Cin*Cout) / 256 * max computer power 折算 |
☆☆☆☆☆ |
QuantizedConvolution | (1)当Cin和Cout是32的倍数时性能最优,达到NPU最大规格算力。 (2)当Cin和Cout小于32时,硬件算力按照: (Cin*Cout) / 1024 * max computer power 折算 |
☆☆☆☆☆ |
ConvTranspose | (1)当Cin和Cout是16的倍数时性能最优,达到NPU最大规格算力。 (2)当Cin和Cout小于16时,硬件算力按照: (Cin*Cout) / 256 * max computer power 折算 (3)当前针对kennel 1X1,2X2,3X3,8X8有针对性优化性能最优。 |
☆☆☆☆☆ |
BiasAdd | NA,当前性能硬件最优。 Conv(depthwise)+BiasAdd组合使用时,会进行图融合优化抵消。 |
☆☆☆☆☆ |
Eltwise | NA,当前性能硬件最优 | ☆☆☆☆☆ |
LRN | 当前性能硬件较优 (1)计算过程中计算均值方差,计算量较大,性能差于batchNorm。 (2)主要用于图像增强,对精度计算较敏感,NPU使用FP16计算有些场景存在精度风险。 |
☆☆☆ |
ConvolutionDepthwise | 当前性能硬件最优。 | ☆☆☆☆☆ |
QuantizedConvolutionDepthwise | 当前性能硬件最优。 | ☆☆☆☆☆ |
FullyConnection | 性能受DDR带宽bound,非算力受限算子,算法设计时合理配置权重大小。 | ☆☆☆☆☆ |
QuantizedFullyConnection | 性能受DDR带宽bound,非算力受限算子,算法设计时合理配置权重大小。 | ☆☆☆☆☆ |
PoolingD | 当前性能硬件最优。 | ☆☆☆☆☆ |
FractionalPooling | 性能较差;算子中存在随机数生成器,不是规则的vector运行,仅功能支持。 | ☆ |
Scale | NA,当前性能硬件最优。 Conv(depthwise)+Scale组合使用时,会进行图融合优化抵消。 |
☆☆☆☆☆ |
ShuffleChannel | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
ShuffleChannelV2 | 为了适配支持ANN场景算子,性能较差,仅支持功能。 | ☆ |
Softmax | 当前性能硬件最优。 4维输入,axis=1,基于C通道做softmax时性能最优。 |
☆☆☆☆☆ |
TopK | 为了适配支持ANN场景算子,性能较差,仅支持功能。 | ☆ |
LogSoftmax | 当前性能硬件最优。 | ☆☆☆☆☆ |
Rank | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
ScatterNd | 非规则数据搬移,性能较差,不建议模型过多使用。 | ☆☆☆ |
FakeQuantWithMinMaxVarsPerChannel | 当前性能硬件最优。 | ☆☆☆☆☆ |
StopGradient | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
LogicalXor | 当前性能硬件最优。 | ☆☆☆☆☆ |
Threshold | 当前性能硬件最优。 | ☆☆☆☆☆ |
AxisAlignedBboxTransform | 当前性能硬件最优。 | ☆☆☆☆☆ |
Clipboxes | 当前性能硬件最优。 | ☆☆☆☆☆ |
Normalize | 当前性能硬件最优。 | ☆☆☆☆☆ |
DecodeBBox | 当前性能硬件最优。 | ☆☆☆☆☆ |
PSROIPooling | 当前性能硬件最优。 | ☆☆☆☆☆ |
SVDF | 当前性能硬件最优。 | ☆☆☆☆☆ |
ReduceMean | 当前性能硬件最优。 | ☆☆☆☆☆ |
LayerNorm | 当前性能硬件较优 (1)计算过程中计算均值方差,计算量较大,性能差于batchNorm。 (2)主要用于图像增强,对精度计算较敏感,NPU使用FP16计算有些场景存在精度风险。 |
☆☆☆ |
InstanceNorm | 当前性能硬件较优 (1)计算过程中计算均值方差,计算量较大,性能差于batchNorm。 (2)主要用于图像增强,对精度计算较敏感,NPU使用FP16计算有些场景存在精度风险。 |
☆☆☆ |
ROIPooling | 当前性能硬件最优。 | ☆☆☆☆☆ |
PriorBox | 当前性能硬件最优。 | ☆☆☆☆☆ |
LSTM | 当前性能硬件最优,功能支持较窄。 使用限制见IR注释和实际构建过程报错日志 |
☆☆☆☆ |
BidirectionLSTM | 当前性能硬件最优,功能支持较窄。 使用限制见IR注释和实际构建过程报错日志 |
☆☆☆☆ |
IR算子 | 最优性能使用指导 | 推荐使用指数 |
---|---|---|
Add | 当前性能硬件最优。 | ☆☆☆☆☆ |
Mul | 当前性能硬件最优。 | ☆☆☆☆☆ |
Expm1 | 当前性能硬件最优。 | ☆☆☆☆☆ |
Ceil | 当前性能硬件最优。 | ☆☆☆☆☆ |
Sin | 性能较差 | ☆ |
Cos | 性能较差 | ☆ |
Floor | 当前性能硬件最优。 | ☆☆☆☆☆ |
Log1p | 当前性能硬件最优。 | ☆☆☆☆☆ |
LogicalAnd | 当前性能硬件最优。 | ☆☆☆☆☆ |
LogicalNot | 当前性能硬件最优。 | ☆☆☆☆☆ |
Maximum | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Minimum | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Acosh | 当前性能硬件最优。 | ☆☆☆☆☆ |
Asinh | 当前性能硬件最优。 | ☆☆☆☆☆ |
Equal | 当前性能硬件最优。 | ☆☆☆☆☆ |
Reciprocal | 当前性能硬件最优。 | ☆☆☆☆☆ |
Sqrt | 当前性能硬件最优。 | ☆☆☆☆☆ |
Square | 当前性能硬件最优。 | ☆☆☆☆☆ |
ReduceAllD | 当前性能硬件最优。 | ☆☆☆☆☆ |
CastT | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Sign | 当前性能硬件最优。 | ☆☆☆☆☆ |
Cosh | 当前性能硬件最优。 | ☆☆☆☆☆ |
Exp | 当前性能硬件最优。 | ☆☆☆☆☆ |
FloorMod | 当前性能硬件最优。 | ☆☆☆☆☆ |
GreaterEqual | 当前性能硬件最优。 | ☆☆☆☆☆ |
Greater | 当前性能硬件最优。 | ☆☆☆☆☆ |
Less | 当前性能硬件最优。 | ☆☆☆☆☆ |
MatMul | 当前性能硬件最优。 | ☆☆☆☆☆ |
RealDiv | 性能较差,建议等效成mul或者Reciprocal+mul | ☆ |
Rint | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Round | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Rsqrt | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Sinh | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
Sub | 当前性能硬件最优。 | ☆☆☆☆☆ |
Range | 模型构建时被优化掉。 | ☆☆☆☆☆ |
Acos | 当前性能硬件最优。 | ☆☆☆☆☆ |
Asin | 当前性能硬件最优。 | ☆☆☆☆☆ |
Atanh | 当前性能硬件最优。 | ☆☆☆☆☆ |
Log | 当前性能硬件最优。 | ☆☆☆☆☆ |
LogicalOr | 当前性能硬件最优。 | ☆☆☆☆☆ |
Neg | 当前性能硬件最优。 | ☆☆☆☆☆ |
ReduceProdD | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
ReduceSum | 当前性能硬件最优。 | ☆☆☆☆☆ |
Tan | 性能较差 | ☆ |
Power | 当前性能硬件最优。 | ☆☆☆☆☆ |
Pow | 性能较差 | ☆ |
ArgMaxExt2 | 当前性能硬件最优。 | ☆☆☆☆ |
FloorDiv | 性能较差,不建议使用 | ☆ |
NotEqual | 当前性能硬件最优。 | ☆☆☆☆☆ |
LessEqual | 当前性能硬件最优。 | ☆☆☆☆☆ |
ChannelAxpy | 当前性能硬件最优。 | ☆☆☆☆☆ |
SquaredDifference | 当前性能硬件最优。 | ☆☆☆☆☆ |
Atan | 当前性能硬件最优。 | ☆☆☆☆☆ |
SegmentMax | 数据无序重组计算,性能较差 | ☆ |
SegmentMin | 数据无序重组计算,性能较差 | ☆ |
SegmentMean | 数据无序重组计算,性能较差 | ☆ |
SegmentSum | 数据无序重组计算,性能较差 | ☆ |
SegmentProd | 数据无序重组计算,性能较差 | ☆ |
BatchMatMul | 当前性能硬件最优。 | ☆☆☆☆☆ |
ClipByValue | 当前性能硬件最优。 | ☆☆☆☆☆ |
L2Normalize | 当前性能硬件最优。 | ☆☆☆☆☆ |
ReduceMax | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
ReduceMin | Mate40手机性较优,老手机无性能优化,仅支持功能。 | ☆ |
IR算子 | 最优性能使用指导 | 推荐使用指数 |
---|---|---|
ConcatD | 当前性能硬件最优。 当Cin是16的倍数且Cout是16的倍数时,做图融合抵消,性能最优。 |
☆☆☆☆☆ |
FakeQuantWithMinMaxVars | 当前性能硬件最优。 | ☆☆☆☆☆ |
Reshape | 当前性能硬件最优。 有些场景算子会被融合抵消掉。 |
☆☆☆☆☆ |
SplitD | 当前性能硬件最优。 当Cin是16的倍数且Cout是16的倍数时,做图融合抵消,性能最优。 |
☆☆☆☆☆ |
SplitV | 由于是乱序的数据重排,性能较差。 | ☆ |
Unpack | 由于是乱序的数据重排,性能较差。 | ☆ |
Flatten | 由于是乱序的数据重排,性能较差。 | ☆ |
Slice | 由于是乱序的数据重排,性能较差。 | ☆ |
ExpandDims | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
GatherV2D | 由于是乱序的数据重排,性能较差。 | ☆ |
GatherNd | 由于是乱序的数据重排,性能较差。 | ☆ |
Pack | 由于是乱序的数据重排,性能较差。 | ☆ |
SpaceToDepth | 由于是乱序的数据重排,性能较差。 | ☆ |
DepthToSpace | 由于是乱序的数据重排,大部分场景性能较差。 针对4宫格场景(Cin=4,block=1)有特殊优化,性能较优 |
☆☆ |
StridedSlice | 由于是乱序的数据重排,性能较差。 | ☆ |
SpaceToBatchND | 由于是乱序的数据重排,性能较差。 | ☆ |
BatchToSpaceND | 由于是乱序的数据重排,性能较差。 | ☆ |
Tile | 由于是乱序的数据重排,性能较差。 | ☆ |
Size | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
Fill | 由于是乱序的数据重排,性能较差。 | ☆ |
InvertPermutation | 由于是乱序的数据重排,性能较差。 | ☆ |
Select | 仅支持功能。 | ☆☆ |
ReverseSequence | 由于是乱序的数据重排,性能较差。 | ☆ |
PadV2 | 针对HW方向补0的场景性能最优。 其他场景由于乱序的数据重排,性能较差。 |
☆☆☆ |
Squeeze | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
BatchReindex | 当前性能硬件最优。 | ☆☆☆☆☆ |
Pad | 针对HW方向补0的场景性能最优。 其他场景由于乱序的数据重排,性能较差。 |
☆☆☆ |
MirrorPad | 其他场景由于乱序的数据重排,性能较差。 | ☆ |
OneHot | 其他场景由于乱序的数据重排,性能较差。 | ☆ |
Shape | shape推导类算子,模型构建时即可抵消。 | ☆☆☆☆☆ |
Dequantize | 当前性能硬件最优。 | ☆☆☆☆☆ |
Quantize | 当前性能硬件最优。 | ☆☆☆☆☆ |
IR算子 | 最优性能使用指导 | 推荐使用指数 |
---|---|---|
Permute | 由于乱序的数据重排,虽然做了相关优化,但是硬件不适合过多此类操作。 | ☆☆☆ |
FSRDetectionOutput | 当前性能最优。 | ☆☆☆☆☆ |
DetectionPostprocessing | 当前性能最优。 | ☆☆☆☆☆ |
SSDDetectionOutput | 当前性能最优。 | ☆☆☆☆☆ |
IR算子 | 最优性能使用指导 | 推进使用指数 |
---|---|---|
ImageData DynamicImageData ImageCrop ImageChannelSwap ImageColorSpaceConvertion ImageResize ImageDataTypeConversion ImagePadding |
AIPP相关图形处理算子,性能硬件最优。 | ☆☆☆☆☆ |
CropAndResize | 仅功能支持,性能较差。 | ☆ |
ResizeBilinear ResizeBilinearV2 Interp |
大部分场景性能硬件最优,个别场景待优化。 | ☆☆☆☆☆ |
ResizeNearestNeighbor Upsample |
大部分场景性能硬件最优,个别场景待优化。 | ☆☆☆☆☆ |
Crop | 仅功能支持,性能较差。 | ☆ |
NonMaxSuppressionV3D | 仅功能支持,性能较差。 | ☆ |
当前NPU友好结构和推荐指数如下
以下推荐数据为OMG转换后模型运行得出;如果IR对接场景,需要确认无额外reshape或者permute冗余算子。
注意:这里的评价推进标准是基于NPU内部硬件利用率评价得出的,但是相对于其他计算架构(CPU、GPU)可能在同样不推荐的网络在GPU和CPU下也会有类似问题,所以这里推荐指标仅仅是自我对比,不一定是横向对比。
应用场景 | 网络类型 | 推荐指数 | 推荐说明 |
---|---|---|---|
分类网络 | AlexNet | ☆☆☆☆ | 全连接层权重较大,推理过程带宽受限。 |
VGG16 | ☆☆☆☆ | 全连接层权重较大,推理过程带宽受限。 | |
VGG19 | ☆☆☆ | 全连接层权重较大,推理过程带宽受限。 | |
ResNet18/34/50/101/152 | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近100% | |
GoogleNet | ☆☆☆☆ | 硬件算力利用率接近75% | |
InceptionV3 | ☆☆☆☆ | 硬件算力利用率接近85% | |
InceptionV4 | ☆☆☆☆ | 硬件算力利用率接近85% | |
Inception_Resnet_v2 | ☆☆☆☆ | 硬件算力利用率接近90% | |
Xception | ☆☆☆☆ | 硬件算力利用率接近85% | |
MobileNet_v1 | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
MobileNet_v2 | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
MobileNet_v3 | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
DenseNet | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
SqueezeNet | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
ShuffleNet_v1 ShuffleNet_v2 |
☆ | 存在大量shuffleChannel操作,本身是内存搬移操作,非计算受限。 此网络为带宽受限网络,shuffleChannel支持仅功能,性能不保证最优。 |
|
Resnext | ☆☆☆☆ | 硬件算力利用率接近85% | |
EfficientNet | ☆☆☆☆☆ | 模型权重大小适中,硬件算力利用率接近95% | |
SENet | ☆☆☆☆ | 硬件算力利用率接近75% | |
物体检测 | Faster_RCNN | ☆☆☆☆☆ | 硬件算力利用率接近85% |
SSD | ☆☆☆☆ | 硬件算力利用率接近85%,当前仅支持通过omg流程生成。 | |
FPN | ☆☆☆☆☆ | 硬件算力利用率接近90%,后处理不在模型中,又算法单独完成。 | |
语音分割 | FCN | ☆☆☆☆☆ | 硬件算力利用率接近85%,由于模型计算量较大,实际部署时要做参数裁剪。 |
Unet | ☆☆☆ | 硬件算力利用率接近60%。 | |
MarskRcnn | ☆☆ | 硬件算力利用率接近80%(仅限tf->om版本,IR对接方式不支持)。 | |
PSPNet | ☆☆☆ | 不支持pyramid pooling算子,可以通过多个pool等效,性能一般。 | |
DeeplabV3 | ☆☆☆ | 硬件算力利用率接近60%。 | |
超分 | VDSR | ☆☆☆☆☆ | 硬件算力利用率接近85%,可以达到实时超分要求。 |
SRCNN | ☆☆☆☆ | 硬件算力利用率接近70%,可以达到部分实时超分要求。 | |
DnCNN | ☆☆☆☆ | 硬件算力利用率接近65%,计算量较大,可以达到部分实时超分要求。 | |
DRCN | ☆☆☆☆ | 硬件算力利用率接近65%,计算量较大,可以达到部分实时超分要求。 | |
DRRN | ☆☆☆ | 硬件算力利用率接近60%,计算量较大,可以达到部分实时超分要求。 | |
EnhanceNet | ☆☆☆ | 硬件算力利用率接近60%,计算量较大,可以达到部分实时超分要求。 | |
FSRCNN | ☆☆☆☆ | 硬件算力利用率接近70%,可以达到部分实时超分要求。 | |
语音语义 | RNN | ☆☆ | 功能支持较为单一,场景有限。 |
LSTM | ☆☆ | 功能支持较为单一,场景有限。 | |
Transformer | ☆☆☆☆ | 硬件算力利用率接近70%,可以达到部分实时超分要求。 | |
Bert | ☆☆☆☆ | 硬件算力利用率接近70%,可以达到部分实时超分要求。 |