char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
1a064ab09
char/aliceai-t5-moe
1#pragma once 2 3#include "common.cuh" 4#include "mmq.cuh" 5 6#include <cstdint> 7 8#define CUDA_QUANTIZE_BLOCK_SIZE 256 9#define CUDA_QUANTIZE_BLOCK_SIZE_MMQ 128 10 11static_assert(MATRIX_ROW_PADDING % CUDA_QUANTIZE_BLOCK_SIZE == 0, "Risk of out-of-bounds access."); 12static_assert(MATRIX_ROW_PADDING % (4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ) == 0, "Risk of out-of-bounds access."); 13 14typedef void (*quantize_cuda_t)( 15 const float * x, const int32_t * ids, void * vy, 16 ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, 17 int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); 18 19void quantize_row_q8_1_cuda( 20 const float * x, const int32_t * ids, void * vy, 21 ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, 22 int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); 23 24void quantize_mmq_q8_1_cuda( 25 const float * x, const int32_t * ids, void * vy, 26 ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, 27 int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); 28 29void quantize_mmq_fp4_cuda(const float * x, 30 const int32_t * ids, 31 void * vy, 32 float * scale, 33 ggml_type type_src0, 34 bool use_aligned_float8, 35 int64_t ne00, 36 int64_t s01, 37 int64_t s02, 38 int64_t s03, 39 int64_t ne0, 40 int64_t ne1, 41 int64_t ne2, 42 int64_t ne3, 43 cudaStream_t stream); 44 45// quantize each token once and scatter the block to its compact rows (via the inverse map) 46void quantize_scatter_mmq_fp4_cuda(const float * x, 47 const int32_t * ids_src1_inv, 48 void * vy, 49 float * scale, 50 ggml_type type_src0, 51 bool use_aligned_float8, 52 int64_t ne00, 53 int64_t stride_token, 54 int64_t ne0, 55 int64_t n_tokens, 56 int64_t nrows_dst, 57 int n_expert_used, 58 cudaStream_t stream); 59 60void quantize_scatter_mmq_q8_1_cuda(const float * x, 61 const int32_t * ids_src1_inv, 62 void * vy, 63 ggml_type type_src0, 64 int64_t ne00, 65 int64_t stride_token, 66 int64_t ne0, 67 int64_t n_tokens, 68 int64_t nrows_dst, 69 int n_expert_used, 70 cudaStream_t stream);