@@ -926,10 +926,9 @@ static void dequantize_block_q2_K(const void * __restrict__ vx, dst_t * __restri
926926}
927927
928928template <typename dst_t >
929- static void dequantize_block_q2_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy,
929+ static void dequantize_block_q2_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, const int64_t i,
930930 const sycl::nd_item<3 > & item_ct1, int64_t n_blocks) {
931931#if QK_K == 256
932- const int64_t i = item_ct1.get_group (2 );
933932 if (i >= n_blocks) {
934933 return ;
935934 }
@@ -949,7 +948,7 @@ static void dequantize_block_q2_K_reorder(const void * __restrict__ vx, dst_t *
949948 const int64_t is = 8 * n + l / 16 ;
950949
951950 const uint8_t q = qs[32 * n + l];
952- dst_t * y = yy + i * QK_K + 128 * n;
951+ dst_t * y = yy + 128 * n;
953952
954953 const float dall = (*dm)[0 ];
955954 const float dmin = (*dm)[1 ];
@@ -960,6 +959,7 @@ static void dequantize_block_q2_K_reorder(const void * __restrict__ vx, dst_t *
960959#else
961960 GGML_UNUSED (vx);
962961 GGML_UNUSED (yy);
962+ GGML_UNUSED (i);
963963 GGML_UNUSED (item_ct1);
964964 GGML_UNUSED (n_blocks);
965965 GGML_ABORT (" Q2_K reorder dequantize not supported for QK_K != 256" );
@@ -1022,10 +1022,9 @@ static void dequantize_block_q3_K(const void * __restrict__ vx, dst_t * __restri
10221022}
10231023
10241024template <typename dst_t >
1025- static void dequantize_block_q3_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy,
1025+ static void dequantize_block_q3_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, const int64_t i,
10261026 const sycl::nd_item<3 > & item_ct1, int64_t n_blocks) {
10271027#if QK_K == 256
1028- const int64_t i = item_ct1.get_group (2 );
10291028 if (i >= n_blocks) {
10301029 return ;
10311030 }
@@ -1062,7 +1061,7 @@ static void dequantize_block_q3_K_reorder(const void * __restrict__ vx, dst_t *
10621061
10631062 const float dl = d_all * (us - 32 );
10641063
1065- dst_t * y = yy + i * QK_K + 128 * n + 32 * j;
1064+ dst_t * y = yy + 128 * n + 32 * j;
10661065 const uint8_t * q = qs + 32 * n;
10671066 const uint8_t * hm = hmask;
10681067
@@ -1072,6 +1071,7 @@ static void dequantize_block_q3_K_reorder(const void * __restrict__ vx, dst_t *
10721071#else
10731072 GGML_UNUSED (vx);
10741073 GGML_UNUSED (yy);
1074+ GGML_UNUSED (i);
10751075 GGML_UNUSED (item_ct1);
10761076 GGML_UNUSED (n_blocks);
10771077 GGML_ABORT (" Q3_K reorder dequantize not supported for QK_K != 256" );
@@ -1160,14 +1160,13 @@ inline void dequantize_q4_K_common(dst_t * __restrict__ y, const uint8_t * __res
11601160}
11611161
11621162template <typename dst_t >
1163- static void dequantize_block_q4_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, uint8_t * scales_local,
1164- const sycl::nd_item<1 > & item_ct1, int64_t nb) {
1165- const int64_t i = item_ct1.get_group (0 ); // block index
1163+ static void dequantize_block_q4_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, const int64_t i,
1164+ uint8_t * scales_local, const sycl::nd_item<1 > & item_ct1, int64_t nb) {
11661165 const int64_t tid = item_ct1.get_local_id (0 ); // thread index within block
11671166 const int64_t il = tid / 8 ;
11681167 const int64_t ir = tid % 8 ;
11691168
1170- dst_t * y = yy + i * QK_K + 64 * il + 4 * ir;
1169+ dst_t * y = yy + 64 * il + 4 * ir;
11711170
11721171 const uint8_t * base = static_cast <const uint8_t *>(vx);
11731172 const size_t qs_offset = i * (QK_K / 2 );
@@ -1237,9 +1236,8 @@ static void dequantize_block_q5_K_wide(const void * __restrict__ vx, dst_t * __r
12371236}
12381237
12391238template <typename dst_t >
1240- static void dequantize_block_q5_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy,
1239+ static void dequantize_block_q5_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, const int64_t ib,
12411240 uint8_t * scales_local, const sycl::nd_item<3 > & item_ct1, int64_t n_blocks) {
1242- const int64_t ib = item_ct1.get_group (2 );
12431241
12441242#if QK_K == 256
12451243 // assume 64 threads
@@ -1248,7 +1246,7 @@ static void dequantize_block_q5_K_reorder(const void * __restrict__ vx, dst_t *
12481246 const int64_t ir = tid % 16 ; // 0...15
12491247 const int64_t is = 2 * il;
12501248
1251- dst_t * y = yy + ib * QK_K + 64 * il + 2 * ir;
1249+ dst_t * y = yy + 64 * il + 2 * ir;
12521250
12531251 const uint8_t * base = static_cast <const uint8_t *>(vx);
12541252
@@ -1340,9 +1338,8 @@ static void dequantize_block_q6_K(const void * __restrict__ vx, dst_t * __restri
13401338}
13411339
13421340template <typename dst_t >
1343- static void dequantize_block_q6_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy,
1341+ static void dequantize_block_q6_K_reorder (const void * __restrict__ vx, dst_t * __restrict__ yy, const int64_t ib,
13441342 const sycl::nd_item<3 > & item_ct1, int64_t n_blocks) {
1345- const int64_t ib = item_ct1.get_group (2 );
13461343
13471344 const int64_t tid = item_ct1.get_local_id (2 );
13481345 const int64_t ip = tid / 32 ; // ip is 0 or 1
@@ -1359,7 +1356,7 @@ static void dequantize_block_q6_K_reorder(const void * __restrict__ vx, dst_t *
13591356 const uint8_t * scales_ptr = base_ptr + base_scales_offset;
13601357 const ggml_half * d = (const ggml_half *) (base_ptr + base_d_offset) + ib;
13611358
1362- dst_t * y = yy + ib * QK_K + 128 * ip + il;
1359+ dst_t * y = yy + 128 * ip + il;
13631360
13641361 const uint8_t * ql = ql_ptr + 64 * ip + il;
13651362 const uint8_t qh = *(qh_ptr + 32 * ip + il);
0 commit comments