|
|
|
@ -104,6 +104,7 @@ int ArithmeticFP16CPUKernel::Init() {
|
|
|
|
|
arithmetic_run_ = ElementSubFp16;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Div:
|
|
|
|
|
switch (arithmeticParameter_->activation_type_) {
|
|
|
|
|
case schema::ActivationType_RELU:
|
|
|
|
@ -116,32 +117,46 @@ int ArithmeticFP16CPUKernel::Init() {
|
|
|
|
|
arithmetic_run_ = ElementDivFp16;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_FloorMod:
|
|
|
|
|
arithmetic_run_ = ElementFloorModFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_FloorDiv:
|
|
|
|
|
arithmetic_run_ = ElementFloorDivFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LogicalAnd:
|
|
|
|
|
arithmetic_run_ = ElementLogicalAndFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LogicalOr:
|
|
|
|
|
arithmetic_run_ = ElementLogicalOrFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_SquaredDifference:
|
|
|
|
|
arithmetic_run_ = ElementSquaredDifferenceFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Maximum:
|
|
|
|
|
arithmetic_run_ = ElementMaximumFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Minimum:
|
|
|
|
|
arithmetic_run_ = ElementMinimumFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_NotEqual:
|
|
|
|
|
arithmetic_run_ = ElementNotEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Equal:
|
|
|
|
|
arithmetic_run_ = ElementEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Less:
|
|
|
|
|
arithmetic_run_ = ElementLessFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LessEqual:
|
|
|
|
|
arithmetic_run_ = ElementLessEqual;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Greater:
|
|
|
|
|
arithmetic_run_ = ElementGreaterFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_GreaterEqual:
|
|
|
|
|
arithmetic_run_ = ElementGreaterEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
MS_LOG(ERROR) << "Error Operator type " << op_parameter_->type_;
|
|
|
|
|
arithmetic_run_ = nullptr;
|
|
|
|
@ -219,42 +234,55 @@ int ArithmeticFP16CPUKernel::ReSize() {
|
|
|
|
|
case PrimitiveType_FloorMod:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptFloorModFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_FloorDiv:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptFloorDivFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LogicalAnd:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptLogicalAndFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LogicalOr:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptLogicalOrFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_SquaredDifference:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptSquaredDifferenceFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Maximum:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptMaximumFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Minimum:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptMinimumFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_NotEqual:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptNotEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Equal:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Less:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptLessFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_LessEqual:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptLessEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_Greater:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptGreaterFp16;
|
|
|
|
|
break;
|
|
|
|
|
case PrimitiveType_GreaterEqual:
|
|
|
|
|
arithmeticParameter_->broadcasting_ = false;
|
|
|
|
|
arithmetic_opt_run_ = ElementOptGreaterEqualFp16;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|