mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-10-28 08:31:25 +00:00
CANN: Mask unsupported TRANSPOSE_1D operator (#15733)
CANN currently does not support kernels larger than 255. This change disables such cases.
This commit is contained in:
@@ -2803,8 +2803,6 @@ void ggml_cann_conv_transpose_1d(ggml_backend_cann_context& ctx, ggml_tensor* ds
|
|||||||
aclIntArray *padding = aclCreateIntArray(paddingVal, 1);
|
aclIntArray *padding = aclCreateIntArray(paddingVal, 1);
|
||||||
int64_t dilationVal[] = {1};
|
int64_t dilationVal[] = {1};
|
||||||
aclIntArray *dilation = aclCreateIntArray(dilationVal, 1);
|
aclIntArray *dilation = aclCreateIntArray(dilationVal, 1);
|
||||||
bool transposed = true;
|
|
||||||
int64_t groups = 1;
|
|
||||||
int8_t cubeMathType = 0;
|
int8_t cubeMathType = 0;
|
||||||
|
|
||||||
#ifdef ASCEND_310P
|
#ifdef ASCEND_310P
|
||||||
@@ -2812,7 +2810,7 @@ void ggml_cann_conv_transpose_1d(ggml_backend_cann_context& ctx, ggml_tensor* ds
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
GGML_CANN_CALL_ACLNN_OP(ctx, Convolution, acl_input, acl_weight, nullptr, stride,
|
GGML_CANN_CALL_ACLNN_OP(ctx, Convolution, acl_input, acl_weight, nullptr, stride,
|
||||||
padding, dilation, transposed, padding, groups, acl_dst, cubeMathType);
|
padding, dilation, true, padding, 1, acl_dst, cubeMathType);
|
||||||
|
|
||||||
ggml_cann_release_resources(ctx, acl_weight, acl_dst, stride, padding, dilation);
|
ggml_cann_release_resources(ctx, acl_weight, acl_dst, stride, padding, dilation);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2479,12 +2479,14 @@ static bool ggml_backend_cann_supports_op(ggml_backend_dev_t dev,
|
|||||||
case GGML_OP_ARGMAX:
|
case GGML_OP_ARGMAX:
|
||||||
case GGML_OP_COS:
|
case GGML_OP_COS:
|
||||||
case GGML_OP_SIN:
|
case GGML_OP_SIN:
|
||||||
case GGML_OP_CONV_TRANSPOSE_1D:
|
|
||||||
case GGML_OP_LOG:
|
case GGML_OP_LOG:
|
||||||
case GGML_OP_MEAN:
|
case GGML_OP_MEAN:
|
||||||
case GGML_OP_PAD_REFLECT_1D:
|
case GGML_OP_PAD_REFLECT_1D:
|
||||||
case GGML_OP_COUNT_EQUAL:
|
case GGML_OP_COUNT_EQUAL:
|
||||||
return true;
|
return true;
|
||||||
|
case GGML_OP_CONV_TRANSPOSE_1D:
|
||||||
|
// TODO: ((weightL - 1) * dilationW - padLeft)=1336 should not be larger than 255.
|
||||||
|
return (op->src[0]->ne[0] - 1) <= 255;
|
||||||
case GGML_OP_SCALE:
|
case GGML_OP_SCALE:
|
||||||
float bias;
|
float bias;
|
||||||
memcpy(&bias, (const float *)(op->op_params) + 1, sizeof(float));
|
memcpy(&bias, (const float *)(op->op_params) + 1, sizeof(float));
|
||||||
|
|||||||
Reference in New Issue
Block a user