Skip to content

Commit 8342ec4

Browse files
committed
release tensorlist outside aclnn_concat
1 parent 004637b commit 8342ec4

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

ggml-cann/aclnn_ops.cpp

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,9 @@ void ggml_cann_leaky_relu(ggml_backend_cann_context& ctx, ggml_tensor* dst) {
137137
ACL_CHECK(aclDestroyTensor(acl_dst));
138138
}
139139

140-
void aclnn_concat(ggml_backend_cann_context& ctx, aclTensor *acl_src0,
141-
aclTensor *acl_src1, aclTensor *acl_dst, int64_t concat_dim,
140+
void aclnn_concat(ggml_backend_cann_context& ctx, aclTensorList* tensorList,
141+
aclTensor* acl_dst, int64_t concat_dim,
142142
ggml_tensor* bind_tensor) {
143-
144-
aclTensor* tensors[] = {acl_src0, acl_src1};
145-
aclTensorList* tensorList = aclCreateTensorList(tensors, 2);
146-
147143
uint64_t workspaceSize = 0;
148144
aclOpExecutor* executor;
149145
void* workspaceAddr = nullptr;
@@ -157,12 +153,6 @@ void aclnn_concat(ggml_backend_cann_context& ctx, aclTensor *acl_src0,
157153

158154
aclrtStream main_stream = ctx.stream();
159155
ACL_CHECK(aclnnCat(workspaceAddr, workspaceSize, executor, main_stream));
160-
161-
//ACL_CHECK(aclDestroyTensor(acl_src0));
162-
//ACL_CHECK(aclDestroyTensor(acl_src1));
163-
ACL_CHECK(aclDestroyTensorList(tensorList));
164-
ACL_CHECK(aclDestroyTensor(acl_dst));
165-
166156
}
167157

168158
void ggml_cann_concat(ggml_backend_cann_context& ctx, ggml_tensor* dst) {
@@ -173,14 +163,11 @@ void ggml_cann_concat(ggml_backend_cann_context& ctx, ggml_tensor* dst) {
173163
aclTensor* acl_dst = create_acl_tensor(dst);
174164

175165
int64_t concat_dim = 1;
166+
aclTensor* tensors[] = {acl_src0, acl_src1};
167+
aclTensorList* tensorList = aclCreateTensorList(tensors, 2);
168+
aclnn_concat(ctx, tensorList, acl_dst, concat_dim, dst);
176169

177-
aclnn_concat(ctx, acl_src0, acl_src1, acl_dst, concat_dim, dst);
178-
179-
// release acl_src0, acl_src1 in aclnn_concat
180-
// ACL_CHECK(aclDestroyTensor(acl_src0));
181-
// ACL_CHECK(aclDestroyTensor(acl_src1));
182-
// ->
183-
// ACL_CHECK(aclDestroyTensorList(tensorList));
170+
ACL_CHECK(aclDestroyTensorList(tensorList));
184171
ACL_CHECK(aclDestroyTensor(acl_dst));
185172
}
186173

@@ -1331,9 +1318,12 @@ void ggml_cann_timestep_embedding(ggml_backend_cann_context& ctx, ggml_tensor* d
13311318
// concat
13321319
int64_t concat_dim = 3;
13331320
aclTensor* acl_dst = create_acl_tensor(dst);
1334-
aclnn_concat(ctx, tmp_cos_tensor, tmp_sin_tensor, acl_dst, concat_dim, dst);
1321+
aclTensor* tensors[] = {tmp_cos_tensor, tmp_sin_tensor};
1322+
aclTensorList* tensorList = aclCreateTensorList(tensors, 2);
1323+
aclnn_concat(ctx, tensorList, acl_dst, concat_dim, dst);
13351324

13361325
// release
1326+
ACL_CHECK(aclDestroyTensorList(tensorList));
13371327
ACL_CHECK(aclDestroyTensor(acl_src));
13381328
ACL_CHECK(aclDestroyTensor(tmp_arange_tensor));
13391329
ACL_CHECK(aclDestroyTensor(tmp_permute_tenosr));

0 commit comments

Comments
 (0)