bool count_include_pad = true;
int64_t divisor_override = 0;
int8_t cube_math_type = 0;
+#ifdef ASCEND_310P
+ cube_math_type = 1;
+#endif
+
GGML_CANN_CALL_ACLNN_OP(AvgPool2d, acl_src, kernel_size, strides, paddings_avg,
ceil_mode, count_include_pad, divisor_override,
cube_math_type, acl_dst);
int64_t groups = 1;
int8_t cubeMathType = 0;
+#ifdef ASCEND_310P
+ cubeMathType = 1;
+#endif
+
GGML_CANN_CALL_ACLNN_OP(Convolution, acl_input, acl_weight, nullptr, stride,
padding, dilation, transposed, padding, groups, acl_dst, cubeMathType);
return true;
case GGML_TYPE_Q8_0:
case GGML_TYPE_Q4_0:
+#ifdef ASCEND_310P
+ // Q4 && Q8 per group is not suppor on 310p device
+ return false;
+#endif
// only support contiguous for quantized types.
return ggml_is_contiguous(op->src[0]) &&
ggml_is_contiguous(op->src[1]);
}
case GGML_OP_POOL_2D: {
const int32_t * opts = (const int32_t *) op->op_params;
+#ifdef ASCEND_310P
+ enum ggml_op_pool opt = static_cast<ggml_op_pool>(opts[0]);
+ if(opt == GGML_OP_POOL_MAX){
+ return false;
+ }
+#endif
const int k0 = opts[1];
const int k1 = opts[2];
const int p0 = opts[5];