Skip to content

Commit b43d89e

Browse files
authored
CANN: Add 310P operator support check (#12962)
1 parent 80f19b4 commit b43d89e

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

ggml/src/ggml-cann/aclnn_ops.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,10 @@ static void ggml_cann_avg_pool2d(ggml_backend_cann_context& ctx,
625625
bool count_include_pad = true;
626626
int64_t divisor_override = 0;
627627
int8_t cube_math_type = 0;
628+
#ifdef ASCEND_310P
629+
cube_math_type = 1;
630+
#endif
631+
628632
GGML_CANN_CALL_ACLNN_OP(AvgPool2d, acl_src, kernel_size, strides, paddings_avg,
629633
ceil_mode, count_include_pad, divisor_override,
630634
cube_math_type, acl_dst);
@@ -2590,6 +2594,10 @@ void ggml_cann_conv_transpose_1d(ggml_backend_cann_context& ctx, ggml_tensor* ds
25902594
int64_t groups = 1;
25912595
int8_t cubeMathType = 0;
25922596

2597+
#ifdef ASCEND_310P
2598+
cubeMathType = 1;
2599+
#endif
2600+
25932601
GGML_CANN_CALL_ACLNN_OP(Convolution, acl_input, acl_weight, nullptr, stride,
25942602
padding, dilation, transposed, padding, groups, acl_dst, cubeMathType);
25952603

ggml/src/ggml-cann/ggml-cann.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -2022,6 +2022,10 @@ static bool ggml_backend_cann_supports_op(ggml_backend_dev_t dev,
20222022
return true;
20232023
case GGML_TYPE_Q8_0:
20242024
case GGML_TYPE_Q4_0:
2025+
#ifdef ASCEND_310P
2026+
// Q4 && Q8 per group is not suppor on 310p device
2027+
return false;
2028+
#endif
20252029
// only support contiguous for quantized types.
20262030
return ggml_is_contiguous(op->src[0]) &&
20272031
ggml_is_contiguous(op->src[1]);
@@ -2107,6 +2111,12 @@ static bool ggml_backend_cann_supports_op(ggml_backend_dev_t dev,
21072111
}
21082112
case GGML_OP_POOL_2D: {
21092113
const int32_t * opts = (const int32_t *) op->op_params;
2114+
#ifdef ASCEND_310P
2115+
enum ggml_op_pool opt = static_cast<ggml_op_pool>(opts[0]);
2116+
if(opt == GGML_OP_POOL_MAX){
2117+
return false;
2118+
}
2119+
#endif
21102120
const int k0 = opts[1];
21112121
const int k1 = opts[2];
21122122
const int p0 = opts[5];

0 commit comments

Comments
 (0)