Skip to content

Commit fd1c028

Browse files
authored
pass src tensor instead
1 parent 43c7577 commit fd1c028

File tree

3 files changed

+6
-13
lines changed

3 files changed

+6
-13
lines changed

ggml/src/ggml-cuda/ggml-cuda.cu

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2848,15 +2848,8 @@ static void evaluate_and_capture_cuda_graph(ggml_backend_cuda_context * cuda_ctx
28482848
}
28492849

28502850
if (ggml_cuda_can_fuse(cgraph, i, { GGML_OP_SCALE, GGML_OP_UNARY, GGML_OP_SCALE }, { GGML_UNARY_OP_TANH })) {
2851-
ggml_tensor * src0 = node->src[0];
2852-
float scale = ggml_get_op_params_f32(node, 0);
2853-
2854-
i += 2; node = cgraph->nodes[i];
2855-
2856-
ggml_set_op_params_f32(node, 1, scale);
2857-
node->src[0] = src0;
2858-
2859-
ggml_cuda_op_softcap(*cuda_ctx, node);
2851+
i += 2;
2852+
ggml_cuda_op_softcap(*cuda_ctx, cgraph->nodes[i], node);
28602853
continue;
28612854
}
28622855
}

ggml/src/ggml-cuda/softcap.cu

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ static void softcap_f32_cuda(const float * x, float * dst, const float scale, co
1515
softcap_f32<<<num_blocks, CUDA_SOFTCAP_BLOCK_SIZE, 0, stream>>>(x, dst, scale, softcap, k);
1616
}
1717

18-
void ggml_cuda_op_softcap(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
19-
const ggml_tensor * src0 = dst->src[0];
18+
void ggml_cuda_op_softcap(ggml_backend_cuda_context & ctx, ggml_tensor * dst, ggml_tensor * src) {
19+
const ggml_tensor * src0 = src->src[0];
2020
const float * src0_d = (const float *)src0->data;
2121
float * dst_d = (float *)dst->data;
2222
cudaStream_t stream = ctx.stream();
@@ -26,8 +26,8 @@ void ggml_cuda_op_softcap(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
2626

2727
float scale;
2828
float softcap;
29+
memcpy(&scale, (float *) src->op_params + 0, sizeof(float));
2930
memcpy(&softcap, (float *) dst->op_params + 0, sizeof(float));
30-
memcpy(&scale, (float *) dst->op_params + 1, sizeof(float));
3131

3232
softcap_f32_cuda(src0_d, dst_d, scale, softcap, ggml_nelements(src0), stream);
3333
}

ggml/src/ggml-cuda/softcap.cuh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
#define CUDA_SOFTCAP_BLOCK_SIZE 256
44

5-
void ggml_cuda_op_softcap(ggml_backend_cuda_context & ctx, ggml_tensor * dst);
5+
void ggml_cuda_op_softcap(ggml_backend_cuda_context & ctx, ggml_tensor * dst, ggml_tensor * src);

0 commit comments

Comments
 (0)