@@ -696,24 +696,8 @@ static void ggml_compute_forward_dup_f32(
696
696
if (ggml_is_contiguous (dst)) {
697
697
// TODO: simplify
698
698
if (nb00 == sizeof (float )) {
699
- if (dst->type == GGML_TYPE_F32) {
700
- size_t id = 0 ;
701
- const size_t rs = ne00 * nb00;
702
- char * dst_ptr = (char *) dst->data ;
703
-
704
- for (int i03 = 0 ; i03 < ne03; i03++) {
705
- for (int i02 = 0 ; i02 < ne02; i02++) {
706
- id += rs * ir0;
707
- for (int i01 = ir0; i01 < ir1; i01++) {
708
- const char * src0_ptr = (char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03;
709
- memcpy (dst_ptr + id, src0_ptr, rs);
710
- id += rs;
711
- }
712
- id += rs * (ne01 - ir1);
713
- }
714
- }
715
- } else if (ggml_get_type_traits_cpu (dst->type )->from_float ) {
716
- ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu (dst->type )->from_float ;
699
+ if (ggml_get_type_traits_cpu (dst->type )->from_float ) {
700
+ ggml_from_float_t const from_float = ggml_get_type_traits_cpu (dst->type )->from_float ;
717
701
718
702
size_t id = 0 ;
719
703
size_t rs = nb0 * (ne00 / ggml_blck_size (dst->type ));
@@ -724,7 +708,7 @@ static void ggml_compute_forward_dup_f32(
724
708
id += rs * ir0;
725
709
for (int i01 = ir0; i01 < ir1; i01++) {
726
710
const float * src0_ptr = (float *) ((char *) src0->data + i01*nb01 + i02*nb02 + i03*nb03);
727
- quantize_row_q (src0_ptr, dst_ptr + id, ne00);
711
+ from_float (src0_ptr, dst_ptr + id, ne00);
728
712
id += rs;
729
713
}
730
714
id += rs * (ne01 - ir1);
0 commit comments