CompressedGemma commited on
Commit
cf98511
·
verified ·
1 Parent(s): 9d6d124

Upload patch_llamacpp_hpcq_seg.py

Browse files
Files changed (1) hide show
  1. patch_llamacpp_hpcq_seg.py +5 -10
patch_llamacpp_hpcq_seg.py CHANGED
@@ -441,12 +441,11 @@ static void hpcq_vec_dot_q2_K_q8_K(int n, float * GGML_RESTRICT s, size_t bs, co
441
  const block_q2_K * GGML_RESTRICT x = (const block_q2_K *) vx;
442
  const block_q8_K * GGML_RESTRICT y = (const block_q8_K *) vy;
443
  const int nb = n / QK_K;
444
- const size_t stride = (seg->enc != 0) ? 256u : 128u;
445
  uint16_t ord[QK_K];
446
  block_q8_K y_perm;
447
  float sumf = 0.0f;
448
  for (int i = 0; i < nb; ++i) {{
449
- hpcq_seg_make_order_block(seg->packed + (size_t) (b0 + i) * stride, seg->enc, ord);
450
  y_perm.d = y[i].d;
451
  for (int g = 0; g < 16; ++g) {{
452
  int16_t bsum = 0;
@@ -474,12 +473,11 @@ static void hpcq_vec_dot_q3_K_q8_K(int n, float * GGML_RESTRICT s, size_t bs, co
474
  const block_q3_K * GGML_RESTRICT x = (const block_q3_K *) vx;
475
  const block_q8_K * GGML_RESTRICT y = (const block_q8_K *) vy;
476
  const int nb = n / QK_K;
477
- const size_t stride = (seg->enc != 0) ? 256u : 128u;
478
  uint16_t ord[QK_K];
479
  block_q8_K y_perm;
480
  float sumf = 0.0f;
481
  for (int i = 0; i < nb; ++i) {{
482
- hpcq_seg_make_order_block(seg->packed + (size_t) (b0 + i) * stride, seg->enc, ord);
483
  y_perm.d = y[i].d;
484
  for (int g = 0; g < 16; ++g) {{
485
  int16_t bsum = 0;
@@ -552,8 +550,7 @@ static inline const uint8_t * hpcq_cuda_get_dev_packed(
552
  if (!seg) return nullptr;
553
  *out_enc = seg->enc;
554
  if (seg->dev_packed == nullptr) {{
555
- const size_t stride = (seg->enc != 0) ? 256u : 128u;
556
- const size_t nbytes = (size_t) seg->n_blocks * stride;
557
  void * d_ptr = nullptr;
558
  if (cudaMalloc(&d_ptr, nbytes) == cudaSuccess && d_ptr != nullptr) {{
559
  if (cudaMemcpy(d_ptr, seg->packed, nbytes, cudaMemcpyHostToDevice) == cudaSuccess) {{
@@ -580,8 +577,7 @@ static __global__ void dequantize_block_q2_K(
580
  __shared__ uint16_t sh_ord[QK_K];
581
  dequantize_q2_K(vx, i, sh_y, threadIdx.x);
582
  if (threadIdx.x == 0) {{
583
- const size_t stride = (enc != 0) ? 256u : 128u;
584
- hpcq_seg_make_order_block(d_packed + (size_t) (b0 + i) * stride, enc, sh_ord);
585
  }}
586
  __syncthreads();
587
  dst_t * y_out = yy + i * QK_K;
@@ -603,8 +599,7 @@ static __global__ void dequantize_block_q3_K(
603
  __shared__ uint16_t sh_ord[QK_K];
604
  dequantize_q3_K(vx, i, sh_y, threadIdx.x);
605
  if (threadIdx.x == 0) {{
606
- const size_t stride = (enc != 0) ? 256u : 128u;
607
- hpcq_seg_make_order_block(d_packed + (size_t) (b0 + i) * stride, enc, sh_ord);
608
  }}
609
  __syncthreads();
610
  dst_t * y_out = yy + i * QK_K;
 
441
  const block_q2_K * GGML_RESTRICT x = (const block_q2_K *) vx;
442
  const block_q8_K * GGML_RESTRICT y = (const block_q8_K *) vy;
443
  const int nb = n / QK_K;
 
444
  uint16_t ord[QK_K];
445
  block_q8_K y_perm;
446
  float sumf = 0.0f;
447
  for (int i = 0; i < nb; ++i) {{
448
+ hpcq_seg_make_order_at(seg->packed, seg->enc, b0 + i, ord);
449
  y_perm.d = y[i].d;
450
  for (int g = 0; g < 16; ++g) {{
451
  int16_t bsum = 0;
 
473
  const block_q3_K * GGML_RESTRICT x = (const block_q3_K *) vx;
474
  const block_q8_K * GGML_RESTRICT y = (const block_q8_K *) vy;
475
  const int nb = n / QK_K;
 
476
  uint16_t ord[QK_K];
477
  block_q8_K y_perm;
478
  float sumf = 0.0f;
479
  for (int i = 0; i < nb; ++i) {{
480
+ hpcq_seg_make_order_at(seg->packed, seg->enc, b0 + i, ord);
481
  y_perm.d = y[i].d;
482
  for (int g = 0; g < 16; ++g) {{
483
  int16_t bsum = 0;
 
550
  if (!seg) return nullptr;
551
  *out_enc = seg->enc;
552
  if (seg->dev_packed == nullptr) {{
553
+ const size_t nbytes = hpcq_seg_packed_bytes(seg->n_blocks, seg->enc);
 
554
  void * d_ptr = nullptr;
555
  if (cudaMalloc(&d_ptr, nbytes) == cudaSuccess && d_ptr != nullptr) {{
556
  if (cudaMemcpy(d_ptr, seg->packed, nbytes, cudaMemcpyHostToDevice) == cudaSuccess) {{
 
577
  __shared__ uint16_t sh_ord[QK_K];
578
  dequantize_q2_K(vx, i, sh_y, threadIdx.x);
579
  if (threadIdx.x == 0) {{
580
+ hpcq_seg_make_order_at(d_packed, enc, b0 + i, sh_ord);
 
581
  }}
582
  __syncthreads();
583
  dst_t * y_out = yy + i * QK_K;
 
599
  __shared__ uint16_t sh_ord[QK_K];
600
  dequantize_q3_K(vx, i, sh_y, threadIdx.x);
601
  if (threadIdx.x == 0) {{
602
+ hpcq_seg_make_order_at(d_packed, enc, b0 + i, sh_ord);
 
603
  }}
604
  __syncthreads();
605
  dst_t * y_out = yy + i * QK_K;