@@ -3748,16 +3748,18 @@ static block_iq4_nlx4 make_block_iq4_nlx4(block_iq4_nl * in, unsigned int blck_s
37483748
37493749    const  int  end = QK4_NL * 2  / blck_size_interleave;
37503750
3751-     if  (blck_size_interleave == 8 ) {
3752-         for  (int  i = 0 ; i < end; ++i) {
3753-             int  src_id = i % 4 ;
3754-             int  src_offset = (i / 4 ) * blck_size_interleave;
3755-             int  dst_offset = i * blck_size_interleave;
3756- 
3757-             //  Using memcpy to avoid unaligned memory accesses
3758-             memcpy (&out.qs [dst_offset], &in[src_id].qs [src_offset], sizeof (uint64_t ));
3759-         }
3760-     } else  if  (blck_size_interleave == 4 ) {
3751+     //  TODO: this branch seems wrong
3752+     // if (blck_size_interleave == 8) {
3753+     //     for (int i = 0; i < end; ++i) {
3754+     //         int src_id = i % 4;
3755+     //         int src_offset = (i / 4) * blck_size_interleave;
3756+     //         int dst_offset = i * blck_size_interleave;
3757+ 
3758+     //         // Using memcpy to avoid unaligned memory accesses
3759+     //         memcpy(&out.qs[dst_offset], &in[src_id].qs[src_offset], sizeof(uint64_t));
3760+     //     }
3761+     // } else
3762+     if  (blck_size_interleave == 4 ) {
37613763        for  (int  i = 0 ; i < end; ++i) {
37623764            int  src_id = i % 4 ;
37633765            int  src_offset = (i / 4 ) * blck_size_interleave;
@@ -3774,7 +3776,8 @@ static block_iq4_nlx4 make_block_iq4_nlx4(block_iq4_nl * in, unsigned int blck_s
37743776
37753777static  int  repack_iq4_nl_to_iq4_nl_4_bl (struct  ggml_tensor  * t, int  interleave_block, const  void  * GGML_RESTRICT data, size_t  data_size) {
37763778    GGML_ASSERT (t->type  == GGML_TYPE_IQ4_NL);
3777-     GGML_ASSERT (interleave_block == 4  || interleave_block == 8 );
3779+     // GGML_ASSERT(interleave_block == 4 || interleave_block == 8);
3780+     GGML_ASSERT (interleave_block == 4 );
37783781
37793782    block_iq4_nlx4 * dst = (block_iq4_nlx4 *)t->data ;
37803783    const  block_iq4_nl * src = (const  block_iq4_nl *)data;
@@ -3825,9 +3828,10 @@ template <> int repack<block_iq4_nl, 4, 4>(struct ggml_tensor * t, const void *
38253828    return  repack_iq4_nl_to_iq4_nl_4_bl (t, 4 , data, data_size);
38263829}
38273830
3828- template  <> int  repack<block_iq4_nl, 8 , 4 >(struct  ggml_tensor  * t, const  void  * data, size_t  data_size) {
3829-     return  repack_iq4_nl_to_iq4_nl_4_bl (t, 8 , data, data_size);
3830- }
3831+ //  TODO: needs to be revisited
3832+ // template <> int repack<block_iq4_nl, 8, 4>(struct ggml_tensor * t, const void * data, size_t data_size) {
3833+ //     return repack_iq4_nl_to_iq4_nl_4_bl(t, 8, data, data_size);
3834+ // }
38313835
38323836//  gemv
38333837template  <typename  BLOC_TYPE, int64_t  INTER_SIZE, int64_t  NB_COLS>
0 commit comments