| 19230 | } |
| 19231 | |
| 19232 | size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, int start, int n, int64_t * hist) { |
| 19233 | size_t result = 0; |
| 19234 | switch (type) { |
| 19235 | case GGML_TYPE_Q4_0: |
| 19236 | { |
| 19237 | GGML_ASSERT(start % QK4_0 == 0); |
| 19238 | block_q4_0 * block = (block_q4_0*)dst + start / QK4_0; |
| 19239 | result = ggml_quantize_q4_0(src + start, block, n, n, hist); |
| 19240 | } break; |
| 19241 | case GGML_TYPE_Q4_1: |
| 19242 | { |
| 19243 | GGML_ASSERT(start % QK4_1 == 0); |
| 19244 | block_q4_1 * block = (block_q4_1*)dst + start / QK4_1; |
| 19245 | result = ggml_quantize_q4_1(src + start, block, n, n, hist); |
| 19246 | } break; |
| 19247 | case GGML_TYPE_Q5_0: |
| 19248 | { |
| 19249 | GGML_ASSERT(start % QK5_0 == 0); |
| 19250 | block_q5_0 * block = (block_q5_0*)dst + start / QK5_0; |
| 19251 | result = ggml_quantize_q5_0(src + start, block, n, n, hist); |
| 19252 | } break; |
| 19253 | case GGML_TYPE_Q5_1: |
| 19254 | { |
| 19255 | GGML_ASSERT(start % QK5_1 == 0); |
| 19256 | block_q5_1 * block = (block_q5_1*)dst + start / QK5_1; |
| 19257 | result = ggml_quantize_q5_1(src + start, block, n, n, hist); |
| 19258 | } break; |
| 19259 | case GGML_TYPE_Q8_0: |
| 19260 | { |
| 19261 | GGML_ASSERT(start % QK8_0 == 0); |
| 19262 | block_q8_0 * block = (block_q8_0*)dst + start / QK8_0; |
| 19263 | result = ggml_quantize_q8_0(src + start, block, n, n, hist); |
| 19264 | } break; |
| 19265 | case GGML_TYPE_Q2_K: |
| 19266 | { |
| 19267 | GGML_ASSERT(start % QK_K == 0); |
| 19268 | block_q2_K * block = (block_q2_K*)dst + start / QK_K; |
| 19269 | result = ggml_quantize_q2_K(src + start, block, n, n, hist); |
| 19270 | } break; |
| 19271 | case GGML_TYPE_Q3_K: |
| 19272 | { |
| 19273 | GGML_ASSERT(start % QK_K == 0); |
| 19274 | block_q3_K * block = (block_q3_K*)dst + start / QK_K; |
| 19275 | result = ggml_quantize_q3_K(src + start, block, n, n, hist); |
| 19276 | } break; |
| 19277 | case GGML_TYPE_Q4_K: |
| 19278 | { |
| 19279 | GGML_ASSERT(start % QK_K == 0); |
| 19280 | block_q4_K * block = (block_q4_K*)dst + start / QK_K; |
| 19281 | result = ggml_quantize_q4_K(src + start, block, n, n, hist); |
| 19282 | } break; |
| 19283 | case GGML_TYPE_Q5_K: |
| 19284 | { |
| 19285 | GGML_ASSERT(start % QK_K == 0); |
| 19286 | block_q5_K * block = (block_q5_K*)dst + start / QK_K; |
| 19287 | result = ggml_quantize_q5_K(src + start, block, n, n, hist); |
| 19288 | } break; |
| 19289 | case GGML_TYPE_Q6_K: |
no test coverage detected