From b10d8bfdb1dac40cce34e8860ca5ec7d950c3a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Thu, 24 Apr 2025 15:57:10 +0200 Subject: [PATCH 001/126] CUDA: use switch statements in constexpr functions (#13095) --- ggml/src/ggml-cuda/mmq.cuh | 80 ++++++++++++++++++++------------------ ggml/src/ggml-cuda/mmvq.cu | 80 ++++++++++++++++++++------------------ 2 files changed, 84 insertions(+), 76 deletions(-) diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index 532358018f..3cb2015520 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -155,25 +155,27 @@ static constexpr __device__ int get_mmq_y_device() { #define MMQ_DP4A_TXS_Q6_K tile_x_sizes{mmq_y*WARP_SIZE*2 + mmq_y, mmq_y*WARP_SIZE/QI6_K + mmq_y/QI6_K, mmq_y*WARP_SIZE/8 + mmq_y/8} static constexpr __host__ __device__ tile_x_sizes mmq_get_dp4a_tile_x_sizes(ggml_type type, int mmq_y) { - return type == GGML_TYPE_Q4_0 ? MMQ_DP4A_TXS_Q4_0 : - type == GGML_TYPE_Q4_1 ? MMQ_DP4A_TXS_Q4_1 : - type == GGML_TYPE_Q5_0 ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_Q5_1 ? MMQ_DP4A_TXS_Q8_1 : - type == GGML_TYPE_Q8_0 ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_Q2_K ? MMQ_DP4A_TXS_Q2_K : - type == GGML_TYPE_Q3_K ? MMQ_DP4A_TXS_Q3_K : - type == GGML_TYPE_Q4_K ? MMQ_DP4A_TXS_Q4_K : - type == GGML_TYPE_Q5_K ? MMQ_DP4A_TXS_Q5_K : - type == GGML_TYPE_Q6_K ? MMQ_DP4A_TXS_Q6_K : - type == GGML_TYPE_IQ2_XXS ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_IQ2_XS ? MMQ_DP4A_TXS_Q8_0_16 : - type == GGML_TYPE_IQ2_S ? MMQ_DP4A_TXS_Q8_0_16 : - type == GGML_TYPE_IQ3_XXS ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_IQ3_S ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_IQ1_S ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_IQ4_XS ? MMQ_DP4A_TXS_Q8_0 : - type == GGML_TYPE_IQ4_NL ? MMQ_DP4A_TXS_Q8_0 : - tile_x_sizes{0, 0, 0}; + switch (type) { + case GGML_TYPE_Q4_0: return MMQ_DP4A_TXS_Q4_0; + case GGML_TYPE_Q4_1: return MMQ_DP4A_TXS_Q4_1; + case GGML_TYPE_Q5_0: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_Q5_1: return MMQ_DP4A_TXS_Q8_1; + case GGML_TYPE_Q8_0: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_Q2_K: return MMQ_DP4A_TXS_Q2_K; + case GGML_TYPE_Q3_K: return MMQ_DP4A_TXS_Q3_K; + case GGML_TYPE_Q4_K: return MMQ_DP4A_TXS_Q4_K; + case GGML_TYPE_Q5_K: return MMQ_DP4A_TXS_Q5_K; + case GGML_TYPE_Q6_K: return MMQ_DP4A_TXS_Q6_K; + case GGML_TYPE_IQ2_XXS: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_IQ2_XS: return MMQ_DP4A_TXS_Q8_0_16; + case GGML_TYPE_IQ2_S: return MMQ_DP4A_TXS_Q8_0_16; + case GGML_TYPE_IQ3_XXS: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_IQ3_S: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_IQ1_S: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_IQ4_XS: return MMQ_DP4A_TXS_Q8_0; + case GGML_TYPE_IQ4_NL: return MMQ_DP4A_TXS_Q8_0; + default: return tile_x_sizes{0, 0, 0}; + } } #define MMQ_MMA_TILE_X_K_Q8_0 (2*WARP_SIZE + 2*WARP_SIZE/QI8_0 + 4) @@ -189,25 +191,27 @@ static_assert(MMQ_MMA_TILE_X_K_Q3_K % 8 == 4, "Wrong padding."); static_assert(MMQ_MMA_TILE_X_K_Q6_K % 8 == 4, "Wrong padding."); static constexpr __host__ __device__ int mmq_get_mma_tile_x_k(ggml_type type) { - return type == GGML_TYPE_Q4_0 ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_Q4_1 ? MMQ_MMA_TILE_X_K_Q8_1 : - type == GGML_TYPE_Q5_0 ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_Q5_1 ? MMQ_MMA_TILE_X_K_Q8_1 : - type == GGML_TYPE_Q8_0 ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_Q2_K ? MMQ_MMA_TILE_X_K_Q2_K : - type == GGML_TYPE_Q3_K ? MMQ_MMA_TILE_X_K_Q3_K : - type == GGML_TYPE_Q4_K ? MMQ_MMA_TILE_X_K_Q8_1 : - type == GGML_TYPE_Q5_K ? MMQ_MMA_TILE_X_K_Q8_1 : - type == GGML_TYPE_Q6_K ? MMQ_MMA_TILE_X_K_Q6_K : - type == GGML_TYPE_IQ2_XXS ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_IQ2_XS ? MMQ_MMA_TILE_X_K_Q3_K : - type == GGML_TYPE_IQ2_S ? MMQ_MMA_TILE_X_K_Q3_K : - type == GGML_TYPE_IQ3_XXS ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_IQ3_S ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_IQ1_S ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_IQ4_XS ? MMQ_MMA_TILE_X_K_Q8_0 : - type == GGML_TYPE_IQ4_NL ? MMQ_MMA_TILE_X_K_Q8_0 : - 0; + switch (type) { + case GGML_TYPE_Q4_0: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_Q4_1: return MMQ_MMA_TILE_X_K_Q8_1; + case GGML_TYPE_Q5_0: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_Q5_1: return MMQ_MMA_TILE_X_K_Q8_1; + case GGML_TYPE_Q8_0: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_Q2_K: return MMQ_MMA_TILE_X_K_Q2_K; + case GGML_TYPE_Q3_K: return MMQ_MMA_TILE_X_K_Q3_K; + case GGML_TYPE_Q4_K: return MMQ_MMA_TILE_X_K_Q8_1; + case GGML_TYPE_Q5_K: return MMQ_MMA_TILE_X_K_Q8_1; + case GGML_TYPE_Q6_K: return MMQ_MMA_TILE_X_K_Q6_K; + case GGML_TYPE_IQ2_XXS: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_IQ2_XS: return MMQ_MMA_TILE_X_K_Q3_K; + case GGML_TYPE_IQ2_S: return MMQ_MMA_TILE_X_K_Q3_K; + case GGML_TYPE_IQ3_XXS: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_IQ3_S: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_IQ1_S: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_IQ4_XS: return MMQ_MMA_TILE_X_K_Q8_0; + case GGML_TYPE_IQ4_NL: return MMQ_MMA_TILE_X_K_Q8_0; + default: return 0; + } } #define MMQ_TILE_Y_K (WARP_SIZE + WARP_SIZE/QI8_1) diff --git a/ggml/src/ggml-cuda/mmvq.cu b/ggml/src/ggml-cuda/mmvq.cu index cac04916cd..d846e35a6a 100644 --- a/ggml/src/ggml-cuda/mmvq.cu +++ b/ggml/src/ggml-cuda/mmvq.cu @@ -7,47 +7,51 @@ typedef float (*vec_dot_q_cuda_t)(const void * __restrict__ vbq, const block_q8_1 * __restrict__ bq8_1, const int & kbx, const int & iqs); static constexpr __device__ vec_dot_q_cuda_t get_vec_dot_q_cuda(ggml_type type) { - return type == GGML_TYPE_Q4_0 ? vec_dot_q4_0_q8_1 : - type == GGML_TYPE_Q4_1 ? vec_dot_q4_1_q8_1 : - type == GGML_TYPE_Q5_0 ? vec_dot_q5_0_q8_1 : - type == GGML_TYPE_Q5_1 ? vec_dot_q5_1_q8_1 : - type == GGML_TYPE_Q8_0 ? vec_dot_q8_0_q8_1 : - type == GGML_TYPE_Q2_K ? vec_dot_q2_K_q8_1 : - type == GGML_TYPE_Q3_K ? vec_dot_q3_K_q8_1 : - type == GGML_TYPE_Q4_K ? vec_dot_q4_K_q8_1 : - type == GGML_TYPE_Q5_K ? vec_dot_q5_K_q8_1 : - type == GGML_TYPE_Q6_K ? vec_dot_q6_K_q8_1 : - type == GGML_TYPE_IQ2_XXS ? vec_dot_iq2_xxs_q8_1 : - type == GGML_TYPE_IQ2_XS ? vec_dot_iq2_xs_q8_1 : - type == GGML_TYPE_IQ2_S ? vec_dot_iq2_s_q8_1 : - type == GGML_TYPE_IQ3_XXS ? vec_dot_iq3_xxs_q8_1 : - type == GGML_TYPE_IQ1_S ? vec_dot_iq1_s_q8_1 : - type == GGML_TYPE_IQ1_M ? vec_dot_iq1_m_q8_1 : - type == GGML_TYPE_IQ4_NL ? vec_dot_iq4_nl_q8_1 : - type == GGML_TYPE_IQ4_XS ? vec_dot_iq4_xs_q8_1 : - type == GGML_TYPE_IQ3_S ? vec_dot_iq3_s_q8_1 : - nullptr; + switch (type) { + case GGML_TYPE_Q4_0: return vec_dot_q4_0_q8_1; + case GGML_TYPE_Q4_1: return vec_dot_q4_1_q8_1; + case GGML_TYPE_Q5_0: return vec_dot_q5_0_q8_1; + case GGML_TYPE_Q5_1: return vec_dot_q5_1_q8_1; + case GGML_TYPE_Q8_0: return vec_dot_q8_0_q8_1; + case GGML_TYPE_Q2_K: return vec_dot_q2_K_q8_1; + case GGML_TYPE_Q3_K: return vec_dot_q3_K_q8_1; + case GGML_TYPE_Q4_K: return vec_dot_q4_K_q8_1; + case GGML_TYPE_Q5_K: return vec_dot_q5_K_q8_1; + case GGML_TYPE_Q6_K: return vec_dot_q6_K_q8_1; + case GGML_TYPE_IQ2_XXS: return vec_dot_iq2_xxs_q8_1; + case GGML_TYPE_IQ2_XS: return vec_dot_iq2_xs_q8_1; + case GGML_TYPE_IQ2_S: return vec_dot_iq2_s_q8_1; + case GGML_TYPE_IQ3_XXS: return vec_dot_iq3_xxs_q8_1; + case GGML_TYPE_IQ1_S: return vec_dot_iq1_s_q8_1; + case GGML_TYPE_IQ1_M: return vec_dot_iq1_m_q8_1; + case GGML_TYPE_IQ4_NL: return vec_dot_iq4_nl_q8_1; + case GGML_TYPE_IQ4_XS: return vec_dot_iq4_xs_q8_1; + case GGML_TYPE_IQ3_S: return vec_dot_iq3_s_q8_1; + default: return nullptr; + } } static constexpr __device__ int get_vdr_mmvq(ggml_type type) { - return type == GGML_TYPE_Q4_0 ? VDR_Q4_0_Q8_1_MMVQ : - type == GGML_TYPE_Q4_1 ? VDR_Q4_1_Q8_1_MMVQ : - type == GGML_TYPE_Q5_0 ? VDR_Q5_0_Q8_1_MMVQ : - type == GGML_TYPE_Q5_1 ? VDR_Q5_1_Q8_1_MMVQ : - type == GGML_TYPE_Q8_0 ? VDR_Q8_0_Q8_1_MMVQ : - type == GGML_TYPE_Q2_K ? VDR_Q2_K_Q8_1_MMVQ : - type == GGML_TYPE_Q3_K ? VDR_Q3_K_Q8_1_MMVQ : - type == GGML_TYPE_Q4_K ? VDR_Q4_K_Q8_1_MMVQ : - type == GGML_TYPE_Q5_K ? VDR_Q5_K_Q8_1_MMVQ : - type == GGML_TYPE_Q6_K ? VDR_Q6_K_Q8_1_MMVQ : - type == GGML_TYPE_IQ2_XXS ? VDR_IQ2_XXS_Q8_1_MMVQ : - type == GGML_TYPE_IQ2_XS ? VDR_IQ2_XS_Q8_1_MMVQ : - type == GGML_TYPE_IQ2_S ? VDR_IQ2_S_Q8_1_MMVQ : - type == GGML_TYPE_IQ3_XXS ? VDR_IQ3_XXS_Q8_1_MMVQ : - type == GGML_TYPE_IQ3_S ? VDR_IQ3_S_Q8_1_MMVQ : - type == GGML_TYPE_IQ4_NL ? VDR_IQ4_NL_Q8_1_MMVQ : - type == GGML_TYPE_IQ4_XS ? VDR_IQ4_XS_Q8_1_MMVQ : - 1; + switch (type) { + case GGML_TYPE_Q4_0: return VDR_Q4_0_Q8_1_MMVQ; + case GGML_TYPE_Q4_1: return VDR_Q4_1_Q8_1_MMVQ; + case GGML_TYPE_Q5_0: return VDR_Q5_0_Q8_1_MMVQ; + case GGML_TYPE_Q5_1: return VDR_Q5_1_Q8_1_MMVQ; + case GGML_TYPE_Q8_0: return VDR_Q8_0_Q8_1_MMVQ; + case GGML_TYPE_Q2_K: return VDR_Q2_K_Q8_1_MMVQ; + case GGML_TYPE_Q3_K: return VDR_Q3_K_Q8_1_MMVQ; + case GGML_TYPE_Q4_K: return VDR_Q4_K_Q8_1_MMVQ; + case GGML_TYPE_Q5_K: return VDR_Q5_K_Q8_1_MMVQ; + case GGML_TYPE_Q6_K: return VDR_Q6_K_Q8_1_MMVQ; + case GGML_TYPE_IQ2_XXS: return VDR_IQ2_XXS_Q8_1_MMVQ; + case GGML_TYPE_IQ2_XS: return VDR_IQ2_XS_Q8_1_MMVQ; + case GGML_TYPE_IQ2_S: return VDR_IQ2_S_Q8_1_MMVQ; + case GGML_TYPE_IQ3_XXS: return VDR_IQ3_XXS_Q8_1_MMVQ; + case GGML_TYPE_IQ3_S: return VDR_IQ3_S_Q8_1_MMVQ; + case GGML_TYPE_IQ4_NL: return VDR_IQ4_NL_Q8_1_MMVQ; + case GGML_TYPE_IQ4_XS: return VDR_IQ4_XS_Q8_1_MMVQ; + default: return 1; + } } enum mmvq_parameter_table_id { From c6e8cc28c15166dba15629dba6a7366d4d5955ca Mon Sep 17 00:00:00 2001 From: Acly Date: Thu, 17 Apr 2025 14:16:45 +0200 Subject: [PATCH 002/126] ggml : Depthwise 2D convolution (ggml/1152) * ggml-cpu : kernels for faster depthwise 2D convolution * fix compile: remove static after moving to ops.cpp * add dilation for depthwise_conv_2d * review: rename to ggml_conv_2d_dw_direct, remove redundant struct keywords, pass by ref, whitespace * review: rename depthwise_conv_2d -> conv_2d_dw everywhere --- ggml/include/ggml.h | 22 ++++- ggml/src/ggml-cpu/ggml-cpu.c | 5 + ggml/src/ggml-cpu/ops.cpp | 172 +++++++++++++++++++++++++++++++++++ ggml/src/ggml-cpu/ops.h | 1 + ggml/src/ggml.c | 53 ++++++++++- 5 files changed, 250 insertions(+), 3 deletions(-) diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 8fcc16df99..51aa5b3a0a 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -481,6 +481,7 @@ extern "C" { GGML_OP_CONV_TRANSPOSE_1D, GGML_OP_IM2COL, GGML_OP_IM2COL_BACK, + GGML_OP_CONV_2D_DW, GGML_OP_CONV_TRANSPOSE_2D, GGML_OP_POOL_1D, GGML_OP_POOL_2D, @@ -677,6 +678,9 @@ extern "C" { GGML_API bool ggml_is_contiguous_1(const struct ggml_tensor * tensor); // contiguous for dims >= 1 GGML_API bool ggml_is_contiguous_2(const struct ggml_tensor * tensor); // contiguous for dims >= 2 + // true for tensor that is stored in memory as CxWxHxN and has been permuted to WxHxCxN + GGML_API bool ggml_is_contiguous_channels(const struct ggml_tensor * tensor); + GGML_API bool ggml_are_same_shape (const struct ggml_tensor * t0, const struct ggml_tensor * t1); GGML_API bool ggml_are_same_stride(const struct ggml_tensor * t0, const struct ggml_tensor * t1); @@ -1660,7 +1664,7 @@ extern "C" { struct ggml_tensor * a, struct ggml_tensor * b); - // depthwise + // depthwise (via im2col and mul_mat) GGML_API struct ggml_tensor * ggml_conv_2d_dw( struct ggml_context * ctx, struct ggml_tensor * a, // convolution kernel @@ -1672,6 +1676,22 @@ extern "C" { int d0, // dilation dimension 0 int d1); // dilation dimension 1 + // Depthwise 2D convolution + // may be faster than ggml_conv_2d_dw, but not available in all backends + // a: KW KH 1 C convolution kernel + // b: W H C N input data + // res: W_out H_out C N + GGML_API struct ggml_tensor * ggml_conv_2d_dw_direct( + struct ggml_context * ctx, + struct ggml_tensor * a, + struct ggml_tensor * b, + int stride0, + int stride1, + int pad0, + int pad1, + int dilation0, + int dilation1); + GGML_API struct ggml_tensor * ggml_conv_transpose_2d_p0( struct ggml_context * ctx, struct ggml_tensor * a, diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index 5040032873..dbad8f61a1 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -1932,6 +1932,10 @@ static void ggml_compute_forward(struct ggml_compute_params * params, struct ggm { ggml_compute_forward_im2col_back_f32(params, tensor); } break; + case GGML_OP_CONV_2D_DW: + { + ggml_compute_forward_conv_2d_dw(params, tensor); + } break; case GGML_OP_CONV_TRANSPOSE_2D: { ggml_compute_forward_conv_transpose_2d(params, tensor); @@ -2268,6 +2272,7 @@ static int ggml_get_n_tasks(struct ggml_tensor * node, int n_threads) { } break; case GGML_OP_IM2COL: case GGML_OP_IM2COL_BACK: + case GGML_OP_CONV_2D_DW: case GGML_OP_CONV_TRANSPOSE_1D: case GGML_OP_CONV_TRANSPOSE_2D: { diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index 6050147be7..3c2adb2172 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -6064,6 +6064,178 @@ void ggml_compute_forward_conv_transpose_2d( } } +// ggml_compute_forward_conv_2d_dw + +struct ggml_conv_2d_dw_params { + int64_t channels; + int64_t batch; + int64_t src_w; + int64_t src_h; + int64_t dst_w; + int64_t dst_h; + int64_t knl_w; + int64_t knl_h; + int stride_x; + int stride_y; + int pad_x; + int pad_y; + int dilation_x; + int dilation_y; +}; + +static void ggml_compute_forward_conv_2d_dw_cwhn( + const ggml_compute_params * params, + const ggml_tensor * src, + const ggml_tensor * kernel, + ggml_tensor * dst, + const ggml_conv_2d_dw_params & p) { + + const int64_t c = p.channels; + const float * knl_data = (const float *)kernel->data; + + const int64_t rows_total = p.dst_h * p.batch; + const int64_t rows_per_thread = (rows_total + params->nth - 1) / params->nth; + const int64_t row_start = params->ith * rows_per_thread; + const int64_t row_end = MIN(row_start + rows_per_thread, rows_total); + +#ifdef GGML_SIMD + const int64_t pkg_size = GGML_F32_EPR; + const int64_t pkg_count = c / pkg_size; + const int64_t c_pkg_end = pkg_count * pkg_size; +#else + const int64_t c_pkg_end = 0; +#endif + + for (int64_t row = row_start; row < row_end; ++row) { + const int64_t dst_y = row % p.dst_h; + const float * src_data = (const float *)src->data + (row / p.dst_h) * p.src_w * p.src_h * c; + for (int64_t dst_x = 0; dst_x < p.dst_w; ++dst_x) { + float * dst_data = (float *)dst->data + (row * p.dst_w + dst_x) * c; + const int64_t src_y_base = dst_y * p.stride_y - p.pad_y; + const int64_t src_x_base = dst_x * p.stride_x - p.pad_x; + +#ifdef GGML_SIMD + // Vectorized loop + for (int64_t c_i = 0; c_i < c_pkg_end; c_i += pkg_size) { + GGML_F32_VEC sum = GGML_F32_VEC_ZERO; + for (int64_t knl_y = 0; knl_y < p.knl_h; ++knl_y) { + const int64_t src_y = src_y_base + knl_y * p.dilation_y; + if (src_y < 0 || src_y >= p.src_h) { + continue; + } + for (int64_t knl_x = 0; knl_x < p.knl_w; ++knl_x) { + const int64_t src_x = src_x_base + knl_x * p.dilation_x; + if (src_x < 0 || src_x >= p.src_w) { + continue; + } + GGML_F32_VEC k = GGML_F32_VEC_LOAD(knl_data + (knl_y * p.knl_w + knl_x) * c + c_i); + GGML_F32_VEC s = GGML_F32_VEC_LOAD(src_data + (src_y * p.src_w + src_x) * c + c_i); + sum = GGML_F32_VEC_FMA(sum, k, s); + } + } + GGML_F32_VEC_STORE(dst_data + c_i, sum); + } +#endif + // Scalar loop + for (int64_t c_i = c_pkg_end; c_i < c; ++c_i) { + float sum = 0.0f; + for (int64_t knl_y = 0; knl_y < p.knl_h; ++knl_y) { + const int64_t src_y = src_y_base + knl_y * p.dilation_y; + if (src_y < 0 || src_y >= p.src_h) { + continue; + } + for (int64_t knl_x = 0; knl_x < p.knl_w; ++knl_x) { + const int64_t src_x = src_x_base + knl_x * p.dilation_x; + if (src_x < 0 || src_x >= p.src_w) { + continue; + } + sum += knl_data[(knl_y * p.knl_w + knl_x) * c + c_i] + * src_data[(src_y * p.src_w + src_x) * c + c_i]; + } + } + dst_data[c_i] = sum; + } + } + } +} + +static void ggml_compute_forward_conv_2d_dw_whcn( + const ggml_compute_params * params, + const ggml_tensor * src, + const ggml_tensor * kernel, + ggml_tensor * dst, + const ggml_conv_2d_dw_params & p) { + + const int64_t n = p.channels * p.batch; + const int64_t per_thread = (n + params->nth - 1) / params->nth; + const int64_t start = params->ith * per_thread; + const int64_t end = MIN(start + per_thread, n); + + for (int64_t i = start; i < end; ++i) { + const float * knl_data = (const float *)kernel->data + (i % p.channels) * p.knl_w * p.knl_h; + const float * src_data = (const float *)src->data + i * p.src_w * p.src_h; + float * dst_data = (float *)dst->data + i * p.dst_w * p.dst_h; + + for (int64_t dst_y = 0; dst_y < p.dst_h; ++dst_y) { + for (int64_t dst_x = 0; dst_x < p.dst_w; ++dst_x) { + + float sum = 0.0f; + for (int64_t knl_y = 0; knl_y < p.knl_h; ++knl_y) { + const int64_t src_y = dst_y * p.stride_y + knl_y * p.dilation_y - p.pad_y; + if (src_y < 0 || src_y >= p.src_h) { + continue; + } + for (int64_t knl_x = 0; knl_x < p.knl_w; ++knl_x) { + const int64_t src_x = dst_x * p.stride_x + knl_x * p.dilation_x - p.pad_x; + if (src_x < 0 || src_x >= p.src_w) { + continue; + } + sum += knl_data[knl_y * p.knl_w + knl_x] + * src_data[src_y * p.src_w + src_x]; + } + } + dst_data[dst_y * p.dst_w + dst_x] = sum; + } + } + } +} + +void ggml_compute_forward_conv_2d_dw( + const ggml_compute_params * params, + ggml_tensor * dst) { + + const ggml_tensor * kernel = dst->src[0]; + const ggml_tensor * src = dst->src[1]; + ggml_conv_2d_dw_params p; + p.channels = src->ne[2]; + p.batch = src->ne[3]; + p.src_w = src->ne[0]; + p.src_h = src->ne[1]; + p.dst_w = dst->ne[0]; + p.dst_h = dst->ne[1]; + p.knl_w = kernel->ne[0]; + p.knl_h = kernel->ne[1]; + p.stride_x = dst->op_params[0]; + p.stride_y = dst->op_params[1]; + p.pad_x = dst->op_params[2]; + p.pad_y = dst->op_params[3]; + p.dilation_x = dst->op_params[4]; + p.dilation_y = dst->op_params[5]; + + GGML_ASSERT(kernel->ne[3] == p.channels); + GGML_ASSERT(dst->ne[3] == p.batch); + + if (ggml_is_contiguous(src)) { + ggml_compute_forward_conv_2d_dw_whcn(params, src, kernel, dst, p); + } else if (ggml_is_contiguous_channels(src)) { + // kernel should also have channels most contiguous in memory + GGML_ASSERT(kernel->nb[0] >= kernel->nb[2] && kernel->nb[1] >= kernel->nb[0]); + ggml_compute_forward_conv_2d_dw_cwhn(params, src, kernel, dst, p); + } else { + GGML_ABORT("non-contiguous memory layout not supported"); + } +} + // ggml_compute_forward_pool_1d_sk_p0 static void ggml_compute_forward_pool_1d_sk_p0( diff --git a/ggml/src/ggml-cpu/ops.h b/ggml/src/ggml-cpu/ops.h index 410a372047..dc081b9e66 100644 --- a/ggml/src/ggml-cpu/ops.h +++ b/ggml/src/ggml-cpu/ops.h @@ -65,6 +65,7 @@ void ggml_compute_forward_conv_transpose_1d(const struct ggml_compute_params * p void ggml_compute_forward_im2col(const struct ggml_compute_params * params, struct ggml_tensor * dst); void ggml_compute_forward_im2col_back_f32(const struct ggml_compute_params * params, struct ggml_tensor * dst); void ggml_compute_forward_conv_transpose_2d(const struct ggml_compute_params * params, struct ggml_tensor * dst); +void ggml_compute_forward_conv_2d_dw(const struct ggml_compute_params * params, struct ggml_tensor * dst); void ggml_compute_forward_pool_1d(const struct ggml_compute_params * params, struct ggml_tensor * dst); void ggml_compute_forward_pool_2d(const struct ggml_compute_params * params, struct ggml_tensor * dst); void ggml_compute_forward_pool_2d_back(const struct ggml_compute_params * params, struct ggml_tensor * dst); diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index 950772c75c..c8b2feff42 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -956,6 +956,7 @@ static const char * GGML_OP_NAME[GGML_OP_COUNT] = { "CONV_TRANSPOSE_1D", "IM2COL", "IM2COL_BACK", + "CONV_2D_DW", "CONV_TRANSPOSE_2D", "POOL_1D", "POOL_2D", @@ -993,7 +994,7 @@ static const char * GGML_OP_NAME[GGML_OP_COUNT] = { "OPT_STEP_ADAMW", }; -static_assert(GGML_OP_COUNT == 81, "GGML_OP_COUNT != 81"); +static_assert(GGML_OP_COUNT == 82, "GGML_OP_COUNT != 82"); static const char * GGML_OP_SYMBOL[GGML_OP_COUNT] = { "none", @@ -1050,6 +1051,7 @@ static const char * GGML_OP_SYMBOL[GGML_OP_COUNT] = { "conv_transpose_1d(x)", "im2col(x)", "im2col_back(x)", + "conv_2d_dw(x)", "conv_transpose_2d(x)", "pool_1d(x)", "pool_2d(x)", @@ -1087,7 +1089,7 @@ static const char * GGML_OP_SYMBOL[GGML_OP_COUNT] = { "adamw(x)", }; -static_assert(GGML_OP_COUNT == 81, "GGML_OP_COUNT != 81"); +static_assert(GGML_OP_COUNT == 82, "GGML_OP_COUNT != 82"); static_assert(GGML_OP_POOL_COUNT == 2, "GGML_OP_POOL_COUNT != 2"); @@ -1344,6 +1346,13 @@ bool ggml_is_permuted(const struct ggml_tensor * tensor) { return tensor->nb[0] > tensor->nb[1] || tensor->nb[1] > tensor->nb[2] || tensor->nb[2] > tensor->nb[3]; } +bool ggml_is_contiguous_channels(const struct ggml_tensor * tensor) { + return + tensor->nb[0] > tensor->nb[2] && + tensor->nb[1] > tensor->nb[0] && + tensor->nb[2] == ggml_type_size(tensor->type); +} + static inline bool ggml_is_padded_1d(const struct ggml_tensor * tensor) { static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); @@ -4050,6 +4059,46 @@ struct ggml_tensor * ggml_conv_2d_dw( return result; } +// ggml_conv_2d_dw_direct + +struct ggml_tensor * ggml_conv_2d_dw_direct( + struct ggml_context * ctx, + struct ggml_tensor * a, + struct ggml_tensor * b, + int stride0, + int stride1, + int pad0, + int pad1, + int dilation0, + int dilation1) { + GGML_ASSERT(a->ne[2] == 1); + GGML_ASSERT(a->ne[3] == b->ne[2]); + int64_t ne[4]; + ne[0] = ggml_calc_conv_output_size(b->ne[0], a->ne[0], stride0, pad0, dilation0); + ne[1] = ggml_calc_conv_output_size(b->ne[1], a->ne[1], stride1, pad1, dilation1); + ne[2] = b->ne[2]; + ne[3] = b->ne[3]; + + struct ggml_tensor * result = ggml_new_tensor(ctx, b->type, 4, ne); + + if (ggml_is_contiguous_channels(b)) { + // Result will be permuted the same way as input (CWHN order) + const int64_t type_size = ggml_type_size(result->type); + GGML_ASSERT(ggml_blck_size(result->type) == 1); + result->nb[0] = result->ne[2] * type_size; + result->nb[1] = result->ne[0] * result->nb[0]; + result->nb[2] = type_size; + } + + int32_t params[] = { stride0, stride1, pad0, pad1, dilation0, dilation1 }; + ggml_set_op_params(result, params, sizeof(params)); + + result->op = GGML_OP_CONV_2D_DW; + result->src[0] = a; + result->src[1] = b; + return result; +} + // ggml_conv_transpose_2d_p0 static int64_t ggml_calc_conv_transpose_output_size(int64_t ins, int64_t ks, int s, int p) { From 63b4911494afe04778c61b9c19019341d71c99fc Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 24 Apr 2025 16:47:43 +0300 Subject: [PATCH 003/126] sync : ggml ggml-ci --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index cad082a902..41feffca92 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -f71d538ece3fb32a04824dc6d1e73e360be9d22f +13bcf9ce50651a8b4238ec6d136f46f2c1b23b6f From 87616f0680947800ecba3e9f6bc6e101943bf8e6 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 24 Apr 2025 17:22:27 +0300 Subject: [PATCH 004/126] ggml : fix trailing whitespaces (#0) --- ggml/src/ggml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index c8b2feff42..2a39dc7bfd 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -4069,7 +4069,7 @@ struct ggml_tensor * ggml_conv_2d_dw_direct( int stride1, int pad0, int pad1, - int dilation0, + int dilation0, int dilation1) { GGML_ASSERT(a->ne[2] == 1); GGML_ASSERT(a->ne[3] == b->ne[2]); From 226251ed56b85190e18a1cca963c45b888f4953c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 24 Apr 2025 22:29:22 +0300 Subject: [PATCH 005/126] embeddings : fix batch sizes (#13076) ggml-ci --- examples/embedding/embedding.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/embedding/embedding.cpp b/examples/embedding/embedding.cpp index 6f08904159..06fce236e2 100644 --- a/examples/embedding/embedding.cpp +++ b/examples/embedding/embedding.cpp @@ -89,6 +89,13 @@ int main(int argc, char ** argv) { common_init(); params.embedding = true; + + // utilize the full context + if (params.n_batch < params.n_ctx) { + LOG_WRN("%s: setting batch size to %d\n", __func__, params.n_ctx); + params.n_batch = params.n_ctx; + } + // For non-causal models, batch size must be equal to ubatch size params.n_ubatch = params.n_batch; @@ -134,7 +141,6 @@ int main(int argc, char ** argv) { // max batch size const uint64_t n_batch = params.n_batch; - GGML_ASSERT(params.n_batch >= params.n_ctx); // tokenize the prompts and trim std::vector> inputs; From 13be08daf992c89d5169518229b3740041c0f419 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Thu, 24 Apr 2025 22:17:04 +0200 Subject: [PATCH 006/126] clip : remove boi/eoi embeddings for GLM-edge model (#13081) --- examples/llava/clip-impl.h | 2 -- examples/llava/clip.cpp | 17 +---------------- examples/llava/mtmd.cpp | 5 +++++ 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/examples/llava/clip-impl.h b/examples/llava/clip-impl.h index 8d310fb027..53ac381304 100644 --- a/examples/llava/clip-impl.h +++ b/examples/llava/clip-impl.h @@ -90,8 +90,6 @@ #define TN_GLM_ADAPTER_D_H_2_4H "adapter.linear.dense_h_to_4h.%s" #define TN_GLM_ADAPTER_GATE "adapter.linear.gate.%s" #define TN_GLM_ADAPTER_D_4H_2_H "adapter.linear.dense_4h_to_h.%s" -#define TN_GLM_BOI_W "adapter.boi" -#define TN_GLM_EOI_W "adapter.eoi" enum projector_type { PROJECTOR_TYPE_MLP, diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 4eec4a2646..9a5ab7c819 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -244,8 +244,6 @@ struct clip_vision_model { //GLMV-Edge projection struct ggml_tensor * mm_model_adapter_conv_w = nullptr; struct ggml_tensor * mm_model_adapter_conv_b = nullptr; - struct ggml_tensor * boi_w = nullptr; - struct ggml_tensor * eoi_w = nullptr; // MobileVLM projection struct ggml_tensor * mm_model_mlp_1_w = nullptr; @@ -1697,8 +1695,6 @@ struct clip_model_loader { vision_model.mm_model_mlp_1_w = get_tensor(string_format(TN_GLM_ADAPTER_D_H_2_4H,"weight")); vision_model.mm_model_mlp_2_w = get_tensor(string_format(TN_GLM_ADAPTER_GATE,"weight")); vision_model.mm_model_mlp_3_w = get_tensor(string_format(TN_GLM_ADAPTER_D_4H_2_H,"weight")); - vision_model.boi_w = get_tensor(TN_GLM_BOI_W); - vision_model.eoi_w = get_tensor(TN_GLM_EOI_W); } break; case PROJECTOR_TYPE_MERGER: { @@ -2593,8 +2589,7 @@ void clip_free(clip_ctx * ctx) { } size_t clip_embd_nbytes(const struct clip_ctx * ctx) { - int extra_tokens = ctx->has_glm_projector ? 2 : 0; - return (clip_n_patches(ctx) + extra_tokens) * clip_n_mmproj_embd(ctx) * sizeof(float); + return clip_n_patches(ctx) * clip_n_mmproj_embd(ctx) * sizeof(float); } size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_h, int img_w) { @@ -2790,9 +2785,6 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } if (ctx->has_glm_projector) { GGML_ASSERT(batch_size == 1); - ggml_tensor * boi = ctx->vision_model.boi_w; - ggml_backend_tensor_get(boi,vec,0,ggml_nbytes(boi)); - vec = (float*)(vec+ggml_nelements(boi)); //offset for boi } // build the inference graph @@ -3001,13 +2993,6 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima // copy the embeddings to the location passed by the user ggml_backend_tensor_get(embeddings, vec, 0, ggml_nbytes(embeddings)); - if (ctx->has_glm_projector) { - //eoi - ggml_tensor * eoi = ctx->vision_model.eoi_w; - int offset = ggml_nelements(embeddings); - ggml_backend_tensor_get(eoi, vec+offset, 0, ggml_nbytes(eoi)); - } - return true; } diff --git a/examples/llava/mtmd.cpp b/examples/llava/mtmd.cpp index 11ca7b30f1..a994ef0166 100644 --- a/examples/llava/mtmd.cpp +++ b/examples/llava/mtmd.cpp @@ -186,6 +186,11 @@ int32_t mtmd_tokenize(mtmd_context * ctx, marker_modified = "" + ctx->image_marker + ""; string_replace_all(prompt_modified, ctx->image_marker, marker_modified); + } else if (proj_type == PROJECTOR_TYPE_GLM_EDGE) { + // <|begin_of_image|> ... (image embeddings) ... <|end_of_image|> + marker_modified = "<|begin_of_image|>" + ctx->image_marker + "<|end_of_image|>"; + string_replace_all(prompt_modified, ctx->image_marker, marker_modified); + } else if (proj_type == PROJECTOR_TYPE_IDEFICS3) { // https://github.com/huggingface/transformers/blob/a42ba80fa520c784c8f11a973ca9034e5f859b79/src/transformers/models/idefics3/processing_idefics3.py#L192-L215 marker_modified = "" + ctx->image_marker + ""; From 553a5c3a9fdf771be2101bc3529937963f817457 Mon Sep 17 00:00:00 2001 From: Radoslav Gerganov Date: Fri, 25 Apr 2025 10:08:08 +0300 Subject: [PATCH 007/126] rpc : do not wait for response when sending RPC_CMD_SET_TENSOR (#12943) RPC_CMD_SET_TENSOR always returns an empty response and we send this 4 times per token. We can improve TG speed if we don't wait for this empty response. The performance impact of this change depends on the network latency. --- ggml/include/ggml-rpc.h | 2 +- ggml/src/ggml-rpc/ggml-rpc.cpp | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ggml/include/ggml-rpc.h b/ggml/include/ggml-rpc.h index c8b6097f7e..1e67411276 100644 --- a/ggml/include/ggml-rpc.h +++ b/ggml/include/ggml-rpc.h @@ -7,7 +7,7 @@ extern "C" { #endif -#define RPC_PROTO_MAJOR_VERSION 1 +#define RPC_PROTO_MAJOR_VERSION 2 #define RPC_PROTO_MINOR_VERSION 0 #define RPC_PROTO_PATCH_VERSION 0 #define GGML_RPC_MAX_SERVERS 16 diff --git a/ggml/src/ggml-rpc/ggml-rpc.cpp b/ggml/src/ggml-rpc/ggml-rpc.cpp index a0667b7d70..9023eb0919 100644 --- a/ggml/src/ggml-rpc/ggml-rpc.cpp +++ b/ggml/src/ggml-rpc/ggml-rpc.cpp @@ -378,8 +378,8 @@ static bool parse_endpoint(const std::string & endpoint, std::string & host, int } // RPC request : | rpc_cmd (1 byte) | request_size (8 bytes) | request_data (request_size bytes) | -// RPC response: | response_size (8 bytes) | response_data (response_size bytes) | -static bool send_rpc_cmd(const std::shared_ptr & sock, enum rpc_cmd cmd, const void * input, size_t input_size, void * output, size_t output_size) { +// No response +static bool send_rpc_cmd(const std::shared_ptr & sock, enum rpc_cmd cmd, const void * input, size_t input_size) { uint8_t cmd_byte = cmd; if (!send_data(sock->fd, &cmd_byte, sizeof(cmd_byte))) { return false; @@ -390,6 +390,15 @@ static bool send_rpc_cmd(const std::shared_ptr & sock, enum rpc_cmd cm if (!send_data(sock->fd, input, input_size)) { return false; } + return true; +} + +// RPC request : | rpc_cmd (1 byte) | request_size (8 bytes) | request_data (request_size bytes) | +// RPC response: | response_size (8 bytes) | response_data (response_size bytes) | +static bool send_rpc_cmd(const std::shared_ptr & sock, enum rpc_cmd cmd, const void * input, size_t input_size, void * output, size_t output_size) { + if (!send_rpc_cmd(sock, cmd, input, input_size)) { + return false; + } // TODO: currently the output_size is always known, do we need support for commands with variable output size? // even if we do, we can skip sending output_size from the server for commands with known output size uint64_t out_size; @@ -555,7 +564,7 @@ static void ggml_backend_rpc_buffer_set_tensor(ggml_backend_buffer_t buffer, ggm memcpy(input.data(), &rpc_tensor, sizeof(rpc_tensor)); memcpy(input.data() + sizeof(rpc_tensor), &offset, sizeof(offset)); memcpy(input.data() + sizeof(rpc_tensor) + sizeof(offset), data, size); - bool status = send_rpc_cmd(ctx->sock, RPC_CMD_SET_TENSOR, input.data(), input.size(), nullptr, 0); + bool status = send_rpc_cmd(ctx->sock, RPC_CMD_SET_TENSOR, input.data(), input.size()); GGML_ASSERT(status); } @@ -1428,9 +1437,6 @@ static void rpc_serve_client(ggml_backend_t backend, const char * cache_dir, if (!server.set_tensor(input)) { return; } - if (!send_msg(sockfd, nullptr, 0)) { - return; - } break; } case RPC_CMD_SET_TENSOR_HASH: { From 514c45608f93f66106a712dee1abe062099ce790 Mon Sep 17 00:00:00 2001 From: Neo Zhang Jianyu Date: Fri, 25 Apr 2025 17:37:51 +0800 Subject: [PATCH 008/126] change the reorder tensor from init to execute OP (#13003) --- ggml/src/ggml-sycl/common.hpp | 1 - ggml/src/ggml-sycl/ggml-sycl.cpp | 125 +++++++++++++++---------------- 2 files changed, 61 insertions(+), 65 deletions(-) diff --git a/ggml/src/ggml-sycl/common.hpp b/ggml/src/ggml-sycl/common.hpp index 96becabc85..0ab0fb0aa3 100644 --- a/ggml/src/ggml-sycl/common.hpp +++ b/ggml/src/ggml-sycl/common.hpp @@ -313,7 +313,6 @@ struct ggml_backend_sycl_context { int device; std::string name; optimize_feature opt_feature; - bool optimized_graph=false; queue_ptr qptrs[GGML_SYCL_MAX_DEVICES][GGML_SYCL_MAX_STREAMS] = { { nullptr } }; diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index 8081a77b74..548f2d0a06 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -192,7 +192,7 @@ static void ggml_check_sycl() try { if (!initialized) { g_ggml_sycl_debug = get_sycl_env("GGML_SYCL_DEBUG", 0); - g_ggml_sycl_disable_optimize= get_sycl_env("GGML_SYCL_DISABLE_OPT", 1); + g_ggml_sycl_disable_optimize= get_sycl_env("GGML_SYCL_DISABLE_OPT", 0); g_ggml_sycl_disable_graph = get_sycl_env("GGML_SYCL_DISABLE_GRAPH", 1); GGML_SYCL_DEBUG("[SYCL] call ggml_check_sycl\n"); GGML_LOG_INFO("Running with Environment Variables:\n"); @@ -2852,6 +2852,64 @@ static bool ggml_sycl_supports_dmmv(enum ggml_type type) { } } +static void reorder_qw(char *data_device, const int ncols, const int nrows, + size_t size, size_t offset, dpct::queue_ptr stream) { + auto tmp_buf = sycl::malloc_shared(size, *stream); + SYCL_CHECK( + CHECK_TRY_ERROR((*stream).memcpy(tmp_buf, data_device, size) + .wait())); + GGML_ASSERT((size % sizeof(block_q4_0) == 0)); + GGML_ASSERT((offset % sizeof(block_q4_0) == 0)); + int offset_blks = offset / sizeof(block_q4_0); + auto qs_ptr = (uint8_t*)data_device + offset_blks * QK4_0 / 2;; + auto d_ptr = (sycl::half*)(qs_ptr + ncols * nrows / 2) + offset_blks; + + stream->parallel_for( + size / sizeof(block_q4_0), + [=](auto i) [[sycl::reqd_sub_group_size(WARP_SIZE)]] { + const block_q4_0* x = (const block_q4_0*)tmp_buf; + const int ib = i; + + for (int j = 0; j < QK4_0/2; j ++) + { + *(qs_ptr + ib * QK4_0 / 2 + j) = x[ib].qs[j]; + } + *(d_ptr + ib) = x[ib].d; + }); + + sycl::free(tmp_buf, *stream); +} + +static void reorder_qw(const ggml_tensor * src0, dpct::queue_ptr stream) { + char*data_device = (char*)src0->data; + size_t ncols = src0->ne[0]; + size_t nrows = src0->ne[1]; + size_t size = ggml_nbytes(src0); + + reorder_qw(data_device, ncols, nrows, size, 0, stream); +} + +/* +* This function could be called when the OP (mul_mat) function support reorder optimizition. +*/ +static void opt_for_reorder(ggml_backend_sycl_context * ctx, const ggml_tensor * src0, const ggml_tensor * src1, + ggml_tensor * dst) { + if (!g_ggml_sycl_disable_optimize && //allow optimize, controlled by $GGML_SYCL_DISABLE_OPT + ctx->opt_feature.reorder && //allow this device due to good perf, skip the devices with bad perf. + dst->op == GGML_OP_MUL_MAT && //limit to some supported cases of Q4_0, to do for more cases. + src0->type == GGML_TYPE_Q4_0 && + src1->ne[2]==1 && src1->ne[3]==1) { + + ggml_tensor_extra_gpu* extra = (ggml_tensor_extra_gpu*)src0->extra; + if (!extra) return; //only happen in CI/UT permute case. + + if (extra->optimized_feature.reorder) return; //skip the tensor which is handled for reorder. + + reorder_qw(src0, ctx->stream()); + extra->optimized_feature.reorder = true; //used to decode/dequan in next steps. + } +} + static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { const bool split = ggml_backend_buffer_is_sycl_split(src0->buffer); @@ -2914,6 +2972,7 @@ static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor // KQ + KQV multi-batch ggml_sycl_mul_mat_batched_sycl(ctx, src0, src1, dst); } else if (use_dequantize_mul_mat_vec) { + opt_for_reorder(&ctx, src0, src1, dst); //the OP function in this branch support reorder. ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_dequantize_mul_mat_vec, false); // save_tensor_txt("1/dst_1.txt", (float*) dst->data, src0->ne[1], sizeof(float), ctx.stream()); } else if (use_mul_mat_vec_q) { @@ -2921,6 +2980,7 @@ static void ggml_sycl_mul_mat(ggml_backend_sycl_context & ctx, const ggml_tensor } else if (use_mul_mat_q) { ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_mul_mat_q, true); } else { + opt_for_reorder(&ctx, src0, src1, dst); //the OP function in this branch support reorder. ggml_sycl_op_mul_mat(ctx, src0, src1, dst, ggml_sycl_op_mul_mat_sycl, false); } } @@ -3545,71 +3605,8 @@ catch (sycl::exception const &exc) { std::exit(1); } -static void reorder_qw(char *data_device, const int ncols, const int nrows, - size_t size, size_t offset, dpct::queue_ptr stream) { - auto tmp_buf = sycl::malloc_shared(size, *stream); - SYCL_CHECK( - CHECK_TRY_ERROR((*stream).memcpy(tmp_buf, data_device, size) - .wait())); - GGML_ASSERT((size % sizeof(block_q4_0) == 0)); - GGML_ASSERT((offset % sizeof(block_q4_0) == 0)); - int offset_blks = offset / sizeof(block_q4_0); - auto qs_ptr = (uint8_t*)data_device + offset_blks * QK4_0 / 2;; - auto d_ptr = (sycl::half*)(qs_ptr + ncols * nrows / 2) + offset_blks; - - stream->parallel_for( - size / sizeof(block_q4_0), - [=](auto i) [[sycl::reqd_sub_group_size(WARP_SIZE)]] { - const block_q4_0* x = (const block_q4_0*)tmp_buf; - const int ib = i; - - for (int j = 0; j < QK4_0/2; j ++) - { - *(qs_ptr + ib * QK4_0 / 2 + j) = x[ib].qs[j]; - } - *(d_ptr + ib) = x[ib].d; - }); - - sycl::free(tmp_buf, *stream); -} - -static void reorder_qw(ggml_tensor * src0, dpct::queue_ptr stream) { - char*data_device = (char*)src0->data; - size_t ncols = src0->ne[0]; - size_t nrows = src0->ne[1]; - size_t size = ggml_nbytes(src0); - - reorder_qw(data_device, ncols, nrows, size, 0, stream); -} - -static void opt_for_reorder(ggml_tensor * dst, dpct::queue_ptr stream) { - ggml_tensor *src0 = dst->src[0]; - ggml_tensor *src1 = dst->src[1]; - - if (dst->op == GGML_OP_MUL_MAT && src0->type == GGML_TYPE_Q4_0 && - src1->ne[2]==1 && src1->ne[3]==1) { - reorder_qw(src0, stream); - ggml_tensor_extra_gpu* extra = (ggml_tensor_extra_gpu*)src0->extra; - GGML_ASSERT(extra); - extra->optimized_feature.reorder = true; //used to decode/dequan in next steps. - } -} - -static void optimize_graph_once(ggml_cgraph * cgraph, ggml_backend_sycl_context * ctx) { - dpct::queue_ptr stream = ctx->stream(); - if (ctx->optimized_graph) { - return; - } - ctx->optimized_graph = true; - - for (int i = 0; i < cgraph->n_nodes; i++) { - if (ctx->opt_feature.reorder) opt_for_reorder(cgraph->nodes[i], stream); - } -} - static void ggml_backend_sycl_graph_compute_impl(ggml_backend_sycl_context * sycl_ctx, ggml_cgraph * cgraph) { ggml_sycl_set_main_device(sycl_ctx->device); - if (!g_ggml_sycl_disable_optimize) optimize_graph_once(cgraph, sycl_ctx); for (int i = 0; i < cgraph->n_nodes; i++) { ggml_tensor * node = cgraph->nodes[i]; From edb18b6e8f5ea6509ad43057f8bb98fc557dbc4e Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Fri, 25 Apr 2025 14:31:42 +0200 Subject: [PATCH 009/126] clip : fix pixtral on some GPU backends (#13097) * clip : fix pixtral on some GPU backends * refactor inp_raw set * rm outdated comment * fix dynamic size * add TODO --- examples/llava/clip.cpp | 68 ++++++++++++++++++++++++++------------ tests/test-backend-ops.cpp | 2 ++ 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 9a5ab7c819..da8a590f0e 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -554,15 +554,15 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im } // implementation of the 2D RoPE without adding a new op in ggml +// this is not efficient (use double the memory), but works on all backends +// TODO: there was a more efficient which relies on ggml_view and ggml_rope_ext_inplace, but the rope inplace does not work well with non-contiguous tensors ; we should fix that and revert back to the original implementation in https://github.com/ggml-org/llama.cpp/pull/13065 static ggml_tensor * build_rope_2d( - ggml_cgraph * gf, ggml_context * ctx0, ggml_tensor * cur, ggml_tensor * pos_h, ggml_tensor * pos_w, const float freq_base ) { - ggml_tensor * tmp; const int64_t n_dim = cur->ne[0]; const int64_t n_head = cur->ne[1]; const int64_t n_pos = cur->ne[2]; @@ -571,18 +571,23 @@ static ggml_tensor * build_rope_2d( // we will have a list of 4 inv_freq: 1e-0, 1e-1, 1e-2, 1e-3 // first half of cur will use 1e-0, 1e-2 (even) // second half of cur will use 1e-1, 1e-3 (odd) - // - // for the first half, the trick here is to rotate n_dim/2, so inv_freq will be even + // the trick here is to rotate just half of n_dim, so inv_freq will automatically be even // ^ don't ask me why, it's math! -2(2i) / n_dim == -2i / (n_dim/2) // then for the second half, we use freq_scale to shift the inv_freq // ^ why? replace (2i) with (2i+1) in the above equation const float freq_scale_odd = std::pow(freq_base, (float)-2/n_dim); // first half + ggml_tensor * first; { - cur = ggml_rope_ext_inplace( + first = ggml_view_3d(ctx0, cur, + n_dim/2, n_head, n_pos, + ggml_row_size(cur->type, n_dim), + ggml_row_size(cur->type, n_dim*n_head), + 0); + first = ggml_rope_ext( ctx0, - cur, + first, pos_h, // positions nullptr, // freq factors n_dim/2, // n_dims @@ -592,15 +597,17 @@ static ggml_tensor * build_rope_2d( } // second half + ggml_tensor * second; { - tmp = ggml_view_3d(ctx0, cur, + second = ggml_view_3d(ctx0, cur, n_dim/2, n_head, n_pos, ggml_row_size(cur->type, n_dim), ggml_row_size(cur->type, n_dim*n_head), n_dim/2 * ggml_element_size(cur)); - tmp = ggml_rope_ext_inplace( + second = ggml_cont(ctx0, second); // copy, because ggml_rope don't play well with non-contiguous tensors + second = ggml_rope_ext( ctx0, - tmp, + second, pos_w, // positions nullptr, // freq factors n_dim/2, // n_dims @@ -608,10 +615,9 @@ static ggml_tensor * build_rope_2d( freq_scale_odd, 0.0f, 1.0f, 0.0f, 0.0f ); - // calculate inplace (modify cur directly) - ggml_build_forward_expand(gf, tmp); } + cur = ggml_concat(ctx0, first, second, 0); return cur; } @@ -680,13 +686,13 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i struct ggml_tensor * Q = ggml_mul_mat(ctx0, model.layers[il].q_w, cur); Q = ggml_reshape_3d(ctx0, Q, d_head, n_head, num_patches); - Q = build_rope_2d(gf, ctx0, Q, pos_h, pos_w, hparams.rope_theta); + Q = build_rope_2d(ctx0, Q, pos_h, pos_w, hparams.rope_theta); Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); struct ggml_tensor * K = ggml_mul_mat(ctx0, model.layers[il].k_w, cur); K = ggml_reshape_3d(ctx0, K, d_head, n_head, num_patches); - K = build_rope_2d(gf, ctx0, K, pos_h, pos_w, hparams.rope_theta); + K = build_rope_2d(ctx0, K, pos_h, pos_w, hparams.rope_theta); K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); struct ggml_tensor * V = ggml_mul_mat(ctx0, model.layers[il].v_w, cur); @@ -2796,10 +2802,15 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const auto & model = ctx->vision_model; const auto & hparams = model.hparams; + // TODO @ngxson : this is ugly, need to refactor later + bool support_dynamic_size = ctx->has_minicpmv_projector + || ctx->has_qwen2vl_merger + || ctx->proj_type == PROJECTOR_TYPE_PIXTRAL; + const int image_size = hparams.image_size; int image_size_width = image_size; int image_size_height = image_size; - if (ctx->has_minicpmv_projector | ctx->has_qwen2vl_merger) { + if (support_dynamic_size) { image_size_width = imgs.entries[0]->nx; image_size_height = imgs.entries[0]->ny; } @@ -2811,9 +2822,20 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima { struct ggml_tensor * inp_raw = ggml_graph_get_tensor(gf, "inp_raw"); - float * data = (float *)malloc(ggml_nbytes(inp_raw)); + std::vector inp_data(ggml_nelements(inp_raw)); + float * data = inp_data.data(); + + // layout of data (note: the channel dim is unrolled to better visualize the layout): + // + // ┌──W──┐ + // │ H │ channel = R + // ├─────┤ │ + // │ H │ channel = G + // ├─────┤ │ + // │ H │ channel = B + // └─────┘ │ + // ──────┘ x B - // TODO @ngxson : this whole code block is ugly, will need to be refactored for (size_t i = 0; i < imgs.entries.size(); i++) { const int nx = imgs.entries[i]->nx; const int ny = imgs.entries[i]->ny; @@ -2828,17 +2850,19 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int n = nx * ny; for (int b = 0; b < batch_size; b++) { - for (int k = 0; k < 3; k++) { - for (int y = 0; y < ny; y++) { - for (int x = 0; x < nx; x++) { - data[(b * 3 * n) + k * n + y * nx + x] = imgs.entries[b]->buf[3 * (y * nx + x) + k]; - } + float * batch_entry = data + b * (3*n); + for (int y = 0; y < ny; y++) { + for (int x = 0; x < nx; x++) { + size_t base_src = 3*(y * nx + x); // idx of the first channel + size_t base_dst = y * nx + x; // idx of the first channel + batch_entry[ base_dst] = imgs.entries[b]->buf[base_src ]; + batch_entry[1*n + base_dst] = imgs.entries[b]->buf[base_src + 1]; + batch_entry[2*n + base_dst] = imgs.entries[b]->buf[base_src + 2]; } } } } ggml_backend_tensor_set(inp_raw, data, 0, ggml_nbytes(inp_raw)); - free(data); } if (ctx->has_minicpmv_projector) { { diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 61751755b3..d70acb7719 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -2606,6 +2606,8 @@ struct test_rope : public test_case { } else { out = ggml_rope_ext_back(ctx, a, pos, freq, n_dims, mode, 0, 10000.0f, fs, ef, af, 1.0f, 1.0f); } + + // TODO: add test with a non-contiguous view as input ; this case is needed for build_rope_2d in clip.cpp } ggml_set_name(out, "out"); From 558a764713468f26f5a163d25a22100c9a04a48f Mon Sep 17 00:00:00 2001 From: City <125218114+city96@users.noreply.github.com> Date: Fri, 25 Apr 2025 14:38:34 +0200 Subject: [PATCH 010/126] Force FP32 compute in GLM4 FFN Down (#13101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Force FP32 compute in cuBLAS GEMM * Revert "Force FP32 compute in cuBLAS GEMM" This reverts commit 6efd872732159ab88ee7b3c1d77ba5ebc83079bd. * Force F32 compute in GLM4 ffn down * Edit comment to clarify issue Co-authored-by: Johannes Gäßler --------- Co-authored-by: Johannes Gäßler --- src/llama-graph.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index a85e97288e..b52e3f6203 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -803,6 +803,10 @@ ggml_tensor * llm_graph_context::build_ffn( if (down) { cur = build_lora_mm(down, cur); + if (arch == LLM_ARCH_GLM4) { + // GLM4 seems to have numerical issues with half-precision accumulators + ggml_mul_mat_set_prec(cur, GGML_PREC_F32); + } } if (down_b) { From 295354ea6848a77bdee204ee1c971d9b92ffcca9 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Fri, 25 Apr 2025 19:40:11 +0200 Subject: [PATCH 011/126] llama : fix K-shift with quantized K and BLAS backend (#13113) --- src/llama-context.cpp | 17 +++-------------- src/llama-context.h | 3 +-- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/llama-context.cpp b/src/llama-context.cpp index 983385f86d..a52b6850b4 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -469,8 +469,7 @@ ggml_tensor * llama_context::build_rope_shift( ggml_tensor * shift, ggml_tensor * factors, float freq_base, - float freq_scale, - ggml_backend_buffer * bbuf) const { + float freq_scale) const { const auto & n_ctx_orig = cparams.n_ctx_orig_yarn; const auto & yarn_ext_factor = cparams.yarn_ext_factor; @@ -492,17 +491,7 @@ ggml_tensor * llama_context::build_rope_shift( // dequantize to f32 -> RoPE -> quantize back tmp = ggml_cast(ctx0, cur, GGML_TYPE_F32); - if (bbuf) { - for (const auto & backend : backends) { - // Figure out which backend KV cache belongs to - if (ggml_backend_supports_buft(backend.get(), ggml_backend_buffer_get_type(bbuf))) { - ggml_backend_sched_set_tensor_backend(sched.get(), tmp, backend.get()); - break; - } - } - } - - tmp = ggml_rope_ext_inplace(ctx0, tmp, + tmp = ggml_rope_ext(ctx0, tmp, shift, factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, yarn_ext_factor, yarn_attn_factor, yarn_beta_fast, yarn_beta_slow); @@ -582,7 +571,7 @@ llm_graph_result_ptr llama_context::build_kv_self_shift( ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa), 0); - ggml_tensor * cur = build_rope_shift(ctx0, k, inp->k_shift, rope_factors, freq_base_l, freq_scale_l, kv_self->k_l[il]->buffer); + ggml_tensor * cur = build_rope_shift(ctx0, k, inp->k_shift, rope_factors, freq_base_l, freq_scale_l); ggml_build_forward_expand(gf, cur); } diff --git a/src/llama-context.h b/src/llama-context.h index 04facb544c..5457f077c1 100644 --- a/src/llama-context.h +++ b/src/llama-context.h @@ -170,8 +170,7 @@ private: ggml_tensor * shift, ggml_tensor * factors, float freq_base, - float freq_scale, - ggml_backend_buffer * bbuf) const; + float freq_scale) const; llm_graph_result_ptr build_kv_self_shift( ggml_context * ctx0, From d5fe4e81bd447124836ecfb47d794f8768665b9f Mon Sep 17 00:00:00 2001 From: frob Date: Sat, 26 Apr 2025 10:10:20 +0200 Subject: [PATCH 012/126] grammar : handle maxItems == 0 in JSON schema (#13117) Co-authored-by: Richard Lyons --- common/json-schema-to-grammar.cpp | 3 +++ examples/json_schema_to_grammar.py | 3 +++ .../public_legacy/json-schema-to-grammar.mjs | 3 +++ tests/test-json-schema-to-grammar.cpp | 16 ++++++++++++++++ 4 files changed, 25 insertions(+) diff --git a/common/json-schema-to-grammar.cpp b/common/json-schema-to-grammar.cpp index 9067982257..5b3059c2f7 100644 --- a/common/json-schema-to-grammar.cpp +++ b/common/json-schema-to-grammar.cpp @@ -16,6 +16,9 @@ using json = nlohmann::ordered_json; static std::string build_repetition(const std::string & item_rule, int min_items, int max_items, const std::string & separator_rule = "") { auto has_max = max_items != std::numeric_limits::max(); + if (max_items == 0) { + return ""; + } if (min_items == 0 && max_items == 1) { return item_rule + "?"; } diff --git a/examples/json_schema_to_grammar.py b/examples/json_schema_to_grammar.py index 55f94c0b0a..ed37958554 100755 --- a/examples/json_schema_to_grammar.py +++ b/examples/json_schema_to_grammar.py @@ -10,6 +10,9 @@ from typing import Any, List, Optional, Set, Tuple, Union def _build_repetition(item_rule, min_items, max_items, separator_rule=None): + if max_items == 0: + return "" + if min_items == 0 and max_items == 1: return f'{item_rule}?' diff --git a/examples/server/public_legacy/json-schema-to-grammar.mjs b/examples/server/public_legacy/json-schema-to-grammar.mjs index f767ce7b72..b12bf2ab09 100644 --- a/examples/server/public_legacy/json-schema-to-grammar.mjs +++ b/examples/server/public_legacy/json-schema-to-grammar.mjs @@ -2,6 +2,9 @@ const SPACE_RULE = '| " " | "\\n"{1,2} [ \\t]{0,20}'; function _buildRepetition(itemRule, minItems, maxItems, opts={}) { + if (maxItems == 0) { + return ''; + } if (minItems === 0 && maxItems === 1) { return `${itemRule}?`; } diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index e35134f3cb..38cf01d6d8 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -597,6 +597,22 @@ static void test_all(const std::string & lang, std::function Date: Sat, 26 Apr 2025 22:05:31 +0800 Subject: [PATCH 013/126] ggml: move fp16/bf16 conversion optimizations to CPU backend + export conversion APIs (#13107) * ggml: dynamic x86_64 feature detection for FP32 <-> FP16/BF16 conversion * move fp converter to ggml-cpu * Switch ggml_compute_forward_get_rows_f16/bf16 to new ggml_cpu_fp16/bf16_to_fp32 --- ggml/include/ggml-cpu.h | 5 ++ ggml/src/ggml-cpu/ggml-cpu.c | 91 +++++++++++++++++++++++++++++++++++- ggml/src/ggml-cpu/ops.cpp | 4 +- ggml/src/ggml.c | 51 ++------------------ 4 files changed, 101 insertions(+), 50 deletions(-) diff --git a/ggml/include/ggml-cpu.h b/ggml/include/ggml-cpu.h index f5e11f1e10..de77a875ec 100644 --- a/ggml/include/ggml-cpu.h +++ b/ggml/include/ggml-cpu.h @@ -133,6 +133,11 @@ extern "C" { GGML_BACKEND_API ggml_backend_reg_t ggml_backend_cpu_reg(void); + GGML_BACKEND_API void ggml_cpu_fp32_to_fp16(const float *, ggml_fp16_t *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp16_to_fp32(const ggml_fp16_t *, float *, int64_t); + GGML_BACKEND_API void ggml_cpu_fp32_to_bf16(const float *, ggml_bf16_t *, int64_t); + GGML_BACKEND_API void ggml_cpu_bf16_to_fp32(const ggml_bf16_t *, float *, int64_t); + #ifdef __cplusplus } #endif diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index dbad8f61a1..64405449e2 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -215,7 +215,7 @@ static const struct ggml_type_traits_cpu type_traits_cpu[GGML_TYPE_COUNT] = { .nrows = 1, }, [GGML_TYPE_F16] = { - .from_float = (ggml_from_float_t) ggml_fp32_to_fp16_row, + .from_float = (ggml_from_float_t) ggml_cpu_fp32_to_fp16, .vec_dot = (ggml_vec_dot_t) ggml_vec_dot_f16, .vec_dot_type = GGML_TYPE_F16, .nrows = 1, @@ -356,7 +356,7 @@ static const struct ggml_type_traits_cpu type_traits_cpu[GGML_TYPE_COUNT] = { .from_float = quantize_row_q8_K, }, [GGML_TYPE_BF16] = { - .from_float = (ggml_from_float_t) ggml_fp32_to_bf16_row, + .from_float = (ggml_from_float_t) ggml_cpu_fp32_to_bf16, .vec_dot = (ggml_vec_dot_t) ggml_vec_dot_bf16, .vec_dot_type = GGML_TYPE_BF16, .nrows = 1, @@ -3166,6 +3166,93 @@ enum ggml_status ggml_graph_compute_with_ctx(struct ggml_context * ctx, struct g return ggml_graph_compute(cgraph, &cplan); } +void ggml_cpu_fp32_to_fp16(const float * x, ggml_fp16_t * y, int64_t n) { + int64_t i = 0; +#if defined(__F16C__) +#if defined(__AVX512F__) + for (; i + 15 < n; i += 16) { + __m512 x_vec = _mm512_loadu_ps(x + i); + __m256i y_vec = _mm512_cvtps_ph(x_vec, _MM_FROUND_TO_NEAREST_INT); + _mm256_storeu_si256((__m256i *)(y + i), y_vec); + } +#endif + for (; i + 7 < n; i += 8) { + __m256 x_vec = _mm256_loadu_ps(x + i); + __m128i y_vec = _mm256_cvtps_ph(x_vec, _MM_FROUND_TO_NEAREST_INT); + _mm_storeu_si128((__m128i *)(y + i), y_vec); + } + for (; i + 3 < n; i += 4) { + __m128 x_vec = _mm_loadu_ps(x + i); + __m128i y_vec = _mm_cvtps_ph(x_vec, _MM_FROUND_TO_NEAREST_INT); + _mm_storel_epi64((__m128i *)(y + i), y_vec); + } +#endif + for (; i < n; ++i) { + y[i] = GGML_FP32_TO_FP16(x[i]); + } +} + +void ggml_cpu_fp16_to_fp32(const ggml_fp16_t * x, float * y, int64_t n) { + int64_t i = 0; +#if defined(__F16C__) +#if defined(__AVX512F__) + for (; i + 15 < n; i += 16) { + __m256i x_vec = _mm256_loadu_si256((const __m256i *)(x + i)); + __m512 y_vec = _mm512_cvtph_ps(x_vec); + _mm512_storeu_ps(y + i, y_vec); + } +#endif + for (; i + 7 < n; i += 8) { + __m128i x_vec = _mm_loadu_si128((const __m128i *)(x + i)); + __m256 y_vec = _mm256_cvtph_ps(x_vec); + _mm256_storeu_ps(y + i, y_vec); + } + for (; i + 3 < n; i += 4) { + __m128i x_vec = _mm_loadl_epi64((const __m128i *)(x + i)); + __m128 y_vec = _mm_cvtph_ps(x_vec); + _mm_storeu_ps(y + i, y_vec); + } +#endif + for (; i < n; ++i) { + y[i] = GGML_FP16_TO_FP32(x[i]); + } +} + +void ggml_cpu_fp32_to_bf16(const float * x, ggml_bf16_t * y, int64_t n) { + int64_t i = 0; + for (; i < n; ++i) { + y[i] = GGML_FP32_TO_BF16(x[i]); + } +} + +void ggml_cpu_bf16_to_fp32(const ggml_bf16_t * x, float * y, int64_t n) { + int64_t i = 0; +#if defined(__AVX2__) +#if defined(__AVX512F__) + for (; i + 15 < n; i += 16) { + _mm512_storeu_ps(y + i, + _mm512_castsi512_ps( + _mm512_slli_epi32( + _mm512_cvtepu16_epi32( + _mm256_loadu_si256( + (const __m256i *)(x + i))), + 16))); + } +#endif + for (; i + 7 < n; i += 8) { + _mm256_storeu_ps(y + i, + _mm256_castsi256_ps( + _mm256_slli_epi32( + _mm256_cvtepu16_epi32( + _mm_loadu_si128( + (const __m128i *)(x + i))), + 16))); + } +#endif + for (; i < n; i++) { + y[i] = GGML_BF16_TO_FP32(x[i]); + } +} int ggml_cpu_has_avx(void) { #if defined(__AVX__) diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index 3c2adb2172..7413192b74 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -4222,7 +4222,7 @@ static void ggml_compute_forward_get_rows_f16( GGML_ASSERT(i01 >= 0 && i01 < ne01); - ggml_fp16_to_fp32_row( + ggml_cpu_fp16_to_fp32( (const ggml_fp16_t*) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); } @@ -4263,7 +4263,7 @@ static void ggml_compute_forward_get_rows_bf16( GGML_ASSERT(i01 >= 0 && i01 < ne01); - ggml_bf16_to_fp32_row( + ggml_cpu_bf16_to_fp32( (const ggml_bf16_t *) ((char *) src0->data + i01*nb01 + i11*nb02 + i12*nb03), (float *) ((char *) dst->data + i10*nb1 + i11*nb2 + i12*nb3), nc); } diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index 2a39dc7bfd..7654ae1779 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -4,6 +4,7 @@ #include "ggml-backend.h" #include "ggml-impl.h" #include "ggml-threading.h" +#include "ggml-cpu.h" #include "ggml.h" // FIXME: required here for quantization functions @@ -382,58 +383,16 @@ void ggml_fp16_to_fp32_row(const ggml_fp16_t * x, float * y, int64_t n) { } } -// FIXME: these functions must detect the instruction set at runtime, since they are part of the core ggml library -// currently, the ggml_cpu_has_* functions are entirely compile-time void ggml_fp32_to_fp16_row(const float * x, ggml_fp16_t * y, int64_t n) { - int64_t i = 0; -#if defined(__F16C__) - //if (ggml_cpu_has_f16c()) { - for (; i + 7 < n; i += 8) { - __m256 x_vec = _mm256_loadu_ps(x + i); - __m128i y_vec = _mm256_cvtps_ph(x_vec, _MM_FROUND_TO_NEAREST_INT); - _mm_storeu_si128((__m128i *)(y + i), y_vec); - } - for(; i + 3 < n; i += 4) { - __m128 x_vec = _mm_loadu_ps(x + i); - __m128i y_vec = _mm_cvtps_ph(x_vec, _MM_FROUND_TO_NEAREST_INT); - _mm_storel_epi64((__m128i *)(y + i), y_vec); - } - //} -#endif - for (; i < n; i++) { + int i = 0; + for (; i < n; ++i) { y[i] = GGML_FP32_TO_FP16(x[i]); } } void ggml_bf16_to_fp32_row(const ggml_bf16_t * x, float * y, int64_t n) { - int64_t i = 0; -#if defined(__AVX512F__) - //if (ggml_cpu_has_avx512()) { - for (; i + 16 <= n; i += 16) { - _mm512_storeu_ps(y + i, - _mm512_castsi512_ps( - _mm512_slli_epi32( - _mm512_cvtepu16_epi32( - _mm256_loadu_si256( - (const __m256i *)(x + i))), - 16))); - } - //} -#endif -#if defined(__AVX2__) - //if (ggml_cpu_has_avx2()) { - for (; i + 8 <= n; i += 8) { - _mm256_storeu_ps(y + i, - _mm256_castsi256_ps( - _mm256_slli_epi32( - _mm256_cvtepu16_epi32( - _mm_loadu_si128( - (const __m128i *)(x + i))), - 16))); - } - //} -#endif - for (; i < n; i++) { + int i = 0; + for (; i < n; ++i) { y[i] = GGML_BF16_TO_FP32(x[i]); } } From 4753791e70acd4d4e02f2098f14a03df26c992bd Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Sat, 26 Apr 2025 22:39:47 +0200 Subject: [PATCH 014/126] clip : improve projector naming (#13118) * clip : improve projector naming * no more kv has_llava_projector * rm unused kv * rm more unused --- examples/llava/clip-impl.h | 27 +- examples/llava/clip.cpp | 524 ++++++++++++++++--------------------- examples/llava/clip.h | 2 - 3 files changed, 241 insertions(+), 312 deletions(-) diff --git a/examples/llava/clip-impl.h b/examples/llava/clip-impl.h index 53ac381304..16d0a8efc5 100644 --- a/examples/llava/clip-impl.h +++ b/examples/llava/clip-impl.h @@ -17,22 +17,15 @@ #define KEY_FTYPE "general.file_type" #define KEY_NAME "general.name" #define KEY_DESCRIPTION "general.description" -#define KEY_HAS_TEXT_ENC "clip.has_text_encoder" -#define KEY_HAS_VIS_ENC "clip.has_vision_encoder" -#define KEY_HAS_LLAVA_PROJ "clip.has_llava_projector" -#define KEY_HAS_MINICPMV_PROJ "clip.has_minicpmv_projector" -#define KEY_HAS_GLM_PROJ "clip.has_glm_projector" #define KEY_MINICPMV_VERSION "clip.minicpmv_version" -#define KEY_HAS_QWEN2VL_MERGER "clip.has_qwen2vl_merger" #define KEY_USE_GELU "clip.use_gelu" #define KEY_USE_SILU "clip.use_silu" -#define KEY_N_EMBD "clip.%s.embedding_length" -#define KEY_N_FF "clip.%s.feed_forward_length" -#define KEY_N_BLOCK "clip.%s.block_count" -#define KEY_N_HEAD "clip.%s.attention.head_count" -#define KEY_LAYER_NORM_EPS "clip.%s.attention.layer_norm_epsilon" -#define KEY_PROJ_DIM "clip.%s.projection_dim" -#define KEY_TOKENS "tokenizer.ggml.tokens" +#define KEY_N_EMBD "clip.vision.embedding_length" +#define KEY_N_FF "clip.vision.feed_forward_length" +#define KEY_N_BLOCK "clip.vision.block_count" +#define KEY_N_HEAD "clip.vision.attention.head_count" +#define KEY_LAYER_NORM_EPS "clip.vision.attention.layer_norm_epsilon" +#define KEY_PROJ_DIM "clip.vision.projection_dim" #define KEY_IMAGE_SIZE "clip.vision.image_size" #define KEY_PATCH_SIZE "clip.vision.patch_size" #define KEY_IMAGE_MEAN "clip.vision.image_mean" @@ -96,9 +89,9 @@ enum projector_type { PROJECTOR_TYPE_MLP_NORM, PROJECTOR_TYPE_LDP, PROJECTOR_TYPE_LDPV2, - PROJECTOR_TYPE_RESAMPLER, + PROJECTOR_TYPE_MINICPMV, PROJECTOR_TYPE_GLM_EDGE, - PROJECTOR_TYPE_MERGER, + PROJECTOR_TYPE_QWEN2VL, PROJECTOR_TYPE_GEMMA3, PROJECTOR_TYPE_IDEFICS3, PROJECTOR_TYPE_PIXTRAL, @@ -109,9 +102,9 @@ static std::map PROJECTOR_TYPE_NAMES = { { PROJECTOR_TYPE_MLP, "mlp" }, { PROJECTOR_TYPE_LDP, "ldp" }, { PROJECTOR_TYPE_LDPV2, "ldpv2"}, - { PROJECTOR_TYPE_RESAMPLER, "resampler"}, + { PROJECTOR_TYPE_MINICPMV, "resampler"}, { PROJECTOR_TYPE_GLM_EDGE, "adapter"}, - { PROJECTOR_TYPE_MERGER, "qwen2vl_merger"}, + { PROJECTOR_TYPE_QWEN2VL, "qwen2vl_merger"}, { PROJECTOR_TYPE_GEMMA3, "gemma3"}, { PROJECTOR_TYPE_IDEFICS3, "idefics3"}, { PROJECTOR_TYPE_PIXTRAL, "pixtral"}, diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index da8a590f0e..e8c01c68a9 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -308,13 +308,8 @@ struct clip_vision_model { }; struct clip_ctx { - bool has_text_encoder = false; - bool has_vision_encoder = false; bool has_llava_projector = false; - bool has_minicpmv_projector = false; - bool has_glm_projector = false; - bool has_qwen2vl_merger = false; - int minicpmv_version = 2; + int minicpmv_version = 0; struct clip_vision_model vision_model; projector_type proj_type = PROJECTOR_TYPE_MLP; @@ -373,23 +368,20 @@ struct clip_ctx { } }; -static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_image_f32_batch & imgs) { +static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_image_f32 & img) { const auto & model = ctx->vision_model; const auto & hparams = model.hparams; - const int image_size = hparams.image_size; - int image_size_width = image_size; - int image_size_height = image_size; + int image_size_width = img.nx; + int image_size_height = img.ny; - const int patch_size = hparams.patch_size; - const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int hidden_size = hparams.hidden_size; - const int n_head = hparams.n_head; - const int d_head = hidden_size / n_head; - const int n_layer = hparams.n_layer; - const float eps = hparams.eps; - - GGML_ASSERT(imgs.entries.size() == 1); // batch_size == 1 + const int patch_size = hparams.patch_size; + const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); + const int hidden_size = hparams.hidden_size; + const int n_head = hparams.n_head; + const int d_head = hidden_size / n_head; + const int n_layer = hparams.n_layer; + const float eps = hparams.eps; struct ggml_init_params params = { /*.mem_size =*/ ctx->buf_compute_meta.size(), @@ -621,15 +613,14 @@ static ggml_tensor * build_rope_2d( return cur; } -static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_image_f32_batch & imgs) { +static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_image_f32 & img) { const auto & model = ctx->vision_model; const auto & hparams = model.hparams; GGML_ASSERT(ctx->proj_type == PROJECTOR_TYPE_PIXTRAL); - GGML_ASSERT(imgs.entries.size() == 1); // batch_size == 1 - int image_size_width = imgs.entries[0]->nx; - int image_size_height = imgs.entries[0]->ny; + int image_size_width = img.nx; + int image_size_height = img.ny; const int patch_size = hparams.patch_size; const int n_patches_x = image_size_width / patch_size; @@ -772,18 +763,14 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i } static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_image_f32_batch & imgs, struct clip_image_size load_image_size, bool is_inf = false) { - if (!ctx->has_vision_encoder) { - LOG_ERR("This gguf file seems to have no vision encoder\n"); - return nullptr; - } - const auto & model = ctx->vision_model; const auto & hparams = model.hparams; const int image_size = hparams.image_size; int image_size_width = image_size; int image_size_height = image_size; - if (ctx->has_minicpmv_projector) { + + if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { LOG_DBG("%s: %d %d\n", __func__, load_image_size.width, load_image_size.height); image_size_width = load_image_size.width; image_size_height = load_image_size.height; @@ -792,7 +779,8 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im image_size_height = imgs.entries[0]->ny; } } - else if (ctx->has_qwen2vl_merger) { + + else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { // use the image's native resolution when image is avaible if (is_inf) { // if (imgs->data->nx && imgs->data->ny) { @@ -800,12 +788,13 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im image_size_height = imgs.entries[0]->ny; } } + const int patch_size = hparams.patch_size; const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); const int patches_w = image_size_width / patch_size; const int patches_h = image_size_height / patch_size; const int num_positions = num_patches + (model.class_embedding ? 1 : 0); - const int num_position_ids = ctx->has_qwen2vl_merger ? num_positions * 4 : num_positions; + const int num_position_ids = ctx->proj_type == PROJECTOR_TYPE_QWEN2VL ? num_positions * 4 : num_positions; const int hidden_size = hparams.hidden_size; const int n_head = hparams.n_head; const int d_head = hidden_size / n_head; @@ -814,7 +803,9 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im const int batch_size = imgs.entries.size(); - if (ctx->has_llava_projector || ctx->has_minicpmv_projector || ctx->has_glm_projector) { + if (ctx->has_llava_projector + || ctx->proj_type == PROJECTOR_TYPE_MINICPMV + || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { GGML_ASSERT(batch_size == 1); } @@ -835,8 +826,8 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - if (ctx->has_qwen2vl_merger) { - GGML_ASSERT(image_size_width % (patch_size * 2) == 0); + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { + GGML_ASSERT(image_size_width % (patch_size * 2) == 0); GGML_ASSERT(image_size_height % (patch_size * 2) == 0); auto inp_1 = ggml_conv_2d(ctx0, model.patch_embeddings_1, inp_raw, patch_size, patch_size, 0, 0, 1, 1); @@ -865,29 +856,26 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im struct ggml_tensor * embeddings = inp; struct ggml_tensor * pos_embed = nullptr; - if (ctx->has_llava_projector) { - // concat class_embeddings and patch_embeddings - if (model.class_embedding) { - embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, hidden_size, num_positions, batch_size); - ggml_set_name(embeddings, "embeddings"); - ggml_set_input(embeddings); - embeddings = ggml_acc(ctx0, embeddings, model.class_embedding, - embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], 0); - embeddings = ggml_acc(ctx0, embeddings, inp, - embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], model.class_embedding->nb[1]); - } + // concat class_embeddings and patch_embeddings + if (model.class_embedding) { + embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, hidden_size, num_positions, batch_size); + embeddings = ggml_scale(ctx0, embeddings, 0.0f); // set to all zeros + embeddings = ggml_acc(ctx0, embeddings, model.class_embedding, + embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], 0); + embeddings = ggml_acc(ctx0, embeddings, inp, + embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], model.class_embedding->nb[1]); } struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_position_ids); ggml_set_name(positions, "positions"); ggml_set_input(positions); - if (!ctx->has_qwen2vl_merger) { // qwen2vl use rope position embedding + if (ctx->proj_type != PROJECTOR_TYPE_QWEN2VL) { // qwen2vl does NOT use learned position embeddings embeddings = ggml_add(ctx0, embeddings, ggml_get_rows(ctx0, model.position_embeddings, positions)); } - if (ctx->has_minicpmv_projector) { + if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { int pos_w = image_size_width/patch_size; int pos_h = image_size_height/patch_size; if (ctx->minicpmv_version == 2) { @@ -941,7 +929,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].q_w, cur), model.layers[il].q_b); Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_positions, batch_size); - if (ctx->has_qwen2vl_merger) { + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { Q = ggml_rope_multi( ctx0, Q, positions, nullptr, d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); @@ -953,7 +941,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].k_w, cur), model.layers[il].k_b); K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); - if (ctx->has_qwen2vl_merger) { + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { K = ggml_rope_multi( ctx0, K, positions, nullptr, d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); @@ -1218,106 +1206,98 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im } } // minicpmv projector - else if (ctx->has_minicpmv_projector) - { - if (ctx->proj_type == PROJECTOR_TYPE_RESAMPLER) { - struct ggml_tensor * q = model.mm_model_query; - { // layernorm - q = ggml_norm(ctx0, q, eps); - q = ggml_add(ctx0, ggml_mul(ctx0, q, model.mm_model_ln_q_w), model.mm_model_ln_q_b); - } - struct ggml_tensor * v = ggml_mul_mat(ctx0, model.mm_model_kv_proj, embeddings); - { // layernorm - v = ggml_norm(ctx0, v, eps); - v = ggml_add(ctx0, ggml_mul(ctx0, v, model.mm_model_ln_kv_w), model.mm_model_ln_kv_b); - } - struct ggml_tensor * k; - { // position - // q = ggml_add(ctx0, q, model.mm_model_pos_embed); - k = ggml_add(ctx0, v, pos_embed); - } - - { // attention - int hidden_size = 4096; - const int d_head = 128; - int n_head = hidden_size/d_head; - int num_query = 96; - if (ctx->minicpmv_version == 2) { - hidden_size = 4096; - n_head = hidden_size/d_head; - num_query = 96; - } - else if (ctx->minicpmv_version == 3) { - hidden_size = 3584; - n_head = hidden_size/d_head; - num_query = 64; - } - else if (ctx->minicpmv_version == 4) { - hidden_size = 3584; - n_head = hidden_size/d_head; - num_query = 64; - } - - struct ggml_tensor * Q = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_q_w, q), model.mm_model_attn_q_b); - struct ggml_tensor * K = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_k_w, k), model.mm_model_attn_k_b); - struct ggml_tensor * V = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_v_w, v), model.mm_model_attn_v_b); - // permute - Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_query, batch_size); - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); - Q = ggml_reshape_3d(ctx0, Q, d_head, num_query, n_head * batch_size); - K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); - K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); - V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); - V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_query, n_head, batch_size); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - KQV = ggml_cont_3d(ctx0, KQV, hidden_size, num_query, batch_size); - - embeddings = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_o_w, KQV), model.mm_model_attn_o_b); - } - { // layernorm - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_post_w), model.mm_model_ln_post_b); - } - embeddings = ggml_mul_mat(ctx0, model.mm_model_proj, embeddings); + else if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { + struct ggml_tensor * q = model.mm_model_query; + { // layernorm + q = ggml_norm(ctx0, q, eps); + q = ggml_add(ctx0, ggml_mul(ctx0, q, model.mm_model_ln_q_w), model.mm_model_ln_q_b); } - else { - GGML_ASSERT(false); + struct ggml_tensor * v = ggml_mul_mat(ctx0, model.mm_model_kv_proj, embeddings); + { // layernorm + v = ggml_norm(ctx0, v, eps); + v = ggml_add(ctx0, ggml_mul(ctx0, v, model.mm_model_ln_kv_w), model.mm_model_ln_kv_b); } + struct ggml_tensor * k; + { // position + // q = ggml_add(ctx0, q, model.mm_model_pos_embed); + k = ggml_add(ctx0, v, pos_embed); + } + + { // attention + int hidden_size = 4096; + const int d_head = 128; + int n_head = hidden_size/d_head; + int num_query = 96; + if (ctx->minicpmv_version == 2) { + hidden_size = 4096; + n_head = hidden_size/d_head; + num_query = 96; + } + else if (ctx->minicpmv_version == 3) { + hidden_size = 3584; + n_head = hidden_size/d_head; + num_query = 64; + } + else if (ctx->minicpmv_version == 4) { + hidden_size = 3584; + n_head = hidden_size/d_head; + num_query = 64; + } + + struct ggml_tensor * Q = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_q_w, q), model.mm_model_attn_q_b); + struct ggml_tensor * K = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_k_w, k), model.mm_model_attn_k_b); + struct ggml_tensor * V = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_v_w, v), model.mm_model_attn_v_b); + // permute + Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_query, batch_size); + Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); + Q = ggml_reshape_3d(ctx0, Q, d_head, num_query, n_head * batch_size); + K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); + K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); + K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); + V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); + V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); + V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); + struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); + KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); + struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); + KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_query, n_head, batch_size); + KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); + KQV = ggml_cont_3d(ctx0, KQV, hidden_size, num_query, batch_size); + + embeddings = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_o_w, KQV), model.mm_model_attn_o_b); + } + { // layernorm + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_post_w), model.mm_model_ln_post_b); + } + embeddings = ggml_mul_mat(ctx0, model.mm_model_proj, embeddings); } + // glm projector - else if (ctx->has_glm_projector) { - if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { - size_t gridsz = (size_t)sqrt(embeddings->ne[1]); - embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings,1,0,2,3)); - embeddings = ggml_reshape_3d(ctx0, embeddings, gridsz, gridsz, embeddings->ne[1]); - embeddings = ggml_conv_2d(ctx0, model.mm_model_adapter_conv_w, embeddings, 2, 2, 0, 0, 1, 1); - embeddings = ggml_reshape_3d(ctx0, embeddings,embeddings->ne[0]*embeddings->ne[1] , embeddings->ne[2], batch_size); - embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings, 1, 0, 2, 3)); - embeddings = ggml_add(ctx0, embeddings, model.mm_model_adapter_conv_b); - //GLU - { - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_q_w), model.mm_model_ln_q_b); - embeddings = ggml_gelu_inplace(ctx0, embeddings); - struct ggml_tensor * x = embeddings; - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, embeddings); - x = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w,x); - embeddings = ggml_silu_inplace(ctx0, embeddings); - embeddings = ggml_mul(ctx0, embeddings,x); - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); - } - } else { - GGML_ABORT("fatal error"); + else if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { + size_t gridsz = (size_t)sqrt(embeddings->ne[1]); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings,1,0,2,3)); + embeddings = ggml_reshape_3d(ctx0, embeddings, gridsz, gridsz, embeddings->ne[1]); + embeddings = ggml_conv_2d(ctx0, model.mm_model_adapter_conv_w, embeddings, 2, 2, 0, 0, 1, 1); + embeddings = ggml_reshape_3d(ctx0, embeddings,embeddings->ne[0]*embeddings->ne[1] , embeddings->ne[2], batch_size); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings, 1, 0, 2, 3)); + embeddings = ggml_add(ctx0, embeddings, model.mm_model_adapter_conv_b); + // GLU + { + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_q_w), model.mm_model_ln_q_b); + embeddings = ggml_gelu_inplace(ctx0, embeddings); + struct ggml_tensor * x = embeddings; + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, embeddings); + x = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w,x); + embeddings = ggml_silu_inplace(ctx0, embeddings); + embeddings = ggml_mul(ctx0, embeddings,x); + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); } } - else if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { + + else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size * 4, num_positions / 4, batch_size); embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); @@ -1343,11 +1323,13 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 case PROJECTOR_TYPE_GEMMA3: case PROJECTOR_TYPE_IDEFICS3: { - res = clip_image_build_graph_siglip(ctx, imgs); + GGML_ASSERT(imgs.entries.size() == 1); + res = clip_image_build_graph_siglip(ctx, *imgs.entries[0]); } break; case PROJECTOR_TYPE_PIXTRAL: { - res = clip_image_build_graph_pixtral(ctx, imgs); + GGML_ASSERT(imgs.entries.size() == 1); + res = clip_image_build_graph_pixtral(ctx, *imgs.entries[0]); } break; default: { @@ -1419,8 +1401,8 @@ struct clip_model_loader { auto & hparams = ctx_clip.vision_model.hparams; // projector type + std::string proj_type; { - std::string proj_type; get_string(KEY_PROJ_TYPE, proj_type, false); if (!proj_type.empty()) { ctx_clip.proj_type = clip_projector_type_from_string(proj_type); @@ -1432,33 +1414,27 @@ struct clip_model_loader { // other hparams { - get_bool(KEY_HAS_TEXT_ENC, ctx_clip.has_text_encoder, false); - get_bool(KEY_HAS_VIS_ENC, ctx_clip.has_vision_encoder, false); - GGML_ASSERT(ctx_clip.has_vision_encoder); - GGML_ASSERT(!ctx_clip.has_text_encoder); - - // legacy keys, use KEY_PROJ_TYPE instead - get_bool(KEY_HAS_LLAVA_PROJ, ctx_clip.has_llava_projector, false); - get_bool(KEY_HAS_MINICPMV_PROJ, ctx_clip.has_minicpmv_projector, false); get_i32(KEY_MINICPMV_VERSION, ctx_clip.minicpmv_version, false); - get_bool(KEY_HAS_GLM_PROJ, ctx_clip.has_glm_projector, false); - get_bool(KEY_HAS_QWEN2VL_MERGER, ctx_clip.has_qwen2vl_merger, false); - // !!! do NOT extend the list above, use KEY_PROJ_TYPE instead get_bool(KEY_USE_GELU, ctx_clip.use_gelu, false); get_bool(KEY_USE_SILU, ctx_clip.use_silu, false); - get_u32(string_format(KEY_N_EMBD, "vision"), hparams.hidden_size); - get_u32(string_format(KEY_N_HEAD, "vision"), hparams.n_head); - get_u32(string_format(KEY_N_FF, "vision"), hparams.n_intermediate); - get_u32(string_format(KEY_N_BLOCK, "vision"), hparams.n_layer); - get_u32(string_format(KEY_PROJ_DIM, "vision"), hparams.projection_dim); - get_f32(string_format(KEY_LAYER_NORM_EPS, "vision"), hparams.eps); - get_u32(KEY_IMAGE_SIZE, hparams.image_size); - get_u32(KEY_PATCH_SIZE, hparams.patch_size); - get_u32(KEY_IMAGE_CROP_RESOLUTION, hparams.image_crop_resolution, false); + get_u32(KEY_N_EMBD, hparams.hidden_size); + get_u32(KEY_N_HEAD, hparams.n_head); + get_u32(KEY_N_FF, hparams.n_intermediate); + get_u32(KEY_N_BLOCK, hparams.n_layer); + get_u32(KEY_PROJ_DIM, hparams.projection_dim); + get_f32(KEY_LAYER_NORM_EPS, hparams.eps); + get_u32(KEY_IMAGE_SIZE, hparams.image_size); + get_u32(KEY_PATCH_SIZE, hparams.patch_size); + get_u32(KEY_IMAGE_CROP_RESOLUTION, hparams.image_crop_resolution, false); get_arr_int(KEY_IMAGE_GRID_PINPOINTS, hparams.image_grid_pinpoints, false); + ctx_clip.has_llava_projector = ctx_clip.proj_type == PROJECTOR_TYPE_MLP + || ctx_clip.proj_type == PROJECTOR_TYPE_MLP_NORM + || ctx_clip.proj_type == PROJECTOR_TYPE_LDP + || ctx_clip.proj_type == PROJECTOR_TYPE_LDPV2; + { std::string mm_patch_merge_type; get_string(KEY_MM_PATCH_MERGE_TYPE, mm_patch_merge_type, false); @@ -1491,32 +1467,56 @@ struct clip_model_loader { for (auto & layer : vision_feature_layer) { hparams.vision_feature_layer.insert(layer); } - // Calculate the deepest feature layer based on hparams and projector type - ctx_clip.max_feature_layer = get_deepest_feature_layer(&ctx_clip); - LOG_INF("%s: text_encoder: %d\n", __func__, ctx_clip.has_text_encoder); - LOG_INF("%s: vision_encoder: %d\n", __func__, ctx_clip.has_vision_encoder); - LOG_INF("%s: llava_projector: %d\n", __func__, ctx_clip.has_llava_projector); - LOG_INF("%s: minicpmv_projector: %d\n", __func__, ctx_clip.has_minicpmv_projector); + // Calculate the deepest feature layer based on hparams and projector type + // NOTE: This is only used by build_graph_legacy() + { + // Get the index of the second to last layer; this is the default for models that have a llava projector + int n_layer = hparams.n_layer - 1; + int deepest_feature_layer = -1; + + if (ctx_clip.proj_type == PROJECTOR_TYPE_MINICPMV + || ctx_clip.proj_type == PROJECTOR_TYPE_GLM_EDGE + || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN2VL) { + n_layer += 1; + } + + // If we set explicit vision feature layers, only go up to the deepest one + // NOTE: only used by granite-vision models for now + for (const auto & feature_layer : hparams.vision_feature_layer) { + if (feature_layer > deepest_feature_layer) { + deepest_feature_layer = feature_layer; + } + } + ctx_clip.max_feature_layer = deepest_feature_layer < 0 ? n_layer : deepest_feature_layer; + } + + // model-specific params + switch (ctx_clip.proj_type) { + case PROJECTOR_TYPE_MINICPMV: + { + if (ctx_clip.minicpmv_version == 0) { + ctx_clip.minicpmv_version = 2; // default to 2 if not set + } + } break; + case PROJECTOR_TYPE_IDEFICS3: + { + get_u32(KEY_PROJ_SCALE_FACTOR, hparams.proj_scale_factor, false); + } break; + case PROJECTOR_TYPE_PIXTRAL: + { + hparams.rope_theta = 10000.0f; + } break; + default: + break; + } + + LOG_INF("%s: projector: %s\n", __func__, proj_type.c_str()); + LOG_INF("%s: has_llava_proj: %d\n", __func__, ctx_clip.has_llava_projector); LOG_INF("%s: minicpmv_version: %d\n", __func__, ctx_clip.minicpmv_version); - LOG_INF("%s: glm_projector: %d\n", __func__, ctx_clip.has_glm_projector); LOG_INF("%s: model size: %.2f MiB\n", __func__, model_size / 1024.0 / 1024.0); LOG_INF("%s: metadata size: %.2f MiB\n", __func__, ggml_get_mem_size(ctx_meta.get()) / 1024.0 / 1024.0); } - - // model-specific params - switch (ctx_clip.proj_type) { - case PROJECTOR_TYPE_IDEFICS3: - { - get_u32(KEY_PROJ_SCALE_FACTOR, hparams.proj_scale_factor, false); - } break; - case PROJECTOR_TYPE_PIXTRAL: - { - hparams.rope_theta = 10000.0f; - } break; - default: - break; - } } void load_tensors() { @@ -1569,9 +1569,6 @@ struct clip_model_loader { vision_model.patch_bias = get_tensor(TN_PATCH_BIAS, false); vision_model.patch_embeddings_0 = get_tensor(TN_PATCH_EMBD, false); vision_model.patch_embeddings_1 = get_tensor(TN_PATCH_EMBD_1, false); - if (vision_model.patch_embeddings_1 == nullptr) { - ctx_clip.has_qwen2vl_merger = false; - } vision_model.position_embeddings = get_tensor(string_format(TN_POS_EMBD, "v"), false); @@ -1669,7 +1666,7 @@ struct clip_model_loader { vision_model.mm_model_peg_0_w = get_tensor(string_format(TN_MVLM_PROJ_PEG, 0, "weight")); vision_model.mm_model_peg_0_b = get_tensor(string_format(TN_MVLM_PROJ_PEG, 0, "bias")); } break; - case PROJECTOR_TYPE_RESAMPLER: + case PROJECTOR_TYPE_MINICPMV: { // vision_model.mm_model_pos_embed = get_tensor(new_clip->ctx_data, TN_MINICPMV_POS_EMBD); vision_model.mm_model_pos_embed_k = get_tensor(TN_MINICPMV_POS_EMBD_K); @@ -1702,7 +1699,7 @@ struct clip_model_loader { vision_model.mm_model_mlp_2_w = get_tensor(string_format(TN_GLM_ADAPTER_GATE,"weight")); vision_model.mm_model_mlp_3_w = get_tensor(string_format(TN_GLM_ADAPTER_D_4H_2_H,"weight")); } break; - case PROJECTOR_TYPE_MERGER: + case PROJECTOR_TYPE_QWEN2VL: { vision_model.mm_0_w = get_tensor(string_format(TN_LLAVA_PROJ, 0, "weight")); vision_model.mm_0_b = get_tensor(string_format(TN_LLAVA_PROJ, 0, "bias")); @@ -2479,11 +2476,6 @@ int clip_uhd_num_image_embeds_col(struct clip_ctx * ctx_clip) { // returns the normalized float tensor for llava-1.5, for spatial_unpad with anyres processing for llava-1.6 it returns the normalized image patch tensors as a vector // res_imgs memory is being allocated here, previous allocations will be freed if found bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, struct clip_image_f32_batch * res_imgs) { - if (!ctx->has_vision_encoder) { - LOG_ERR("%s: This gguf file seems to have no vision encoder\n", __func__); - return false; - } - clip_image_size original_size{img->nx, img->ny}; bool pad_to_square = true; auto & params = ctx->vision_model.hparams; @@ -2504,7 +2496,7 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, str } return true; } - else if (ctx->has_qwen2vl_merger) { + else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { clip_image_u8 resized; auto patch_size = clip_get_patch_size(ctx) * 2; int nx = ceil((float)img->nx / patch_size) * patch_size; @@ -2518,7 +2510,7 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, str res_imgs->entries.push_back(std::move(img_f32)); return true; } - else if (ctx->has_glm_projector + else if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE || ctx->proj_type == PROJECTOR_TYPE_GEMMA3 || ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { clip_image_u8 resized_image; @@ -2646,7 +2638,7 @@ int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * i if (ctx->proj_type == PROJECTOR_TYPE_LDP || ctx->proj_type == PROJECTOR_TYPE_LDPV2 || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { n_patches /= 4; - } else if (ctx->proj_type == PROJECTOR_TYPE_RESAMPLER) { + } else if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { if (ctx->minicpmv_version == 2) { n_patches = 96; } @@ -2656,7 +2648,10 @@ int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * i else if (ctx->minicpmv_version == 4) { n_patches = 64; } - } else if (ctx->proj_type == PROJECTOR_TYPE_MERGER) { + else { + GGML_ABORT("Unknown minicpmv version"); + } + } else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { int patch_size = params.patch_size * 2; int x_patch = img->nx / patch_size + (int)(img->nx % patch_size > 0); int y_patch = img->ny / patch_size + (int)(img->ny % patch_size > 0); @@ -2761,11 +2756,6 @@ static std::vector> get_2d_sincos_pos_embed(int embed_dim, co } bool clip_image_encode(struct clip_ctx * ctx, const int n_threads, clip_image_f32 * img, float * vec) { - if (!ctx->has_vision_encoder) { - LOG_ERR("%s: This gguf file seems to have no vision encoder\n", __func__); - return false; - } - clip_image_f32_batch imgs; clip_image_f32_ptr img_copy(clip_image_f32_init()); *img_copy = *img; @@ -2776,20 +2766,11 @@ bool clip_image_encode(struct clip_ctx * ctx, const int n_threads, clip_image_f3 bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_image_f32_batch * imgs_c_ptr, float * vec) { const clip_image_f32_batch & imgs = *imgs_c_ptr; - - if (!ctx->has_vision_encoder) { - LOG_ERR("%s: This gguf file seems to have no vision encoder\n", __func__); - return false; - } - int batch_size = imgs.entries.size(); - if (ctx->has_llava_projector) { - GGML_ASSERT(batch_size == 1); // TODO: support multiple images - } - if (ctx->has_minicpmv_projector) { - GGML_ASSERT(batch_size == 1); - } - if (ctx->has_glm_projector) { + + if (ctx->has_llava_projector + || ctx->proj_type == PROJECTOR_TYPE_MINICPMV + || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { GGML_ASSERT(batch_size == 1); } @@ -2799,21 +2780,12 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima ggml_backend_sched_alloc_graph(ctx->sched.get(), gf); // set inputs - const auto & model = ctx->vision_model; + const auto & model = ctx->vision_model; const auto & hparams = model.hparams; - // TODO @ngxson : this is ugly, need to refactor later - bool support_dynamic_size = ctx->has_minicpmv_projector - || ctx->has_qwen2vl_merger - || ctx->proj_type == PROJECTOR_TYPE_PIXTRAL; + const int image_size_width = imgs.entries[0]->nx; + const int image_size_height = imgs.entries[0]->ny; - const int image_size = hparams.image_size; - int image_size_width = image_size; - int image_size_height = image_size; - if (support_dynamic_size) { - image_size_width = imgs.entries[0]->nx; - image_size_height = imgs.entries[0]->ny; - } const int patch_size = hparams.patch_size; const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); const int num_positions = num_patches + (model.class_embedding ? 1 : 0); @@ -2839,14 +2811,6 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima for (size_t i = 0; i < imgs.entries.size(); i++) { const int nx = imgs.entries[i]->nx; const int ny = imgs.entries[i]->ny; - - if (ctx->has_glm_projector - || ctx->has_llava_projector - || ctx->proj_type == PROJECTOR_TYPE_GEMMA3 - || ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { - GGML_ASSERT(nx == image_size && ny == image_size); - } - const int n = nx * ny; for (int b = 0; b < batch_size; b++) { @@ -2864,13 +2828,15 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } ggml_backend_tensor_set(inp_raw, data, 0, ggml_nbytes(inp_raw)); } - if (ctx->has_minicpmv_projector) { + + if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { { // inspired from siglip: // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit/blob/d66538faeba44480d0bfaa42145eef26f9423199/modeling_siglip.py#L316 struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); - int* positions_data = (int*)malloc(ggml_nbytes(positions)); + std::vector pos_data(ggml_nelements(positions)); + int * data = pos_data.data(); int bucket_coords_h[1024]; int bucket_coords_w[1024]; for (int i = 0; i < pos_h; i++){ @@ -2881,11 +2847,10 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } for (int i = 0, id = 0; i < pos_h; i++){ for (int j = 0; j < pos_w; j++){ - positions_data[id++] = bucket_coords_h[i]*70 + bucket_coords_w[j]; + data[id++] = bucket_coords_h[i]*70 + bucket_coords_w[j]; } } - ggml_backend_tensor_set(positions, positions_data, 0, ggml_nbytes(positions)); - free(positions_data); + ggml_backend_tensor_set(positions, data, 0, ggml_nbytes(positions)); } { @@ -2903,30 +2868,28 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima else if (ctx->minicpmv_version == 4) { embed_dim = 3584; } + else { + GGML_ABORT("Unknown minicpmv version"); + } + + // TODO @ngxson : this is very inefficient, can we do this using ggml_sin and ggml_cos? auto pos_embed_t = get_2d_sincos_pos_embed(embed_dim, std::make_pair(pos_w, pos_h)); - float * pos_embed_data = (float *)malloc(ggml_nbytes(pos_embed)); - for(int i=0;i < pos_w * pos_h; ++i){ - for(int j=0; j < embed_dim; ++j){ - pos_embed_data[i * embed_dim + j] = pos_embed_t[i][j]; + std::vector pos_data(ggml_nelements(pos_embed)); + float * data = pos_data.data(); + for(int i = 0; i < pos_w * pos_h; ++i){ + for(int j = 0; j < embed_dim; ++j){ + data[i * embed_dim + j] = pos_embed_t[i][j]; } } - ggml_backend_tensor_set(pos_embed, pos_embed_data, 0, ggml_nbytes(pos_embed)); - free(pos_embed_data); + ggml_backend_tensor_set(pos_embed, data, 0, ggml_nbytes(pos_embed)); } } else { - if (model.class_embedding) { - struct ggml_tensor * embeddings = ggml_graph_get_tensor(gf, "embeddings"); + // non-minicpmv models - void* zero_mem = malloc(ggml_nbytes(embeddings)); - memset(zero_mem, 0, ggml_nbytes(embeddings)); - ggml_backend_tensor_set(embeddings, zero_mem, 0, ggml_nbytes(embeddings)); - free(zero_mem); - } - - if (ctx->has_qwen2vl_merger) { + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); const int pw = image_size_width / patch_size; @@ -2978,6 +2941,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima ggml_backend_tensor_set(pos, pos_data.data(), 0, ggml_nbytes(pos)); } else { + // llava and other models struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); int* positions_data = (int*)malloc(ggml_nbytes(positions)); @@ -2987,7 +2951,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima ggml_backend_tensor_set(positions, positions_data, 0, ggml_nbytes(positions)); free(positions_data); - if (!ctx->has_glm_projector) { + if (ctx->proj_type != PROJECTOR_TYPE_GLM_EDGE) { struct ggml_tensor * patches = ggml_graph_get_tensor(gf, "patches"); // The patches vector is used to get rows to index into the embeds with; // we should skip dim 0 only if we have CLS to avoid going out of bounds @@ -3166,7 +3130,7 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { return ctx->vision_model.mm_2_b->ne[0]; case PROJECTOR_TYPE_MLP_NORM: return ctx->vision_model.mm_3_b->ne[0]; - case PROJECTOR_TYPE_RESAMPLER: + case PROJECTOR_TYPE_MINICPMV: if (ctx->minicpmv_version == 2) { return 4096; } else if (ctx->minicpmv_version == 3) { @@ -3174,36 +3138,33 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { } else if (ctx->minicpmv_version == 4) { return 3584; } - break; // Should not happen if version is valid + GGML_ABORT("Unknown minicpmv version"); case PROJECTOR_TYPE_GLM_EDGE: return ctx->vision_model.mm_model_mlp_3_w->ne[1]; - case PROJECTOR_TYPE_MERGER: + case PROJECTOR_TYPE_QWEN2VL: return ctx->vision_model.mm_1_b->ne[0]; case PROJECTOR_TYPE_GEMMA3: return ctx->vision_model.mm_input_proj_w->ne[0]; case PROJECTOR_TYPE_IDEFICS3: return ctx->vision_model.projection->ne[1]; default: - break; // Fall through to throw + GGML_ABORT("Unknown projector type"); } - - std::string proj_type = PROJECTOR_TYPE_NAMES[ctx->proj_type]; - throw std::runtime_error(string_format("%s: don't support projector with: %s currently\n", __func__, proj_type.c_str())); } int clip_is_minicpmv(const struct clip_ctx * ctx) { - if (ctx->has_minicpmv_projector) { + if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { return ctx->minicpmv_version; } return 0; } bool clip_is_glm(const struct clip_ctx * ctx) { - return ctx->has_glm_projector; + return ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE; } bool clip_is_qwen2vl(const struct clip_ctx * ctx) { - return ctx->has_qwen2vl_merger; + return ctx->proj_type == PROJECTOR_TYPE_QWEN2VL; } bool clip_is_llava(const struct clip_ctx * ctx) { @@ -3214,29 +3175,6 @@ bool clip_is_gemma3(const struct clip_ctx * ctx) { return ctx->proj_type == PROJECTOR_TYPE_GEMMA3; } -// Determine the number of encoder layers to iterate over -int get_deepest_feature_layer(const struct clip_ctx * ctx) { - // Get the index of the second to last layer; this is the - // default for models that have a llava projector - const auto & hparams = ctx->vision_model.hparams; - int n_layer = hparams.n_layer - 1; - int deepest_feature_layer = -1; - - // Handle other projectors; incrementing here indicates that we - // should use the last encoder layer for the vision features. - if (ctx->has_minicpmv_projector || ctx->has_glm_projector || ctx->has_qwen2vl_merger) { - n_layer += 1; - } - - // If we set explicit vision feature layers, only go up to the deepest one - for (const auto & feature_layer : hparams.vision_feature_layer) { - if (feature_layer > deepest_feature_layer) { - deepest_feature_layer = feature_layer; - } - } - return deepest_feature_layer < 0 ? n_layer : deepest_feature_layer; -} - bool clip_encode_float_image (struct clip_ctx * ctx, int n_threads, float * img, int h, int w, float * vec) { clip_image_f32 clip_img; clip_img.buf.resize(h * w * 3); diff --git a/examples/llava/clip.h b/examples/llava/clip.h index 5fc45d3e23..6ba42ad892 100644 --- a/examples/llava/clip.h +++ b/examples/llava/clip.h @@ -114,8 +114,6 @@ CLIP_API bool clip_is_qwen2vl(const struct clip_ctx * ctx); CLIP_API bool clip_is_llava(const struct clip_ctx * ctx); CLIP_API bool clip_is_gemma3(const struct clip_ctx * ctx); -CLIP_API int get_deepest_feature_layer(const struct clip_ctx * ctx); - CLIP_API bool clip_encode_float_image (struct clip_ctx * ctx, int n_threads, float * img, int h, int w, float * vec); From 2d451c80590b9ac250322769ac13d3b4870dbcf7 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Sat, 26 Apr 2025 22:58:12 +0200 Subject: [PATCH 015/126] common : add common_remote_get_content (#13123) * common : add common_remote_get_content * support max size and timeout * add tests --- common/arg.cpp | 103 ++++++++++++++++++++++++++------------ common/arg.h | 9 ++++ tests/test-arg-parser.cpp | 47 +++++++++++++++++ 3 files changed, 126 insertions(+), 33 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index 0657553e4e..de173159f4 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -162,6 +162,10 @@ struct common_hf_file_res { #ifdef LLAMA_USE_CURL +bool common_has_curl() { + return true; +} + #ifdef __linux__ #include #elif defined(_WIN32) @@ -527,6 +531,50 @@ static bool common_download_model( return true; } +std::pair> common_remote_get_content(const std::string & url, const common_remote_params & params) { + curl_ptr curl(curl_easy_init(), &curl_easy_cleanup); + curl_slist_ptr http_headers; + std::vector res_buffer; + + curl_easy_setopt(curl.get(), CURLOPT_URL, url.c_str()); + curl_easy_setopt(curl.get(), CURLOPT_NOPROGRESS, 1L); + curl_easy_setopt(curl.get(), CURLOPT_FOLLOWLOCATION, 1L); + typedef size_t(*CURLOPT_WRITEFUNCTION_PTR)(void * ptr, size_t size, size_t nmemb, void * data); + auto write_callback = [](void * ptr, size_t size, size_t nmemb, void * data) -> size_t { + auto data_vec = static_cast *>(data); + data_vec->insert(data_vec->end(), (char *)ptr, (char *)ptr + size * nmemb); + return size * nmemb; + }; + curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, static_cast(write_callback)); + curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, &res_buffer); +#if defined(_WIN32) + curl_easy_setopt(curl.get(), CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA); +#endif + if (params.timeout > 0) { + curl_easy_setopt(curl.get(), CURLOPT_TIMEOUT, params.timeout); + } + if (params.max_size > 0) { + curl_easy_setopt(curl.get(), CURLOPT_MAXFILESIZE, params.max_size); + } + http_headers.ptr = curl_slist_append(http_headers.ptr, "User-Agent: llama-cpp"); + for (const auto & header : params.headers) { + http_headers.ptr = curl_slist_append(http_headers.ptr, header.c_str()); + } + curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, http_headers.ptr); + + CURLcode res = curl_easy_perform(curl.get()); + + if (res != CURLE_OK) { + std::string error_msg = curl_easy_strerror(res); + throw std::runtime_error("error: cannot make GET request: " + error_msg); + } + + long res_code; + curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &res_code); + + return { res_code, std::move(res_buffer) }; +} + /** * Allow getting the HF file from the HF repo with tag (like ollama), for example: * - bartowski/Llama-3.2-3B-Instruct-GGUF:q4 @@ -546,45 +594,26 @@ static struct common_hf_file_res common_get_hf_file(const std::string & hf_repo_ throw std::invalid_argument("error: invalid HF repo format, expected /[:quant]\n"); } - // fetch model info from Hugging Face Hub API - curl_ptr curl(curl_easy_init(), &curl_easy_cleanup); - curl_slist_ptr http_headers; - std::string res_str; + std::string url = get_model_endpoint() + "v2/" + hf_repo + "/manifests/" + tag; - std::string model_endpoint = get_model_endpoint(); - - std::string url = model_endpoint + "v2/" + hf_repo + "/manifests/" + tag; - curl_easy_setopt(curl.get(), CURLOPT_URL, url.c_str()); - curl_easy_setopt(curl.get(), CURLOPT_NOPROGRESS, 1L); - typedef size_t(*CURLOPT_WRITEFUNCTION_PTR)(void * ptr, size_t size, size_t nmemb, void * data); - auto write_callback = [](void * ptr, size_t size, size_t nmemb, void * data) -> size_t { - static_cast(data)->append((char * ) ptr, size * nmemb); - return size * nmemb; - }; - curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, static_cast(write_callback)); - curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, &res_str); -#if defined(_WIN32) - curl_easy_setopt(curl.get(), CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA); -#endif + // headers + std::vector headers; + headers.push_back("Accept: application/json"); if (!bearer_token.empty()) { - std::string auth_header = "Authorization: Bearer " + bearer_token; - http_headers.ptr = curl_slist_append(http_headers.ptr, auth_header.c_str()); + headers.push_back("Authorization: Bearer " + bearer_token); } // Important: the User-Agent must be "llama-cpp" to get the "ggufFile" field in the response - http_headers.ptr = curl_slist_append(http_headers.ptr, "User-Agent: llama-cpp"); - http_headers.ptr = curl_slist_append(http_headers.ptr, "Accept: application/json"); - curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, http_headers.ptr); + // User-Agent header is already set in common_remote_get_content, no need to set it here - CURLcode res = curl_easy_perform(curl.get()); + // make the request + common_remote_params params; + params.headers = headers; + auto res = common_remote_get_content(url, params); + long res_code = res.first; + std::string res_str(res.second.data(), res.second.size()); + std::string ggufFile; + std::string mmprojFile; - if (res != CURLE_OK) { - throw std::runtime_error("error: cannot make GET request to HF API"); - } - - long res_code; - std::string ggufFile = ""; - std::string mmprojFile = ""; - curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &res_code); if (res_code == 200) { // extract ggufFile.rfilename in json, using regex { @@ -618,6 +647,10 @@ static struct common_hf_file_res common_get_hf_file(const std::string & hf_repo_ #else +bool common_has_curl() { + return false; +} + static bool common_download_file_single(const std::string &, const std::string &, const std::string &) { LOG_ERR("error: built without CURL, cannot download model from internet\n"); return false; @@ -640,6 +673,10 @@ static struct common_hf_file_res common_get_hf_file(const std::string &, const s return {}; } +std::pair> common_remote_get_content(const std::string & url, const common_remote_params & params) { + throw std::runtime_error("error: built without CURL, cannot download model from the internet"); +} + #endif // LLAMA_USE_CURL // diff --git a/common/arg.h b/common/arg.h index 49ab8667b1..70bea100fd 100644 --- a/common/arg.h +++ b/common/arg.h @@ -78,3 +78,12 @@ bool common_params_parse(int argc, char ** argv, common_params & params, llama_e // function to be used by test-arg-parser common_params_context common_params_parser_init(common_params & params, llama_example ex, void(*print_usage)(int, char **) = nullptr); +bool common_has_curl(); + +struct common_remote_params { + std::vector headers; + long timeout = 0; // CURLOPT_TIMEOUT, in seconds ; 0 means no timeout + long max_size = 0; // max size of the response ; unlimited if 0 ; max is 2GB +}; +// get remote file content, returns +std::pair> common_remote_get_content(const std::string & url, const common_remote_params & params); diff --git a/tests/test-arg-parser.cpp b/tests/test-arg-parser.cpp index 537fc63a4c..21dbd54042 100644 --- a/tests/test-arg-parser.cpp +++ b/tests/test-arg-parser.cpp @@ -126,6 +126,53 @@ int main(void) { assert(params.cpuparams.n_threads == 1010); #endif // _WIN32 + if (common_has_curl()) { + printf("test-arg-parser: test curl-related functions\n\n"); + const char * GOOD_URL = "https://raw.githubusercontent.com/ggml-org/llama.cpp/refs/heads/master/README.md"; + const char * BAD_URL = "https://www.google.com/404"; + const char * BIG_FILE = "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v1.bin"; + + { + printf("test-arg-parser: test good URL\n\n"); + auto res = common_remote_get_content(GOOD_URL, {}); + assert(res.first == 200); + assert(res.second.size() > 0); + std::string str(res.second.data(), res.second.size()); + assert(str.find("llama.cpp") != std::string::npos); + } + + { + printf("test-arg-parser: test bad URL\n\n"); + auto res = common_remote_get_content(BAD_URL, {}); + assert(res.first == 404); + } + + { + printf("test-arg-parser: test max size error\n"); + common_remote_params params; + params.max_size = 1; + try { + common_remote_get_content(GOOD_URL, params); + assert(false && "it should throw an error"); + } catch (std::exception & e) { + printf(" expected error: %s\n\n", e.what()); + } + } + + { + printf("test-arg-parser: test timeout error\n"); + common_remote_params params; + params.timeout = 1; + try { + common_remote_get_content(BIG_FILE, params); + assert(false && "it should throw an error"); + } catch (std::exception & e) { + printf(" expected error: %s\n\n", e.what()); + } + } + } else { + printf("test-arg-parser: no curl, skipping curl-related functions\n"); + } printf("test-arg-parser: all tests OK\n\n"); } From ca2bb89eac2097ab4620448737e58af8452e444b Mon Sep 17 00:00:00 2001 From: HimariO Date: Sun, 27 Apr 2025 16:10:34 +0800 Subject: [PATCH 016/126] clip : Add Qwen2.5VL support (#12402) * implment vision model architecture, gguf convertor * handle window attention inputs * add debug utils * fix few incorrect tensor memory layout * move position id remap out of ggml to avoid int32 cuda operations * cleaning up * ignore transformers Qwen2_5_xxx type check * remove not so often use `qwen2vl-cli` debug functions * remove commented-out code blocks * fix attn weight scaling after rebase * add `PROJECTOR_TYPE_QWEN2_5_VL` * remove `KEY_USE_GLU_MLP`, `KEY_USE_RMS_NORM` * replace `KEY_FULLATTN_BLK_IDX` with `KEY_WIN_ATTN_PATTERN` * remove `attn_window_size` from gguf * fix model conversion * clean up * fix merging problem * add test --------- Co-authored-by: Xuan Son Nguyen --- convert_hf_to_gguf.py | 11 +- examples/llava/clip-impl.h | 8 + examples/llava/clip.cpp | 398 ++++++++++++++++++++++++++++- examples/llava/qwen2_vl_surgery.py | 182 ++++++++----- examples/llava/qwen2vl-cli.cpp | 96 +++++-- examples/llava/tests.sh | 1 + 6 files changed, 594 insertions(+), 102 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index cf35fb86ec..ea3a951b93 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -2554,11 +2554,12 @@ class Qwen2VLModel(TextModel): except FileNotFoundError: self._set_vocab_gpt2() - def get_tensors(self) -> Iterator[tuple[str, Tensor]]: - for name, data in super().get_tensors(): - if name.startswith("visual."): - continue - yield name, data + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + del bid # unused + if name.startswith("visual."): + # skip visual tensors + return [] + return [(self.map_tensor_name(name), data_torch)] @ModelBase.register("WavTokenizerDec") diff --git a/examples/llava/clip-impl.h b/examples/llava/clip-impl.h index 16d0a8efc5..04bfcbb5e5 100644 --- a/examples/llava/clip-impl.h +++ b/examples/llava/clip-impl.h @@ -34,9 +34,14 @@ #define KEY_PROJ_SCALE_FACTOR "clip.vision.projector.scale_factor" #define KEY_PROJ_TYPE "clip.projector_type" +#define KEY_USE_GLU_MLP "clip.use_glu_mlp" // for qwen2.5vl +#define KEY_USE_RMS_NORM "clip.use_rms_norm" // for qwen2.5vl + #define KEY_MM_PATCH_MERGE_TYPE "clip.vision.mm_patch_merge_type" #define KEY_IMAGE_GRID_PINPOINTS "clip.vision.image_grid_pinpoints" #define KEY_IMAGE_CROP_RESOLUTION "clip.vision.image_crop_resolution" +#define KEY_WIN_ATTN_PATTERN "clip.vision.n_wa_pattern" +#define KEY_ATTN_WINDOW_SIZE "clip.vision.window_size" // @@ -55,6 +60,7 @@ #define TN_FFN_DOWN "%s.blk.%d.ffn_down.%s" #define TN_FFN_GATE "%s.blk.%d.ffn_gate.%s" #define TN_FFN_UP "%s.blk.%d.ffn_up.%s" +#define TN_FFN_GATE "%s.blk.%d.ffn_gate.%s" #define TN_LN_1 "%s.blk.%d.ln1.%s" #define TN_LN_2 "%s.blk.%d.ln2.%s" #define TN_LN_PRE "%s.pre_ln.%s" @@ -95,6 +101,7 @@ enum projector_type { PROJECTOR_TYPE_GEMMA3, PROJECTOR_TYPE_IDEFICS3, PROJECTOR_TYPE_PIXTRAL, + PROJECTOR_TYPE_QWEN25VL, PROJECTOR_TYPE_UNKNOWN, }; @@ -105,6 +112,7 @@ static std::map PROJECTOR_TYPE_NAMES = { { PROJECTOR_TYPE_MINICPMV, "resampler"}, { PROJECTOR_TYPE_GLM_EDGE, "adapter"}, { PROJECTOR_TYPE_QWEN2VL, "qwen2vl_merger"}, + { PROJECTOR_TYPE_QWEN25VL, "qwen2.5vl_merger"}, { PROJECTOR_TYPE_GEMMA3, "gemma3"}, { PROJECTOR_TYPE_IDEFICS3, "idefics3"}, { PROJECTOR_TYPE_PIXTRAL, "pixtral"}, diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index e8c01c68a9..b6a1f40e8a 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -28,6 +28,7 @@ #include #include #include +#include struct clip_logger_state g_logger_state = {GGML_LOG_LEVEL_CONT, clip_log_callback_default, NULL}; @@ -169,6 +170,8 @@ struct clip_hparams { std::vector image_grid_pinpoints; int32_t image_crop_resolution; std::unordered_set vision_feature_layer; + int32_t attn_window_size; + int32_t n_wa_pattern; }; struct clip_layer { @@ -200,6 +203,9 @@ struct clip_layer { struct ggml_tensor * ff_down_w = nullptr; struct ggml_tensor * ff_down_b = nullptr; + struct ggml_tensor * ff_g_w = NULL; + struct ggml_tensor * ff_g_b = NULL; + // layernorm 2 struct ggml_tensor * ln_2_w = nullptr; struct ggml_tensor * ln_2_b = nullptr; @@ -319,6 +325,7 @@ struct clip_ctx { float image_std[3]; bool use_gelu = false; bool use_silu = false; + int32_t ftype = 1; gguf_context_ptr ctx_gguf; ggml_context_ptr ctx_data; @@ -762,6 +769,236 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i return gf; } +static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_image_f32_batch & imgs) { + const auto & model = ctx->vision_model; + const auto & hparams = model.hparams; + + const int image_size_width = imgs.entries[0]->nx; + const int image_size_height = imgs.entries[0]->ny; + + const bool use_mrope = ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL; + const bool use_window_attn = hparams.n_wa_pattern > 0; + + const int n_wa_pattern = hparams.n_wa_pattern; + const int patch_size = hparams.patch_size; + const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); + const int patches_w = image_size_width / patch_size; + const int patches_h = image_size_height / patch_size; + const int num_positions = num_patches + (model.class_embedding ? 1 : 0); + const int num_position_ids = use_mrope ? num_positions * 4 : num_positions; + const int hidden_size = hparams.hidden_size; + const int n_head = hparams.n_head; + const int d_head = hidden_size / n_head; + const float eps = hparams.eps; + + int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; + + const int batch_size = imgs.entries.size(); + GGML_ASSERT(batch_size == 1); + + struct ggml_init_params params = { + /*.mem_size =*/ ctx->buf_compute_meta.size(), + /*.mem_buffer =*/ ctx->buf_compute_meta.data(), + /*.no_alloc =*/ true, + }; + + ggml_context_ptr ctx0_ptr(ggml_init(params)); + auto ctx0 = ctx0_ptr.get(); + + struct ggml_cgraph * gf = ggml_new_graph(ctx0); + + struct ggml_tensor * inp_raw = ggml_new_tensor_4d(ctx0, GGML_TYPE_F32, image_size_width, image_size_height, 3, batch_size); + ggml_set_name(inp_raw, "inp_raw"); + ggml_set_input(inp_raw); + + struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); + + GGML_ASSERT(image_size_width % (patch_size * 2) == 0); + GGML_ASSERT(image_size_height % (patch_size * 2) == 0); + + auto inp_1 = ggml_conv_2d(ctx0, model.patch_embeddings_1, inp_raw, patch_size, patch_size, 0, 0, 1, 1); + inp = ggml_add(ctx0, inp, inp_1); + + inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] + inp = ggml_reshape_4d( + ctx0, inp, + hidden_size * 2, patches_w / 2, patches_h, batch_size); + inp = ggml_reshape_4d( + ctx0, inp, + hidden_size * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); + inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); + inp = ggml_reshape_3d( + ctx0, inp, + hidden_size, patches_w * patches_h, batch_size); + + if (model.patch_bias) { + // inp = ggml_add(ctx0, inp, ggml_repeat(ctx0, model.patch_bias, inp)); + inp = ggml_add(ctx0, inp, model.patch_bias); + } + struct ggml_tensor * embeddings = inp; + struct ggml_tensor * window_mask = nullptr; + struct ggml_tensor * window_idx = nullptr; + struct ggml_tensor * inv_window_idx = nullptr; + + struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_position_ids); + ggml_set_name(positions, "positions"); + ggml_set_input(positions); + + // pre-layernorm + if (model.pre_ln_w) { + embeddings = ggml_rms_norm(ctx0, embeddings, eps); + ggml_set_name(embeddings, "pre_ln"); + + embeddings = ggml_mul(ctx0, embeddings, model.pre_ln_w); + } + + if (use_window_attn) { + // handle window attention inputs + inv_window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_positions / 4); + ggml_set_name(inv_window_idx, "inv_window_idx"); + ggml_set_input(inv_window_idx); + // mask for window attention + window_mask = ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, num_positions, num_positions); + ggml_set_name(window_mask, "window_mask"); + ggml_set_input(window_mask); + + // embeddings shape: [hidden_size, patches_w * patches_h, batch_size] + GGML_ASSERT(batch_size == 1); + embeddings = ggml_reshape_2d(ctx0, embeddings, hidden_size * 4, patches_w * patches_h * batch_size / 4); + embeddings = ggml_get_rows(ctx0, embeddings, inv_window_idx); + embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size, patches_w * patches_h, batch_size); + } + + // loop over layers + for (int il = 0; il < ctx->max_feature_layer; il++) { + struct ggml_tensor * cur = embeddings; // embeddings = residual, cur = hidden_states + + // rmsnorm1 + cur = ggml_rms_norm(ctx0, cur, eps); + cur = ggml_mul(ctx0, cur, model.layers[il].ln_1_w); + + // self-attention + { + + struct ggml_tensor * Q = + ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].q_w, cur), model.layers[il].q_b); + + Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_positions, batch_size); + Q = ggml_rope_multi( + ctx0, Q, positions, nullptr, + d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); + Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); + Q = ggml_reshape_3d(ctx0, Q, d_head, num_positions, n_head * batch_size); + + struct ggml_tensor * K = + ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].k_w, cur), model.layers[il].k_b); + + K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); + K = ggml_rope_multi( + ctx0, K, positions, nullptr, + d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); + K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); + K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); + + struct ggml_tensor * V = + ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].v_w, cur), model.layers[il].v_b); + + V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); + V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); + V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); + + struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); + const bool full_attn = use_window_attn ? (il + 1) % n_wa_pattern == 0 : true; + if (full_attn) { + KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); + } else { + KQ = ggml_soft_max_ext(ctx0, KQ, window_mask, 1.0f / sqrtf((float)d_head), 0.0f); + } + + struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); + KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_positions, n_head, batch_size); + KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); + + cur = ggml_cont_3d(ctx0, KQV, hidden_size, num_positions, batch_size); + } + + // attention output + cur = ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].o_w, cur), model.layers[il].o_b); + + // re-add the layer input, e.g., residual + cur = ggml_add(ctx0, cur, embeddings); + + embeddings = cur; // embeddings = residual, cur = hidden_states + + // rms norm2 + cur = ggml_rms_norm(ctx0, cur, eps); + cur = ggml_mul(ctx0, cur, model.layers[il].ln_2_w); + + // mlp + // ffn_up + auto cur_up = ggml_mul_mat(ctx0, model.layers[il].ff_o_w, cur); + cur_up = ggml_add(ctx0, cur_up, model.layers[il].ff_o_b); + + auto cur_gate = ggml_mul_mat(ctx0, model.layers[il].ff_g_w, cur); + cur_gate = ggml_add(ctx0, cur_gate, model.layers[il].ff_g_b); + // TODO : only 2 of these 3 are actually used, should we remove one of them? + if (ctx->use_gelu) { + cur_gate = ggml_gelu_inplace(ctx0, cur_gate); + } else if (ctx->use_silu) { + cur_gate = ggml_silu_inplace(ctx0, cur_gate); + } else { + cur_gate = ggml_gelu_quick_inplace(ctx0, cur_gate); + } + cur = ggml_mul(ctx0, cur_gate, cur_up); + + // ffn_down + cur = ggml_mul_mat(ctx0, model.layers[il].ff_i_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_i_b); + + // residual 2 + cur = ggml_add(ctx0, embeddings, cur); + + embeddings = cur; + } + + // post-layernorm + if (model.post_ln_w) { + embeddings = ggml_rms_norm(ctx0, embeddings, eps); + ggml_set_name(embeddings, "post_ln"); + + embeddings = ggml_mul(ctx0, embeddings, model.post_ln_w); + } + + embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size * 4, num_positions / 4, batch_size); + + embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); + + // GELU activation + embeddings = ggml_gelu(ctx0, embeddings); + + // Second linear layer + embeddings = ggml_mul_mat(ctx0, model.mm_1_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); + + if (use_window_attn) { + window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_positions / 4); + ggml_set_name(window_idx, "window_idx"); + ggml_set_input(window_idx); + + // embeddings shape: [hidden_size, patches_w * patches_h, batch_size] + GGML_ASSERT(batch_size == 1); + embeddings = ggml_reshape_2d(ctx0, embeddings, hparams.projection_dim, patches_w * patches_h / 4); + embeddings = ggml_get_rows(ctx0, embeddings, window_idx); + embeddings = ggml_reshape_3d(ctx0, embeddings, hparams.projection_dim, patches_w * patches_h / 4, batch_size); + } + + // build the graph + ggml_build_forward_expand(gf, embeddings); + + return gf; +} + static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_image_f32_batch & imgs, struct clip_image_size load_image_size, bool is_inf = false) { const auto & model = ctx->vision_model; const auto & hparams = model.hparams; @@ -1331,6 +1568,10 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 GGML_ASSERT(imgs.entries.size() == 1); res = clip_image_build_graph_pixtral(ctx, *imgs.entries[0]); } break; + case PROJECTOR_TYPE_QWEN25VL: + { + res = clip_image_build_graph_qwen25vl(ctx, imgs); + } break; default: { // TODO: we should have one build_* function per model @@ -1507,6 +1748,10 @@ struct clip_model_loader { { hparams.rope_theta = 10000.0f; } break; + case PROJECTOR_TYPE_QWEN25VL: + { + get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern); + } break; default: break; } @@ -1600,8 +1845,10 @@ struct clip_model_loader { // legacy naming (the in and out is reversed! don't ask me why) layer.ff_i_w = layer.ff_down_w; layer.ff_o_w = layer.ff_up_w; + layer.ff_g_w = layer.ff_gate_w; layer.ff_i_b = layer.ff_down_b; layer.ff_o_b = layer.ff_up_b; + layer.ff_g_b = layer.ff_gate_b; } switch (ctx_clip.proj_type) { @@ -1700,6 +1947,7 @@ struct clip_model_loader { vision_model.mm_model_mlp_3_w = get_tensor(string_format(TN_GLM_ADAPTER_D_4H_2_H,"weight")); } break; case PROJECTOR_TYPE_QWEN2VL: + case PROJECTOR_TYPE_QWEN25VL: { vision_model.mm_0_w = get_tensor(string_format(TN_LLAVA_PROJ, 0, "weight")); vision_model.mm_0_b = get_tensor(string_format(TN_LLAVA_PROJ, 0, "bias")); @@ -2651,7 +2899,7 @@ int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * i else { GGML_ABORT("Unknown minicpmv version"); } - } else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { + } else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { int patch_size = params.patch_size * 2; int x_patch = img->nx / patch_size + (int)(img->nx % patch_size > 0); int y_patch = img->ny / patch_size + (int)(img->ny % patch_size > 0); @@ -2792,6 +3040,8 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int pos_w = ctx->load_image_size.width / patch_size; const int pos_h = ctx->load_image_size.height / patch_size; + const bool use_window_attn = hparams.n_wa_pattern > 0; // for qwen2.5vl + { struct ggml_tensor * inp_raw = ggml_graph_get_tensor(gf, "inp_raw"); std::vector inp_data(ggml_nelements(inp_raw)); @@ -2890,31 +3140,93 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima // non-minicpmv models if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); + // pw * ph = number of tokens output by ViT after apply patch merger + // ipw * ipw = number of vision token been processed inside ViT + const int merge_ratio = 2; + const int pw = image_size_width / patch_size / merge_ratio; + const int ph = image_size_height / patch_size / merge_ratio; + const int ipw = image_size_width / patch_size; + const int iph = image_size_height / patch_size; - const int pw = image_size_width / patch_size; - const int ph = image_size_height / patch_size; - int* positions_data = (int*)malloc(ggml_nbytes(positions)); + std::vector idx (ph * pw); + std::vector inv_idx(ph * pw); + + if (use_window_attn) { + const int attn_window_size = 112; + struct ggml_tensor * window_idx = ggml_graph_get_tensor(gf, "window_idx"); + struct ggml_tensor * inv_window_idx = ggml_graph_get_tensor(gf, "inv_window_idx"); + struct ggml_tensor * window_mask = ggml_graph_get_tensor(gf, "window_mask"); + + const int grid_window = attn_window_size / patch_size / merge_ratio; + int dst = 0; + // [num_vision_tokens, num_vision_tokens] attention mask tensor + std::vector mask(pow(ipw * iph, 2), std::numeric_limits::lowest()); + int mask_row = 0; + + for (int y = 0; y < ph; y += grid_window) + { + for (int x = 0; x < pw; x += grid_window) + { + const int win_h = std::min(grid_window, ph - y); + const int win_w = std::min(grid_window, pw - x); + const int dst_0 = dst; + // group all tokens belong to the same window togather (to a continue range) + for (int dy = 0; dy < win_h; dy++) { + for (int dx = 0; dx < win_w; dx++) { + const int src = (y + dy) * pw + (x + dx); + assert(src < (int)idx.size()); + assert(dst < (int)inv_idx.size()); + idx [src] = dst; + inv_idx[dst] = src; + dst++; + } + } + + for (int r=0; r < win_h * win_w * merge_ratio * merge_ratio; r++) { + int row_offset = mask_row * (ipw * iph); + std::fill( + mask.begin() + row_offset + (dst_0 * merge_ratio * merge_ratio), + mask.begin() + row_offset + (dst * merge_ratio * merge_ratio), + 0.0); + mask_row++; + } + } + } + + ggml_backend_tensor_set(window_idx, idx.data(), 0, ggml_nbytes(window_idx)); + ggml_backend_tensor_set(inv_window_idx, inv_idx.data(), 0, ggml_nbytes(inv_window_idx)); + ggml_backend_tensor_set(window_mask, mask.data(), 0, ggml_nbytes(window_mask)); + } else { + std::iota(idx.begin(), idx.end(), 0); + std::iota(inv_idx.begin(), inv_idx.end(), 0); + } + + struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); + const int mpow = merge_ratio * merge_ratio; + std::vector positions_data(ggml_nelements(positions)); + int * data = positions_data.data(); int ptr = 0; - for (int y = 0; y < ph; y+=2) + for (int y = 0; y < iph; y += merge_ratio) { - for (int x = 0; x < pw; x+=2) + for (int x = 0; x < ipw; x += merge_ratio) { for (int dy = 0; dy < 2; dy++) { for (int dx = 0; dx < 2; dx++) { - positions_data[ptr] = y + dy; - positions_data[num_patches + ptr] = x + dx; - positions_data[num_patches * 2 + ptr] = y + dy; - positions_data[num_patches * 3 + ptr] = x + dx; + auto remap = idx[ptr / mpow]; + remap = remap * mpow + (ptr % mpow); + + data[ remap] = y + dy; + data[ num_patches + remap] = x + dx; + data[2 * num_patches + remap] = y + dy; + data[3 * num_patches + remap] = x + dx; ptr++; } } } } - ggml_backend_tensor_set(positions, positions_data, 0, ggml_nbytes(positions)); - free(positions_data); + ggml_backend_tensor_set(positions, data, 0, ggml_nbytes(positions)); } else if (ctx->proj_type == PROJECTOR_TYPE_GEMMA3) { // do nothing @@ -2967,6 +3279,65 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } } + if (use_window_attn && ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { + struct ggml_tensor * window_idx = ggml_graph_get_tensor(gf, "window_idx"); + struct ggml_tensor * inv_window_idx = ggml_graph_get_tensor(gf, "inv_window_idx"); + struct ggml_tensor * window_mask = ggml_graph_get_tensor(gf, "window_mask"); + + const int merge_ratio = 2; + const int attn_window_size = 112; + const int pw = image_size_width / patch_size / merge_ratio; + const int ph = image_size_height / patch_size / merge_ratio; + const int grid_window = attn_window_size / patch_size / merge_ratio; + const int ipw = image_size_width / patch_size; + const int iph = image_size_height / patch_size; + /* + pw * ph = number of tokens output by ViT after apply patch merger + ipw * ipw = number of vision token been processed inside ViT + */ + + std::vector idx(ph * pw); + std::vector inv_idx(ph * pw); + int dst = 0; + // [num_vision_tokens, num_vision_tokens] attention mask tensor + std::vector mask(pow(ipw * iph, 2), std::numeric_limits::lowest()); + int mask_row = 0; + + for (int y = 0; y < ph; y+=grid_window) + { + for (int x = 0; x < pw; x+=grid_window) + { + const int win_h = std::min(grid_window, ph - y); + const int win_w = std::min(grid_window, pw - x); + const int dst_0 = dst; + // group all tokens belong to the same window togather (to a continue range) + for (int dy = 0; dy < win_h; dy++) { + for (int dx = 0; dx < win_w; dx++) { + const int src = (y + dy) * pw + (x + dx); + assert(src < (int)idx.size()); + assert(dst < (int)inv_idx.size()); + idx[src] = dst; + inv_idx[dst] = src; + dst++; + } + } + + for (int r=0; r < win_h * win_w * merge_ratio * merge_ratio; r++) { + int row_offset = mask_row * (ipw * iph); + std::fill( + mask.begin() + row_offset + (dst_0 * merge_ratio * merge_ratio), + mask.begin() + row_offset + (dst * merge_ratio * merge_ratio), + 0.0); + mask_row++; + } + } + } + + ggml_backend_tensor_set(window_idx, idx.data(), 0, ggml_nbytes(window_idx)); + ggml_backend_tensor_set(inv_window_idx, inv_idx.data(), 0, ggml_nbytes(inv_window_idx)); + ggml_backend_tensor_set(window_mask, mask.data(), 0, ggml_nbytes(window_mask)); + } + ggml_backend_cpu_set_n_threads(ctx->backend_cpu, n_threads); auto status = ggml_backend_sched_graph_compute(ctx->sched.get(), gf); @@ -3142,6 +3513,7 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { case PROJECTOR_TYPE_GLM_EDGE: return ctx->vision_model.mm_model_mlp_3_w->ne[1]; case PROJECTOR_TYPE_QWEN2VL: + case PROJECTOR_TYPE_QWEN25VL: return ctx->vision_model.mm_1_b->ne[0]; case PROJECTOR_TYPE_GEMMA3: return ctx->vision_model.mm_input_proj_w->ne[0]; diff --git a/examples/llava/qwen2_vl_surgery.py b/examples/llava/qwen2_vl_surgery.py index c87606b4fd..7951a6fa89 100644 --- a/examples/llava/qwen2_vl_surgery.py +++ b/examples/llava/qwen2_vl_surgery.py @@ -1,14 +1,16 @@ import argparse -from typing import Dict +from typing import Dict, List, Optional import torch import numpy as np from gguf import * from transformers import ( - Qwen2VLForConditionalGeneration, - Qwen2VLProcessor, AutoProcessor, - Qwen2VLConfig + Qwen2VLConfig, + Qwen2VLProcessor, + Qwen2VLForConditionalGeneration, + Qwen2_5_VLConfig, # type: ignore[reportAttributeAccessIssue] + Qwen2_5_VLForConditionalGeneration, # type: ignore[reportAttributeAccessIssue] ) @@ -19,61 +21,93 @@ def k(raw_key: str, arch: str) -> str: return raw_key.format(arch=arch) -def to_gguf_name(name: str) -> str: - og = name - name = name.replace("text_model", "t").replace("vision_model", "v") - name = name.replace("blocks", "blk").replace("embeddings.", "") - name = name.replace("attn.", "attn_") - name = name.replace("mlp.fc1", "ffn_down").replace("mlp.fc2", "ffn_up").replace("proj.", "out.") - # name = name.replace("layrnorm", "ln").replace("layer_norm", "ln").replace("layernorm", "ln") - name = name.replace("norm1", "ln1").replace("norm2", "ln2") - name = name.replace("merger.mlp", 'mm') - print(f"[to_gguf_name] {og} --> {name}") - return name +def get_n_wa_pattern(fullatt_block_indexes: Optional[List[int]]): + if fullatt_block_indexes is None: + return 0 + n_wa = fullatt_block_indexes[0] + for a, b in zip(fullatt_block_indexes, fullatt_block_indexes[1:]): + if b - a - 1 != n_wa: + raise ValueError( + f"window/full attention layer should have fix pattern of " + f"for each full-attention layer followed by {n_wa} window-attention layers" + ) + return n_wa + 1 -def find_vision_tensors(qwen2vl, dtype) -> Dict[str, np.ndarray]: - vision_model = qwen2vl.visual - tensor_map = {} - for name, ten in vision_model.state_dict().items(): - ten = ten.numpy() - if 'qkv' in name: - if ten.ndim == 2: # weight - c3, _ = ten.shape - else: # bias - c3 = ten.shape[0] - assert c3 % 3 == 0 - c = c3 // 3 - wq = ten[:c] - wk = ten[c: c * 2] - wv = ten[c * 2:] - tensor_map[to_gguf_name(f"vision_model.{name}").replace("qkv", "q")] = wq - tensor_map[to_gguf_name(f"vision_model.{name}").replace("qkv", "k")] = wk - tensor_map[to_gguf_name(f"vision_model.{name}").replace("qkv", "v")] = wv - elif 'merger' in name: - if name.endswith("ln_q.weight"): - tensor_map['v.post_ln.weight'] = ten - elif name.endswith("ln_q.bias"): - tensor_map['v.post_ln.bias'] = ten +class VL2: + + @staticmethod + def to_gguf_name(name: str) -> str: + og = name + name = name.replace("text_model", "t").replace("vision_model", "v") + name = name.replace("blocks", "blk").replace("embeddings.", "") + name = name.replace("attn.", "attn_") + name = name.replace("mlp.fc1", "ffn_down").replace("mlp.fc2", "ffn_up").replace("proj.", "out.") + # name = name.replace("layrnorm", "ln").replace("layer_norm", "ln").replace("layernorm", "ln") + name = name.replace("norm1", "ln1").replace("norm2", "ln2") + name = name.replace("merger.mlp", 'mm') + print(f"[to_gguf_name] {og} --> {name}") + return name + + @classmethod + def find_vision_tensors(cls, qwen2vl, dtype) -> Dict[str, np.ndarray]: + vision_model = qwen2vl.visual + tensor_map = {} + for name, ten in vision_model.state_dict().items(): + ten = ten.numpy() + if 'qkv' in name: + if ten.ndim == 2: # weight + c3, _ = ten.shape + else: # bias + c3 = ten.shape[0] + assert c3 % 3 == 0 + c = c3 // 3 + wq = ten[:c] + wk = ten[c: c * 2] + wv = ten[c * 2:] + tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "q")] = wq + tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "k")] = wk + tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "v")] = wv + elif 'merger' in name: + if name.endswith("ln_q.weight"): + tensor_map['v.post_ln.weight'] = ten + elif name.endswith("ln_q.bias"): + tensor_map['v.post_ln.bias'] = ten + else: + # "merger.mlp.%d.weight/bias" --> "mm.%d.weight/bias" + tensor_map[cls.to_gguf_name(name)] = ten + elif 'patch_embed.proj.weight' in name: + # NOTE: split Conv3D into Conv2Ds + c1, c2, kt, kh, kw = ten.shape + assert kt == 2, "Current implmentation only support temporal_patch_size of 2" + tensor_map["v.patch_embd.weight"] = ten[:, :, 0, ...] + tensor_map["v.patch_embd.weight.1"] = ten[:, :, 1, ...] else: - # "merger.mlp.%d.weight/bias" --> "mm.%d.weight/bias" - tensor_map[to_gguf_name(name)] = ten - elif 'patch_embed.proj.weight' in name: - # NOTE: split Conv3D into Conv2Ds - c1, c2, kt, kh, kw = ten.shape - assert kt == 2, "Current implmentation only support temporal_patch_size of 2" - tensor_map["v.patch_embd.weight"] = ten[:, :, 0, ...] - tensor_map["v.patch_embd.weight.1"] = ten[:, :, 1, ...] - else: - tensor_map[to_gguf_name(f"vision_model.{name}")] = ten + tensor_map[cls.to_gguf_name(f"vision_model.{name}")] = ten - for new_name, ten in tensor_map.items(): - if ten.ndim <= 1 or new_name.endswith("_norm.weight"): - tensor_map[new_name] = ten.astype(np.float32) - else: - tensor_map[new_name] = ten.astype(dtype) - tensor_map["v.position_embd.weight"] = np.zeros([10, 10], dtype=np.float32) # dummy tensor, just here as a placeholder - return tensor_map + for new_name, ten in tensor_map.items(): + if ten.ndim <= 1 or new_name.endswith("_norm.weight"): + tensor_map[new_name] = ten.astype(np.float32) + else: + tensor_map[new_name] = ten.astype(dtype) + tensor_map["v.position_embd.weight"] = np.zeros([10, 10], dtype=np.float32) # dummy tensor, just here as a placeholder + return tensor_map + + +class VL25(VL2): + + @staticmethod + def to_gguf_name(name: str) -> str: + og = name + name = name.replace("text_model", "t").replace("vision_model", "v") + name = name.replace("blocks", "blk").replace("embeddings.", "") + name = name.replace("attn.", "attn_") + name = name.replace("mlp.down_proj", "ffn_down").replace("mlp.up_proj", "ffn_up") + name = name.replace("mlp.gate_proj", "ffn_gate").replace("proj.", "out.") + name = name.replace("norm1", "ln1").replace("norm2", "ln2") + name = name.replace("merger.mlp", 'mm') + print(f"[vl25][to_gguf_name] {og} --> {name}") + return name def main(args): @@ -82,7 +116,7 @@ def main(args): np_dtype = np.float32 ftype = 0 elif args.data_type == 'fp16': - dtype = torch.float32 + dtype = torch.float16 np_dtype = np.float16 ftype = 1 else: @@ -92,11 +126,18 @@ def main(args): model_path = "" model_name = args.model_name print("model_name: ", model_name) - qwen2vl = Qwen2VLForConditionalGeneration.from_pretrained( - model_name, torch_dtype=dtype, device_map="cpu" - ) - cfg: Qwen2VLConfig = qwen2vl.config # type: ignore[reportAssignmentType] - vcfg = cfg.vision_config + if args.model_type == "qwen2vl": + qwen2vl = Qwen2VLForConditionalGeneration.from_pretrained( + model_name, torch_dtype=dtype, device_map="cpu" + ) + cfg: Qwen2VLConfig = qwen2vl.config # type: ignore[reportAssignmentType] + vcfg = cfg.vision_config + else: + qwen2vl = Qwen2_5_VLForConditionalGeneration.from_pretrained( + model_name, torch_dtype=dtype, device_map="cpu" + ) + cfg: Qwen2_5_VLConfig = qwen2vl.config # type: ignore[reportAssignmentType] + vcfg = cfg.vision_config if os.path.isdir(model_name): local_model = True @@ -113,7 +154,6 @@ def main(args): fout.add_bool("clip.has_text_encoder", False) fout.add_bool("clip.has_vision_encoder", True) fout.add_bool("clip.has_qwen2vl_merger", True) - fout.add_string("clip.projector_type", "qwen2vl_merger") print(cfg.vision_config) if 'silu' in cfg.vision_config.hidden_act.lower(): @@ -125,14 +165,25 @@ def main(args): else: raise ValueError() - tensor_map = find_vision_tensors(qwen2vl, np_dtype) + if args.model_type == "qwen2.5vl": + fout.add_uint32("clip.vision.n_wa_pattern", get_n_wa_pattern(vcfg.fullatt_block_indexes)) + fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), vcfg.hidden_size) + fout.add_uint32("clip.vision.projection_dim", vcfg.out_hidden_size) + fout.add_string("clip.projector_type", "qwen2.5vl_merger") + else: + fout.add_string("clip.projector_type", "qwen2vl_merger") + fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), vcfg.embed_dim) + fout.add_uint32("clip.vision.projection_dim", vcfg.hidden_size) + + if args.model_type == "qwen2.5vl": + tensor_map = VL25.find_vision_tensors(qwen2vl, np_dtype) + else: + tensor_map = VL2.find_vision_tensors(qwen2vl, np_dtype) for name, data in tensor_map.items(): fout.add_tensor(name, data) fout.add_uint32("clip.vision.patch_size", vcfg.patch_size) fout.add_uint32("clip.vision.image_size", 14 * 40) # some reasonable size that is divable by (14*2) - fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), vcfg.embed_dim) - fout.add_uint32("clip.vision.projection_dim", vcfg.hidden_size) fout.add_uint32(k(KEY_ATTENTION_HEAD_COUNT, VISION), vcfg.num_heads) fout.add_float32(k(KEY_ATTENTION_LAYERNORM_EPS, VISION), 1e-6) fout.add_uint32(k(KEY_BLOCK_COUNT, VISION), vcfg.depth) @@ -160,6 +211,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("model_name", nargs='?', default="Qwen/Qwen2-VL-2B-Instruct") + parser.add_argument("--model_type", nargs='?', choices=['qwen2vl', 'qwen2.5vl'], default="qwen2vl") parser.add_argument("--data_type", nargs='?', choices=['fp32', 'fp16'], default="fp32") args = parser.parse_args() main(args) diff --git a/examples/llava/qwen2vl-cli.cpp b/examples/llava/qwen2vl-cli.cpp index eca7b7f10b..cf42710869 100644 --- a/examples/llava/qwen2vl-cli.cpp +++ b/examples/llava/qwen2vl-cli.cpp @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include static bool qwen2vl_eval_image_embed(llama_context * ctx_llama, const struct llava_image_embed * image_embed, @@ -367,14 +370,14 @@ static void debug_test_mrope_2d() { // 1. Initialize backend ggml_backend_t backend = NULL; std::string backend_name = ""; -#ifdef GGML_USE_CUDA - fprintf(stderr, "%s: using CUDA backend\n", __func__); - backend = ggml_backend_cuda_init(0); // init device 0 - backend_name = "cuda"; - if (!backend) { - fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__); - } -#endif +// #ifdef GGML_USE_CUDA +// fprintf(stderr, "%s: using CUDA backend\n", __func__); +// backend = ggml_backend_cuda_init(0); // init device 0 +// backend_name = "cuda"; +// if (!backend) { +// fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__); +// } +// #endif // if there aren't GPU Backends fallback to CPU backend if (!backend) { backend = ggml_backend_cpu_init(); @@ -483,28 +486,82 @@ static void debug_test_mrope_2d() { ggml_backend_free(backend); } -static void debug_dump_img_embed(struct llava_context * ctx_llava) { - int n_embd = llama_model_n_embd(llama_get_model(ctx_llava->ctx_llama)); - int ne = n_embd * 4; - float vals[56 * 56 * 3]; +enum model_output_type { + conv3d, + patch_embed, + patch_win_attn_scatter, + first_attn_layer, + last_attn_layer, + attn_softmax, + final_layer, +}; + +static void debug_dump_img_embed(struct llava_context * ctx_llava, model_output_type output_type) { + constexpr int ih = 140; + constexpr int iw = 196; + // constexpr int ih = 56; + // constexpr int iw = 56; + // int n_embd = llama_model_n_embd(llama_get_model(ctx_llava->ctx_llama)); + int n_embd = 1280; + int merge = 1; + if (output_type == model_output_type::final_layer) { + n_embd = 2048; + merge = 2; + } + else if (output_type == model_output_type::attn_softmax) { + merge = 1; + n_embd = (ih/14/merge) * (iw/14/merge) * 16; + } + + int ne = (ih/14/merge) * (iw/14/merge) * n_embd; + float vals[iw * ih * 3]; // float embd[ne]; std::vector embd; embd.resize(ne); - for (int i = 0; i < 56*56; i++) + for (int i = 0; i < iw*ih; i++) { for (int c = 0; c < 3; c++) - vals[i * 3 + c] = (float)(i % (56 * 56)) / (56*56); + vals[i * 3 + c] = (float)i / (iw*ih); } - clip_encode_float_image(ctx_llava->ctx_clip, 16, vals, 56, 56, embd.data()); + clip_encode_float_image(ctx_llava->ctx_clip, 8, vals, ih, iw, embd.data()); - std::ofstream outFile("img_embed.bin", std::ios::binary); + std::string file_postfix = ""; + switch (output_type) + { + case model_output_type::conv3d: + file_postfix = "conv3d"; + break; + case model_output_type::patch_embed: + file_postfix = "patch_embed"; + break; + case model_output_type::patch_win_attn_scatter: + file_postfix = "scatter"; + break; + case model_output_type::first_attn_layer: + file_postfix = "first_attn"; + break; + case model_output_type::last_attn_layer: + file_postfix = "last_attn"; + break; + case model_output_type::attn_softmax: + file_postfix = "attn_softmax"; + break; + case model_output_type::final_layer: + file_postfix = "final"; + break; + default: + break; + } + auto output_path = "img_embed_" + file_postfix + ".bin"; + + std::ofstream outFile(output_path, std::ios::binary); if (outFile.is_open()) { outFile.write(reinterpret_cast(embd.data()), ne * sizeof(float)); outFile.close(); - std::cout << "Data successfully written to mrope.bin" << std::endl; + std::cout << "Data successfully written to ::[ " << output_path << std::endl; } else { std::cerr << "Error opening file!" << std::endl; } @@ -551,8 +608,9 @@ int main(int argc, char ** argv) { } else if (params.image[0].empty()) { auto ctx_llava = llava_init_context(¶ms, model); - debug_test_mrope_2d(); - debug_dump_img_embed(ctx_llava); + // debug_test_mrope_2d(); + debug_dump_img_embed(ctx_llava, model_output_type::final_layer); + // debug_dump_img_embed(ctx_llava, model_output_type::last_attn_layer); llama_perf_context_print(ctx_llava->ctx_llama); ctx_llava->model = NULL; diff --git a/examples/llava/tests.sh b/examples/llava/tests.sh index e612857edc..4002f9d531 100755 --- a/examples/llava/tests.sh +++ b/examples/llava/tests.sh @@ -55,6 +55,7 @@ add_test "llama-mtmd-cli" "second-state/MiniCPM-Llama3-V-2_5-GGUF:Q2_K" # mode add_test "llama-mtmd-cli" "openbmb/MiniCPM-V-2_6-gguf:Q2_K" add_test "llama-mtmd-cli" "openbmb/MiniCPM-o-2_6-gguf:Q4_0" add_test "llama-qwen2vl-cli" "bartowski/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M" +add_test "llama-qwen2vl-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" # to test the big models, run: ./tests.sh big add_test_big "llama-mtmd-cli" "ggml-org/pixtral-12b-GGUF:Q4_K_M" From 59e991c23cc44cb5fb657e7b9358cac21fb79828 Mon Sep 17 00:00:00 2001 From: LostRuins Concedo <39025047+LostRuins@users.noreply.github.com> Date: Sun, 27 Apr 2025 18:43:37 +0800 Subject: [PATCH 017/126] Fixes Qwen2.5VL segfault during inference with https://github.com/ggml-org/llama.cpp/pull/12402 as has_qwen2vl_merger migration was incomplete (#13133) --- examples/llava/clip.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index b6a1f40e8a..3cd27d5b17 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -1718,7 +1718,8 @@ struct clip_model_loader { if (ctx_clip.proj_type == PROJECTOR_TYPE_MINICPMV || ctx_clip.proj_type == PROJECTOR_TYPE_GLM_EDGE - || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN2VL) { + || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN2VL + || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN25VL) { n_layer += 1; } @@ -2744,7 +2745,7 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, str } return true; } - else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { + else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { clip_image_u8 resized; auto patch_size = clip_get_patch_size(ctx) * 2; int nx = ceil((float)img->nx / patch_size) * patch_size; @@ -3139,7 +3140,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima else { // non-minicpmv models - if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { // pw * ph = number of tokens output by ViT after apply patch merger // ipw * ipw = number of vision token been processed inside ViT const int merge_ratio = 2; @@ -3279,7 +3280,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } } - if (use_window_attn && ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { + if (use_window_attn && (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL)) { struct ggml_tensor * window_idx = ggml_graph_get_tensor(gf, "window_idx"); struct ggml_tensor * inv_window_idx = ggml_graph_get_tensor(gf, "inv_window_idx"); struct ggml_tensor * window_mask = ggml_graph_get_tensor(gf, "window_mask"); From e291450b7602d7a36239e4ceeece37625f838373 Mon Sep 17 00:00:00 2001 From: R0CKSTAR Date: Sun, 27 Apr 2025 19:22:49 +0800 Subject: [PATCH 018/126] musa: fix build warning (#13129) Signed-off-by: Xiaodong Ye --- ggml/src/ggml-cuda/cpy.cu | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ggml/src/ggml-cuda/cpy.cu b/ggml/src/ggml-cuda/cpy.cu index ed25646e8e..2d46176eab 100644 --- a/ggml/src/ggml-cuda/cpy.cu +++ b/ggml/src/ggml-cuda/cpy.cu @@ -639,6 +639,8 @@ void ggml_cuda_cpy(ggml_backend_cuda_context & ctx, const ggml_tensor * src0, gg if(ctx.cuda_graph->use_cpy_indirection && !disable_indirection_for_this_node) { ctx.cuda_graph->graph_cpynode_index = graph_cpynode_index; } +#else + GGML_UNUSED(disable_indirection_for_this_node); #endif } From ced44be34290fab450f8344efa047d8a08e723b4 Mon Sep 17 00:00:00 2001 From: matteo Date: Sun, 27 Apr 2025 21:57:32 +0200 Subject: [PATCH 019/126] llama-chat : fix wrong template in GLM4-0414 (#13140) * fix wrong template in GLM4-0414 * fix spaces * no bos token since it is already in the template * moved the chatgml4 check to higher priority * restored template for old GLM models * moved the GLM4 template check in the correct place with correct check --- convert_hf_to_gguf.py | 2 +- src/llama-chat.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index ea3a951b93..d4fec408dd 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -5154,7 +5154,7 @@ class Glm4Model(TextModel): special_vocab._set_special_token("eos", tokenizer.get_added_vocab()["<|endoftext|>"]) special_vocab._set_special_token("eot", tokenizer.get_added_vocab()["<|user|>"]) special_vocab._set_special_token("unk", tokenizer.get_added_vocab()["<|endoftext|>"]) - special_vocab._set_special_token("bos", tokenizer.get_added_vocab()["[gMASK]"]) + special_vocab._set_special_token("bos", tokenizer.get_added_vocab()["<|endoftext|>"]) special_vocab.add_to_gguf(self.gguf_writer) def set_gguf_parameters(self): diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index 41f89e3a9d..698c30ce49 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -122,6 +122,8 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { } } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|end|>")) { return LLM_CHAT_TEMPLATE_PHI_3; + } else if (tmpl_contains("[gMASK]")) { + return LLM_CHAT_TEMPLATE_CHATGML_4; } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|user|>")) { return tmpl_contains("") ? LLM_CHAT_TEMPLATE_FALCON_3 : LLM_CHAT_TEMPLATE_GLMEDGE; } else if (tmpl_contains("<|{{ item['role'] }}|>") && tmpl_contains("<|begin_of_image|>")) { @@ -155,8 +157,6 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { } else if (tmpl_contains("[gMASK]sop")) { // chatglm3-6b return LLM_CHAT_TEMPLATE_CHATGML_3; - } else if (tmpl_contains("[gMASK]")) { - return LLM_CHAT_TEMPLATE_CHATGML_4; } else if (tmpl_contains(LU8("<用户>"))) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF return LLM_CHAT_TEMPLATE_MINICPM; From c0a97b762e5ec767dc414f0dc4979befd4c09a52 Mon Sep 17 00:00:00 2001 From: 4onen <11580688+4onen@users.noreply.github.com> Date: Sun, 27 Apr 2025 14:48:26 -0700 Subject: [PATCH 020/126] llama-bench : Add `--override-tensors` arg (#12922) * Add --override-tensors option to llama-bench * Correct llama-bench --override-tensors to --override-tensor * llama-bench: Update --override-tensors parsing to match --tensor-split, appear in test matrix. * Make new llama-bench util functions static to fix Ubuntu CI * llama-bench: Correct -ot corner cases (No -ot calls, leading and trailing empty -ot spans, etc.) --- examples/llama-bench/llama-bench.cpp | 177 ++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 4 deletions(-) diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index cbcbfcee86..564a51bfd7 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -36,6 +36,46 @@ static uint64_t get_time_ns() { return std::chrono::nanoseconds(clock::now().time_since_epoch()).count(); } +static bool tensor_buft_override_equal(const llama_model_tensor_buft_override& a, const llama_model_tensor_buft_override& b) { + if (a.pattern != b.pattern) { + // cString comparison that may be null + if (a.pattern == nullptr || b.pattern == nullptr) { + return false; + } + if (strcmp(a.pattern, b.pattern) != 0) { + return false; + } + } + if (a.buft != b.buft) { + return false; + } + return true; +} + +static bool vec_tensor_buft_override_equal(const std::vector& a, const std::vector& b) { + if (a.size() != b.size()) { + return false; + } + for (size_t i = 0; i < a.size(); i++) { + if (!tensor_buft_override_equal(a[i], b[i])) { + return false; + } + } + return true; +} + +static bool vec_vec_tensor_buft_override_equal(const std::vector>& a, const std::vector>& b) { + if (a.size() != b.size()) { + return false; + } + for (size_t i = 0; i < a.size(); i++) { + if (!vec_tensor_buft_override_equal(a[i], b[i])) { + return false; + } + } + return true; +} + template static std::string join(const std::vector & values, const std::string & delim) { std::ostringstream str; for (size_t i = 0; i < values.size(); i++) { @@ -175,6 +215,7 @@ struct cmd_params { std::vector no_kv_offload; std::vector flash_attn; std::vector> tensor_split; + std::vector> tensor_buft_overrides; std::vector use_mmap; std::vector embeddings; ggml_numa_strategy numa; @@ -207,6 +248,7 @@ static const cmd_params cmd_params_defaults = { /* no_kv_offload */ { false }, /* flash_attn */ { false }, /* tensor_split */ { std::vector(llama_max_devices(), 0.0f) }, + /* tensor_buft_overrides*/ { std::vector{{nullptr,nullptr}} }, /* use_mmap */ { true }, /* embeddings */ { false }, /* numa */ GGML_NUMA_STRATEGY_DISABLED, @@ -265,6 +307,7 @@ static void print_usage(int /* argc */, char ** argv) { printf(" -embd, --embeddings <0|1> (default: %s)\n", join(cmd_params_defaults.embeddings, ",").c_str()); printf(" -ts, --tensor-split (default: 0)\n"); + printf(" -ot --override-tensors =;... (default: disabled)\n"); printf(" -r, --repetitions (default: %d)\n", cmd_params_defaults.reps); printf(" --prio <0|1|2|3> (default: %d)\n", cmd_params_defaults.prio); printf(" --delay <0...N> (seconds) (default: %d)\n", cmd_params_defaults.delay); @@ -557,6 +600,87 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { } params.tensor_split.push_back(tensor_split); } + } else if (arg == "-ot" || arg == "--override-tensor") { + if (++i >= argc) { + invalid_param = true; + break; + } + auto value = argv[i]; + /* static */ std::map buft_list; + if (buft_list.empty()) { + // enumerate all the devices and add their buffer types to the list + for (size_t i = 0; i < ggml_backend_dev_count(); ++i) { + auto * dev = ggml_backend_dev_get(i); + auto * buft = ggml_backend_dev_buffer_type(dev); + if (buft) { + buft_list[ggml_backend_buft_name(buft)] = buft; + } + } + } + auto override_group_span_len = std::strcspn(value, ","); + bool last_group = false; + do { + if (override_group_span_len == 0) { + // Adds an empty override-tensors for an empty span + params.tensor_buft_overrides.push_back({{}}); + if (value[override_group_span_len] == '\0') { + value = &value[override_group_span_len]; + last_group = true; + } else { + value = &value[override_group_span_len + 1]; + override_group_span_len = std::strcspn(value, ","); + } + continue; + } + // Stamps null terminators into the argv + // value for this option to avoid the + // memory leak present in the implementation + // over in arg.cpp. Acceptable because we + // only parse these args once in this program. + auto override_group = value; + if (value[override_group_span_len] == '\0') { + value = &value[override_group_span_len]; + last_group = true; + } else { + value[override_group_span_len] = '\0'; + value = &value[override_group_span_len + 1]; + } + std::vector group_tensor_buft_overrides{}; + auto override_span_len = std::strcspn(override_group, ";"); + while (override_span_len > 0) { + auto override = override_group; + if (override_group[override_span_len] != '\0') { + override_group[override_span_len] = '\0'; + override_group = &override_group[override_span_len + 1]; + } else { + override_group = &override_group[override_span_len]; + } + auto tensor_name_span_len = std::strcspn(override, "="); + if (tensor_name_span_len >= override_span_len) { + invalid_param = true; + break; + } + override[tensor_name_span_len] = '\0'; + auto tensor_name = override; + auto buffer_type = &override[tensor_name_span_len + 1]; + if (buft_list.find(buffer_type) == buft_list.end()) { + printf("Available buffer types:\n"); + for (const auto & it : buft_list) { + printf(" %s\n", ggml_backend_buft_name(it.second)); + } + invalid_param = true; + break; + } + group_tensor_buft_overrides.push_back({tensor_name, buft_list.at(buffer_type)}); + override_span_len = std::strcspn(override_group, ";"); + } + if (invalid_param) { + break; + } + group_tensor_buft_overrides.push_back({nullptr,nullptr}); + params.tensor_buft_overrides.push_back(group_tensor_buft_overrides); + override_group_span_len = std::strcspn(value, ","); + } while (!last_group); } else if (arg == "-r" || arg == "--repetitions") { if (++i >= argc) { invalid_param = true; @@ -648,6 +772,9 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { if (params.tensor_split.empty()) { params.tensor_split = cmd_params_defaults.tensor_split; } + if (params.tensor_buft_overrides.empty()) { + params.tensor_buft_overrides = cmd_params_defaults.tensor_buft_overrides; + } if (params.use_mmap.empty()) { params.use_mmap = cmd_params_defaults.use_mmap; } @@ -689,6 +816,7 @@ struct cmd_params_instance { bool no_kv_offload; bool flash_attn; std::vector tensor_split; + std::vector tensor_buft_overrides; bool use_mmap; bool embeddings; @@ -733,13 +861,20 @@ struct cmd_params_instance { mparams.tensor_split = tensor_split.data(); mparams.use_mmap = use_mmap; + if (tensor_buft_overrides.empty()) { + mparams.tensor_buft_overrides = nullptr; + } else { + GGML_ASSERT(tensor_buft_overrides.back().pattern == nullptr && "Tensor buffer overrides not terminated with empty pattern"); + mparams.tensor_buft_overrides = tensor_buft_overrides.data(); + } + return mparams; } bool equal_mparams(const cmd_params_instance & other) const { return model == other.model && n_gpu_layers == other.n_gpu_layers && rpc_servers_str == other.rpc_servers_str && split_mode == other.split_mode && main_gpu == other.main_gpu && use_mmap == other.use_mmap && - tensor_split == other.tensor_split; + tensor_split == other.tensor_split && vec_tensor_buft_override_equal(tensor_buft_overrides, other.tensor_buft_overrides); } llama_context_params to_llama_cparams() const { @@ -769,6 +904,7 @@ static std::vector get_cmd_params_instances(const cmd_param for (const auto & sm : params.split_mode) for (const auto & mg : params.main_gpu) for (const auto & ts : params.tensor_split) + for (const auto & ot : params.tensor_buft_overrides) for (const auto & mmp : params.use_mmap) for (const auto & embd : params.embeddings) for (const auto & nb : params.n_batch) @@ -804,6 +940,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .no_kv_offload= */ nkvo, /* .flash_attn = */ fa, /* .tensor_split = */ ts, + /* .tensor_buft_overrides = */ ot, /* .use_mmap = */ mmp, /* .embeddings = */ embd, }; @@ -833,6 +970,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .no_kv_offload= */ nkvo, /* .flash_attn = */ fa, /* .tensor_split = */ ts, + /* .tensor_buft_overrides = */ ot, /* .use_mmap = */ mmp, /* .embeddings = */ embd, }; @@ -862,6 +1000,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .no_kv_offload= */ nkvo, /* .flash_attn = */ fa, /* .tensor_split = */ ts, + /* .tensor_buft_overrides = */ ot, /* .use_mmap = */ mmp, /* .embeddings = */ embd, }; @@ -896,6 +1035,7 @@ struct test { bool no_kv_offload; bool flash_attn; std::vector tensor_split; + std::vector tensor_buft_overrides; bool use_mmap; bool embeddings; int n_prompt; @@ -927,6 +1067,7 @@ struct test { no_kv_offload = inst.no_kv_offload; flash_attn = inst.flash_attn; tensor_split = inst.tensor_split; + tensor_buft_overrides = inst.tensor_buft_overrides; use_mmap = inst.use_mmap; embeddings = inst.embeddings; n_prompt = inst.n_prompt; @@ -972,9 +1113,9 @@ struct test { "build_commit", "build_number", "cpu_info", "gpu_info", "backends", "model_filename", "model_type", "model_size", "model_n_params", "n_batch", "n_ubatch", "n_threads", "cpu_mask", "cpu_strict", "poll", "type_k", "type_v", "n_gpu_layers", - "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "use_mmap", - "embeddings", "n_prompt", "n_gen", "test_time", "avg_ns", "stddev_ns", - "avg_ts", "stddev_ts", + "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "tensor_buft_overrides", + "use_mmap", "embeddings", "n_prompt", "n_gen", "test_time", "avg_ns", + "stddev_ns", "avg_ts", "stddev_ts", }; return fields; } @@ -1000,6 +1141,7 @@ struct test { std::vector get_values() const { std::string tensor_split_str; + std::string tensor_buft_overrides_str; int max_nonzero = 0; for (size_t i = 0; i < llama_max_devices(); i++) { if (tensor_split[i] > 0) { @@ -1014,6 +1156,26 @@ struct test { tensor_split_str += "/"; } } + if (tensor_buft_overrides.size() == 1) { + // Last element of tensor_buft_overrides is always a null pattern + // so if it is only one element long, it must be a null pattern. + GGML_ASSERT(tensor_buft_overrides[0].pattern == nullptr); + tensor_buft_overrides_str += "none"; + } else { + for (size_t i = 0; i < tensor_buft_overrides.size()-1; i++) { + // Last element of tensor_buft_overrides is always a null pattern + if (tensor_buft_overrides[i].pattern == nullptr) { + tensor_buft_overrides_str += "none"; + } else { + tensor_buft_overrides_str += tensor_buft_overrides[i].pattern; + tensor_buft_overrides_str += "="; + tensor_buft_overrides_str += ggml_backend_buft_name(tensor_buft_overrides[i].buft); + } + if (i + 2 < tensor_buft_overrides.size()) { + tensor_buft_overrides_str += ";"; + } + } + } std::vector values = { build_commit, std::to_string(build_number), cpu_info, @@ -1037,6 +1199,7 @@ struct test { std::to_string(no_kv_offload), std::to_string(flash_attn), tensor_split_str, + tensor_buft_overrides_str, std::to_string(use_mmap), std::to_string(embeddings), std::to_string(n_prompt), @@ -1254,6 +1417,9 @@ struct markdown_printer : public printer { if (field == "tensor_split") { return "ts"; } + if (field == "tensor_buft_overrides") { + return "ot"; + } return field; } @@ -1307,6 +1473,9 @@ struct markdown_printer : public printer { if (params.tensor_split.size() > 1 || params.tensor_split != cmd_params_defaults.tensor_split) { fields.emplace_back("tensor_split"); } + if (params.tensor_buft_overrides.size() > 1 || !vec_vec_tensor_buft_override_equal(params.tensor_buft_overrides, cmd_params_defaults.tensor_buft_overrides)) { + fields.emplace_back("tensor_buft_overrides"); + } if (params.use_mmap.size() > 1 || params.use_mmap != cmd_params_defaults.use_mmap) { fields.emplace_back("use_mmap"); } From 85f36e5e7173eef7c671c778db44c034e1d0ab19 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 07:16:59 +0200 Subject: [PATCH 021/126] arg : fix unused variable (#13142) --- common/arg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/arg.cpp b/common/arg.cpp index de173159f4..2740149212 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -673,7 +673,7 @@ static struct common_hf_file_res common_get_hf_file(const std::string &, const s return {}; } -std::pair> common_remote_get_content(const std::string & url, const common_remote_params & params) { +std::pair> common_remote_get_content(const std::string &, const common_remote_params &) { throw std::runtime_error("error: built without CURL, cannot download model from the internet"); } From 69699be48a6b94570773532850667f1591dc5bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Mon, 28 Apr 2025 09:29:26 +0200 Subject: [PATCH 022/126] CUDA: fix q_nope_absorbed prec for DS 2 Lite f16 (#13137) --- ggml/include/ggml.h | 4 ++-- ggml/src/ggml-cuda/ggml-cuda.cu | 4 ++-- src/llama-model.cpp | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 51aa5b3a0a..1b8603e78e 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -393,8 +393,8 @@ extern "C" { // precision enum ggml_prec { - GGML_PREC_DEFAULT, - GGML_PREC_F32, + GGML_PREC_DEFAULT = 0, // stored as ggml_tensor.op_params, 0 by default + GGML_PREC_F32 = 10, }; // model file types diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index e0e0d2137f..19b9ce7231 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1935,8 +1935,8 @@ static void ggml_cuda_mul_mat(ggml_backend_cuda_context & ctx, const ggml_tensor ggml_cuda_mul_mat_vec(ctx, src0, src1, nullptr, dst); } else if (!split && use_mul_mat_vec_q) { ggml_cuda_mul_mat_vec_q(ctx, src0, src1, nullptr, dst); - } else if (!split && src0->type == GGML_TYPE_F16 && (src1->type == GGML_TYPE_F16 || !any_gpus_with_slow_fp16) - && !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) { + } else if (!split && src0->type == GGML_TYPE_F16 && (src1->type == GGML_TYPE_F16 || !any_gpus_with_slow_fp16) && + dst->op_params[0] == GGML_PREC_DEFAULT && !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) { // general KQ + KQV multi-batch without FlashAttention ggml_cuda_mul_mat_batched_cublas(ctx, src0, src1, dst); } else if (use_mul_mat_vec) { diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 6b7bfecf3a..df2791002e 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -10149,6 +10149,7 @@ struct llm_build_deepseek2 : public llm_graph_context { // {n_embd_head_qk_nope, kv_lora_rank, n_head} x {n_embd_head_qk_nope, n_tokens, n_head} ggml_tensor * q_nope_absorbed = ggml_mul_mat(ctx0, model.layers[il].wk_b, q_nope); + ggml_mul_mat_set_prec(q_nope_absorbed, GGML_PREC_F32); cb(q_nope_absorbed, "q_nope_absorbed", il); // {kv_lora_rank, n_head, n_tokens} From f0dd6a1926cdb2f4183a937deee40db26ef8f1da Mon Sep 17 00:00:00 2001 From: R0CKSTAR Date: Mon, 28 Apr 2025 15:33:28 +0800 Subject: [PATCH 023/126] musa: fix typo in cc control (#13144) Signed-off-by: Xiaodong Ye --- ggml/src/ggml-cuda/common.cuh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 8284a0017d..2ea014e647 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -78,13 +78,13 @@ // Moore Threads #define GGML_CUDA_MUSA_ARCH_IS_QY1 (__MUSA_ARCH__ <= 210) -#define GGML_CUDA_CC_QY1 (GGML_MUSA_CC_OFFSET_MTHREADS + 0x210) // MTT S80, MTT S3000 -#define GGML_CUDA_CC_QY2 (GGML_MUSA_CC_OFFSET_MTHREADS + 0x220) // MTT S4000 -#define GGML_CUDA_CC_NG (GGML_MUSA_CC_OFFSET_MTHREADS + 0x310) // TBD +#define GGML_CUDA_CC_QY1 (GGML_CUDA_CC_OFFSET_MTHREADS + 0x210) // MTT S80, MTT S3000 +#define GGML_CUDA_CC_QY2 (GGML_CUDA_CC_OFFSET_MTHREADS + 0x220) // MTT S4000 +#define GGML_CUDA_CC_NG (GGML_CUDA_CC_OFFSET_MTHREADS + 0x310) // TBD #define GGML_CUDA_CC_IS_MTHREADS(cc) (cc >= GGML_CUDA_CC_OFFSET_MTHREADS && cc < GGML_CUDA_CC_OFFSET_AMD) #define GGML_CUDA_CC_IS_QY1(cc) (cc >= GGML_CUDA_CC_QY1 && cc < GGML_CUDA_CC_QY2) -#define GGML_CUDA_CC_IS_QY2(cc) (cc >= GGML_CUDA_CC_QY2 && cc < GGML_CUDA_CC_NEXT) +#define GGML_CUDA_CC_IS_QY2(cc) (cc >= GGML_CUDA_CC_QY2 && cc < GGML_CUDA_CC_NG) #define GGML_CUDA_CC_IS_NG(cc) (cc >= GGML_CUDA_CC_NG) #ifdef __CUDA_ARCH_LIST__ From e5d6c2554e7597665e26991a93fa2f3d16c79ad5 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 10:11:58 +0200 Subject: [PATCH 024/126] llama-chat : fix typo GML --> GLM (#13143) --- src/llama-chat.cpp | 12 ++++++------ src/llama-chat.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index 698c30ce49..af5e200319 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -50,8 +50,8 @@ static const std::map LLM_CHAT_TEMPLATES = { { "deepseek3", LLM_CHAT_TEMPLATE_DEEPSEEK_3 }, { "command-r", LLM_CHAT_TEMPLATE_COMMAND_R }, { "llama3", LLM_CHAT_TEMPLATE_LLAMA_3 }, - { "chatglm3", LLM_CHAT_TEMPLATE_CHATGML_3 }, - { "chatglm4", LLM_CHAT_TEMPLATE_CHATGML_4 }, + { "chatglm3", LLM_CHAT_TEMPLATE_CHATGLM_3 }, + { "chatglm4", LLM_CHAT_TEMPLATE_CHATGLM_4 }, { "glmedge", LLM_CHAT_TEMPLATE_GLMEDGE }, { "minicpm", LLM_CHAT_TEMPLATE_MINICPM }, { "exaone3", LLM_CHAT_TEMPLATE_EXAONE_3 }, @@ -123,7 +123,7 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|end|>")) { return LLM_CHAT_TEMPLATE_PHI_3; } else if (tmpl_contains("[gMASK]")) { - return LLM_CHAT_TEMPLATE_CHATGML_4; + return LLM_CHAT_TEMPLATE_CHATGLM_4; } else if (tmpl_contains("<|assistant|>") && tmpl_contains("<|user|>")) { return tmpl_contains("") ? LLM_CHAT_TEMPLATE_FALCON_3 : LLM_CHAT_TEMPLATE_GLMEDGE; } else if (tmpl_contains("<|{{ item['role'] }}|>") && tmpl_contains("<|begin_of_image|>")) { @@ -156,7 +156,7 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { return LLM_CHAT_TEMPLATE_LLAMA_3; } else if (tmpl_contains("[gMASK]sop")) { // chatglm3-6b - return LLM_CHAT_TEMPLATE_CHATGML_3; + return LLM_CHAT_TEMPLATE_CHATGLM_3; } else if (tmpl_contains(LU8("<用户>"))) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF return LLM_CHAT_TEMPLATE_MINICPM; @@ -437,7 +437,7 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|start_header_id|>assistant<|end_header_id|>\n\n"; } - } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGML_3) { + } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_3) { // chatglm3-6b ss << "[gMASK]" << "sop"; for (auto message : chat) { @@ -447,7 +447,7 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>"; } - } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGML_4) { + } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_4) { ss << "[gMASK]" << ""; for (auto message : chat) { std::string role(message->role); diff --git a/src/llama-chat.h b/src/llama-chat.h index dc30df711a..3f5843466d 100644 --- a/src/llama-chat.h +++ b/src/llama-chat.h @@ -29,8 +29,8 @@ enum llm_chat_template { LLM_CHAT_TEMPLATE_DEEPSEEK_3, LLM_CHAT_TEMPLATE_COMMAND_R, LLM_CHAT_TEMPLATE_LLAMA_3, - LLM_CHAT_TEMPLATE_CHATGML_3, - LLM_CHAT_TEMPLATE_CHATGML_4, + LLM_CHAT_TEMPLATE_CHATGLM_3, + LLM_CHAT_TEMPLATE_CHATGLM_4, LLM_CHAT_TEMPLATE_GLMEDGE, LLM_CHAT_TEMPLATE_MINICPM, LLM_CHAT_TEMPLATE_EXAONE_3, From 43f2b07193cbcccd266734320ea9b948f5a01926 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 28 Apr 2025 11:57:19 +0300 Subject: [PATCH 025/126] common : fix noreturn compile warning (#13151) ggml-ci --- common/arg.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index 2740149212..75e8e0bd51 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -673,8 +673,12 @@ static struct common_hf_file_res common_get_hf_file(const std::string &, const s return {}; } -std::pair> common_remote_get_content(const std::string &, const common_remote_params &) { - throw std::runtime_error("error: built without CURL, cannot download model from the internet"); +std::pair> common_remote_get_content(const std::string & url, const common_remote_params &) { + if (!url.empty()) { + throw std::runtime_error("error: built without CURL, cannot download model from the internet"); + } + + return {}; } #endif // LLAMA_USE_CURL From d0a417f3c7a5a22ef05b3b76d91dbe1d3362bf0c Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 28 Apr 2025 12:10:18 +0300 Subject: [PATCH 026/126] readme : update hot topics (#13150) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0e7bd2d21..1785493c3e 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) ## Hot topics +- **GGML developer experience survey (organized and reviewed by NVIDIA):** [link](https://forms.gle/Gasw3cRgyhNEnrwK9) - A new binary `llama-mtmd-cli` is introduced to replace `llava-cli`, `minicpmv-cli` and `gemma3-cli` https://github.com/ggml-org/llama.cpp/pull/13012, `libllava` will be deprecated -- **How to use [MTLResidencySet](https://developer.apple.com/documentation/metal/mtlresidencyset?language=objc) to keep the GPU memory active?** https://github.com/ggml-org/llama.cpp/pull/11427 -- **VS Code extension for FIM completions:** https://github.com/ggml-org/llama.vscode +- VS Code extension for FIM completions: https://github.com/ggml-org/llama.vscode - Universal [tool call support](./docs/function-calling.md) in `llama-server` https://github.com/ggml-org/llama.cpp/pull/9639 - Vim/Neovim plugin for FIM completions: https://github.com/ggml-org/llama.vim - Introducing GGUF-my-LoRA https://github.com/ggml-org/llama.cpp/discussions/10123 From a4c340f974f9b7ac0c1aae897aabaa54549a97e5 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Mon, 28 Apr 2025 15:03:25 +0530 Subject: [PATCH 027/126] SYCL: Add all missing unary kernels (#13074) * SYCL: Add all missing unary kernels ggml-ci * decouple kernel launch range from data size using strided loop * use ciel_div helper for num_blocks ggml-ci * clean auto imported header files --- ggml/src/ggml-sycl/common.hpp | 4 + ggml/src/ggml-sycl/element_wise.cpp | 169 ++++++++++++++++++++++++++++ ggml/src/ggml-sycl/element_wise.hpp | 5 + ggml/src/ggml-sycl/ggml-sycl.cpp | 13 +++ 4 files changed, 191 insertions(+) diff --git a/ggml/src/ggml-sycl/common.hpp b/ggml/src/ggml-sycl/common.hpp index 0ab0fb0aa3..c3d9d18645 100644 --- a/ggml/src/ggml-sycl/common.hpp +++ b/ggml/src/ggml-sycl/common.hpp @@ -493,5 +493,9 @@ static __dpct_inline__ Tp* get_pointer(sycl::local_accessor acc) { int64_t downsample_sycl_global_range(int64_t accumulate_block_num, int64_t block_size); +constexpr size_t ceil_div(const size_t m, const size_t n) { + return (m + n - 1) / n; +} + bool gpu_has_xmx(sycl::device &dev); #endif // GGML_SYCL_COMMON_HPP diff --git a/ggml/src/ggml-sycl/element_wise.cpp b/ggml/src/ggml-sycl/element_wise.cpp index fc25d98ddf..dcc6ec809a 100644 --- a/ggml/src/ggml-sycl/element_wise.cpp +++ b/ggml/src/ggml-sycl/element_wise.cpp @@ -21,6 +21,27 @@ static void acc_f32(const float * x, const float * y, float * dst, const int ne, } } +template +static void sgn(const T * x, T * dst, const int k, const sycl::nd_item<3> &item_ct1) { + for(auto i = item_ct1.get_global_id(2); i < (const size_t)k; i += item_ct1.get_global_range(2)) { + dst[i] = x[i] > static_cast(0.f) ? static_cast(1.f) : ((x[i] < static_cast(0.f) ? static_cast(-1.f) : static_cast(0.f))); + } +} + +template +static void abs_op(const T * x, T * dst, const int k, const sycl::nd_item<3> &item_ct1) { + for(auto i = item_ct1.get_global_id(2); i < (const size_t)k; i += item_ct1.get_global_range(2)) { + dst[i] = sycl::fabs(x[i]); + } +} + +template +static void elu_op(const T * x, T * dst, const int k, const sycl::nd_item<3> &item_ct1) { + for(auto i = item_ct1.get_global_id(2); i < (const size_t)k; i += item_ct1.get_global_range(2)) { + dst[i] = (x[i] > static_cast(0.f)) ? x[i] : sycl::expm1(x[i]); + } +} + template static void gelu(const T * x, T * dst, const int k, const sycl::nd_item<3> &item_ct1) { @@ -335,6 +356,37 @@ static void silu_sycl(const T *x, T *dst, const int k, }); } +template +static void sgn_sycl(const T * x, T * dst, const int k, queue_ptr stream) { + // hard code for now + const int num_blocks = ceil_div(k, 256); + stream->parallel_for( + sycl::nd_range<3>((sycl::range<3>(1, 1, num_blocks) * sycl::range(1, 1, 256)), sycl::range(1, 1, 256)), [=](sycl::nd_item<3> item_ct1) { + sgn(x, dst, k, item_ct1); + }); +} + +template +static void abs_sycl(const T * x, T * dst, const int k, queue_ptr stream) { + // hard code for now + const int num_blocks = ceil_div(k, 256); + stream->parallel_for( + sycl::nd_range<3>((sycl::range<3>(1, 1, num_blocks) * sycl::range<3>(1, 1, 256)), sycl::range<3>(1, 1, 256)), [=](sycl::nd_item<3> item_ct1) { + abs_op(x, dst, k, item_ct1); + }); +} + + +template +static void elu_sycl(const T * x, T * dst, const int k, queue_ptr stream) { + // hard code for now + const int num_blocks = ceil_div(k, 256); + stream->parallel_for( + sycl::nd_range<3>((sycl::range<3>(1, 1, num_blocks) * sycl::range<3>(1, 1, 256)), sycl::range<3>(1, 1, 256)), [=](sycl::nd_item<3> item_ct1) { + elu_op(x, dst, k, item_ct1); + }); +} + template static void gelu_quick_sycl(const T *x, T *dst, const int k, queue_ptr stream) { @@ -574,6 +626,106 @@ static void clamp_sycl(const T *x, T *dst, const float min, }); } +inline void ggml_sycl_op_sgn(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { +#if defined (GGML_SYCL_F16) + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32 || dst->src[0]->type == GGML_TYPE_F16); + GGML_ASSERT(dst->type == GGML_TYPE_F32 || dst->type == GGML_TYPE_F16); + +#else + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_F32); +#endif + GGML_ASSERT(dst->src[0]->type == dst->type); + dpct::queue_ptr main_stream = ctx.stream(); + SYCL_CHECK(ggml_sycl_set_device(ctx.device)); + switch (dst->type) { +#if defined (GGML_SYCL_F16) + case GGML_TYPE_F16: + { + auto data_pts = cast_data(dst); + sgn_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } +#endif + case GGML_TYPE_F32: + { + auto data_pts = cast_data(dst); + sgn_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } + default: + GGML_ABORT("GGML tensor type not supported!\n"); + break; + } +} + +inline void ggml_sycl_op_abs(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { +#if defined (GGML_SYCL_F16) + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32 || dst->src[0]->type == GGML_TYPE_F16); + GGML_ASSERT(dst->type == GGML_TYPE_F32 || dst->type == GGML_TYPE_F16); + +#else + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_F32); +#endif + GGML_ASSERT(dst->src[0]->type == dst->type); + dpct::queue_ptr main_stream = ctx.stream(); + SYCL_CHECK(ggml_sycl_set_device(ctx.device)); + switch (dst->type) { +#if defined (GGML_SYCL_F16) + case GGML_TYPE_F16: + { + auto data_pts = cast_data(dst); + abs_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } +#endif + case GGML_TYPE_F32: + { + auto data_pts = cast_data(dst); + abs_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } + default: + GGML_ABORT("GGML tensor type not supported!\n"); + break; + } +} + + +inline void ggml_sycl_op_elu(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { +#if defined (GGML_SYCL_F16) + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32 || dst->src[0]->type == GGML_TYPE_F16); + GGML_ASSERT(dst->type == GGML_TYPE_F32 || dst->type == GGML_TYPE_F16); + +#else + GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_F32); +#endif + GGML_ASSERT(dst->src[0]->type == dst->type); + dpct::queue_ptr main_stream = ctx.stream(); + SYCL_CHECK(ggml_sycl_set_device(ctx.device)); + switch (dst->type) { +#if defined (GGML_SYCL_F16) + case GGML_TYPE_F16: + { + auto data_pts = cast_data(dst); + elu_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } +#endif + case GGML_TYPE_F32: + { + auto data_pts = cast_data(dst); + elu_sycl(data_pts.src, data_pts.dst, ggml_nelements(dst->src[0]), main_stream); + break; + } + default: + GGML_ABORT("GGML tensor type not supported!\n"); + break; + } +} + inline void ggml_sycl_op_silu(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { #if defined (GGML_SYCL_F16) GGML_ASSERT(dst->src[0]->type == GGML_TYPE_F32 || dst->src[0]->type == GGML_TYPE_F16); @@ -1388,3 +1540,20 @@ void ggml_sycl_clamp(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { GGML_SYCL_DEBUG("call %s done\n", __func__); } +void ggml_sycl_sgn(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { + GGML_SYCL_DEBUG("call %s: DST Tensor type: %s\n", __func__, ggml_type_name(dst->type)); + ggml_sycl_op_sgn(ctx, dst); + GGML_SYCL_DEBUG("call %s done\n", __func__); +} + +void ggml_sycl_abs(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { + GGML_SYCL_DEBUG("call %s: DST Tensor type: %s\n", __func__, ggml_type_name(dst->type)); + ggml_sycl_op_abs(ctx, dst); + GGML_SYCL_DEBUG("call %s done\n", __func__); +} + +void ggml_sycl_elu(ggml_backend_sycl_context & ctx, ggml_tensor * dst) { + GGML_SYCL_DEBUG("call %s: DST Tensor type: %s\n", __func__, ggml_type_name(dst->type)); + ggml_sycl_op_elu(ctx, dst); + GGML_SYCL_DEBUG("call %s done\n", __func__); +} diff --git a/ggml/src/ggml-sycl/element_wise.hpp b/ggml/src/ggml-sycl/element_wise.hpp index e623cb56f7..f4199d69da 100644 --- a/ggml/src/ggml-sycl/element_wise.hpp +++ b/ggml/src/ggml-sycl/element_wise.hpp @@ -66,5 +66,10 @@ void ggml_sycl_pad(ggml_backend_sycl_context & ctx, ggml_tensor * dst); void ggml_sycl_clamp(ggml_backend_sycl_context & ctx, ggml_tensor * dst); +void ggml_sycl_sgn(ggml_backend_sycl_context & ctx, ggml_tensor * dst); + +void ggml_sycl_abs(ggml_backend_sycl_context & ctx, ggml_tensor * dst); + +void ggml_sycl_elu(ggml_backend_sycl_context & ctx, ggml_tensor * dst); #endif // GGML_SYCL_ELEMENTWISE_HPP diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index 548f2d0a06..66b6f2cca4 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -38,6 +38,7 @@ #include "ggml-sycl/backend.hpp" #include "ggml-sycl/common.hpp" +#include "ggml-sycl/element_wise.hpp" #include "ggml-sycl/presets.hpp" #include "ggml-sycl/gemm.hpp" #include "ggml-sycl/sycl_hw.hpp" @@ -3355,6 +3356,15 @@ static bool ggml_sycl_compute_forward(ggml_backend_sycl_context & ctx, struct gg case GGML_UNARY_OP_EXP: ggml_sycl_exp(ctx, dst); break; + case GGML_UNARY_OP_SGN: + ggml_sycl_sgn(ctx, dst); + break; + case GGML_UNARY_OP_ABS: + ggml_sycl_abs(ctx, dst); + break; + case GGML_UNARY_OP_ELU: + ggml_sycl_elu(ctx, dst); + break; default: return false; } @@ -3837,6 +3847,9 @@ static bool ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, const g case GGML_UNARY_OP_GELU_QUICK: case GGML_UNARY_OP_TANH: case GGML_UNARY_OP_EXP: + case GGML_UNARY_OP_SGN: + case GGML_UNARY_OP_ABS: + case GGML_UNARY_OP_ELU: #if defined (GGML_SYCL_F16) return ggml_is_contiguous(op->src[0]) && (op->type == op->src[0]->type); #else From 5fa9e63be82225fb3249c76f39ddda3e5bdec0a3 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 12:18:59 +0200 Subject: [PATCH 028/126] clip : refactor set input for cgraph + fix qwen2.5vl input (#13136) * clip : refactor set input for cgraph * more strict assert * minicpmv : use clip_n_mmproj_embd instead of copying the same code everywhere * split qwen2 and qwen2.5 code blocks * minor style fix --- examples/llava/clip.cpp | 473 ++++++++++++++++++---------------------- 1 file changed, 215 insertions(+), 258 deletions(-) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 3cd27d5b17..8c5d56cc17 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -170,8 +170,8 @@ struct clip_hparams { std::vector image_grid_pinpoints; int32_t image_crop_resolution; std::unordered_set vision_feature_layer; - int32_t attn_window_size; - int32_t n_wa_pattern; + int32_t attn_window_size = 0; + int32_t n_wa_pattern = 0; }; struct clip_layer { @@ -325,7 +325,6 @@ struct clip_ctx { float image_std[3]; bool use_gelu = false; bool use_silu = false; - int32_t ftype = 1; gguf_context_ptr ctx_gguf; ggml_context_ptr ctx_data; @@ -776,7 +775,6 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ const int image_size_width = imgs.entries[0]->nx; const int image_size_height = imgs.entries[0]->ny; - const bool use_mrope = ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL; const bool use_window_attn = hparams.n_wa_pattern > 0; const int n_wa_pattern = hparams.n_wa_pattern; @@ -785,10 +783,11 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ const int patches_w = image_size_width / patch_size; const int patches_h = image_size_height / patch_size; const int num_positions = num_patches + (model.class_embedding ? 1 : 0); - const int num_position_ids = use_mrope ? num_positions * 4 : num_positions; + const int num_position_ids = num_positions * 4; // m-rope requires 4 dim per position const int hidden_size = hparams.hidden_size; const int n_head = hparams.n_head; const int d_head = hidden_size / n_head; + const int n_layer = hparams.n_layer; const float eps = hparams.eps; int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; @@ -870,7 +869,7 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ } // loop over layers - for (int il = 0; il < ctx->max_feature_layer; il++) { + for (int il = 0; il < n_layer; il++) { struct ggml_tensor * cur = embeddings; // embeddings = residual, cur = hidden_states // rmsnorm1 @@ -1115,15 +1114,8 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { int pos_w = image_size_width/patch_size; int pos_h = image_size_height/patch_size; - if (ctx->minicpmv_version == 2) { - pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 4096, pos_w * pos_h, 1); - } - else if (ctx->minicpmv_version == 3) { - pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 3584, pos_w * pos_h, 1); - } - else if (ctx->minicpmv_version == 4) { - pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 3584, pos_w * pos_h, 1); - } + int n_output_dim = clip_n_mmproj_embd(ctx); + pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_output_dim, pos_w * pos_h, 1); ggml_set_name(pos_embed, "pos_embed"); ggml_set_input(pos_embed); } @@ -1461,23 +1453,17 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im } { // attention - int hidden_size = 4096; + int hidden_size = clip_n_mmproj_embd(ctx); const int d_head = 128; int n_head = hidden_size/d_head; int num_query = 96; if (ctx->minicpmv_version == 2) { - hidden_size = 4096; - n_head = hidden_size/d_head; num_query = 96; } else if (ctx->minicpmv_version == 3) { - hidden_size = 3584; - n_head = hidden_size/d_head; num_query = 64; } else if (ctx->minicpmv_version == 4) { - hidden_size = 3584; - n_head = hidden_size/d_head; num_query = 64; } @@ -1760,6 +1746,8 @@ struct clip_model_loader { LOG_INF("%s: projector: %s\n", __func__, proj_type.c_str()); LOG_INF("%s: has_llava_proj: %d\n", __func__, ctx_clip.has_llava_projector); LOG_INF("%s: minicpmv_version: %d\n", __func__, ctx_clip.minicpmv_version); + LOG_INF("%s: proj_scale_factor: %d\n", __func__, hparams.proj_scale_factor); + LOG_INF("%s: n_wa_pattern: %d\n", __func__, hparams.n_wa_pattern); LOG_INF("%s: model size: %.2f MiB\n", __func__, model_size / 1024.0 / 1024.0); LOG_INF("%s: metadata size: %.2f MiB\n", __func__, ggml_get_mem_size(ctx_meta.get()) / 1024.0 / 1024.0); } @@ -3038,15 +3026,43 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int patch_size = hparams.patch_size; const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); const int num_positions = num_patches + (model.class_embedding ? 1 : 0); - const int pos_w = ctx->load_image_size.width / patch_size; + const int pos_w = ctx->load_image_size.width / patch_size; const int pos_h = ctx->load_image_size.height / patch_size; const bool use_window_attn = hparams.n_wa_pattern > 0; // for qwen2.5vl + auto get_inp_tensor = [&gf](const char * name) { + struct ggml_tensor * inp = ggml_graph_get_tensor(gf, name); + if (inp == nullptr) { + GGML_ABORT("Failed to get tensor %s", name); + } + if (!(inp->flags & GGML_TENSOR_FLAG_INPUT)) { + GGML_ABORT("Tensor %s is not an input tensor", name); + } + return inp; + }; + + auto set_input_f32 = [&get_inp_tensor](const char * name, std::vector & values) { + ggml_tensor * cur = get_inp_tensor(name); + GGML_ASSERT(cur->type == GGML_TYPE_F32); + GGML_ASSERT(ggml_nelements(cur) == (int64_t)values.size()); + ggml_backend_tensor_set(cur, values.data(), 0, ggml_nbytes(cur)); + }; + + auto set_input_i32 = [&get_inp_tensor](const char * name, std::vector & values) { + ggml_tensor * cur = get_inp_tensor(name); + GGML_ASSERT(cur->type == GGML_TYPE_I32); + GGML_ASSERT(ggml_nelements(cur) == (int64_t)values.size()); + ggml_backend_tensor_set(cur, values.data(), 0, ggml_nbytes(cur)); + }; + + // set input pixel values { - struct ggml_tensor * inp_raw = ggml_graph_get_tensor(gf, "inp_raw"); - std::vector inp_data(ggml_nelements(inp_raw)); - float * data = inp_data.data(); + size_t nelem = 0; + for (const auto & img : imgs.entries) { + nelem += img->nx * img->ny * 3; + } + std::vector inp_raw(nelem); // layout of data (note: the channel dim is unrolled to better visualize the layout): // @@ -3065,7 +3081,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int n = nx * ny; for (int b = 0; b < batch_size; b++) { - float * batch_entry = data + b * (3*n); + float * batch_entry = inp_raw.data() + b * (3*n); for (int y = 0; y < ny; y++) { for (int x = 0; x < nx; x++) { size_t base_src = 3*(y * nx + x); // idx of the first channel @@ -3077,266 +3093,207 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } } } - ggml_backend_tensor_set(inp_raw, data, 0, ggml_nbytes(inp_raw)); + set_input_f32("inp_raw", inp_raw); } - if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { - { - // inspired from siglip: - // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit - // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit/blob/d66538faeba44480d0bfaa42145eef26f9423199/modeling_siglip.py#L316 - struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); - std::vector pos_data(ggml_nelements(positions)); - int * data = pos_data.data(); - int bucket_coords_h[1024]; - int bucket_coords_w[1024]; - for (int i = 0; i < pos_h; i++){ - bucket_coords_h[i] = std::floor(70.0*i/pos_h); - } - for (int i = 0; i < pos_w; i++){ - bucket_coords_w[i] = std::floor(70.0*i/pos_w); - } - for (int i = 0, id = 0; i < pos_h; i++){ - for (int j = 0; j < pos_w; j++){ - data[id++] = bucket_coords_h[i]*70 + bucket_coords_w[j]; + // set input per projector + switch (ctx->proj_type) { + case PROJECTOR_TYPE_MINICPMV: + { + // inspired from siglip: + // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit + // -> https://huggingface.co/HuggingFaceM4/siglip-so400m-14-980-flash-attn2-navit/blob/d66538faeba44480d0bfaa42145eef26f9423199/modeling_siglip.py#L316 + std::vector positions(pos_h * pos_w); + int bucket_coords_h[1024]; + int bucket_coords_w[1024]; + for (int i = 0; i < pos_h; i++){ + bucket_coords_h[i] = std::floor(70.0*i/pos_h); } - } - ggml_backend_tensor_set(positions, data, 0, ggml_nbytes(positions)); - } - - { - // inspired from resampler of Qwen-VL: - // -> https://huggingface.co/Qwen/Qwen-VL/tree/main - // -> https://huggingface.co/Qwen/Qwen-VL/blob/0547ed36a86561e2e42fecec8fd0c4f6953e33c4/visual.py#L23 - struct ggml_tensor * pos_embed = ggml_graph_get_tensor(gf, "pos_embed"); - int embed_dim = 4096; - if (ctx->minicpmv_version == 2) { - embed_dim = 4096; - } - else if (ctx->minicpmv_version == 3) { - embed_dim = 3584; - } - else if (ctx->minicpmv_version == 4) { - embed_dim = 3584; - } - else { - GGML_ABORT("Unknown minicpmv version"); - } - - // TODO @ngxson : this is very inefficient, can we do this using ggml_sin and ggml_cos? - auto pos_embed_t = get_2d_sincos_pos_embed(embed_dim, std::make_pair(pos_w, pos_h)); - - std::vector pos_data(ggml_nelements(pos_embed)); - float * data = pos_data.data(); - for(int i = 0; i < pos_w * pos_h; ++i){ - for(int j = 0; j < embed_dim; ++j){ - data[i * embed_dim + j] = pos_embed_t[i][j]; + for (int i = 0; i < pos_w; i++){ + bucket_coords_w[i] = std::floor(70.0*i/pos_w); } - } + for (int i = 0, id = 0; i < pos_h; i++){ + for (int j = 0; j < pos_w; j++){ + positions[id++] = bucket_coords_h[i]*70 + bucket_coords_w[j]; + } + } + set_input_i32("positions", positions); - ggml_backend_tensor_set(pos_embed, data, 0, ggml_nbytes(pos_embed)); - } - } - else { - // non-minicpmv models + // inspired from resampler of Qwen-VL: + // -> https://huggingface.co/Qwen/Qwen-VL/tree/main + // -> https://huggingface.co/Qwen/Qwen-VL/blob/0547ed36a86561e2e42fecec8fd0c4f6953e33c4/visual.py#L23 + int embed_dim = clip_n_mmproj_embd(ctx); - if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { - // pw * ph = number of tokens output by ViT after apply patch merger - // ipw * ipw = number of vision token been processed inside ViT - const int merge_ratio = 2; - const int pw = image_size_width / patch_size / merge_ratio; - const int ph = image_size_height / patch_size / merge_ratio; - const int ipw = image_size_width / patch_size; - const int iph = image_size_height / patch_size; + // TODO @ngxson : this is very inefficient, can we do this using ggml_sin and ggml_cos? + auto pos_embed_t = get_2d_sincos_pos_embed(embed_dim, std::make_pair(pos_w, pos_h)); - std::vector idx (ph * pw); - std::vector inv_idx(ph * pw); + std::vector pos_embed(embed_dim * pos_w * pos_h); + for(int i = 0; i < pos_w * pos_h; ++i){ + for(int j = 0; j < embed_dim; ++j){ + pos_embed[i * embed_dim + j] = pos_embed_t[i][j]; + } + } - if (use_window_attn) { - const int attn_window_size = 112; - struct ggml_tensor * window_idx = ggml_graph_get_tensor(gf, "window_idx"); - struct ggml_tensor * inv_window_idx = ggml_graph_get_tensor(gf, "inv_window_idx"); - struct ggml_tensor * window_mask = ggml_graph_get_tensor(gf, "window_mask"); - - const int grid_window = attn_window_size / patch_size / merge_ratio; - int dst = 0; - // [num_vision_tokens, num_vision_tokens] attention mask tensor - std::vector mask(pow(ipw * iph, 2), std::numeric_limits::lowest()); - int mask_row = 0; - - for (int y = 0; y < ph; y += grid_window) - { - for (int x = 0; x < pw; x += grid_window) - { - const int win_h = std::min(grid_window, ph - y); - const int win_w = std::min(grid_window, pw - x); - const int dst_0 = dst; - // group all tokens belong to the same window togather (to a continue range) - for (int dy = 0; dy < win_h; dy++) { - for (int dx = 0; dx < win_w; dx++) { - const int src = (y + dy) * pw + (x + dx); - assert(src < (int)idx.size()); - assert(dst < (int)inv_idx.size()); - idx [src] = dst; - inv_idx[dst] = src; - dst++; + set_input_f32("pos_embed", pos_embed); + } break; + case PROJECTOR_TYPE_QWEN2VL: + { + const int merge_ratio = 2; + const int pw = image_size_width / patch_size; + const int ph = image_size_height / patch_size; + std::vector positions(num_positions * 4); + int ptr = 0; + for (int y = 0; y < ph; y += merge_ratio) { + for (int x = 0; x < pw; x += merge_ratio) { + for (int dy = 0; dy < 2; dy++) { + for (int dx = 0; dx < 2; dx++) { + positions[ ptr] = y + dy; + positions[ num_patches + ptr] = x + dx; + positions[2 * num_patches + ptr] = y + dy; + positions[3 * num_patches + ptr] = x + dx; + ptr++; } } - - for (int r=0; r < win_h * win_w * merge_ratio * merge_ratio; r++) { - int row_offset = mask_row * (ipw * iph); - std::fill( - mask.begin() + row_offset + (dst_0 * merge_ratio * merge_ratio), - mask.begin() + row_offset + (dst * merge_ratio * merge_ratio), - 0.0); - mask_row++; - } } } - ggml_backend_tensor_set(window_idx, idx.data(), 0, ggml_nbytes(window_idx)); - ggml_backend_tensor_set(inv_window_idx, inv_idx.data(), 0, ggml_nbytes(inv_window_idx)); - ggml_backend_tensor_set(window_mask, mask.data(), 0, ggml_nbytes(window_mask)); - } else { - std::iota(idx.begin(), idx.end(), 0); - std::iota(inv_idx.begin(), inv_idx.end(), 0); - } - - struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); - const int mpow = merge_ratio * merge_ratio; - std::vector positions_data(ggml_nelements(positions)); - int * data = positions_data.data(); - - int ptr = 0; - for (int y = 0; y < iph; y += merge_ratio) + set_input_i32("positions", positions); + } break; + case PROJECTOR_TYPE_QWEN25VL: { - for (int x = 0; x < ipw; x += merge_ratio) - { - for (int dy = 0; dy < 2; dy++) { - for (int dx = 0; dx < 2; dx++) { - auto remap = idx[ptr / mpow]; - remap = remap * mpow + (ptr % mpow); + // pw * ph = number of tokens output by ViT after apply patch merger + // ipw * ipw = number of vision token been processed inside ViT + const int merge_ratio = 2; + const int pw = image_size_width / patch_size / merge_ratio; + const int ph = image_size_height / patch_size / merge_ratio; + const int ipw = image_size_width / patch_size; + const int iph = image_size_height / patch_size; - data[ remap] = y + dy; - data[ num_patches + remap] = x + dx; - data[2 * num_patches + remap] = y + dy; - data[3 * num_patches + remap] = x + dx; - ptr++; + std::vector idx (ph * pw); + std::vector inv_idx(ph * pw); + + if (use_window_attn) { + const int attn_window_size = 112; + const int grid_window = attn_window_size / patch_size / merge_ratio; + int dst = 0; + // [num_vision_tokens, num_vision_tokens] attention mask tensor + std::vector mask(pow(ipw * iph, 2), std::numeric_limits::lowest()); + int mask_row = 0; + + for (int y = 0; y < ph; y += grid_window) { + for (int x = 0; x < pw; x += grid_window) { + const int win_h = std::min(grid_window, ph - y); + const int win_w = std::min(grid_window, pw - x); + const int dst_0 = dst; + // group all tokens belong to the same window togather (to a continue range) + for (int dy = 0; dy < win_h; dy++) { + for (int dx = 0; dx < win_w; dx++) { + const int src = (y + dy) * pw + (x + dx); + GGML_ASSERT(src < (int)idx.size()); + GGML_ASSERT(dst < (int)inv_idx.size()); + idx [src] = dst; + inv_idx[dst] = src; + dst++; + } + } + + for (int r=0; r < win_h * win_w * merge_ratio * merge_ratio; r++) { + int row_offset = mask_row * (ipw * iph); + std::fill( + mask.begin() + row_offset + (dst_0 * merge_ratio * merge_ratio), + mask.begin() + row_offset + (dst * merge_ratio * merge_ratio), + 0.0); + mask_row++; + } + } + } + + set_input_i32("window_idx", idx); + set_input_i32("inv_window_idx", inv_idx); + set_input_f32("window_mask", mask); + } else { + for (int i = 0; i < ph * pw; i++) { + idx[i] = i; + } + } + + const int mpow = merge_ratio * merge_ratio; + std::vector positions(num_positions * 4); + + int ptr = 0; + for (int y = 0; y < iph; y += merge_ratio) { + for (int x = 0; x < ipw; x += merge_ratio) { + for (int dy = 0; dy < 2; dy++) { + for (int dx = 0; dx < 2; dx++) { + auto remap = idx[ptr / mpow]; + remap = (remap * mpow) + (ptr % mpow); + + positions[ remap] = y + dy; + positions[ num_patches + remap] = x + dx; + positions[2 * num_patches + remap] = y + dy; + positions[3 * num_patches + remap] = x + dx; + ptr++; + } } } } - } - ggml_backend_tensor_set(positions, data, 0, ggml_nbytes(positions)); - } - else if (ctx->proj_type == PROJECTOR_TYPE_GEMMA3) { - // do nothing - } - else if (ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { - // do nothing - } - else if (ctx->proj_type == PROJECTOR_TYPE_PIXTRAL) { - // set the 2D positions - int n_patches_per_col = image_size_width / patch_size; - std::vector pos_data(num_positions); - struct ggml_tensor * pos; - // dimension H - pos = ggml_graph_get_tensor(gf, "pos_h"); - for (int i = 0; i < num_positions; i++) { - pos_data[i] = i / n_patches_per_col; - } - ggml_backend_tensor_set(pos, pos_data.data(), 0, ggml_nbytes(pos)); - // dimension W - pos = ggml_graph_get_tensor(gf, "pos_w"); - for (int i = 0; i < num_positions; i++) { - pos_data[i] = i % n_patches_per_col; - } - ggml_backend_tensor_set(pos, pos_data.data(), 0, ggml_nbytes(pos)); - } - else { + set_input_i32("positions", positions); + } break; + case PROJECTOR_TYPE_PIXTRAL: + { + // set the 2D positions + int n_patches_per_col = image_size_width / patch_size; + std::vector pos_data(num_positions); + // dimension H + for (int i = 0; i < num_positions; i++) { + pos_data[i] = i / n_patches_per_col; + } + set_input_i32("pos_h", pos_data); + // dimension W + for (int i = 0; i < num_positions; i++) { + pos_data[i] = i % n_patches_per_col; + } + set_input_i32("pos_w", pos_data); + } break; + case PROJECTOR_TYPE_GLM_EDGE: + { // llava and other models - struct ggml_tensor * positions = ggml_graph_get_tensor(gf, "positions"); - - int* positions_data = (int*)malloc(ggml_nbytes(positions)); + std::vector positions(num_positions); for (int i = 0; i < num_positions; i++) { - positions_data[i] = i; + positions[i] = i; } - ggml_backend_tensor_set(positions, positions_data, 0, ggml_nbytes(positions)); - free(positions_data); + set_input_i32("positions", positions); + } break; + case PROJECTOR_TYPE_MLP: + case PROJECTOR_TYPE_MLP_NORM: + case PROJECTOR_TYPE_LDP: + case PROJECTOR_TYPE_LDPV2: + { + // llava and other models + std::vector positions(num_positions); + for (int i = 0; i < num_positions; i++) { + positions[i] = i; + } + set_input_i32("positions", positions); - if (ctx->proj_type != PROJECTOR_TYPE_GLM_EDGE) { - struct ggml_tensor * patches = ggml_graph_get_tensor(gf, "patches"); // The patches vector is used to get rows to index into the embeds with; // we should skip dim 0 only if we have CLS to avoid going out of bounds // when retrieving the rows. int patch_offset = model.class_embedding ? 1 : 0; - int* patches_data = (int*)malloc(ggml_nbytes(patches)); + std::vector patches(num_patches); for (int i = 0; i < num_patches; i++) { - patches_data[i] = i + patch_offset; + patches[i] = i + patch_offset; } - ggml_backend_tensor_set(patches, patches_data, 0, ggml_nbytes(patches)); - free(patches_data); - } - } - } - - if (use_window_attn && (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL)) { - struct ggml_tensor * window_idx = ggml_graph_get_tensor(gf, "window_idx"); - struct ggml_tensor * inv_window_idx = ggml_graph_get_tensor(gf, "inv_window_idx"); - struct ggml_tensor * window_mask = ggml_graph_get_tensor(gf, "window_mask"); - - const int merge_ratio = 2; - const int attn_window_size = 112; - const int pw = image_size_width / patch_size / merge_ratio; - const int ph = image_size_height / patch_size / merge_ratio; - const int grid_window = attn_window_size / patch_size / merge_ratio; - const int ipw = image_size_width / patch_size; - const int iph = image_size_height / patch_size; - /* - pw * ph = number of tokens output by ViT after apply patch merger - ipw * ipw = number of vision token been processed inside ViT - */ - - std::vector idx(ph * pw); - std::vector inv_idx(ph * pw); - int dst = 0; - // [num_vision_tokens, num_vision_tokens] attention mask tensor - std::vector mask(pow(ipw * iph, 2), std::numeric_limits::lowest()); - int mask_row = 0; - - for (int y = 0; y < ph; y+=grid_window) - { - for (int x = 0; x < pw; x+=grid_window) + set_input_i32("patches", patches); + } break; + case PROJECTOR_TYPE_GEMMA3: + case PROJECTOR_TYPE_IDEFICS3: { - const int win_h = std::min(grid_window, ph - y); - const int win_w = std::min(grid_window, pw - x); - const int dst_0 = dst; - // group all tokens belong to the same window togather (to a continue range) - for (int dy = 0; dy < win_h; dy++) { - for (int dx = 0; dx < win_w; dx++) { - const int src = (y + dy) * pw + (x + dx); - assert(src < (int)idx.size()); - assert(dst < (int)inv_idx.size()); - idx[src] = dst; - inv_idx[dst] = src; - dst++; - } - } - - for (int r=0; r < win_h * win_w * merge_ratio * merge_ratio; r++) { - int row_offset = mask_row * (ipw * iph); - std::fill( - mask.begin() + row_offset + (dst_0 * merge_ratio * merge_ratio), - mask.begin() + row_offset + (dst * merge_ratio * merge_ratio), - 0.0); - mask_row++; - } - } - } - - ggml_backend_tensor_set(window_idx, idx.data(), 0, ggml_nbytes(window_idx)); - ggml_backend_tensor_set(inv_window_idx, inv_idx.data(), 0, ggml_nbytes(inv_window_idx)); - ggml_backend_tensor_set(window_mask, mask.data(), 0, ggml_nbytes(window_mask)); + // do nothing + } break; + default: + GGML_ABORT("Unknown projector type"); } ggml_backend_cpu_set_n_threads(ctx->backend_cpu, n_threads); @@ -3537,7 +3494,7 @@ bool clip_is_glm(const struct clip_ctx * ctx) { } bool clip_is_qwen2vl(const struct clip_ctx * ctx) { - return ctx->proj_type == PROJECTOR_TYPE_QWEN2VL; + return ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL; } bool clip_is_llava(const struct clip_ctx * ctx) { From d2b2031e5f11b826dcc718138642f147a2009665 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 14:20:56 +0200 Subject: [PATCH 029/126] llama : (mrope) allow using normal 1D position for text token (#13138) * llama : (mrope) use normal position for text token * rm n_pos_per_embd from llm_graph_input_attn_temp --- examples/llava/qwen2vl-cli.cpp | 8 -------- src/llama-graph.cpp | 26 +++++++++++++++++++------- src/llama-graph.h | 12 +++++------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/examples/llava/qwen2vl-cli.cpp b/examples/llava/qwen2vl-cli.cpp index cf42710869..1e54851ea0 100644 --- a/examples/llava/qwen2vl-cli.cpp +++ b/examples/llava/qwen2vl-cli.cpp @@ -92,20 +92,12 @@ static bool qwen2vl_eval_image_embed(llama_context * ctx_llama, const struct lla static bool eval_tokens(struct llama_context * ctx_llama, std::vector tokens, int n_batch, int * n_past, int * st_pos_id) { int N = (int) tokens.size(); - std::vector pos; for (int i = 0; i < N; i += n_batch) { int n_eval = (int) tokens.size() - i; if (n_eval > n_batch) { n_eval = n_batch; } auto batch = llama_batch_get_one(&tokens[i], n_eval); - // TODO: add mrope pos ids somewhere else - pos.resize(batch.n_tokens * 4); - std::fill(pos.begin(), pos.end(), 0); - for (int j = 0; j < batch.n_tokens * 3; j ++) { - pos[j] = *st_pos_id + (j % batch.n_tokens); - } - batch.pos = pos.data(); if (llama_decode(ctx_llama, batch)) { LOG_ERR("%s : failed to eval. token %d/%d (batch size %d, n_past %d)\n", __func__, i, N, n_batch, *n_past); diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index b52e3f6203..e6595fb18b 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -55,7 +55,18 @@ void llm_graph_input_pos::set_input(const llama_ubatch * ubatch) { if (ubatch->pos && pos) { const int64_t n_tokens = ubatch->n_tokens; - ggml_backend_tensor_set(pos, ubatch->pos, 0, n_tokens*n_pos_per_token*ggml_element_size(pos)); + if (ubatch->token && n_pos_per_embd > 1) { + // in case we're using M-RoPE with text tokens, convert the 1D positions to 4D + // the other dimensions are all 0, they are unused for text tokens + std::vector pos_data(n_tokens*n_pos_per_embd, 0); + // copy the first dimension + for (int i = 0; i < n_tokens; ++i) { + pos_data[i] = ubatch->pos[i]; + } + ggml_backend_tensor_set(pos, pos_data.data(), 0, pos_data.size()*ggml_element_size(pos)); + } else { + ggml_backend_tensor_set(pos, ubatch->pos, 0, n_tokens*n_pos_per_embd*ggml_element_size(pos)); + } } } @@ -71,7 +82,7 @@ void llm_graph_input_attn_temp::set_input(const llama_ubatch * ubatch) { ) * f_attn_temp_scale + 1.0; } - ggml_backend_tensor_set(attn_scale, attn_scale_data.data(), 0, n_tokens*n_pos_per_token*ggml_element_size(attn_scale)); + ggml_backend_tensor_set(attn_scale, attn_scale_data.data(), 0, n_tokens*ggml_element_size(attn_scale)); } } @@ -592,7 +603,7 @@ llm_graph_context::llm_graph_context(const llm_graph_params & params) : res (std::make_unique()) { } -int64_t llm_graph_context::n_pos_per_token() const { +int64_t llm_graph_context::n_pos_per_embd() const { return arch == LLM_ARCH_QWEN2VL ? 4 : 1; } @@ -1018,11 +1029,11 @@ ggml_tensor * llm_graph_context::build_inp_embd(ggml_tensor * tok_embd) const { } ggml_tensor * llm_graph_context::build_inp_pos() const { - auto inp = std::make_unique(n_pos_per_token()); + auto inp = std::make_unique(n_pos_per_embd()); auto & cur = inp->pos; - cur = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_tokens*n_pos_per_token()); + cur = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_tokens*n_pos_per_embd()); ggml_set_input(cur); res->add_input(std::move(inp)); @@ -1031,11 +1042,12 @@ ggml_tensor * llm_graph_context::build_inp_pos() const { } ggml_tensor * llm_graph_context::build_inp_attn_scale() const { - auto inp = std::make_unique(n_pos_per_token(), hparams.n_attn_temp_floor_scale, hparams.f_attn_temp_scale); + auto inp = std::make_unique(hparams.n_attn_temp_floor_scale, hparams.f_attn_temp_scale); auto & cur = inp->attn_scale; - cur = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 1, 1, n_tokens*n_pos_per_token()); + // this need to be 1x1xN for broadcasting + cur = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, 1, 1, n_tokens); ggml_set_input(cur); res->add_input(std::move(inp)); diff --git a/src/llama-graph.h b/src/llama-graph.h index d192dc1495..d0c8d32192 100644 --- a/src/llama-graph.h +++ b/src/llama-graph.h @@ -90,29 +90,27 @@ public: class llm_graph_input_pos : public llm_graph_input_i { public: - llm_graph_input_pos(int64_t n_pos_per_token) : n_pos_per_token(n_pos_per_token) {} + llm_graph_input_pos(int64_t n_pos_per_embd) : n_pos_per_embd(n_pos_per_embd) {} virtual ~llm_graph_input_pos() = default; void set_input(const llama_ubatch * ubatch) override; ggml_tensor * pos = nullptr; // I32 [n_batch] - const int64_t n_pos_per_token = 1; + const int64_t n_pos_per_embd = 1; }; // temperature tuning, used by llama4 class llm_graph_input_attn_temp : public llm_graph_input_i { public: - llm_graph_input_attn_temp(int64_t n_pos_per_token, uint32_t n_attn_temp_floor_scale, float f_attn_temp_scale) - : n_pos_per_token(n_pos_per_token), n_attn_temp_floor_scale(n_attn_temp_floor_scale), f_attn_temp_scale(f_attn_temp_scale) {} + llm_graph_input_attn_temp(uint32_t n_attn_temp_floor_scale, float f_attn_temp_scale) + : n_attn_temp_floor_scale(n_attn_temp_floor_scale), f_attn_temp_scale(f_attn_temp_scale) {} virtual ~llm_graph_input_attn_temp() = default; void set_input(const llama_ubatch * ubatch) override; ggml_tensor * attn_scale = nullptr; // F32 [n_batch] - const int64_t n_pos_per_token = 1; - const uint32_t n_attn_temp_floor_scale; const float f_attn_temp_scale; }; @@ -419,7 +417,7 @@ struct llm_graph_context { llm_graph_context(const llm_graph_params & params); - int64_t n_pos_per_token() const; + int64_t n_pos_per_embd() const; void cb(ggml_tensor * cur, const char * name, int il) const; From fb0471d1753824e75474c24f82fbdd54c94dceda Mon Sep 17 00:00:00 2001 From: pockers21 <134406831+pockers21@users.noreply.github.com> Date: Mon, 28 Apr 2025 06:45:40 -0700 Subject: [PATCH 030/126] context : do not clear output buffer on reserve (#13152) Co-authored-by: pockers21 --- src/llama-context.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/llama-context.cpp b/src/llama-context.cpp index a52b6850b4..e49225aa22 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -1536,8 +1536,6 @@ int32_t llama_context::output_reserve(int32_t n_outputs) { // set all ids as invalid (negative) std::fill(output_ids.begin(), output_ids.end(), -1); - ggml_backend_buffer_clear(buf_output.get(), 0); - this->n_outputs = 0; this->n_outputs_max = n_outputs_max; From 4e87962e34a4b257ec374c4baf6b1568554b81a9 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 16:12:56 +0200 Subject: [PATCH 031/126] mtmd : fix glm-edge redundant token count (#13139) * mtmd : fix glm-edge redundant token count * fix chat template * temporary disable GLMEdge test chat tmpl --- examples/llava/mtmd.cpp | 10 +--------- src/llama-chat.cpp | 10 +--------- tests/test-chat-template.cpp | 17 +++++++++-------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/examples/llava/mtmd.cpp b/examples/llava/mtmd.cpp index a994ef0166..f95f050356 100644 --- a/examples/llava/mtmd.cpp +++ b/examples/llava/mtmd.cpp @@ -203,9 +203,6 @@ int32_t mtmd_tokenize(mtmd_context * ctx, } // llava-1.5, llava-1.6, Yi-VL, Yi-34B, granite: don't need to add prefix and suffix - // for glm-edge, we don't need to add because the tokens are already in the returned embeddings - - // TODO @ngxson : glm-edge : remove BOI / EOI tokens embeddings, decode them as normal tokens std::vector parts = string_split_str(prompt_modified, ctx->image_marker); output.clear(); @@ -246,7 +243,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, }; for (const auto & part : parts) { - //printf("tokenizing part: %s\n", part.c_str()); + // printf("tokenizing part: %s\n", part.c_str()); bool add_bos = &parts.front() == ∂ auto tokens = mtmd_tokenize_text_internal(vocab, part, text.add_special && add_bos, text.parse_special); if (tokens.empty()) { @@ -338,11 +335,6 @@ int32_t mtmd_tokenize(mtmd_context * ctx, LOG_DBG("image_tokens->ny = %d\n", image_tokens->ny); LOG_DBG("batch_f32 size = %d\n", (int)image_tokens->batch_f32.entries.size()); - if (clip_is_glm(ctx->ctx_clip)) { - // glm-edge - image_tokens->nx += 2; // add 2 for the begin_of_image and end_of_image token embeddings - } - mtmd_input_chunk chunk{ MTMD_INPUT_CHUNK_TYPE_IMAGE, {}, diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index af5e200319..735d2619c9 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -447,7 +447,7 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>"; } - } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_4) { + } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_4 || tmpl == LLM_CHAT_TEMPLATE_GLMEDGE) { ss << "[gMASK]" << ""; for (auto message : chat) { std::string role(message->role); @@ -456,14 +456,6 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>"; } - } else if (tmpl == LLM_CHAT_TEMPLATE_GLMEDGE) { - for (auto message : chat) { - std::string role(message->role); - ss << "<|" << role << "|>" << "\n" << message->content; - } - if (add_ass) { - ss << "<|assistant|>"; - } } else if (tmpl == LLM_CHAT_TEMPLATE_MINICPM) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF for (auto message : chat) { diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index be1a640068..85d89843d6 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -187,14 +187,15 @@ int main(void) { /* .bos_token= */ "", /* .eos_token= */ "", }, - { - /* .name= */ "GLMEdge", - /* .template_str= */ "{% for item in messages %}{% if item['role'] == 'system' %}<|system|>\n{{ item['content'] }}{% elif item['role'] == 'user' %}<|user|>\n{{ item['content'] }}{% elif item['role'] == 'assistant' %}<|assistant|>\n{{ item['content'] }}{% endif %}{% endfor %}<|assistant|>", - /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", - /* .expected_output_jinja= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", - /* .bos_token= */ "", - /* .eos_token= */ "", - }, + // TODO @ngxson : GLMEdge produces poor result without `[gMASK]`, so we're temporarily using GLM4 template for it. We should fix this in the future. + // { + // /* .name= */ "GLMEdge", + // /* .template_str= */ "{% for item in messages %}{% if item['role'] == 'system' %}<|system|>\n{{ item['content'] }}{% elif item['role'] == 'user' %}<|user|>\n{{ item['content'] }}{% elif item['role'] == 'assistant' %}<|assistant|>\n{{ item['content'] }}{% endif %}{% endfor %}<|assistant|>", + // /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + // /* .expected_output_jinja= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + // /* .bos_token= */ "", + // /* .eos_token= */ "", + // }, { /* .name= */ "MiniCPM-3B-OpenHermes-2.5-v2-GGUF", /* .template_str= */ U8C("{% for message in messages %}{% if message['role'] == 'user' %}{{'<用户>' + message['content'].strip() + ''}}{% else %}{{message['content'].strip()}}{% endif %}{% endfor %}"), From 1831f538f720d1d99fba146f24f0a8e970838cc4 Mon Sep 17 00:00:00 2001 From: Vishal Agarwal Date: Mon, 28 Apr 2025 20:20:39 +0530 Subject: [PATCH 032/126] llama-bench: add `-d` depth arg (#13096) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add depth param * update llama-bench README and add depth param * llama-bench: default params for depth arg for faster execution * Update examples/llama-bench/README.md Co-authored-by: Johannes Gäßler * fix buffer print ub * use user provided args * remove extra whitespaces --------- Co-authored-by: Johannes Gäßler --- examples/llama-bench/README.md | 155 +++++++++++++++++---------- examples/llama-bench/llama-bench.cpp | 47 ++++++-- 2 files changed, 137 insertions(+), 65 deletions(-) diff --git a/examples/llama-bench/README.md b/examples/llama-bench/README.md index 6bbe4bb75f..1f5e2f6620 100644 --- a/examples/llama-bench/README.md +++ b/examples/llama-bench/README.md @@ -28,6 +28,7 @@ options: -p, --n-prompt (default: 512) -n, --n-gen (default: 128) -pg (default: ) + -d, --n-depth (default: 0) -b, --batch-size (default: 2048) -ub, --ubatch-size (default: 512) -ctk, --cache-type-k (default: f16) @@ -66,6 +67,8 @@ With the exception of `-r`, `-o` and `-v`, all options can be specified multiple Each test is repeated the number of times given by `-r`, and the results are averaged. The results are given in average tokens per second (t/s) and standard deviation. Some output formats (e.g. json) also include the individual results of each repetition. +Using the `-d ` option, each test can be run at a specified context depth, prefilling the KV cache with `` tokens. + For a description of the other options, see the [main example](../main/README.md). Note: @@ -148,6 +151,19 @@ $ ./llama-bench -ngl 10,20,30,31,32,33,34,35 | llama 7B mostly Q4_0 | 3.56 GiB | 6.74 B | CUDA | 35 | pp 512 | 2400.01 ± 7.72 | | llama 7B mostly Q4_0 | 3.56 GiB | 6.74 B | CUDA | 35 | tg 128 | 131.66 ± 0.49 | +### Different prefilled context + +``` +$ ./llama-bench -d 0,512 +``` + +| model | size | params | backend | ngl | test | t/s | +| ------------------------------ | ---------: | ---------: | ---------- | --: | --------------: | -------------------: | +| qwen2 7B Q4_K - Medium | 4.36 GiB | 7.62 B | CUDA | 99 | pp512 | 7340.20 ± 23.45 | +| qwen2 7B Q4_K - Medium | 4.36 GiB | 7.62 B | CUDA | 99 | tg128 | 120.60 ± 0.59 | +| qwen2 7B Q4_K - Medium | 4.36 GiB | 7.62 B | CUDA | 99 | pp512 @ d512 | 6425.91 ± 18.88 | +| qwen2 7B Q4_K - Medium | 4.36 GiB | 7.62 B | CUDA | 99 | tg128 @ d512 | 116.71 ± 0.60 | + ## Output formats By default, llama-bench outputs the results in markdown format. The results can be output in other formats by using the `-o` option. @@ -170,9 +186,9 @@ $ ./llama-bench -o csv ``` ```csv -build_commit,build_number,cuda,metal,gpu_blas,blas,cpu_info,gpu_info,model_filename,model_type,model_size,model_n_params,n_batch,n_threads,f16_kv,n_gpu_layers,main_gpu,mul_mat_q,tensor_split,n_prompt,n_gen,test_time,avg_ns,stddev_ns,avg_ts,stddev_ts -"3469684","1275","1","0","0","1","1","13th Gen Intel(R) Core(TM) i9-13900K","NVIDIA GeForce RTX 3090 Ti","models/7B/ggml-model-q4_0.gguf","llama 7B mostly Q4_0","3825065984","6738415616","512","16","1","99","0","1","0.00","512","0","2023-09-23T12:09:01Z","212155977","732372","2413.341687","8.305961" -"3469684","1275","1","0","0","1","1","13th Gen Intel(R) Core(TM) i9-13900K","NVIDIA GeForce RTX 3090 Ti","models/7B/ggml-model-q4_0.gguf","llama 7B mostly Q4_0","3825065984","6738415616","512","16","1","99","0","1","0.00","0","128","2023-09-23T12:09:02Z","969320879","2728399","132.052051","0.371342" +build_commit,build_number,cpu_info,gpu_info,backends,model_filename,model_type,model_size,model_n_params,n_batch,n_ubatch,n_threads,cpu_mask,cpu_strict,poll,type_k,type_v,n_gpu_layers,split_mode,main_gpu,no_kv_offload,flash_attn,tensor_split,use_mmap,embeddings,n_prompt,n_gen,n_depth,test_time,avg_ns,stddev_ns,avg_ts,stddev_ts +"8cf427ff","5163","AMD Ryzen 7 7800X3D 8-Core Processor","NVIDIA GeForce RTX 4080","CUDA","models/Qwen2.5-7B-Instruct-Q4_K_M.gguf","qwen2 7B Q4_K - Medium","4677120000","7615616512","2048","512","8","0x0","0","50","f16","f16","99","layer","0","0","0","0.00","1","0","512","0","0","2025-04-24T11:57:09Z","70285660","982040","7285.676949","100.064434" +"8cf427ff","5163","AMD Ryzen 7 7800X3D 8-Core Processor","NVIDIA GeForce RTX 4080","CUDA","models/Qwen2.5-7B-Instruct-Q4_K_M.gguf","qwen2 7B Q4_K - Medium","4677120000","7615616512","2048","512","8","0x0","0","50","f16","f16","99","layer","0","0","0","0.00","1","0","0","128","0","2025-04-24T11:57:10Z","1067431600","3834831","119.915244","0.430617" ``` ### JSON @@ -184,64 +200,78 @@ $ ./llama-bench -o json ```json [ { - "build_commit": "3469684", - "build_number": 1275, - "cuda": true, - "metal": false, - "gpu_blas": true, - "blas": true, - "cpu_info": "13th Gen Intel(R) Core(TM) i9-13900K", - "gpu_info": "NVIDIA GeForce RTX 3090 Ti", - "model_filename": "models/7B/ggml-model-q4_0.gguf", - "model_type": "llama 7B mostly Q4_0", - "model_size": 3825065984, - "model_n_params": 6738415616, - "n_batch": 512, - "n_threads": 16, - "f16_kv": true, + "build_commit": "8cf427ff", + "build_number": 5163, + "cpu_info": "AMD Ryzen 7 7800X3D 8-Core Processor", + "gpu_info": "NVIDIA GeForce RTX 4080", + "backends": "CUDA", + "model_filename": "models/Qwen2.5-7B-Instruct-Q4_K_M.gguf", + "model_type": "qwen2 7B Q4_K - Medium", + "model_size": 4677120000, + "model_n_params": 7615616512, + "n_batch": 2048, + "n_ubatch": 512, + "n_threads": 8, + "cpu_mask": "0x0", + "cpu_strict": false, + "poll": 50, + "type_k": "f16", + "type_v": "f16", "n_gpu_layers": 99, + "split_mode": "layer", "main_gpu": 0, - "mul_mat_q": true, + "no_kv_offload": false, + "flash_attn": false, "tensor_split": "0.00", + "use_mmap": true, + "embeddings": false, "n_prompt": 512, "n_gen": 0, - "test_time": "2023-09-23T12:09:57Z", - "avg_ns": 212365953, - "stddev_ns": 985423, - "avg_ts": 2410.974041, - "stddev_ts": 11.163766, - "samples_ns": [ 213837238, 211635853, 212328053, 211329715, 212698907 ], - "samples_ts": [ 2394.34, 2419.25, 2411.36, 2422.75, 2407.16 ] + "n_depth": 0, + "test_time": "2025-04-24T11:58:50Z", + "avg_ns": 72135640, + "stddev_ns": 1453752, + "avg_ts": 7100.002165, + "stddev_ts": 140.341520, + "samples_ns": [ 74601900, 71632900, 71745200, 71952700, 70745500 ], + "samples_ts": [ 6863.1, 7147.55, 7136.37, 7115.79, 7237.21 ] }, { - "build_commit": "3469684", - "build_number": 1275, - "cuda": true, - "metal": false, - "gpu_blas": true, - "blas": true, - "cpu_info": "13th Gen Intel(R) Core(TM) i9-13900K", - "gpu_info": "NVIDIA GeForce RTX 3090 Ti", - "model_filename": "models/7B/ggml-model-q4_0.gguf", - "model_type": "llama 7B mostly Q4_0", - "model_size": 3825065984, - "model_n_params": 6738415616, - "n_batch": 512, - "n_threads": 16, - "f16_kv": true, + "build_commit": "8cf427ff", + "build_number": 5163, + "cpu_info": "AMD Ryzen 7 7800X3D 8-Core Processor", + "gpu_info": "NVIDIA GeForce RTX 4080", + "backends": "CUDA", + "model_filename": "models/Qwen2.5-7B-Instruct-Q4_K_M.gguf", + "model_type": "qwen2 7B Q4_K - Medium", + "model_size": 4677120000, + "model_n_params": 7615616512, + "n_batch": 2048, + "n_ubatch": 512, + "n_threads": 8, + "cpu_mask": "0x0", + "cpu_strict": false, + "poll": 50, + "type_k": "f16", + "type_v": "f16", "n_gpu_layers": 99, + "split_mode": "layer", "main_gpu": 0, - "mul_mat_q": true, + "no_kv_offload": false, + "flash_attn": false, "tensor_split": "0.00", + "use_mmap": true, + "embeddings": false, "n_prompt": 0, "n_gen": 128, - "test_time": "2023-09-23T12:09:59Z", - "avg_ns": 977425219, - "stddev_ns": 9268593, - "avg_ts": 130.965708, - "stddev_ts": 1.238924, - "samples_ns": [ 984472709, 974901233, 989474741, 970729355, 967548060 ], - "samples_ts": [ 130.019, 131.295, 129.362, 131.86, 132.293 ] + "n_depth": 0, + "test_time": "2025-04-24T11:58:51Z", + "avg_ns": 1076767880, + "stddev_ns": 9449585, + "avg_ts": 118.881588, + "stddev_ts": 1.041811, + "samples_ns": [ 1075361300, 1065089400, 1071761200, 1081934900, 1089692600 ], + "samples_ts": [ 119.03, 120.178, 119.43, 118.307, 117.464 ] } ] ``` @@ -254,8 +284,8 @@ $ ./llama-bench -o jsonl ``` ```json lines -{"build_commit":"3469684","build_number":1275,"cuda":true,"metal":false,"gpu_blas":true,"blas":true,"cpu_info":"13th Gen Intel(R) Core(TM) i9-13900K","gpu_info":"NVIDIA GeForce RTX 3090 Ti","model_filename":"models/7B/ggml-model-q4_0.gguf","model_type":"llama 7B mostly Q4_0","model_size":3825065984,"model_n_params":6738415616,"n_batch":512,"n_threads":16,"f16_kv":true,"n_gpu_layers":99,"main_gpu":0,"mul_mat_q":true,"tensor_split":"0.00","n_prompt":512,"n_gen":0,"test_time":"2023-09-23T12:09:57Z","avg_ns":212365953,"stddev_ns":985423,"avg_ts":2410.974041,"stddev_ts":11.163766,"samples_ns":[213837238,211635853,212328053,211329715,212698907],"samples_ts":[2394.34,2419.25,2411.36,2422.75,2407.16]} -{"build_commit":"3469684","build_number":1275,"cuda":true,"metal":false,"gpu_blas":true,"blas":true,"cpu_info":"13th Gen Intel(R) Core(TM) i9-13900K","gpu_info":"NVIDIA GeForce RTX 3090 Ti","model_filename":"models/7B/ggml-model-q4_0.gguf","model_type":"llama 7B mostly Q4_0","model_size":3825065984,"model_n_params":6738415616,"n_batch":512,"n_threads":16,"f16_kv":true,"n_gpu_layers":99,"main_gpu":0,"mul_mat_q":true,"tensor_split":"0.00","n_prompt":0,"n_gen":128,"test_time":"2023-09-23T12:09:59Z","avg_ns":977425219,"stddev_ns":9268593,"avg_ts":130.965708,"stddev_ts":1.238924,"samples_ns":[984472709,974901233,989474741,970729355,967548060],"samples_ts":[130.019,131.295,129.362,131.86,132.293]} +{"build_commit": "8cf427ff", "build_number": 5163, "cpu_info": "AMD Ryzen 7 7800X3D 8-Core Processor", "gpu_info": "NVIDIA GeForce RTX 4080", "backends": "CUDA", "model_filename": "models/Qwen2.5-7B-Instruct-Q4_K_M.gguf", "model_type": "qwen2 7B Q4_K - Medium", "model_size": 4677120000, "model_n_params": 7615616512, "n_batch": 2048, "n_ubatch": 512, "n_threads": 8, "cpu_mask": "0x0", "cpu_strict": false, "poll": 50, "type_k": "f16", "type_v": "f16", "n_gpu_layers": 99, "split_mode": "layer", "main_gpu": 0, "no_kv_offload": false, "flash_attn": false, "tensor_split": "0.00", "use_mmap": true, "embeddings": false, "n_prompt": 512, "n_gen": 0, "n_depth": 0, "test_time": "2025-04-24T11:59:33Z", "avg_ns": 70497220, "stddev_ns": 883196, "avg_ts": 7263.609157, "stddev_ts": 90.940578, "samples_ns": [ 71551000, 71222800, 70364100, 69439100, 69909100 ],"samples_ts": [ 7155.74, 7188.71, 7276.44, 7373.37, 7323.8 ]} +{"build_commit": "8cf427ff", "build_number": 5163, "cpu_info": "AMD Ryzen 7 7800X3D 8-Core Processor", "gpu_info": "NVIDIA GeForce RTX 4080", "backends": "CUDA", "model_filename": "models/Qwen2.5-7B-Instruct-Q4_K_M.gguf", "model_type": "qwen2 7B Q4_K - Medium", "model_size": 4677120000, "model_n_params": 7615616512, "n_batch": 2048, "n_ubatch": 512, "n_threads": 8, "cpu_mask": "0x0", "cpu_strict": false, "poll": 50, "type_k": "f16", "type_v": "f16", "n_gpu_layers": 99, "split_mode": "layer", "main_gpu": 0, "no_kv_offload": false, "flash_attn": false, "tensor_split": "0.00", "use_mmap": true, "embeddings": false, "n_prompt": 0, "n_gen": 128, "n_depth": 0, "test_time": "2025-04-24T11:59:33Z", "avg_ns": 1068078400, "stddev_ns": 6279455, "avg_ts": 119.844681, "stddev_ts": 0.699739, "samples_ns": [ 1066331700, 1064864900, 1079042600, 1063328400, 1066824400 ],"samples_ts": [ 120.038, 120.203, 118.624, 120.377, 119.982 ]} ``` @@ -271,25 +301,32 @@ $ ./llama-bench -o sql CREATE TABLE IF NOT EXISTS test ( build_commit TEXT, build_number INTEGER, - cuda INTEGER, - metal INTEGER, - gpu_blas INTEGER, - blas INTEGER, cpu_info TEXT, gpu_info TEXT, + backends TEXT, model_filename TEXT, model_type TEXT, model_size INTEGER, model_n_params INTEGER, n_batch INTEGER, + n_ubatch INTEGER, n_threads INTEGER, - f16_kv INTEGER, + cpu_mask TEXT, + cpu_strict INTEGER, + poll INTEGER, + type_k TEXT, + type_v TEXT, n_gpu_layers INTEGER, + split_mode TEXT, main_gpu INTEGER, - mul_mat_q INTEGER, + no_kv_offload INTEGER, + flash_attn INTEGER, tensor_split TEXT, + use_mmap INTEGER, + embeddings INTEGER, n_prompt INTEGER, n_gen INTEGER, + n_depth INTEGER, test_time TEXT, avg_ns INTEGER, stddev_ns INTEGER, @@ -297,6 +334,6 @@ CREATE TABLE IF NOT EXISTS test ( stddev_ts REAL ); -INSERT INTO test (build_commit, build_number, cuda, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '512', '0', '2023-09-23T12:10:30Z', '212693772', '743623', '2407.240204', '8.409634'); -INSERT INTO test (build_commit, build_number, cuda, metal, gpu_blas, blas, cpu_info, gpu_info, model_filename, model_type, model_size, model_n_params, n_batch, n_threads, f16_kv, n_gpu_layers, main_gpu, mul_mat_q, tensor_split, n_prompt, n_gen, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('3469684', '1275', '1', '0', '0', '1', '1', '13th Gen Intel(R) Core(TM) i9-13900K', 'NVIDIA GeForce RTX 3090 Ti', 'models/7B/ggml-model-q4_0.gguf', 'llama 7B mostly Q4_0', '3825065984', '6738415616', '512', '16', '1', '99', '0', '1', '0.00', '0', '128', '2023-09-23T12:10:31Z', '977925003', '4037361', '130.891159', '0.537692'); +INSERT INTO test (build_commit, build_number, cpu_info, gpu_info, backends, model_filename, model_type, model_size, model_n_params, n_batch, n_ubatch, n_threads, cpu_mask, cpu_strict, poll, type_k, type_v, n_gpu_layers, split_mode, main_gpu, no_kv_offload, flash_attn, tensor_split, use_mmap, embeddings, n_prompt, n_gen, n_depth, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('8cf427ff', '5163', 'AMD Ryzen 7 7800X3D 8-Core Processor', 'NVIDIA GeForce RTX 4080', 'CUDA', 'models/Qwen2.5-7B-Instruct-Q4_K_M.gguf', 'qwen2 7B Q4_K - Medium', '4677120000', '7615616512', '2048', '512', '8', '0x0', '0', '50', 'f16', 'f16', '99', 'layer', '0', '0', '0', '0.00', '1', '0', '512', '0', '0', '2025-04-24T12:00:08Z', '69905000', '519516', '7324.546977', '54.032613'); +INSERT INTO test (build_commit, build_number, cpu_info, gpu_info, backends, model_filename, model_type, model_size, model_n_params, n_batch, n_ubatch, n_threads, cpu_mask, cpu_strict, poll, type_k, type_v, n_gpu_layers, split_mode, main_gpu, no_kv_offload, flash_attn, tensor_split, use_mmap, embeddings, n_prompt, n_gen, n_depth, test_time, avg_ns, stddev_ns, avg_ts, stddev_ts) VALUES ('8cf427ff', '5163', 'AMD Ryzen 7 7800X3D 8-Core Processor', 'NVIDIA GeForce RTX 4080', 'CUDA', 'models/Qwen2.5-7B-Instruct-Q4_K_M.gguf', 'qwen2 7B Q4_K - Medium', '4677120000', '7615616512', '2048', '512', '8', '0x0', '0', '50', 'f16', 'f16', '99', 'layer', '0', '0', '0', '0.00', '1', '0', '0', '128', '0', '2025-04-24T12:00:09Z', '1063608780', '4464130', '120.346696', '0.504647'); ``` diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index 564a51bfd7..5a78216e44 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -200,6 +200,7 @@ struct cmd_params { std::vector n_prompt; std::vector n_gen; std::vector> n_pg; + std::vector n_depth; std::vector n_batch; std::vector n_ubatch; std::vector type_k; @@ -233,6 +234,7 @@ static const cmd_params cmd_params_defaults = { /* n_prompt */ { 512 }, /* n_gen */ { 128 }, /* n_pg */ {}, + /* n_depth */ { 0 }, /* n_batch */ { 2048 }, /* n_ubatch */ { 512 }, /* type_k */ { GGML_TYPE_F16 }, @@ -272,6 +274,7 @@ static void print_usage(int /* argc */, char ** argv) { printf(" -n, --n-gen (default: %s)\n", join(cmd_params_defaults.n_gen, ",").c_str()); printf(" -pg (default: %s)\n", join(transform_to_str(cmd_params_defaults.n_pg, pair_str), ",").c_str()); + printf(" -d, --n-depth (default: %s)\n", join(cmd_params_defaults.n_depth, ",").c_str()); printf(" -b, --batch-size (default: %s)\n", join(cmd_params_defaults.n_batch, ",").c_str()); printf(" -ub, --ubatch-size (default: %s)\n", @@ -409,6 +412,13 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { break; } params.n_pg.push_back({ std::stoi(p[0]), std::stoi(p[1]) }); + } else if (arg == "-d" || arg == "--n-depth") { + if (++i >= argc) { + invalid_param = true; + break; + } + auto p = string_split(argv[i], split_delim); + params.n_depth.insert(params.n_depth.end(), p.begin(), p.end()); } else if (arg == "-b" || arg == "--batch-size") { if (++i >= argc) { invalid_param = true; @@ -739,6 +749,9 @@ static cmd_params parse_cmd_params(int argc, char ** argv) { if (params.n_pg.empty()) { params.n_pg = cmd_params_defaults.n_pg; } + if (params.n_depth.empty()) { + params.n_depth = cmd_params_defaults.n_depth; + } if (params.n_batch.empty()) { params.n_batch = cmd_params_defaults.n_batch; } @@ -801,6 +814,7 @@ struct cmd_params_instance { std::string model; int n_prompt; int n_gen; + int n_depth; int n_batch; int n_ubatch; ggml_type type_k; @@ -880,7 +894,7 @@ struct cmd_params_instance { llama_context_params to_llama_cparams() const { llama_context_params cparams = llama_context_default_params(); - cparams.n_ctx = n_prompt + n_gen; + cparams.n_ctx = n_prompt + n_gen + n_depth; cparams.n_batch = n_batch; cparams.n_ubatch = n_ubatch; cparams.type_k = type_k; @@ -916,6 +930,7 @@ static std::vector get_cmd_params_instances(const cmd_param for (const auto & nt : params.n_threads) for (const auto & cm : params.cpu_mask) for (const auto & cs : params.cpu_strict) + for (const auto & nd : params.n_depth) for (const auto & pl : params.poll) { for (const auto & n_prompt : params.n_prompt) { if (n_prompt == 0) { @@ -925,6 +940,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .model = */ m, /* .n_prompt = */ n_prompt, /* .n_gen = */ 0, + /* .n_depth = */ nd, /* .n_batch = */ nb, /* .n_ubatch = */ nub, /* .type_k = */ tk, @@ -955,6 +971,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .model = */ m, /* .n_prompt = */ 0, /* .n_gen = */ n_gen, + /* .n_depth = */ nd, /* .n_batch = */ nb, /* .n_ubatch = */ nub, /* .type_k = */ tk, @@ -985,6 +1002,7 @@ static std::vector get_cmd_params_instances(const cmd_param /* .model = */ m, /* .n_prompt = */ n_pg.first, /* .n_gen = */ n_pg.second, + /* .n_depth = */ nd, /* .n_batch = */ nb, /* .n_ubatch = */ nub, /* .type_k = */ tk, @@ -1040,6 +1058,7 @@ struct test { bool embeddings; int n_prompt; int n_gen; + int n_depth; std::string test_time; std::vector samples_ns; @@ -1072,6 +1091,7 @@ struct test { embeddings = inst.embeddings; n_prompt = inst.n_prompt; n_gen = inst.n_gen; + n_depth = inst.n_depth; // RFC 3339 date-time format time_t t = time(NULL); std::strftime(buf, sizeof(buf), "%FT%TZ", gmtime(&t)); @@ -1113,9 +1133,11 @@ struct test { "build_commit", "build_number", "cpu_info", "gpu_info", "backends", "model_filename", "model_type", "model_size", "model_n_params", "n_batch", "n_ubatch", "n_threads", "cpu_mask", "cpu_strict", "poll", "type_k", "type_v", "n_gpu_layers", + "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "use_mmap", + "embeddings", "n_prompt", "n_gen", "n_depth", "test_time", "avg_ns", "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "tensor_buft_overrides", - "use_mmap", "embeddings", "n_prompt", "n_gen", "test_time", "avg_ns", - "stddev_ns", "avg_ts", "stddev_ts", + "use_mmap", "embeddings", "n_prompt", "n_gen", "n_depth", "test_time", + "avg_ns", "stddev_ns", "avg_ts", "stddev_ts", }; return fields; } @@ -1125,8 +1147,8 @@ struct test { static field_type get_field_type(const std::string & field) { if (field == "build_number" || field == "n_batch" || field == "n_ubatch" || field == "n_threads" || field == "poll" || field == "model_size" || field == "model_n_params" || field == "n_gpu_layers" || - field == "main_gpu" || field == "n_prompt" || field == "n_gen" || field == "avg_ns" || - field == "stddev_ns") { + field == "main_gpu" || field == "n_prompt" || field == "n_gen" || field == "n_depth" || + field == "avg_ns" || field == "stddev_ns") { return INT; } if (field == "f16_kv" || field == "no_kv_offload" || field == "cpu_strict" || field == "flash_attn" || @@ -1204,6 +1226,7 @@ struct test { std::to_string(embeddings), std::to_string(n_prompt), std::to_string(n_gen), + std::to_string(n_depth), test_time, std::to_string(avg_ns()), std::to_string(stdev_ns()), @@ -1381,7 +1404,7 @@ struct markdown_printer : public printer { return 4; } if (field == "test") { - return 13; + return 15; } int width = std::max((int) field.length(), 10); @@ -1531,6 +1554,10 @@ struct markdown_printer : public printer { } else { snprintf(buf, sizeof(buf), "pp%d+tg%d", t.n_prompt, t.n_gen); } + if (t.n_depth > 0) { + int len = strlen(buf); + snprintf(buf + len, sizeof(buf) - len, " @ d%d", t.n_depth); + } value = buf; } else if (field == "t/s") { snprintf(buf, sizeof(buf), "%.2f ± %.2f", t.avg_ts(), t.stdev_ts()); @@ -1789,6 +1816,14 @@ int main(int argc, char ** argv) { for (int i = 0; i < params.reps; i++) { llama_kv_self_clear(ctx); + if (t.n_depth > 0) { + if (params.progress) { + fprintf(stderr, "llama-bench: benchmark %d/%zu: depth run %d/%d\n", params_idx, params_count, + i + 1, params.reps); + } + test_prompt(ctx, t.n_depth, t.n_batch, t.n_threads); + } + uint64_t t_start = get_time_ns(); if (t.n_prompt > 0) { From 43ddab6eeeaab5a04fe5a364af0bafb0e4d35065 Mon Sep 17 00:00:00 2001 From: Ville Vesilehto Date: Mon, 28 Apr 2025 21:00:20 +0300 Subject: [PATCH 033/126] fix(rpc): Improve input validation and error handling (#13069) * fix(rpc): Improve input validation and error handling The `rpc-server` was vulnerable to Denial of Service attacks via several RPC commands (`SET_TENSOR`, `GRAPH_COMPUTE`, etc.). Malformed messages could trigger failed assertions (e.g., invalid `ggml_type`) or out-of-bounds reads/writes leading to `GGML_ABORT` calls, crashing the server process. This PR introduces robust input validation and replaces `abort()` calls with graceful error handling: - **Type Validation:** `deserialize_tensor` now checks if the `tensor->type` is within the valid `GGML_TYPE_COUNT` range *before* calling `ggml_new_tensor_4d`. Returns `nullptr` on invalid type. - **Bounds Checks:** Replaced `GGML_ABORT` in `set_tensor`, `set_tensor_hash`, and `get_tensor` handlers with error logging and returning `false` when data/offset parameters are out of buffer bounds. - **Size Checks:** Added safe arithmetic checks (for overflow) in `graph_compute` when calculating required message sizes based on client-provided `n_nodes` and `n_tensors`. Returns early if the reported sizes conflict with the actual message size or would lead to overflow. - **Error Propagation:** - `create_node` now checks for `nullptr` return values from `deserialize_tensor` and its recursive calls, propagating `nullptr` upwards on failure. Uses `find` instead of `at` for safer map access. - `copy_tensor` now checks for `nullptr` from `deserialize_tensor` and sets the response status to failure if deserialization or bounds checks fail. - `graph_compute` now checks for `nullptr` return from `create_node` and returns failure status correctly. The final return value now reflects the actual computation status. These changes improve the RPC server's resilience against malformed client requests, preventing crashes and ensuring errors are handled more gracefully. Signed-off-by: Ville Vesilehto * refactor(rpc): address pr comments removed comments and unnecessary returns Signed-off-by: Ville Vesilehto * refactor(rpc): ambiguous nullptr from create_node rpc_server::create_node could previously return nullptr if the input ID was 0 (valid) or if an internal error (deserialization, recursion failure) occurred (invalid). This ambiguity made error handling difficult for the caller (`graph_compute`). This commit clarifies the meaning of nullptr: - `graph_compute` now checks if the input 'id' was non-zero when `create_node` returns nullptr, correctly identifying failures versus intentional null links. - `create_node` avoids recursive calls for zero IDs and propagates nullptr unambiguously on failure during recursion. Signed-off-by: Ville Vesilehto * refactor(rpc): initial zero check in create_node The caller (`graph_compute`) already checks `id != 0` when handling a `nullptr` return from `create_node`, correctly distinguishing intentional null links from actual errors. This makes the initial `if (id == 0)` check redundant. Also removes the log message when a tensor ID is not found in the provided map which was added in this branch. Signed-off-by: Ville Vesilehto * fix(rpc): Handle get_alloc_size failure in server Check the return value of `server.get_alloc_size` in the RPC server loop. If the call fails, return early to close the connection. Signed-off-by: Ville Vesilehto * refactor(rpc): input size validation in graph_compute Removes detailed, step-by-step size calculations and overflow checks in favor of simpler direct comparisons, assuming 64-bit overflow is unlikely. Signed-off-by: Ville Vesilehto * refactor(rpc): remove extra status code setting Removes the explicit setting of `response.result = GGML_STATUS_FAILED` when `create_node` returns `nullptr` within `graph_compute`. Primary signal is the `false` return value in case of failure. Signed-off-by: Ville Vesilehto * refactor(rpc): remove redundant check for tensor->type Breaks CI on ubuntu-cpu-make. Tensor type is uint32_t, thus the check is not needed. Signed-off-by: Ville Vesilehto --------- Signed-off-by: Ville Vesilehto --- ggml/src/ggml-rpc/ggml-rpc.cpp | 78 +++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/ggml/src/ggml-rpc/ggml-rpc.cpp b/ggml/src/ggml-rpc/ggml-rpc.cpp index 9023eb0919..140a775f98 100644 --- a/ggml/src/ggml-rpc/ggml-rpc.cpp +++ b/ggml/src/ggml-rpc/ggml-rpc.cpp @@ -982,8 +982,21 @@ bool rpc_server::buffer_clear(const rpc_msg_buffer_clear_req & request) { } ggml_tensor * rpc_server::deserialize_tensor(struct ggml_context * ctx, const rpc_tensor * tensor) { + // Validate tensor type before using it + if (tensor->type >= GGML_TYPE_COUNT) { + GGML_LOG_ERROR("[%s] invalid tensor type received: %u\n", __func__, tensor->type); + return nullptr; + } + ggml_tensor * result = ggml_new_tensor_4d(ctx, (ggml_type) tensor->type, tensor->ne[0], tensor->ne[1], tensor->ne[2], tensor->ne[3]); + + // ggml_new_tensor_4d might fail if dimensions are invalid, although less likely to crash than invalid type + if (result == nullptr) { + GGML_LOG_ERROR("[%s] ggml_new_tensor_4d failed for type %u\\n", __func__, tensor->type); + return nullptr; + } + for (uint32_t i = 0; i < GGML_MAX_DIMS; i++) { result->nb[i] = tensor->nb[i]; } @@ -1043,7 +1056,9 @@ bool rpc_server::set_tensor(const std::vector & input) { const size_t p1 = p0 + ggml_backend_buffer_get_size(tensor->buffer); if (in_tensor->data + offset < p0 || in_tensor->data + offset >= p1 || size > (p1 - in_tensor->data - offset)) { - GGML_ABORT("[%s] tensor->data out of bounds\n", __func__); + GGML_LOG_ERROR("[%s] tensor data region (data=0x%" PRIx64 ", offset=%" PRIu64 ", size=%zu) out of buffer bounds [0x%zx, 0x%zx)\n", + __func__, in_tensor->data, offset, size, p0, p1); + return false; } } @@ -1118,7 +1133,9 @@ bool rpc_server::set_tensor_hash(const std::vector & input, rpc_msg_set const size_t p1 = p0 + ggml_backend_buffer_get_size(tensor->buffer); if (in_tensor->data + offset < p0 || in_tensor->data + offset >= p1 || size > (p1 - in_tensor->data - offset)) { - GGML_ABORT("[%s] tensor->data out of bounds\n", __func__); + GGML_LOG_ERROR("[%s] tensor data region (data=0x%" PRIx64 ", offset=%" PRIu64 ", size=%zu, hash=0x%" PRIx64 ") out of buffer bounds [0x%zx, 0x%zx)\n", + __func__, in_tensor->data, offset, size, *hash, p0, p1); + return false; } } ggml_backend_tensor_set(tensor, cached_file.data(), offset, size); @@ -1183,7 +1200,9 @@ bool rpc_server::get_tensor(const rpc_msg_get_tensor_req & request, std::vector< if (request.tensor.data + request.offset < p0 || request.tensor.data + request.offset >= p1 || request.size > (p1 - request.tensor.data - request.offset)) { - GGML_ABORT("[%s] tensor->data out of bounds\n", __func__); + GGML_LOG_ERROR("[%s] requested tensor region (data=0x%" PRIx64 ", offset=%" PRIu64 ", size=%" PRIu64 ") out of buffer bounds [0x%zx, 0x%zx)\n", + __func__, request.tensor.data, request.offset, request.size, p0, p1); + return false; } } @@ -1237,22 +1256,50 @@ ggml_tensor * rpc_server::create_node(uint64_t id, struct ggml_context * ctx, const std::unordered_map & tensor_ptrs, std::unordered_map & tensor_map) { - if (id == 0) { - return nullptr; - } if (tensor_map.find(id) != tensor_map.end()) { return tensor_map[id]; } - const rpc_tensor * tensor = tensor_ptrs.at(id); + // Safely find the tensor pointer + auto it_ptr = tensor_ptrs.find(id); + if (it_ptr == tensor_ptrs.end()) { + return nullptr; + } + const rpc_tensor * tensor = it_ptr->second; + struct ggml_tensor * result = deserialize_tensor(ctx, tensor); if (result == nullptr) { return nullptr; } tensor_map[id] = result; for (int i = 0; i < GGML_MAX_SRC; i++) { - result->src[i] = create_node(tensor->src[i], ctx, tensor_ptrs, tensor_map); + // Check if the source ID is 0 before calling create_node recursively + if (tensor->src[i] == 0) { + result->src[i] = nullptr; + } else { + result->src[i] = create_node(tensor->src[i], ctx, tensor_ptrs, tensor_map); + // If the recursive call failed for a non-zero ID, propagate the error + if (result->src[i] == nullptr) { + GGML_LOG_ERROR("[%s] failed to create source node %d (src_id=%" PRIu64 ") for node id %" PRIu64 "\n", + __func__, i, tensor->src[i], id); + // Must return nullptr to signal failure up the call stack + return nullptr; + } + } + } + + // Handle view_src similarly + if (tensor->view_src == 0) { + result->view_src = nullptr; + } else { + result->view_src = create_node(tensor->view_src, ctx, tensor_ptrs, tensor_map); + // If the recursive call failed for a non-zero ID, propagate the error + if (result->view_src == nullptr) { + GGML_LOG_ERROR("[%s] failed to create view_src node (view_src_id=%" PRIu64 ") for node id %" PRIu64 "\n", + __func__, tensor->view_src, id); + // Must return nullptr to signal failure up the call stack + return nullptr; + } } - result->view_src = create_node(tensor->view_src, ctx, tensor_ptrs, tensor_map); result->view_offs = tensor->view_offs; return result; } @@ -1278,6 +1325,7 @@ bool rpc_server::graph_compute(const std::vector & input, rpc_msg_graph GGML_PRINT_DEBUG("[%s] n_nodes: %u, n_tensors: %u\n", __func__, n_nodes, n_tensors); size_t buf_size = ggml_tensor_overhead()*(n_nodes + n_tensors) + ggml_graph_overhead_custom(n_nodes, false); + struct ggml_init_params params = { /*.mem_size =*/ buf_size, /*.mem_buffer =*/ NULL, @@ -1297,6 +1345,14 @@ bool rpc_server::graph_compute(const std::vector & input, rpc_msg_graph int64_t id; memcpy(&id, &nodes[i], sizeof(id)); graph->nodes[i] = create_node(id, ctx, tensor_ptrs, tensor_map); + + // Check if create_node failed for a *non-zero* ID. + // If id was 0, create_node returning nullptr is expected. + // If id was non-zero and create_node returned nullptr, it indicates a deserialization error. + if (graph->nodes[i] == nullptr && id != 0) { + GGML_LOG_ERROR("[%s] failed to create graph node %d (id=%" PRId64 ")\n", __func__, i, id); + return false; + } } ggml_status status = ggml_backend_graph_compute(backend, graph); response.result = status; @@ -1361,7 +1417,9 @@ static void rpc_serve_client(ggml_backend_t backend, const char * cache_dir, return; } rpc_msg_get_alloc_size_rsp response; - server.get_alloc_size(request, response); + if (!server.get_alloc_size(request, response)) { + return; + } if (!send_msg(sockfd, &response, sizeof(response))) { return; } From eaea3253244dc4bbe07f6cd81325847ccc6cf93e Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 28 Apr 2025 21:23:19 +0200 Subject: [PATCH 034/126] clip : fix model size display (#13153) --- examples/llava/clip.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 8c5d56cc17..a5eb55f4d4 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -1574,7 +1574,7 @@ struct clip_model_loader { clip_ctx & ctx_clip; std::string fname; - size_t model_size; // in bytes + size_t model_size = 0; // in bytes // TODO @ngxson : we should not pass clip_ctx here, it should be clip_vision_model clip_model_loader(const char * fname, clip_ctx & ctx_clip) : ctx_clip(ctx_clip), fname(fname) { @@ -1748,6 +1748,8 @@ struct clip_model_loader { LOG_INF("%s: minicpmv_version: %d\n", __func__, ctx_clip.minicpmv_version); LOG_INF("%s: proj_scale_factor: %d\n", __func__, hparams.proj_scale_factor); LOG_INF("%s: n_wa_pattern: %d\n", __func__, hparams.n_wa_pattern); + LOG_INF("%s: use_silu: %d\n", __func__, ctx_clip.use_silu); + LOG_INF("%s: use_gelu: %d\n", __func__, ctx_clip.use_gelu); LOG_INF("%s: model size: %.2f MiB\n", __func__, model_size / 1024.0 / 1024.0); LOG_INF("%s: metadata size: %.2f MiB\n", __func__, ggml_get_mem_size(ctx_meta.get()) / 1024.0 / 1024.0); } From 5f5e39e1ba5dbea814e41f2a15e035d749a520bc Mon Sep 17 00:00:00 2001 From: AT Date: Mon, 28 Apr 2025 15:52:15 -0400 Subject: [PATCH 035/126] model : Nomic Embed Text V2 with Mixture-of-Experts (MoE) architecture (#12466) * Nomic Embed Text V2 with Mixture-of-Experts (MoE) architecture - Adds MoE-based embedding model supporting multilingual embeddings. - Selects architecture variant based on hyperparameter detection (MoE layers). - Removes unnecessary subclass initialization checks for clarity. https://www.nomic.ai/blog/posts/nomic-embed-text-v2 Co-authored-by: Jared Van Bortel * fix tokenizer * don't rename this tensor --------- Co-authored-by: Jared Van Bortel --- convert_hf_to_gguf.py | 227 ++++++++++++++++++++------------- gguf-py/gguf/constants.py | 19 +++ gguf-py/gguf/gguf_writer.py | 3 + gguf-py/gguf/tensor_mapping.py | 4 + src/llama-arch.cpp | 20 +++ src/llama-arch.h | 2 + src/llama-graph.cpp | 25 ++-- src/llama-hparams.h | 1 + src/llama-model.cpp | 56 ++++++-- 9 files changed, 247 insertions(+), 110 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index d4fec408dd..b9cea7e469 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -78,7 +78,7 @@ class ModelBase: # subclasses should define this! model_arch: gguf.MODEL_ARCH - def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, is_big_endian: bool = False, + def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, *, is_big_endian: bool = False, use_temp_file: bool = False, eager: bool = False, metadata_override: Path | None = None, model_name: str | None = None, split_max_tensors: int = 0, split_max_size: int = 0, dry_run: bool = False, @@ -454,13 +454,6 @@ class ModelBase: class TextModel(ModelBase): - @classmethod - def __init_subclass__(cls): - # can't use an abstract property, because overriding it without type errors - # would require using decorated functions instead of simply defining the property - if "model_arch" not in cls.__dict__: - raise TypeError(f"Missing property 'model_arch' for {cls.__name__!r}") - def set_vocab(self): self._set_vocab_gpt2() @@ -3373,14 +3366,7 @@ class BertModel(TextModel): return [(self.map_tensor_name(name), data_torch)] - -@ModelBase.register("RobertaModel") -class RobertaModel(BertModel): - model_arch = gguf.MODEL_ARCH.BERT - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - + def _xlmroberta_tokenizer_init(self) -> None: # we need the pad_token_id to know how to chop down position_embd matrix if (pad_token_id := self.hparams.get("pad_token_id")) is not None: self._position_offset = 1 + pad_token_id @@ -3389,82 +3375,7 @@ class RobertaModel(BertModel): else: self._position_offset = None - def set_vocab(self): - """Support BPE tokenizers for roberta models""" - bpe_tok_path = self.dir_model / "tokenizer.json" - if bpe_tok_path.exists(): - self._set_vocab_gpt2() - self.gguf_writer.add_add_bos_token(True) - self.gguf_writer.add_add_eos_token(True) - - # we need this to validate the size of the token_type embeddings - # though currently we are passing all zeros to the token_type embeddings - # "Sequence A" or "Sequence B" - self.gguf_writer.add_token_type_count(self.hparams.get("type_vocab_size", 1)) - - else: - return super().set_vocab() - - def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: - # if name starts with "roberta.", remove the prefix - # e.g. https://huggingface.co/BAAI/bge-reranker-v2-m3/tree/main - if name.startswith("roberta."): - name = name[8:] - - # position embeddings start at pad_token_id + 1, so just chop down the weight tensor - if name == "embeddings.position_embeddings.weight": - if self._position_offset is not None: - data_torch = data_torch[self._position_offset:,:] - - return super().modify_tensors(data_torch, name, bid) - - -@ModelBase.register("NomicBertModel") -class NomicBertModel(BertModel): - model_arch = gguf.MODEL_ARCH.NOMIC_BERT - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - # the HF config claims n_ctx=8192, but it uses RoPE scaling - self.hparams["n_ctx"] = 2048 - - # SwigLU activation - assert self.hparams["activation_function"] == "swiglu" - # this doesn't do anything in the HF version - assert self.hparams["causal"] is False - # no bias tensors - assert self.hparams["qkv_proj_bias"] is False - assert self.hparams["mlp_fc1_bias"] is False - assert self.hparams["mlp_fc2_bias"] is False - # norm at end of layer - assert self.hparams["prenorm"] is False - # standard RoPE - assert self.hparams["rotary_emb_fraction"] == 1.0 - assert self.hparams["rotary_emb_interleaved"] is False - assert self.hparams["rotary_emb_scale_base"] is None - - def set_gguf_parameters(self): - super().set_gguf_parameters() - self.gguf_writer.add_rope_freq_base(self.hparams["rotary_emb_base"]) - - -@ModelBase.register("XLMRobertaModel", "XLMRobertaForSequenceClassification") -class XLMRobertaModel(BertModel): - model_arch = gguf.MODEL_ARCH.BERT - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - # we need the pad_token_id to know how to chop down position_embd matrix - if (pad_token_id := self.hparams.get("pad_token_id")) is not None: - self._position_offset = 1 + pad_token_id - if "max_position_embeddings" in self.hparams: - self.hparams["max_position_embeddings"] -= self._position_offset - else: - self._position_offset = None - - def set_vocab(self): + def _xlmroberta_set_vocab(self) -> None: # to avoid TypeError: Descriptors cannot be created directly # exception when importing sentencepiece_model_pb2 os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python" @@ -3546,6 +3457,138 @@ class XLMRobertaModel(BertModel): self.gguf_writer.add_add_bos_token(True) self.gguf_writer.add_add_eos_token(True) + +@ModelBase.register("RobertaModel") +class RobertaModel(BertModel): + model_arch = gguf.MODEL_ARCH.BERT + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # we need the pad_token_id to know how to chop down position_embd matrix + if (pad_token_id := self.hparams.get("pad_token_id")) is not None: + self._position_offset = 1 + pad_token_id + if "max_position_embeddings" in self.hparams: + self.hparams["max_position_embeddings"] -= self._position_offset + else: + self._position_offset = None + + def set_vocab(self): + """Support BPE tokenizers for roberta models""" + bpe_tok_path = self.dir_model / "tokenizer.json" + if bpe_tok_path.exists(): + self._set_vocab_gpt2() + self.gguf_writer.add_add_bos_token(True) + self.gguf_writer.add_add_eos_token(True) + + # we need this to validate the size of the token_type embeddings + # though currently we are passing all zeros to the token_type embeddings + # "Sequence A" or "Sequence B" + self.gguf_writer.add_token_type_count(self.hparams.get("type_vocab_size", 1)) + + else: + return super().set_vocab() + + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + # if name starts with "roberta.", remove the prefix + # e.g. https://huggingface.co/BAAI/bge-reranker-v2-m3/tree/main + if name.startswith("roberta."): + name = name[8:] + + # position embeddings start at pad_token_id + 1, so just chop down the weight tensor + if name == "embeddings.position_embeddings.weight": + if self._position_offset is not None: + data_torch = data_torch[self._position_offset:,:] + + return super().modify_tensors(data_torch, name, bid) + + +@ModelBase.register("NomicBertModel") +class NomicBertModel(BertModel): + def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, **kwargs: Any): + hparams = kwargs.pop("hparams", None) + if hparams is None: + hparams = ModelBase.load_hparams(dir_model) + + self.is_moe = bool(hparams.get("moe_every_n_layers")) + self.model_arch = gguf.MODEL_ARCH.NOMIC_BERT_MOE if self.is_moe else gguf.MODEL_ARCH.NOMIC_BERT + + super().__init__(dir_model, ftype, fname_out, hparams=hparams, **kwargs) + + self._tokenizer_is_xlmroberta = self._is_tokenizer_xlmroberta() + if self._tokenizer_is_xlmroberta: + self._xlmroberta_tokenizer_init() + + # the HF config claims n_ctx=8192, but it uses RoPE scaling + self.hparams["n_ctx"] = 2048 + + assert self.hparams["activation_function"] == "gelu" if self.is_moe else "swiglu" + + # this doesn't do anything in the HF version + assert self.hparams["causal"] is False + # no bias tensors unless MoE + assert self.hparams["qkv_proj_bias"] == self.is_moe + assert self.hparams["mlp_fc1_bias"] == self.is_moe + assert self.hparams["mlp_fc2_bias"] == self.is_moe + + # norm at end of layer + assert self.hparams["prenorm"] is False + # standard RoPE + assert self.hparams["rotary_emb_fraction"] == 1.0 + assert self.hparams["rotary_emb_interleaved"] is False + assert self.hparams["rotary_emb_scale_base"] is None + + def set_vocab(self) -> None: + if self._tokenizer_is_xlmroberta: + return self._xlmroberta_set_vocab() + return super().set_vocab() + + def modify_tensors(self, data_torch: torch.Tensor, name: str, bid: int | None) -> Iterable[tuple[str, torch.Tensor]]: + # If the tensor is an experts bias tensor, skip it by returning an empty list. + if "mlp.experts.bias" in name: + return [] # Explicitly return an empty list. + + if "mlp.experts.mlp.w1" in name: + data_torch = data_torch.view(self.hparams["num_experts"], self.hparams["n_inner"], self.hparams["n_embd"]) + name += ".weight" + + if "mlp.experts.mlp.w2" in name: + data_torch = data_torch.view(self.hparams["num_experts"], self.hparams["n_inner"], self.hparams["n_embd"]) + data_torch = data_torch.transpose(1, 2) + name += ".weight" + + return [(self.map_tensor_name(name), data_torch)] + + def set_gguf_parameters(self): + super().set_gguf_parameters() + self.gguf_writer.add_rope_freq_base(self.hparams["rotary_emb_base"]) + if self.is_moe: + self.gguf_writer.add_moe_every_n_layers(self.hparams["moe_every_n_layers"]) + self.gguf_writer.add_expert_count(self.hparams["num_experts"]) + self.gguf_writer.add_expert_used_count(self.hparams["moe_top_k"]) + + def _is_tokenizer_xlmroberta(self) -> bool: + with open(self.dir_model / "tokenizer.json") as f: + tokenizer_json = json.load(f) + toktyp = tokenizer_json["model"]["type"] + if toktyp == "Unigram": + return True + if toktyp == "WordPiece": + return False + raise ValueError(f"unknown tokenizer: {toktyp}") + + +@ModelBase.register("XLMRobertaModel", "XLMRobertaForSequenceClassification") +class XLMRobertaModel(BertModel): + model_arch = gguf.MODEL_ARCH.BERT + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._xlmroberta_tokenizer_init() + + def set_vocab(self): + self._xlmroberta_set_vocab() + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: # if name starts with "roberta.", remove the prefix # e.g. https://huggingface.co/BAAI/bge-reranker-v2-m3/tree/main diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index b81017b142..326ccdb071 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -104,6 +104,7 @@ class Keys: EXPERT_WEIGHTS_SCALE = "{arch}.expert_weights_scale" EXPERT_WEIGHTS_NORM = "{arch}.expert_weights_norm" EXPERT_GATING_FUNC = "{arch}.expert_gating_func" + MOE_EVERY_N_LAYERS = "{arch}.moe_every_n_layers" POOLING_TYPE = "{arch}.pooling_type" LOGIT_SCALE = "{arch}.logit_scale" DECODER_START_TOKEN_ID = "{arch}.decoder_start_token_id" @@ -267,6 +268,7 @@ class MODEL_ARCH(IntEnum): REFACT = auto() BERT = auto() NOMIC_BERT = auto() + NOMIC_BERT_MOE = auto() JINA_BERT_V2 = auto() BLOOM = auto() STABLELM = auto() @@ -521,6 +523,7 @@ MODEL_ARCH_NAMES: dict[MODEL_ARCH, str] = { MODEL_ARCH.REFACT: "refact", MODEL_ARCH.BERT: "bert", MODEL_ARCH.NOMIC_BERT: "nomic-bert", + MODEL_ARCH.NOMIC_BERT_MOE: "nomic-bert-moe", MODEL_ARCH.JINA_BERT_V2: "jina-bert-v2", MODEL_ARCH.BLOOM: "bloom", MODEL_ARCH.STABLELM: "stablelm", @@ -960,6 +963,22 @@ MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { MODEL_TENSOR.FFN_UP, MODEL_TENSOR.LAYER_OUT_NORM, ], + MODEL_ARCH.NOMIC_BERT_MOE: [ + MODEL_TENSOR.TOKEN_EMBD, + MODEL_TENSOR.TOKEN_EMBD_NORM, + MODEL_TENSOR.TOKEN_TYPES, + MODEL_TENSOR.POS_EMBD, + MODEL_TENSOR.OUTPUT_NORM, + MODEL_TENSOR.ATTN_OUT_NORM, + MODEL_TENSOR.ATTN_QKV, + MODEL_TENSOR.ATTN_OUT, + MODEL_TENSOR.FFN_DOWN, + MODEL_TENSOR.FFN_UP, + MODEL_TENSOR.FFN_GATE_INP, + MODEL_TENSOR.FFN_DOWN_EXP, + MODEL_TENSOR.FFN_UP_EXP, + MODEL_TENSOR.LAYER_OUT_NORM, + ], MODEL_ARCH.JINA_BERT_V2: [ MODEL_TENSOR.TOKEN_EMBD, MODEL_TENSOR.TOKEN_EMBD_NORM, diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index 48e9a470b7..f22a6d4a34 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -728,6 +728,9 @@ class GGUFWriter: def add_expert_gating_func(self, value: ExpertGatingFuncType) -> None: self.add_uint32(Keys.LLM.EXPERT_GATING_FUNC.format(arch=self.arch), value.value) + def add_moe_every_n_layers(self, value: int) -> None: + self.add_uint32(Keys.LLM.MOE_EVERY_N_LAYERS.format(arch=self.arch), value) + def add_swin_norm(self, value: bool) -> None: self.add_bool(Keys.LLM.SWIN_NORM.format(arch=self.arch), value) diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index 1d70551973..311d1ff69c 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -290,6 +290,7 @@ class TensorNameMap: "transformer.blocks.{bid}.ffn.router.layer", # dbrx "model.layers.{bid}.block_sparse_moe.router.layer", # granitemoe "language_model.model.layers.{bid}.feed_forward.router", # llama4 + "encoder.layers.{bid}.mlp.router.layer", # nomic-bert-moe ), MODEL_TENSOR.FFN_GATE_INP_SHEXP: ( @@ -322,6 +323,7 @@ class TensorNameMap: "model.layers.layers.{bid}.mlp.up_proj", # plamo "model.layers.{bid}.feed_forward.w3", # internlm2 "encoder.layers.{bid}.mlp.fc11", # nomic-bert + "encoder.layers.{bid}.mlp.fc1", # nomic-bert-moe "model.layers.{bid}.mlp.c_fc", # starcoder2 "encoder.layer.{bid}.mlp.gated_layers_v", # jina-bert-v2 "model.layers.{bid}.residual_mlp.w3", # arctic @@ -337,6 +339,7 @@ class TensorNameMap: "model.layers.{bid}.mlp.experts.up_proj", # qwen2moe olmoe (merged) "model.layers.{bid}.block_sparse_moe.experts.w3", # phimoe (merged) "language_model.model.layers.{bid}.feed_forward.experts.up_proj", # llama4 + "encoder.layers.{bid}.mlp.experts.mlp.w1", # nomic-bert-moe ), MODEL_TENSOR.FFN_UP_SHEXP: ( @@ -418,6 +421,7 @@ class TensorNameMap: "model.layers.{bid}.block_sparse_moe.output_linear", # granitemoe "model.layers.{bid}.block_sparse_moe.experts.w2", # phimoe (merged) "language_model.model.layers.{bid}.feed_forward.experts.down_proj", # llama4 + "encoder.layers.{bid}.mlp.experts.mlp.w2", # nomic-bert-moe ), MODEL_TENSOR.FFN_DOWN_SHEXP: ( diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index 62e1480bb5..f2bc8ca768 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -19,6 +19,7 @@ static const std::map LLM_ARCH_NAMES = { { LLM_ARCH_REFACT, "refact" }, { LLM_ARCH_BERT, "bert" }, { LLM_ARCH_NOMIC_BERT, "nomic-bert" }, + { LLM_ARCH_NOMIC_BERT_MOE, "nomic-bert-moe" }, { LLM_ARCH_JINA_BERT_V2, "jina-bert-v2" }, { LLM_ARCH_BLOOM, "bloom" }, { LLM_ARCH_STABLELM, "stablelm" }, @@ -106,6 +107,7 @@ static const std::map LLM_KV_NAMES = { { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" }, { LLM_KV_EXPERT_WEIGHTS_NORM, "%s.expert_weights_norm" }, { LLM_KV_EXPERT_GATING_FUNC, "%s.expert_gating_func" }, + { LLM_KV_MOE_EVERY_N_LAYERS, "%s.moe_every_n_layers" }, { LLM_KV_POOLING_TYPE, "%s.pooling_type" }, { LLM_KV_LOGIT_SCALE, "%s.logit_scale" }, { LLM_KV_DECODER_START_TOKEN_ID, "%s.decoder_start_token_id" }, @@ -472,6 +474,24 @@ static const std::map> LLM_TENSOR_N { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" }, }, }, + { + LLM_ARCH_NOMIC_BERT_MOE, + { + { LLM_TENSOR_TOKEN_EMBD, "token_embd" }, + { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" }, + { LLM_TENSOR_TOKEN_TYPES, "token_types" }, + { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" }, + { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" }, + { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" }, + { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" }, + { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" }, + { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" }, + { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" }, + { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" }, + { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" }, + { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" }, + }, + }, { LLM_ARCH_JINA_BERT_V2, { diff --git a/src/llama-arch.h b/src/llama-arch.h index 98ca00a1bd..41a023da3d 100644 --- a/src/llama-arch.h +++ b/src/llama-arch.h @@ -23,6 +23,7 @@ enum llm_arch { LLM_ARCH_REFACT, LLM_ARCH_BERT, LLM_ARCH_NOMIC_BERT, + LLM_ARCH_NOMIC_BERT_MOE, LLM_ARCH_JINA_BERT_V2, LLM_ARCH_BLOOM, LLM_ARCH_STABLELM, @@ -110,6 +111,7 @@ enum llm_kv { LLM_KV_EXPERT_WEIGHTS_SCALE, LLM_KV_EXPERT_WEIGHTS_NORM, LLM_KV_EXPERT_GATING_FUNC, + LLM_KV_MOE_EVERY_N_LAYERS, LLM_KV_POOLING_TYPE, LLM_KV_LOGIT_SCALE, LLM_KV_DECODER_START_TOKEN_ID, diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index e6595fb18b..2706ea2635 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -925,28 +925,35 @@ ggml_tensor * llm_graph_context::build_moe_ffn( ggml_tensor * up = build_lora_mm_id(up_exps, cur, selected_experts); // [n_ff, n_expert_used, n_tokens] cb(up, "ffn_moe_up", il); - ggml_tensor * gate = build_lora_mm_id(gate_exps, cur, selected_experts); // [n_ff, n_expert_used, n_tokens] - cb(gate, "ffn_moe_gate", il); + ggml_tensor * experts = nullptr; + if (gate_exps) { + cur = build_lora_mm_id(gate_exps, cur, selected_experts); // [n_ff, n_expert_used, n_tokens] + cb(cur, "ffn_moe_gate", il); + } else { + cur = up; + } switch (type_op) { case LLM_FFN_SILU: { - gate = ggml_silu(ctx0, gate); - cb(gate, "ffn_moe_silu", il); + cur = ggml_silu(ctx0, cur); + cb(cur, "ffn_moe_silu", il); } break; case LLM_FFN_GELU: { - gate = ggml_gelu(ctx0, gate); - cb(gate, "ffn_moe_gelu", il); + cur = ggml_gelu(ctx0, cur); + cb(cur, "ffn_moe_gelu", il); } break; default: GGML_ABORT("fatal error"); } - ggml_tensor * par = ggml_mul(ctx0, up, gate); // [n_ff, n_expert_used, n_tokens] - cb(par, "ffn_moe_gate_par", il); + if (gate_exps) { + cur = ggml_mul(ctx0, cur, up); // [n_ff, n_expert_used, n_tokens] + cb(cur, "ffn_moe_gate_par", il); + } - ggml_tensor * experts = build_lora_mm_id(down_exps, par, selected_experts); // [n_embd, n_expert_used, n_tokens] + experts = build_lora_mm_id(down_exps, cur, selected_experts); // [n_embd, n_expert_used, n_tokens] cb(experts, "ffn_moe_down", il); if (!weight_before_ffn) { diff --git a/src/llama-hparams.h b/src/llama-hparams.h index 80fcd65df0..7ee6a5b75a 100644 --- a/src/llama-hparams.h +++ b/src/llama-hparams.h @@ -66,6 +66,7 @@ struct llama_hparams { float expert_weights_scale = 0.0; bool expert_weights_norm = false; uint32_t expert_gating_func = LLAMA_EXPERT_GATING_FUNC_TYPE_NONE; + uint32_t moe_every_n_layers = 0; float f_norm_eps; float f_norm_rms_eps; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index df2791002e..2ec55d55a3 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -695,10 +695,12 @@ void llama_model::load_hparams(llama_model_loader & ml) { } } break; case LLM_ARCH_NOMIC_BERT: + case LLM_ARCH_NOMIC_BERT_MOE: { ml.get_key(LLM_KV_ATTENTION_LAYERNORM_EPS, hparams.f_norm_eps); ml.get_key(LLM_KV_ATTENTION_CAUSAL, hparams.causal_attn); ml.get_key(LLM_KV_POOLING_TYPE, hparams.pooling_type); + ml.get_key(LLM_KV_MOE_EVERY_N_LAYERS, hparams.moe_every_n_layers, 0); if (hparams.n_layer == 12 && hparams.n_embd == 768) { type = LLM_TYPE_137M; @@ -2057,6 +2059,7 @@ bool llama_model::load_tensors(llama_model_loader & ml) { } break; case LLM_ARCH_BERT: case LLM_ARCH_NOMIC_BERT: + case LLM_ARCH_NOMIC_BERT_MOE: { tok_embd = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, 0); type_embd = create_tensor(tn(LLM_TENSOR_TOKEN_TYPES, "weight"), {n_embd, n_token_types}, 0); @@ -2090,20 +2093,31 @@ bool llama_model::load_tensors(llama_model_loader & ml) { layer.wqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "weight", i), {n_embd, n_embd + 2*n_embd_gqa}, 0); } + if (arch == LLM_ARCH_NOMIC_BERT_MOE) { + layer.bqkv = create_tensor(tn(LLM_TENSOR_ATTN_QKV, "bias", i), {n_embd + 2*n_embd_gqa}, 0); + } + layer.wo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "weight", i), {n_embd, n_embd}, 0); layer.attn_out_norm = create_tensor(tn(LLM_TENSOR_ATTN_OUT_NORM, "weight", i), {n_embd}, 0); layer.attn_out_norm_b = create_tensor(tn(LLM_TENSOR_ATTN_OUT_NORM, "bias", i), {n_embd}, 0); - layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); - layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), {n_ff, n_embd}, 0); - - if (arch == LLM_ARCH_BERT) { + if (hparams.moe_every_n_layers > 0 && i % hparams.moe_every_n_layers == 1) { layer.bo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "bias", i), {n_embd}, 0); - layer.ffn_up_b = create_tensor(tn(LLM_TENSOR_FFN_UP, "bias", i), {n_ff}, 0); - layer.ffn_down_b = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "bias", i), {n_embd}, 0); + layer.ffn_up_exps = create_tensor(tn(LLM_TENSOR_FFN_UP_EXPS, "weight", i), { n_embd, n_ff, n_expert}, 0); + layer.ffn_down_exps = create_tensor(tn(LLM_TENSOR_FFN_DOWN_EXPS, "weight", i), { n_ff, n_embd, n_expert}, 0); + layer.ffn_gate_inp = create_tensor(tn(LLM_TENSOR_FFN_GATE_INP, "weight", i), {n_embd, n_expert}, 0); } else { - layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); + layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); + layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), {n_ff, n_embd}, 0); + + if (arch == LLM_ARCH_BERT || arch == LLM_ARCH_NOMIC_BERT_MOE) { + layer.bo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "bias", i), {n_embd}, 0); + layer.ffn_up_b = create_tensor(tn(LLM_TENSOR_FFN_UP, "bias", i), {n_ff}, 0); + layer.ffn_down_b = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "bias", i), {n_embd}, 0); + } else { + layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); + } } layer.layer_out_norm = create_tensor(tn(LLM_TENSOR_LAYER_OUT_NORM, "weight", i), {n_embd}, 0); @@ -5730,6 +5744,11 @@ struct llm_build_bert : public llm_graph_context { cur = build_lora_mm(model.layers[il].wqkv, cur); cb(cur, "wqkv", il); + if (model.arch == LLM_ARCH_NOMIC_BERT_MOE) { + cur = ggml_add(ctx0, cur, model.layers[il].bqkv); + cb(cur, "bqkv", il); + } + Qcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd, n_tokens, cur->nb[1], 0*sizeof(float)*(n_embd))); Kcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd))); Vcur = ggml_cont(ctx0, ggml_view_2d(ctx0, cur, n_embd_gqa, n_tokens, cur->nb[1], 1*sizeof(float)*(n_embd + n_embd_gqa))); @@ -5782,13 +5801,29 @@ struct llm_build_bert : public llm_graph_context { cb(ffn_inp, "ffn_inp", il); // feed-forward network - if (model.arch == LLM_ARCH_BERT) { + if (hparams.moe_every_n_layers > 0 && il % hparams.moe_every_n_layers == 1) { + // MoE branch + cur = build_moe_ffn(cur, + model.layers[il].ffn_gate_inp, + model.layers[il].ffn_up_exps, + nullptr, + model.layers[il].ffn_down_exps, + nullptr, + hparams.n_expert, + hparams.n_expert_used, + LLM_FFN_GELU, + false, false, + 0.0f, + LLAMA_EXPERT_GATING_FUNC_TYPE_SOFTMAX, il); + cb(cur, "ffn_moe_out", il); + } else if (model.arch == LLM_ARCH_BERT || model.arch == LLM_ARCH_NOMIC_BERT_MOE) { cur = build_ffn(cur, model.layers[il].ffn_up, model.layers[il].ffn_up_b, NULL, NULL, NULL, NULL, model.layers[il].ffn_down, model.layers[il].ffn_down_b, NULL, NULL, LLM_FFN_GELU, LLM_FFN_SEQ, il); + cb(cur, "ffn_out", il); } else if (model.arch == LLM_ARCH_JINA_BERT_V2) { cur = build_ffn(cur, model.layers[il].ffn_up, NULL, NULL, @@ -5796,6 +5831,7 @@ struct llm_build_bert : public llm_graph_context { model.layers[il].ffn_down, model.layers[il].ffn_down_b, NULL, NULL, LLM_FFN_GELU, LLM_FFN_PAR, il); + cb(cur, "ffn_out", il); } else { cur = build_ffn(cur, model.layers[il].ffn_up, NULL, NULL, @@ -5803,8 +5839,8 @@ struct llm_build_bert : public llm_graph_context { model.layers[il].ffn_down, NULL, NULL, NULL, LLM_FFN_SILU, LLM_FFN_PAR, il); + cb(cur, "ffn_out", il); } - cb(cur, "ffn_out", il); // attentions bypass the intermediate layer cur = ggml_add(ctx0, cur, ffn_inp); @@ -12843,6 +12879,7 @@ llm_graph_result_ptr llama_model::build_graph( case LLM_ARCH_BERT: case LLM_ARCH_JINA_BERT_V2: case LLM_ARCH_NOMIC_BERT: + case LLM_ARCH_NOMIC_BERT_MOE: { llm = std::make_unique(*this, params, gf); } break; @@ -13201,6 +13238,7 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { case LLM_ARCH_DBRX: case LLM_ARCH_BERT: case LLM_ARCH_NOMIC_BERT: + case LLM_ARCH_NOMIC_BERT_MOE: case LLM_ARCH_STABLELM: case LLM_ARCH_BITNET: case LLM_ARCH_QWEN: From b6ce7430b7eb51f032152316880204e0a9c0470e Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Tue, 29 Apr 2025 08:45:49 +0200 Subject: [PATCH 036/126] llama-graph : fix text position for mrope (#13159) * llama-graph : fix text position for mrope * fix typo * explicitly set 4th dim in the loop --- src/llama-graph.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index 2706ea2635..fabb9ca237 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -55,13 +55,16 @@ void llm_graph_input_pos::set_input(const llama_ubatch * ubatch) { if (ubatch->pos && pos) { const int64_t n_tokens = ubatch->n_tokens; - if (ubatch->token && n_pos_per_embd > 1) { + if (ubatch->token && n_pos_per_embd == 4) { // in case we're using M-RoPE with text tokens, convert the 1D positions to 4D - // the other dimensions are all 0, they are unused for text tokens - std::vector pos_data(n_tokens*n_pos_per_embd, 0); + // the 3 first dims are the same, and 4th dim is all 0 + std::vector pos_data(n_tokens*n_pos_per_embd); // copy the first dimension for (int i = 0; i < n_tokens; ++i) { - pos_data[i] = ubatch->pos[i]; + pos_data[ i] = ubatch->pos[i]; + pos_data[ n_tokens + i] = ubatch->pos[i]; + pos_data[2 * n_tokens + i] = ubatch->pos[i]; + pos_data[3 * n_tokens + i] = 0; // 4th dim is 0 } ggml_backend_tensor_set(pos, pos_data.data(), 0, pos_data.size()*ggml_element_size(pos)); } else { From e98b3692be4cd8fbbd9a56fbacc2f2bf0bf26a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Tue, 29 Apr 2025 11:00:31 +0200 Subject: [PATCH 037/126] llama : set qwen3 model type sizes (#13175) --- src/llama-model.cpp | 10 ++++++++++ src/llama-model.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 2ec55d55a3..2e0eb036e0 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -92,6 +92,10 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_290B: return "290B"; case LLM_TYPE_17B_16E: return "17Bx16E (Scout)"; case LLM_TYPE_17B_128E: return "17Bx128E (Maverick)"; + case LLM_TYPE_0_6B: return "0.6B"; + case LLM_TYPE_1_7B: return "1.7B"; + case LLM_TYPE_30B_A3B: return "30B.A3B"; + case LLM_TYPE_235B_A22B: return "235B.A22B"; default: return "?B"; } } @@ -793,6 +797,10 @@ void llama_model::load_hparams(llama_model_loader & ml) { { ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); switch (hparams.n_layer) { + case 28: type = hparams.n_embd == 1024 ? LLM_TYPE_0_6B : LLM_TYPE_1_7B; break; + case 36: type = hparams.n_embd == 2560 ? LLM_TYPE_4B : LLM_TYPE_8B; break; + case 40: type = LLM_TYPE_14B; break; + case 64: type = LLM_TYPE_32B; break; default: type = LLM_TYPE_UNKNOWN; } } break; @@ -802,6 +810,8 @@ void llama_model::load_hparams(llama_model_loader & ml) { ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); switch (hparams.n_layer) { + case 48: type = LLM_TYPE_30B_A3B; break; + case 94: type = LLM_TYPE_235B_A22B; break; default: type = LLM_TYPE_UNKNOWN; } } break; diff --git a/src/llama-model.h b/src/llama-model.h index fd82d106cc..167632e186 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -88,6 +88,10 @@ enum llm_type { LLM_TYPE_290B, LLM_TYPE_17B_16E, // llama4 Scout LLM_TYPE_17B_128E, // llama4 Maverick + LLM_TYPE_0_6B, + LLM_TYPE_1_7B, + LLM_TYPE_30B_A3B, + LLM_TYPE_235B_A22B, }; struct llama_layer_posnet { From 00e3e5a194e88e604e7c91391b9e90332888fd72 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Tue, 29 Apr 2025 11:47:04 +0200 Subject: [PATCH 038/126] mtmd : add qwen2vl and qwen2.5vl (#13141) * llava : add clip_n_output_tokens, deprecate clip_n_patches * mtmd : add qwen2vl and qwen2.5vl * decode_embd_batch::set_position_... * working version * deprecate llama-qwen2vl-cli * correct order W, H of clip_embd_nbytes_by_img * edit existing line in hot topics --- README.md | 2 +- examples/llava/CMakeLists.txt | 8 +- examples/llava/clip.cpp | 34 +++- examples/llava/clip.h | 19 ++- examples/llava/llava.cpp | 15 +- examples/llava/mtmd-cli.cpp | 36 +---- examples/llava/mtmd.cpp | 146 +++++++++++++++--- examples/llava/mtmd.h | 9 +- .../{qwen2vl-cli.cpp => qwen2vl-test.cpp} | 2 + examples/llava/tests.sh | 4 +- 10 files changed, 196 insertions(+), 79 deletions(-) rename examples/llava/{qwen2vl-cli.cpp => qwen2vl-test.cpp} (99%) diff --git a/README.md b/README.md index 1785493c3e..42c0eb633e 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) ## Hot topics - **GGML developer experience survey (organized and reviewed by NVIDIA):** [link](https://forms.gle/Gasw3cRgyhNEnrwK9) -- A new binary `llama-mtmd-cli` is introduced to replace `llava-cli`, `minicpmv-cli` and `gemma3-cli` https://github.com/ggml-org/llama.cpp/pull/13012, `libllava` will be deprecated +- A new binary `llama-mtmd-cli` is introduced to replace `llava-cli`, `minicpmv-cli`, `gemma3-cli` ([#13012](https://github.com/ggml-org/llama.cpp/pull/13012)) and `qwen2vl-cli` ([#13141]((https://github.com/ggml-org/llama.cpp/pull/13141))), `libllava` will be deprecated - VS Code extension for FIM completions: https://github.com/ggml-org/llama.vscode - Universal [tool call support](./docs/function-calling.md) in `llama-server` https://github.com/ggml-org/llama.cpp/pull/9639 - Vim/Neovim plugin for FIM completions: https://github.com/ggml-org/llama.vim diff --git a/examples/llava/CMakeLists.txt b/examples/llava/CMakeLists.txt index 6409b4f5e6..27b6d27e5c 100644 --- a/examples/llava/CMakeLists.txt +++ b/examples/llava/CMakeLists.txt @@ -64,13 +64,7 @@ endif() add_executable(llama-llava-cli deprecation-warning.cpp) add_executable(llama-gemma3-cli deprecation-warning.cpp) add_executable(llama-minicpmv-cli deprecation-warning.cpp) - -set(TARGET llama-qwen2vl-cli) -add_executable(${TARGET} qwen2vl-cli.cpp) -set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME llama-qwen2vl-cli) -install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common llava ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_17) +add_executable(llama-qwen2vl-cli deprecation-warning.cpp) set(TARGET llama-mtmd-cli) add_executable(${TARGET} mtmd-cli.cpp) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index a5eb55f4d4..ad3e7df1d8 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -2825,15 +2825,18 @@ void clip_free(clip_ctx * ctx) { delete ctx; } +// deprecated size_t clip_embd_nbytes(const struct clip_ctx * ctx) { - return clip_n_patches(ctx) * clip_n_mmproj_embd(ctx) * sizeof(float); + const int32_t nx = ctx->vision_model.hparams.image_size; + const int32_t ny = ctx->vision_model.hparams.image_size; + return clip_embd_nbytes_by_img(ctx, nx, ny); } -size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_h, int img_w) { +size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_w, int img_h) { clip_image_f32 img; img.nx = img_w; img.ny = img_h; - return clip_n_patches_by_img(ctx, &img) * clip_n_mmproj_embd(ctx) * sizeof(float); + return clip_n_output_tokens(ctx, &img) * clip_n_mmproj_embd(ctx) * sizeof(float); } int32_t clip_get_image_size(const struct clip_ctx * ctx) { @@ -2863,14 +2866,37 @@ size_t get_clip_image_grid_size(const struct clip_ctx * ctx) { return ctx->vision_model.hparams.image_grid_pinpoints.size(); } +// deprecated int clip_n_patches(const struct clip_ctx * ctx) { clip_image_f32 img; img.nx = ctx->vision_model.hparams.image_size; img.ny = ctx->vision_model.hparams.image_size; - return clip_n_patches_by_img(ctx, &img); + return clip_n_output_tokens(ctx, &img); } +// deprecated int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * img) { + return clip_n_output_tokens(ctx, img); +} + +int clip_n_output_tokens_x(const struct clip_ctx * ctx, struct clip_image_f32 * img) { + const auto & params = ctx->vision_model.hparams; + const int n_total = clip_n_output_tokens(ctx, img); + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { + return img->nx / (params.patch_size * 2) + (int)(img->nx % params.patch_size > 0); + } + return n_total; +} + +int clip_n_output_tokens_y(const struct clip_ctx * ctx, struct clip_image_f32 * img) { + const auto & params = ctx->vision_model.hparams; + if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL || ctx->proj_type == PROJECTOR_TYPE_QWEN25VL) { + return img->ny / (params.patch_size * 2) + (int)(img->ny % params.patch_size > 0); + } + return 1; +} + +int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * img) { const auto & params = ctx->vision_model.hparams; int n_patches = (params.image_size / params.patch_size) * (params.image_size / params.patch_size); diff --git a/examples/llava/clip.h b/examples/llava/clip.h index 6ba42ad892..0a53bd8eb7 100644 --- a/examples/llava/clip.h +++ b/examples/llava/clip.h @@ -47,7 +47,7 @@ CLIP_API struct clip_ctx * clip_init(const char * fname, struct clip_context_par CLIP_API void clip_free(struct clip_ctx * ctx); CLIP_API size_t clip_embd_nbytes(const struct clip_ctx * ctx); -CLIP_API size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_h, int img_w); +CLIP_API size_t clip_embd_nbytes_by_img(const struct clip_ctx * ctx, int img_w, int img_h); CLIP_API int32_t clip_get_image_size (const struct clip_ctx * ctx); CLIP_API int32_t clip_get_patch_size (const struct clip_ctx * ctx); @@ -59,9 +59,20 @@ CLIP_API const char * clip_patch_merge_type(const struct clip_ctx * ctx); CLIP_API const int32_t * clip_image_grid(const struct clip_ctx * ctx); CLIP_API size_t get_clip_image_grid_size(const struct clip_ctx * ctx); -CLIP_API int clip_n_patches (const struct clip_ctx * ctx); -CLIP_API int clip_n_patches_by_img (const struct clip_ctx * ctx, struct clip_image_f32 * img); -CLIP_API int clip_n_mmproj_embd (const struct clip_ctx * ctx); +GGML_DEPRECATED(CLIP_API int clip_n_patches(const struct clip_ctx * ctx), + "use clip_n_output_tokens instead"); +GGML_DEPRECATED(CLIP_API int clip_n_patches_by_img(const struct clip_ctx * ctx, struct clip_image_f32 * img), + "use clip_n_output_tokens instead"); + +CLIP_API int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * img); + +// for M-RoPE, this will be the number of token positions in X and Y directions +// for other models, X will be the total number of tokens and Y will be 1 +CLIP_API int clip_n_output_tokens_x(const struct clip_ctx * ctx, struct clip_image_f32 * img); +CLIP_API int clip_n_output_tokens_y(const struct clip_ctx * ctx, struct clip_image_f32 * img); + +// this should be equal to the embedding dimension of the text model +CLIP_API int clip_n_mmproj_embd(const struct clip_ctx * ctx); CLIP_API int clip_uhd_num_image_embeds_col(struct clip_ctx * ctx_clip); CLIP_API void clip_add_load_image_size(struct clip_ctx * ctx_clip, struct clip_image_size * load_image_size); diff --git a/examples/llava/llava.cpp b/examples/llava/llava.cpp index 03a22cbb4c..c00d16aeff 100644 --- a/examples/llava/llava.cpp +++ b/examples/llava/llava.cpp @@ -112,7 +112,7 @@ static struct clip_image_grid_shape get_anyres_image_grid_shape(const std::pair< } // Take the image segments in a grid configuration and return the embeddings and the number of embeddings into preallocated memory (image_embd_out) -static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector & image_embd_v, struct clip_image_grid_shape grid_shape, float * image_embd_out, int * n_img_pos_out) { +static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector & image_embd_v, struct clip_image_grid_shape grid_shape, float * image_embd_out, int * n_img_pos_out, clip_image_f32 * img_input) { struct { struct ggml_context * ctx; } model; @@ -175,7 +175,7 @@ static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector model.ctx = ggml_init(params); - struct ggml_tensor * image_features = ggml_new_tensor_3d(model.ctx, GGML_TYPE_F32, clip_n_mmproj_embd(ctx_clip), clip_n_patches(ctx_clip), num_images - 1); // example: 4096 x 576 x 4 + struct ggml_tensor * image_features = ggml_new_tensor_3d(model.ctx, GGML_TYPE_F32, clip_n_mmproj_embd(ctx_clip), clip_n_output_tokens(ctx_clip, img_input), num_images - 1); // example: 4096 x 576 x 4 // ggml_tensor_printf(image_features,"image_features",__LINE__,false,false); // fill it with the image embeddings, ignoring the base for (size_t i = 1; i < num_images; i++) { @@ -214,8 +214,8 @@ static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector memcpy(image_embd_out, image_embd_v[0], clip_embd_nbytes(ctx_clip)); // main image as global context // append without newline tokens (default behavior in llava_arch when not using unpad ): - memcpy(image_embd_out + clip_n_patches(ctx_clip) * clip_n_mmproj_embd(ctx_clip), (float*)result->data, clip_embd_nbytes(ctx_clip) * (num_images-1)); // grid patches - *n_img_pos_out = static_cast(result->ne[1]+clip_n_patches(ctx_clip)); + memcpy(image_embd_out + clip_n_output_tokens(ctx_clip, img_input) * clip_n_mmproj_embd(ctx_clip), (float*)result->data, clip_embd_nbytes(ctx_clip) * (num_images-1)); // grid patches + *n_img_pos_out = static_cast(result->ne[1]+clip_n_output_tokens(ctx_clip, img_input)); // Debug: Test single segments // Current findings: sending base image, sending a segment embedding all works similar to python @@ -313,7 +313,7 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli image_embd + n_img_pos_out * clip_n_mmproj_embd(ctx_clip), image_embd_v[i], clip_embd_nbytes_by_img(ctx_clip, nx, ny)); - n_img_pos_out += clip_n_patches_by_img(ctx_clip, img_res); + n_img_pos_out += clip_n_output_tokens(ctx_clip, img_res); } *n_img_pos = n_img_pos_out; for (size_t i = 0; i < image_embd_v.size(); i++) { @@ -342,8 +342,8 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli } else if (strcmp(mm_patch_merge_type, "spatial_unpad") != 0) { // flat / default llava-1.5 type embedding - *n_img_pos = clip_n_patches(ctx_clip); clip_image_f32 * img_res = clip_image_f32_get_img(img_res_v.get(), 0); + *n_img_pos = clip_n_output_tokens(ctx_clip, img_res); bool encoded = clip_image_encode(ctx_clip, n_threads, img_res, image_embd); // image_embd shape is 576 x 4096 if (!encoded) { LOG_ERR("Unable to encode image\n"); @@ -381,7 +381,8 @@ static bool encode_image_with_clip(clip_ctx * ctx_clip, int n_threads, const cli struct clip_image_grid_shape grid_shape = get_anyres_image_grid_shape({img->nx,img->ny}, grid_pinpoints, image_size); int n_img_pos_out; - clip_llava_handle_patches(ctx_clip, image_embd_v, grid_shape, image_embd, &n_img_pos_out); + clip_image_f32 * img_input = clip_image_f32_get_img(img_res_v.get(), 0); + clip_llava_handle_patches(ctx_clip, image_embd_v, grid_shape, image_embd, &n_img_pos_out, img_input); *n_img_pos = n_img_pos_out; for (size_t i = 0; i < image_embd_v.size(); i++) { diff --git a/examples/llava/mtmd-cli.cpp b/examples/llava/mtmd-cli.cpp index 250e8c9a9e..4d857ca64e 100644 --- a/examples/llava/mtmd-cli.cpp +++ b/examples/llava/mtmd-cli.cpp @@ -136,39 +136,6 @@ struct mtmd_cli_context { } }; -struct decode_embd_batch { - std::vector pos; - std::vector n_seq_id; - std::vector seq_id_0; - std::vector seq_ids; - std::vector logits; - llama_batch batch; - decode_embd_batch(float * embd, int32_t n_tokens, llama_pos pos_0, llama_seq_id seq_id) { - pos .resize(n_tokens); - n_seq_id.resize(n_tokens); - seq_ids .resize(n_tokens + 1); - logits .resize(n_tokens); - seq_id_0.resize(1); - seq_id_0[0] = seq_id; - seq_ids [n_tokens] = nullptr; - batch = { - /*n_tokens =*/ n_tokens, - /*tokens =*/ nullptr, - /*embd =*/ embd, - /*pos =*/ pos.data(), - /*n_seq_id =*/ n_seq_id.data(), - /*seq_id =*/ seq_ids.data(), - /*logits =*/ logits.data(), - }; - for (int i = 0; i < n_tokens; i++) { - batch.pos [i] = pos_0 + i; - batch.n_seq_id[i] = 1; - batch.seq_id [i] = seq_id_0.data(); - batch.logits [i] = false; - } - } -}; - static int generate_response(mtmd_cli_context & ctx, common_sampler * smpl, int n_predict) { llama_tokens generated_tokens; for (int i = 0; i < n_predict; i++) { @@ -243,7 +210,7 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, std::vect return 1; } - ctx.n_past += mtmd_helper_get_n_tokens(chunks); + ctx.n_past += mtmd_helper_get_n_pos(chunks); return 0; } @@ -371,6 +338,7 @@ int main(int argc, char ** argv) { } } if (g_is_interrupted) LOG("\nInterrupted by user\n"); + LOG("\n\n"); llama_perf_context_print(ctx.lctx); return g_is_interrupted ? 130 : 0; } diff --git a/examples/llava/mtmd.cpp b/examples/llava/mtmd.cpp index f95f050356..7081fd7352 100644 --- a/examples/llava/mtmd.cpp +++ b/examples/llava/mtmd.cpp @@ -40,11 +40,14 @@ struct mtmd_context { llama_token tok_sli_img_end = LLAMA_TOKEN_NULL; // single slice llama_token tok_row_end = LLAMA_TOKEN_NULL; // end of row + bool use_mrope = false; // for Qwen2VL, we need to use M-RoPE + // TODO @ngxson : add timings mtmd_context(const char * mmproj_fname, const llama_model * text_model, const mtmd_context_params & ctx_params) : + text_model (text_model), print_timings(ctx_params.print_timings), n_threads (ctx_params.n_threads), image_marker (ctx_params.image_marker) @@ -56,9 +59,8 @@ struct mtmd_context { if (!ctx_clip) { throw std::runtime_error(string_format("Failed to load CLIP model from %s\n", mmproj_fname)); } - this->text_model = text_model; - GGML_ASSERT(!clip_is_qwen2vl(ctx_clip) && "Qwen2VL model is not supported yet, use llama-qwen2vl-cli instead"); + use_mrope = clip_is_qwen2vl(ctx_clip); int minicpmv_version = clip_is_minicpmv(ctx_clip); if (minicpmv_version == 2) { @@ -126,6 +128,7 @@ struct mtmd_image_tokens_data { struct mtmd_image_tokens { uint32_t nx; // number of tokens in x direction uint32_t ny; // number of tokens in y direction + bool use_mrope_pos = false; // use M-RoPE position counting (the whole image is 1 temporal position) uint32_t n_tokens() const { return nx * ny; } clip_image_f32_batch batch_f32; // preprocessed image patches std::string id; // optional user-defined ID, useful for KV cache tracking @@ -202,6 +205,13 @@ int32_t mtmd_tokenize(mtmd_context * ctx, string_replace_all(prompt_modified, ctx->image_marker, marker_modified); } + else if (proj_type == PROJECTOR_TYPE_QWEN2VL || proj_type == PROJECTOR_TYPE_QWEN25VL) { + // <|vision_start|> ... (image embeddings) ... <|vision_end|> + marker_modified = "<|vision_start|>" + ctx->image_marker + "<|vision_end|>"; + string_replace_all(prompt_modified, ctx->image_marker, marker_modified); + + } + // llava-1.5, llava-1.6, Yi-VL, Yi-34B, granite: don't need to add prefix and suffix std::vector parts = string_split_str(prompt_modified, ctx->image_marker); @@ -226,7 +236,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, for (auto & entry : batch_f32.entries) { mtmd_image_tokens_ptr image_tokens(new mtmd_image_tokens); - image_tokens->nx = clip_n_patches_by_img(ctx->ctx_clip, entry.get()); + image_tokens->nx = clip_n_output_tokens(ctx->ctx_clip, entry.get()); image_tokens->ny = 1; image_tokens->batch_f32.entries.push_back(std::move(entry)); image_tokens->id = id; @@ -322,12 +332,20 @@ int32_t mtmd_tokenize(mtmd_context * ctx, } else { size_t n_tokens = 0; for (const auto & entry : batch_f32.entries) { - n_tokens += clip_n_patches_by_img(ctx->ctx_clip, entry.get()); + n_tokens += clip_n_output_tokens(ctx->ctx_clip, entry.get()); } mtmd_image_tokens_ptr image_tokens(new mtmd_image_tokens); - image_tokens->nx = n_tokens; - image_tokens->ny = 1; // TODO + if (ctx->use_mrope) { + // for Qwen2VL, we need this information for M-RoPE decoding positions + image_tokens->nx = clip_n_output_tokens_x(ctx->ctx_clip, batch_f32.entries[0].get()); + image_tokens->ny = clip_n_output_tokens_y(ctx->ctx_clip, batch_f32.entries[0].get()); + image_tokens->use_mrope_pos = true; + } else { + // other models, we only need the total number of tokens + image_tokens->nx = n_tokens; + image_tokens->ny = 1; + } image_tokens->batch_f32 = std::move(batch_f32); image_tokens->id = bitmaps[i_img].id; // optional @@ -372,6 +390,13 @@ std::string mtmd_image_tokens_get_id(const mtmd_image_tokens * image_tokens) { return image_tokens->id; } +llama_pos mtmd_image_tokens_get_n_pos(const mtmd_image_tokens * image_tokens) { + if (image_tokens->use_mrope_pos) { + return 1; // for M-RoPE, the whole image is 1 in temporal dimension + } + return image_tokens->n_tokens(); +} + int32_t mtmd_encode(mtmd_context * ctx, const mtmd_image_tokens * image_tokens) { int n_mmproj_embd = clip_n_mmproj_embd(ctx->ctx_clip); ctx->image_embd_v.resize(image_tokens->n_tokens() * n_mmproj_embd); @@ -389,7 +414,7 @@ int32_t mtmd_encode(mtmd_context * ctx, const mtmd_image_tokens * image_tokens) // TODO @ngxson : llava does not support batched encoding ; this should be fixed inside clip_image_batch_encode() const auto & entries = image_tokens->batch_f32.entries; for (size_t i = 0; i < entries.size(); i++) { - int n_tokens_per_image = clip_n_patches_by_img(ctx->ctx_clip, entries[i].get()); + int n_tokens_per_image = clip_n_output_tokens(ctx->ctx_clip, entries[i].get()); ok = clip_image_encode( ctx->ctx_clip, ctx->n_threads, @@ -417,7 +442,7 @@ size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks) { if (chunk.type == MTMD_INPUT_CHUNK_TYPE_TEXT) { n_tokens += chunk.tokens_text.size(); } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { - n_tokens += chunk.tokens_image->n_tokens(); + n_tokens += mtmd_image_tokens_get_n_tokens(chunk.tokens_image.get()); } else { GGML_ASSERT(false && "chunk type not supported"); } @@ -425,22 +450,38 @@ size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks) { return n_tokens; } +llama_pos mtmd_helper_get_n_pos(mtmd_input_chunks & chunks) { + llama_pos n_pos = 0; + for (auto & chunk : chunks) { + if (chunk.type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + n_pos += chunk.tokens_text.size(); + } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + n_pos += mtmd_image_tokens_get_n_pos(chunk.tokens_image.get()); + } else { + GGML_ASSERT(false && "chunk type not supported"); + } + } + return n_pos; +} + // helper struct to make working with embd batch easier // note: this will be removed after llama_batch_ext refactoring struct decode_embd_batch { + int n_pos_per_embd; + int n_mmproj_embd; std::vector pos; + std::vector pos_view; // used by mrope std::vector n_seq_id; std::vector seq_id_0; std::vector seq_ids; std::vector logits; llama_batch batch; - decode_embd_batch(float * embd, int32_t n_tokens, llama_pos pos_0, llama_seq_id seq_id) { - pos .resize(n_tokens); + decode_embd_batch(float * embd, int32_t n_tokens, int n_pos_per_embd, int n_mmproj_embd) : n_pos_per_embd(n_pos_per_embd), n_mmproj_embd(n_mmproj_embd) { + pos .resize(n_tokens * n_pos_per_embd); n_seq_id.resize(n_tokens); seq_ids .resize(n_tokens + 1); logits .resize(n_tokens); seq_id_0.resize(1); - seq_id_0[0] = seq_id; seq_ids [n_tokens] = nullptr; batch = { /*n_tokens =*/ n_tokens, @@ -451,13 +492,64 @@ struct decode_embd_batch { /*seq_id =*/ seq_ids.data(), /*logits =*/ logits.data(), }; - for (int i = 0; i < n_tokens; i++) { + } + + void set_position_normal(llama_pos pos_0, llama_seq_id seq_id) { + seq_id_0[0] = seq_id; + for (int i = 0; i < batch.n_tokens; i++) { batch.pos [i] = pos_0 + i; batch.n_seq_id[i] = 1; batch.seq_id [i] = seq_id_0.data(); batch.logits [i] = false; } } + + void set_position_mrope(llama_pos pos_0, int nx, int ny, llama_seq_id seq_id) { + GGML_ASSERT(n_pos_per_embd == 4); + seq_id_0[0] = seq_id; + for (int y = 0; y < ny; y++) { + for (int x = 0; x < nx; x++) { + int i = y * nx + x; + pos[i ] = pos_0; + pos[i + batch.n_tokens ] = pos_0 + y; + pos[i + batch.n_tokens * 2] = pos_0 + x; + pos[i + batch.n_tokens * 3] = 0; // last pos dim is unused + } + } + for (int i = 0; i < batch.n_tokens; i++) { + batch.n_seq_id[i] = 1; + batch.seq_id [i] = seq_id_0.data(); + batch.logits [i] = false; + } + } + + llama_batch get_view(int offset, int n_tokens) { + llama_pos * pos_ptr; + pos_view.clear(); + pos_view.resize(n_tokens * n_pos_per_embd); + if (n_pos_per_embd > 1) { + // mrope + // for example, with layout of src: 1234...1234...1234...1234... + // offset 2 will give us dst: 34...34...34...34... + for (int i = 0; i < n_pos_per_embd; i++) { + auto src = pos.begin() + i * batch.n_tokens + offset; + pos_view.insert(pos_view.end(), src, src + n_tokens); + } + pos_ptr = pos_view.data(); + } else { + // normal + pos_ptr = pos.data() + offset; + } + return { + /*n_tokens =*/ n_tokens, + /*tokens =*/ nullptr, + /*embd =*/ batch.embd + offset * n_mmproj_embd, + /*pos =*/ pos_ptr, + /*n_seq_id =*/ batch.n_seq_id + offset, + /*seq_id =*/ batch.seq_id + offset, + /*logits =*/ batch.logits + offset, + }; + } }; int32_t mtmd_helper_eval(mtmd_context * ctx, @@ -470,6 +562,7 @@ int32_t mtmd_helper_eval(mtmd_context * ctx, llama_pos n_past = pos0; llama_batch text_batch = llama_batch_init(n_batch, 0, 1); int n_mmproj_embd = clip_n_mmproj_embd(ctx->ctx_clip); + int n_pos_per_embd = mtmd_decode_use_mrope(ctx) ? 4 : 1; for (auto & chunk : chunks) { bool is_last = &chunk == &chunks.back(); @@ -517,6 +610,16 @@ int32_t mtmd_helper_eval(mtmd_context * ctx, int32_t i_batch = 0; int32_t n_img_batches = GGML_PAD(n_tokens, n_batch) / n_batch; float * embd = mtmd_get_output_embd(ctx); + decode_embd_batch batch_embd(embd, n_tokens, n_pos_per_embd, n_mmproj_embd); + + const int nx = mtmd_image_tokens_get_nx(chunk.tokens_image.get()); + const int ny = mtmd_image_tokens_get_ny(chunk.tokens_image.get()); + + if (mtmd_decode_use_mrope(ctx)) { + batch_embd.set_position_mrope(n_past, nx, ny, seq_id); + } else { + batch_embd.set_position_normal(n_past, seq_id); + } if (mtmd_decode_use_non_causal(ctx)) { llama_set_causal_attn(lctx, false); @@ -524,15 +627,14 @@ int32_t mtmd_helper_eval(mtmd_context * ctx, } while (i_batch < n_img_batches) { // split into batches - int32_t pos_offset = i_batch*n_batch; - int32_t n_tokens_batch = std::min(n_batch, n_tokens - pos_offset); - float * embd_batch = embd + pos_offset*n_mmproj_embd; - decode_embd_batch batch_img(embd_batch, n_tokens_batch, n_past, 0); + int pos_offset = i_batch*n_batch; + int n_tokens_batch = std::min(n_batch, n_tokens - pos_offset); + llama_batch batch_embd_view = batch_embd.get_view(pos_offset, n_tokens_batch); - printf("decoding image batch %d/%d, n_tokens_batch = %d\n", i_batch+1, n_img_batches, n_tokens_batch); + LOG_INF("decoding image batch %d/%d, n_tokens_batch = %d\n", i_batch+1, n_img_batches, n_tokens_batch); int64_t t1 = ggml_time_ms(); - ret = llama_decode(lctx, batch_img.batch); + ret = llama_decode(lctx, batch_embd_view); if (ret != 0) { LOG_ERR("failed to decode image\n"); llama_set_causal_attn(lctx, true); // restore causal attn @@ -545,9 +647,11 @@ int32_t mtmd_helper_eval(mtmd_context * ctx, } i_batch++; - n_past += n_tokens_batch; } + // for mrope, one image is one single **temporal** position + n_past += mtmd_decode_use_mrope(ctx) ? 1 : n_tokens; + if (mtmd_decode_use_non_causal(ctx)) { llama_set_causal_attn(lctx, true); } @@ -595,6 +699,10 @@ bool mtmd_decode_use_non_causal(mtmd_context * ctx) { return false; } +bool mtmd_decode_use_mrope(mtmd_context * ctx) { + return ctx->use_mrope; +} + void mtmd_image_tokens_deleter::operator()(mtmd_image_tokens * val) { mtmd_image_tokens_free(val); } diff --git a/examples/llava/mtmd.h b/examples/llava/mtmd.h index 78be192dd6..6805e5e481 100644 --- a/examples/llava/mtmd.h +++ b/examples/llava/mtmd.h @@ -102,6 +102,7 @@ MTMD_API size_t mtmd_image_tokens_get_n_tokens(const mtmd_image_tokens * im MTMD_API size_t mtmd_image_tokens_get_nx(const mtmd_image_tokens * image_tokens); MTMD_API size_t mtmd_image_tokens_get_ny(const mtmd_image_tokens * image_tokens); MTMD_API std::string mtmd_image_tokens_get_id(const mtmd_image_tokens * image_tokens); +MTMD_API llama_pos mtmd_image_tokens_get_n_pos(const mtmd_image_tokens * image_tokens); // number of temporal positions (always 1 for M-RoPE, n_tokens otherwise) MTMD_API void mtmd_image_tokens_free(mtmd_image_tokens * image_tokens); // returns 0 on success @@ -114,15 +115,21 @@ MTMD_API float * mtmd_get_output_embd(mtmd_context * ctx); // whether we need to set non-causal mask before llama_decode MTMD_API bool mtmd_decode_use_non_causal(mtmd_context * ctx); +// whether the current model use M-RoPE for llama_decode +MTMD_API bool mtmd_decode_use_mrope(mtmd_context * ctx); + // // helper functions (can be implemented based on other functions) // -// helper to count the total number of tokens from a list of chunks, useful to keep track of n_past +// helper to count the total number of tokens from a list of chunks, useful to keep track of KV cache MTMD_API size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks); +// helper to count the total position of tokens from a list of chunks, useful to keep track of n_past +MTMD_API llama_pos mtmd_helper_get_n_pos(mtmd_input_chunks & chunks); + // helper function that automatically: // 1. run llama_decode() on text chunks // 2. run mtmd_encode() on image chunks, then mtmd_get_output_embd() and then llama_decode() diff --git a/examples/llava/qwen2vl-cli.cpp b/examples/llava/qwen2vl-test.cpp similarity index 99% rename from examples/llava/qwen2vl-cli.cpp rename to examples/llava/qwen2vl-test.cpp index 1e54851ea0..7f9e3dca88 100644 --- a/examples/llava/qwen2vl-cli.cpp +++ b/examples/llava/qwen2vl-test.cpp @@ -27,6 +27,8 @@ #include #include +// THIS FILE IS ONLY USED FOR TESTING THE QWEN2VL MODEL +// IT IS NOT A PRODUCTION CODE static bool qwen2vl_eval_image_embed(llama_context * ctx_llama, const struct llava_image_embed * image_embed, int n_batch, int * n_past, int * st_pos_id, struct clip_image_size * image_size) { diff --git a/examples/llava/tests.sh b/examples/llava/tests.sh index 4002f9d531..75604315cf 100755 --- a/examples/llava/tests.sh +++ b/examples/llava/tests.sh @@ -54,8 +54,8 @@ add_test "llama-mtmd-cli" "ibm-research/granite-vision-3.2-2b-GGUF:Q4_K_M" add_test "llama-mtmd-cli" "second-state/MiniCPM-Llama3-V-2_5-GGUF:Q2_K" # model from openbmb is corrupted add_test "llama-mtmd-cli" "openbmb/MiniCPM-V-2_6-gguf:Q2_K" add_test "llama-mtmd-cli" "openbmb/MiniCPM-o-2_6-gguf:Q4_0" -add_test "llama-qwen2vl-cli" "bartowski/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M" -add_test "llama-qwen2vl-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" +add_test "llama-mtmd-cli" "bartowski/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M" +add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" # to test the big models, run: ./tests.sh big add_test_big "llama-mtmd-cli" "ggml-org/pixtral-12b-GGUF:Q4_K_M" From 7d3af70b089bb349b5d17eb01839224c99ec1952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Tue, 29 Apr 2025 13:25:53 +0200 Subject: [PATCH 039/126] llama : llm_type order by size (#13177) --- src/llama-model.cpp | 8 ++++---- src/llama-model.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 2e0eb036e0..759669c178 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -43,11 +43,13 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_770M: return "770M"; case LLM_TYPE_780M: return "780M"; case LLM_TYPE_0_5B: return "0.5B"; + case LLM_TYPE_0_6B: return "0.6B"; case LLM_TYPE_1B: return "1B"; case LLM_TYPE_1_3B: return "1.3B"; case LLM_TYPE_1_4B: return "1.4B"; case LLM_TYPE_1_5B: return "1.5B"; case LLM_TYPE_1_6B: return "1.6B"; + case LLM_TYPE_1_7B: return "1.7B"; case LLM_TYPE_1_8B: return "1.8B"; case LLM_TYPE_2B: return "2B"; case LLM_TYPE_2_8B: return "2.8B"; @@ -66,6 +68,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_15B: return "15B"; case LLM_TYPE_16B: return "16B"; case LLM_TYPE_20B: return "20B"; + case LLM_TYPE_27B: return "27B"; case LLM_TYPE_30B: return "30B"; case LLM_TYPE_32B: return "32B"; case LLM_TYPE_34B: return "34B"; @@ -74,6 +77,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_65B: return "65B"; case LLM_TYPE_70B: return "70B"; case LLM_TYPE_236B: return "236B"; + case LLM_TYPE_290B: return "290B"; case LLM_TYPE_314B: return "314B"; case LLM_TYPE_671B: return "671B"; case LLM_TYPE_SMALL: return "0.1B"; @@ -88,12 +92,8 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_16x3_8B: return "16x3.8B"; case LLM_TYPE_10B_128x3_66B: return "10B+128x3.66B"; case LLM_TYPE_57B_A14B: return "57B.A14B"; - case LLM_TYPE_27B: return "27B"; - case LLM_TYPE_290B: return "290B"; case LLM_TYPE_17B_16E: return "17Bx16E (Scout)"; case LLM_TYPE_17B_128E: return "17Bx128E (Maverick)"; - case LLM_TYPE_0_6B: return "0.6B"; - case LLM_TYPE_1_7B: return "1.7B"; case LLM_TYPE_30B_A3B: return "30B.A3B"; case LLM_TYPE_235B_A22B: return "235B.A22B"; default: return "?B"; diff --git a/src/llama-model.h b/src/llama-model.h index 167632e186..95eca00266 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -39,11 +39,13 @@ enum llm_type { LLM_TYPE_770M, LLM_TYPE_780M, LLM_TYPE_0_5B, + LLM_TYPE_0_6B, LLM_TYPE_1B, LLM_TYPE_1_3B, LLM_TYPE_1_4B, LLM_TYPE_1_5B, LLM_TYPE_1_6B, + LLM_TYPE_1_7B, LLM_TYPE_1_8B, LLM_TYPE_2B, LLM_TYPE_2_8B, @@ -62,6 +64,7 @@ enum llm_type { LLM_TYPE_15B, LLM_TYPE_16B, LLM_TYPE_20B, + LLM_TYPE_27B, LLM_TYPE_30B, LLM_TYPE_32B, LLM_TYPE_34B, @@ -70,6 +73,7 @@ enum llm_type { LLM_TYPE_65B, LLM_TYPE_70B, LLM_TYPE_236B, + LLM_TYPE_290B, LLM_TYPE_314B, LLM_TYPE_671B, LLM_TYPE_SMALL, @@ -84,12 +88,8 @@ enum llm_type { LLM_TYPE_16x3_8B, LLM_TYPE_10B_128x3_66B, LLM_TYPE_57B_A14B, - LLM_TYPE_27B, - LLM_TYPE_290B, LLM_TYPE_17B_16E, // llama4 Scout LLM_TYPE_17B_128E, // llama4 Maverick - LLM_TYPE_0_6B, - LLM_TYPE_1_7B, LLM_TYPE_30B_A3B, LLM_TYPE_235B_A22B, }; From cdf76586b23c67abd3ca064ee2c084c57ae240bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 29 Apr 2025 16:00:27 +0200 Subject: [PATCH 040/126] CUDA: fix non-cont. inputs for batched mat mul (#13155) --- ggml/src/ggml-cuda/convert.cu | 53 +++++++++++++++++++------ ggml/src/ggml-cuda/convert.cuh | 12 +++++- ggml/src/ggml-cuda/ggml-cuda.cu | 70 ++++++++++++++++++++------------- src/llama-model.cpp | 1 - 4 files changed, 94 insertions(+), 42 deletions(-) diff --git a/ggml/src/ggml-cuda/convert.cu b/ggml/src/ggml-cuda/convert.cu index a224ec0e12..c6dec4276b 100644 --- a/ggml/src/ggml-cuda/convert.cu +++ b/ggml/src/ggml-cuda/convert.cu @@ -1,6 +1,8 @@ #include "convert.cuh" #include "dequantize.cuh" +#include + #define CUDA_Q8_0_NE_ALIGN 2048 template @@ -570,30 +572,46 @@ static void dequantize_row_iq4_xs_cuda(const void * vx, dst_t * y, const int64_t } template -static __global__ void convert_unary(const void * __restrict__ vx, dst_t * __restrict__ y, const int64_t k) { - const int64_t i = (int64_t)blockDim.x*blockIdx.x + threadIdx.x; +static __global__ void convert_unary( + const void * __restrict__ vx, dst_t * __restrict__ y, const int64_t ne00, const int64_t ne01, const int64_t ne02, + const int64_t s01, const int64_t s02, const int64_t s03) { + const int64_t i00 = (int64_t)blockDim.x*blockIdx.x + threadIdx.x; - if (i >= k) { + if (i00 >= ne00) { return; } + const int64_t i01 = blockIdx.y; + const int64_t i02 = blockIdx.z % ne02; + const int64_t i03 = blockIdx.z / ne02; + const src_t * x = (const src_t *) vx; - y[i] = float(x[i]); + const int64_t ix = i03*s03 + i02*s02 + i01*s01 + i00; + const int64_t iy = ((i03*ne02 + i02)*ne01 + i01)*ne00 + i00; + y[iy] = float(x[ix]); } template -static void convert_unary_cuda(const void * __restrict__ vx, dst_t * __restrict__ y, const int64_t k, cudaStream_t stream) { - const int num_blocks = (k + CUDA_DEQUANTIZE_BLOCK_SIZE - 1) / CUDA_DEQUANTIZE_BLOCK_SIZE; - convert_unary<<>>(vx, y, k); +static void convert_unary_cuda(const void * vx, dst_t * y, + const int64_t ne00, const int64_t ne01, const int64_t ne02, const int64_t ne03, + const int64_t s01, const int64_t s02, const int64_t s03, cudaStream_t stream) { + const dim3 num_blocks((ne00 + CUDA_DEQUANTIZE_BLOCK_SIZE - 1) / CUDA_DEQUANTIZE_BLOCK_SIZE, ne01, ne02*ne03); + convert_unary<<>> + (vx, y, ne00, ne01, ne02, s01, s02, s03); +} + +template +static void convert_unary_cont_cuda(const void * vx, dst_t * y, const int64_t k, cudaStream_t stream) { + convert_unary_cuda(vx, y, k, 1, 1, 1, k, k, k, stream); } to_bf16_cuda_t ggml_get_to_bf16_cuda(ggml_type type) { switch (type) { case GGML_TYPE_F32: - return convert_unary_cuda; + return convert_unary_cont_cuda; case GGML_TYPE_F16: - return convert_unary_cuda; + return convert_unary_cont_cuda; default: return nullptr; } @@ -643,9 +661,9 @@ to_fp16_cuda_t ggml_get_to_fp16_cuda(ggml_type type) { case GGML_TYPE_IQ3_S: return dequantize_row_iq3_s_cuda; case GGML_TYPE_F32: - return convert_unary_cuda; + return convert_unary_cont_cuda; case GGML_TYPE_BF16: - return convert_unary_cuda; + return convert_unary_cont_cuda; default: return nullptr; } @@ -692,7 +710,18 @@ to_fp32_cuda_t ggml_get_to_fp32_cuda(ggml_type type) { case GGML_TYPE_IQ3_S: return dequantize_row_iq3_s_cuda; case GGML_TYPE_F16: - return convert_unary_cuda; + return convert_unary_cont_cuda; + case GGML_TYPE_BF16: + return convert_unary_cont_cuda; + default: + return nullptr; + } +} + +to_fp16_nc_cuda_t ggml_get_to_fp16_nc_cuda(ggml_type type) { + switch (type) { + case GGML_TYPE_F32: + return convert_unary_cuda; case GGML_TYPE_BF16: return convert_unary_cuda; default: diff --git a/ggml/src/ggml-cuda/convert.cuh b/ggml/src/ggml-cuda/convert.cuh index 411a13cf12..b65b98e08e 100644 --- a/ggml/src/ggml-cuda/convert.cuh +++ b/ggml/src/ggml-cuda/convert.cuh @@ -3,7 +3,7 @@ #define CUDA_DEQUANTIZE_BLOCK_SIZE 256 template -using to_t_cuda_t = void (*)(const void * __restrict__ x, T * __restrict__ y, int64_t k, cudaStream_t stream); +using to_t_cuda_t = void (*)(const void * x, T * y, int64_t k, cudaStream_t stream); typedef to_t_cuda_t to_fp32_cuda_t; typedef to_t_cuda_t to_fp16_cuda_t; @@ -14,3 +14,13 @@ to_fp16_cuda_t ggml_get_to_fp16_cuda(ggml_type type); to_bf16_cuda_t ggml_get_to_bf16_cuda(ggml_type type); to_fp32_cuda_t ggml_get_to_fp32_cuda(ggml_type type); + +// TODO more general support for non-contiguous inputs + +template +using to_t_nc_cuda_t = void (*)(const void * x, T * y, + int64_t ne00, int64_t ne01, int64_t ne02, int64_t ne03, + int64_t s01, int64_t s02, int64_t s03, cudaStream_t stream); + +typedef to_t_nc_cuda_t to_fp16_nc_cuda_t; +to_fp16_nc_cuda_t ggml_get_to_fp16_nc_cuda(ggml_type type); diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 19b9ce7231..fba8cb6565 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1720,15 +1720,15 @@ static __global__ void k_compute_batched_ptrs( size_t nb12, size_t nb13, size_t nbd2, size_t nbd3, int64_t r2, int64_t r3) { - int64_t i13 = blockIdx.x * blockDim.x + threadIdx.x; - int64_t i12 = blockIdx.y * blockDim.y + threadIdx.y; + const int64_t i13 = blockIdx.x * blockDim.x + threadIdx.x; + const int64_t i12 = blockIdx.y * blockDim.y + threadIdx.y; if (i13 >= ne13 || i12 >= ne12) { return; } - int64_t i03 = i13 / r3; - int64_t i02 = i12 / r2; + const int64_t i03 = i13 / r3; + const int64_t i02 = i12 / r2; ptrs_src[0*ne23 + i12 + i13*ne12] = (const char *) src0_as_f16 + i02*nb02 + i03*nb03; ptrs_src[1*ne23 + i12 + i13*ne12] = (const char *) src1_as_f16 + i12*nb12 + i13*nb13; @@ -1742,6 +1742,10 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co GGML_ASSERT(ggml_backend_buffer_is_cuda(src0->buffer)); GGML_ASSERT(src0->type == GGML_TYPE_F16); + // Byte offsets and tensor dimensions are currently used in an inconsistent way for dst. + // As long as dst is contiguous this does not matter though. + GGML_ASSERT(ggml_is_contiguous(dst)); + GGML_TENSOR_BINARY_OP_LOCALS const int64_t ne_dst = ggml_nelements(dst); @@ -1750,21 +1754,31 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co CUBLAS_CHECK(cublasSetStream(ctx.cublas_handle(), main_stream)); - void * src0_ddq = src0->data; - half * src0_f16 = (half *) src0_ddq; - float * src1_ddf = (float *) src1->data; - float * dst_ddf = (float *) dst->data; + const half * src0_f16 = (const half *) src0->data; + float * dst_ddf = (float *) dst->data; + + const half * src1_f16 = (const half *) src1->data; + const size_t ts_src1 = ggml_type_size(src1->type); + GGML_ASSERT(nb10 == ts_src1); + int64_t s11 = nb11 / ts_src1; + int64_t s12 = nb12 / ts_src1; + int64_t s13 = nb13 / ts_src1; + ggml_cuda_pool_alloc src1_f16_alloc(ctx.pool()); // convert src1 to fp16 - ggml_cuda_pool_alloc src1_f16_alloc(ctx.pool()); if (src1->type != GGML_TYPE_F16) { - const to_fp16_cuda_t to_fp16_cuda = ggml_get_to_fp16_cuda(src1->type); + const to_fp16_nc_cuda_t to_fp16_cuda = ggml_get_to_fp16_nc_cuda(src1->type); const int64_t ne_src1 = ggml_nelements(src1); src1_f16_alloc.alloc(ne_src1); GGML_ASSERT(to_fp16_cuda != nullptr); - to_fp16_cuda(src1_ddf, src1_f16_alloc.get(), ne_src1, main_stream); + + to_fp16_cuda(src1_f16, src1_f16_alloc.get(), ne10, ne11, ne12, ne13, s11, s12, s13, main_stream); + + src1_f16 = src1_f16_alloc.get(); + s11 = ne10; + s12 = ne11*s11; + s13 = ne12*s12; } - half * src1_f16 = src1->type == GGML_TYPE_F16 ? (half *) src1_ddf : src1_f16_alloc.get(); ggml_cuda_pool_alloc dst_f16(ctx.pool()); char * dst_t; @@ -1824,13 +1838,13 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co int i02 = i12 / r2; CUBLAS_CHECK( - cublasGemmEx(g_cublas_handles[g_main_device], CUBLAS_OP_T, CUBLAS_OP_N, - ne01, ne11, ne10, - alpha, (const char *) src0_as_f16 + i02*src0->nb[2] + i03*src0->nb[3] , CUDA_R_16F, nb01/sizeof(half), - (const char *) src1_as_f16 + i12*src1->nb[2]/2 + i13*src1->nb[3]/2, CUDA_R_16F, nb11/sizeof(float), - beta, ( char *) dst_t + i12*nbd2 + i13*nbd3, cu_data_type, ne01, - cu_compute_type, - CUBLAS_GEMM_DEFAULT_TENSOR_OP)); + cublasGemmEx(ctx.cublas_handle(), CUBLAS_OP_T, CUBLAS_OP_N, + ne01, ne11, ne10, + alpha, (const char *) src0_f16 + i03*nb03 + i02*nb02, CUDA_R_16F, nb01/sizeof(half), + src1_f16 + i13*s13 + i12*s12, CUDA_R_16F, s11, + beta, ( char *) dst_t + i13*nbd3 + i12*nbd2, cu_data_type, ne0, + cu_compute_type, + CUBLAS_GEMM_DEFAULT_TENSOR_OP)); } } } @@ -1841,15 +1855,15 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co CUBLAS_CHECK( cublasGemmStridedBatchedEx(ctx.cublas_handle(), CUBLAS_OP_T, CUBLAS_OP_N, ne01, ne11, ne10, - alpha, (const char *) src0_f16, CUDA_R_16F, nb01/nb00, nb02/nb00, // strideA - (const char *) src1_f16, CUDA_R_16F, nb11/nb10, nb12/nb10, // strideB - beta, ( char *) dst_t, cu_data_type, ne01, nb2/nb0, // strideC + alpha, src0_f16, CUDA_R_16F, nb01/nb00, nb02/nb00, // strideA + src1_f16, CUDA_R_16F, s11, s12, // strideB + beta, dst_t, cu_data_type, ne0, ne1*ne0, // strideC ne12*ne13, cu_compute_type, CUBLAS_GEMM_DEFAULT_TENSOR_OP)); } else { // use cublasGemmBatchedEx - const int ne23 = ne12*ne13; + const int64_t ne23 = ne12*ne13; ggml_cuda_pool_alloc ptrs_src(ctx.pool(), 2*ne23); ggml_cuda_pool_alloc< void *> ptrs_dst(ctx.pool(), 1*ne23); @@ -1861,8 +1875,8 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co ne12, ne13, ne23, nb02, nb03, - src1->type == GGML_TYPE_F16 ? nb12 : nb12/2, - src1->type == GGML_TYPE_F16 ? nb13 : nb13/2, + src1->type == GGML_TYPE_F16 ? nb12 : s12*sizeof(half), + src1->type == GGML_TYPE_F16 ? nb13 : s13*sizeof(half), nbd2, nbd3, r2, r3); CUDA_CHECK(cudaGetLastError()); @@ -1871,8 +1885,8 @@ static void ggml_cuda_mul_mat_batched_cublas(ggml_backend_cuda_context & ctx, co cublasGemmBatchedEx(ctx.cublas_handle(), CUBLAS_OP_T, CUBLAS_OP_N, ne01, ne11, ne10, alpha, (const void **) (ptrs_src.get() + 0*ne23), CUDA_R_16F, nb01/nb00, - (const void **) (ptrs_src.get() + 1*ne23), CUDA_R_16F, nb11/nb10, - beta, ( void **) (ptrs_dst.get() + 0*ne23), cu_data_type, ne01, + (const void **) (ptrs_src.get() + 1*ne23), CUDA_R_16F, s11, + beta, ( void **) (ptrs_dst.get() + 0*ne23), cu_data_type, ne0, ne23, cu_compute_type, CUBLAS_GEMM_DEFAULT_TENSOR_OP)); @@ -1936,7 +1950,7 @@ static void ggml_cuda_mul_mat(ggml_backend_cuda_context & ctx, const ggml_tensor } else if (!split && use_mul_mat_vec_q) { ggml_cuda_mul_mat_vec_q(ctx, src0, src1, nullptr, dst); } else if (!split && src0->type == GGML_TYPE_F16 && (src1->type == GGML_TYPE_F16 || !any_gpus_with_slow_fp16) && - dst->op_params[0] == GGML_PREC_DEFAULT && !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) { + !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) { // general KQ + KQV multi-batch without FlashAttention ggml_cuda_mul_mat_batched_cublas(ctx, src0, src1, dst); } else if (use_mul_mat_vec) { diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 759669c178..822e2bb2cf 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -10195,7 +10195,6 @@ struct llm_build_deepseek2 : public llm_graph_context { // {n_embd_head_qk_nope, kv_lora_rank, n_head} x {n_embd_head_qk_nope, n_tokens, n_head} ggml_tensor * q_nope_absorbed = ggml_mul_mat(ctx0, model.layers[il].wk_b, q_nope); - ggml_mul_mat_set_prec(q_nope_absorbed, GGML_PREC_F32); cb(q_nope_absorbed, "q_nope_absorbed", il); // {kv_lora_rank, n_head, n_tokens} From 5a6398011704c31178d7b774be67856ba57647c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Cabrera=20P=C3=A9rez?= Date: Tue, 29 Apr 2025 16:24:36 +0100 Subject: [PATCH 041/126] llama-bench: fixed size of fields to correctly map to values (#13183) --- examples/llama-bench/llama-bench.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/llama-bench/llama-bench.cpp b/examples/llama-bench/llama-bench.cpp index 5a78216e44..0786594296 100644 --- a/examples/llama-bench/llama-bench.cpp +++ b/examples/llama-bench/llama-bench.cpp @@ -1133,8 +1133,6 @@ struct test { "build_commit", "build_number", "cpu_info", "gpu_info", "backends", "model_filename", "model_type", "model_size", "model_n_params", "n_batch", "n_ubatch", "n_threads", "cpu_mask", "cpu_strict", "poll", "type_k", "type_v", "n_gpu_layers", - "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "use_mmap", - "embeddings", "n_prompt", "n_gen", "n_depth", "test_time", "avg_ns", "split_mode", "main_gpu", "no_kv_offload", "flash_attn", "tensor_split", "tensor_buft_overrides", "use_mmap", "embeddings", "n_prompt", "n_gen", "n_depth", "test_time", "avg_ns", "stddev_ns", "avg_ts", "stddev_ts", From d9d398f84f96d16c308d4976f5e90222ecc2a492 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 29 Apr 2025 20:22:57 +0300 Subject: [PATCH 042/126] sampling : when top-k <= 0 -> noop (#13173) ggml-ci --- include/llama.h | 1 + src/llama-sampling.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/llama.h b/include/llama.h index a13350e15b..06c56395c1 100644 --- a/include/llama.h +++ b/include/llama.h @@ -1232,6 +1232,7 @@ extern "C" { "will be removed in the future (see https://github.com/ggml-org/llama.cpp/pull/9896#discussion_r1800920915)"); /// @details Top-K sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751 + /// Setting k <= 0 makes this a noop LLAMA_API struct llama_sampler * llama_sampler_init_top_k (int32_t k); /// @details Nucleus sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751 diff --git a/src/llama-sampling.cpp b/src/llama-sampling.cpp index d149798502..c0a5f9340d 100644 --- a/src/llama-sampling.cpp +++ b/src/llama-sampling.cpp @@ -232,7 +232,7 @@ static void llama_sampler_top_k_impl(llama_token_data_array * cur_p, int32_t k) // } if (k <= 0) { - k = cur_p->size; + return; } k = std::min(k, (int) cur_p->size); @@ -298,6 +298,7 @@ static void llama_sampler_top_k_impl(llama_token_data_array * cur_p, int32_t k) } cur_p->sorted = true; } + cur_p->size = k; } From e2e1ddb93a01ce282e304431b37e60b3cddb6114 Mon Sep 17 00:00:00 2001 From: matteo Date: Tue, 29 Apr 2025 20:33:10 +0200 Subject: [PATCH 043/126] server : Prefilling assistant message in openai compatible API (#13174) * Prefilling assistant message in openai compatible API * fixed indentation * fixed code convention * simplify method usage * no more than one assistant message at end of messages * merge checks into prefill code * Update examples/server/utils.hpp --------- Co-authored-by: matteo Co-authored-by: Xuan-Son Nguyen --- examples/server/utils.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/examples/server/utils.hpp b/examples/server/utils.hpp index aba2f27f9b..b497959fd8 100644 --- a/examples/server/utils.hpp +++ b/examples/server/utils.hpp @@ -642,9 +642,31 @@ static json oaicompat_completion_params_parse( throw std::runtime_error("Cannot use custom grammar constraints with tools."); } + // if the assistant message appears at the end of list, we do not add end-of-turn token + // for ex. this can be useful to modify the reasoning process in reasoning models + bool prefill_assistant_message = !inputs.messages.empty() && inputs.messages.back().role == "assistant"; + common_chat_msg last_message; + if (prefill_assistant_message) { + last_message = inputs.messages.back(); + inputs.messages.pop_back(); + + /* sanity check, max one assistant message at the end of the list */ + if (!inputs.messages.empty() && inputs.messages.back().role == "assistant"){ + throw std::runtime_error("Cannot have 2 or more assistant messages at the end of the list."); + } + + inputs.extract_reasoning = false; + inputs.add_generation_prompt = true; + } + // Apply chat template to the list of messages auto chat_params = common_chat_templates_apply(tmpls, inputs); + /* Append assistant prefilled message */ + if (prefill_assistant_message) { + chat_params.prompt += last_message.content; + } + llama_params["chat_format"] = static_cast(chat_params.format); llama_params["prompt"] = chat_params.prompt; if (!chat_params.grammar.empty()) { From 19e899ce21a7c9ffcf8bb2b22269a75f6e078f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 29 Apr 2025 23:32:04 +0200 Subject: [PATCH 044/126] scripts: n_depth for compare-llama-bench [no ci] (#13201) --- scripts/compare-llama-bench.py | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/scripts/compare-llama-bench.py b/scripts/compare-llama-bench.py index 6205fe88d7..8c599cf9ea 100755 --- a/scripts/compare-llama-bench.py +++ b/scripts/compare-llama-bench.py @@ -19,9 +19,9 @@ logger = logging.getLogger("compare-llama-bench") # Properties by which to differentiate results per commit: KEY_PROPERTIES = [ - "cpu_info", "gpu_info", "backends", "n_gpu_layers", "model_filename", "model_type", "n_batch", "n_ubatch", - "embeddings", "cpu_mask", "cpu_strict", "poll", "n_threads", "type_k", "type_v", "use_mmap", "no_kv_offload", - "split_mode", "main_gpu", "tensor_split", "flash_attn", "n_prompt", "n_gen" + "cpu_info", "gpu_info", "backends", "n_gpu_layers", "tensor_buft_overrides", "model_filename", "model_type", + "n_batch", "n_ubatch", "embeddings", "cpu_mask", "cpu_strict", "poll", "n_threads", "type_k", "type_v", + "use_mmap", "no_kv_offload", "split_mode", "main_gpu", "tensor_split", "flash_attn", "n_prompt", "n_gen", "n_depth" ] # Properties that are boolean and are converted to Yes/No for the table: @@ -30,11 +30,11 @@ BOOL_PROPERTIES = ["embeddings", "cpu_strict", "use_mmap", "no_kv_offload", "fla # Header names for the table: PRETTY_NAMES = { "cpu_info": "CPU", "gpu_info": "GPU", "backends": "Backends", "n_gpu_layers": "GPU layers", - "model_filename": "File", "model_type": "Model", "model_size": "Model size [GiB]", - "model_n_params": "Num. of par.", "n_batch": "Batch size", "n_ubatch": "Microbatch size", - "embeddings": "Embeddings", "cpu_mask": "CPU mask", "cpu_strict": "CPU strict", "poll": "Poll", - "n_threads": "Threads", "type_k": "K type", "type_v": "V type", "split_mode": "Split mode", "main_gpu": "Main GPU", - "no_kv_offload": "NKVO", "flash_attn": "FlashAttention", "tensor_split": "Tensor split", "use_mmap": "Use mmap", + "tensor_buft_overrides": "Tensor overrides", "model_filename": "File", "model_type": "Model", "model_size": "Model size [GiB]", + "model_n_params": "Num. of par.", "n_batch": "Batch size", "n_ubatch": "Microbatch size", "embeddings": "Embeddings", + "cpu_mask": "CPU mask", "cpu_strict": "CPU strict", "poll": "Poll", "n_threads": "Threads", "type_k": "K type", "type_v": "V type", + "use_mmap": "Use mmap", "no_kv_offload": "NKVO", "split_mode": "Split mode", "main_gpu": "Main GPU", "tensor_split": "Tensor split", + "flash_attn": "FlashAttention", } DEFAULT_SHOW = ["model_type"] # Always show these properties by default. @@ -281,12 +281,12 @@ def get_rows(properties): The returned rows are unique in terms of property combinations. """ select_string = ", ".join( - [f"tb.{p}" for p in properties] + ["tb.n_prompt", "tb.n_gen", "AVG(tb.avg_ts)", "AVG(tc.avg_ts)"]) + [f"tb.{p}" for p in properties] + ["tb.n_prompt", "tb.n_gen", "tb.n_depth", "AVG(tb.avg_ts)", "AVG(tc.avg_ts)"]) equal_string = " AND ".join( [f"tb.{p} = tc.{p}" for p in KEY_PROPERTIES] + [ f"tb.build_commit = '{hexsha8_baseline}'", f"tc.build_commit = '{hexsha8_compare}'"] ) - group_order_string = ", ".join([f"tb.{p}" for p in properties] + ["tb.n_gen", "tb.n_prompt"]) + group_order_string = ", ".join([f"tb.{p}" for p in properties] + ["tb.n_gen", "tb.n_prompt", "tb.n_depth"]) query = (f"SELECT {select_string} FROM test tb JOIN test tc ON {equal_string} " f"GROUP BY {group_order_string} ORDER BY {group_order_string};") return cursor.execute(query).fetchall() @@ -309,7 +309,7 @@ else: rows_full = get_rows(KEY_PROPERTIES) properties_different = [] for i, kp_i in enumerate(KEY_PROPERTIES): - if kp_i in DEFAULT_SHOW or kp_i == "n_prompt" or kp_i == "n_gen": + if kp_i in DEFAULT_SHOW or kp_i in ["n_prompt", "n_gen", "n_depth"]: continue for row_full in rows_full: if row_full[i] != rows_full[0][i]: @@ -340,17 +340,20 @@ else: table = [] for row in rows_show: - n_prompt = int(row[-4]) - n_gen = int(row[-3]) + n_prompt = int(row[-5]) + n_gen = int(row[-4]) + n_depth = int(row[-3]) if n_prompt != 0 and n_gen == 0: test_name = f"pp{n_prompt}" elif n_prompt == 0 and n_gen != 0: test_name = f"tg{n_gen}" else: test_name = f"pp{n_prompt}+tg{n_gen}" + if n_depth != 0: + test_name = f"{test_name}@d{n_depth}" # Regular columns test name avg t/s values Speedup # VVVVVVVVVVVVV VVVVVVVVV VVVVVVVVVVVVVV VVVVVVV - table.append(list(row[:-4]) + [test_name] + list(row[-2:]) + [float(row[-1]) / float(row[-2])]) + table.append(list(row[:-5]) + [test_name] + list(row[-2:]) + [float(row[-1]) / float(row[-2])]) # Some a-posteriori fixes to make the table contents prettier: for bool_property in BOOL_PROPERTIES: @@ -376,7 +379,7 @@ if "gpu_info" in show: for gns in GPU_NAME_STRIP: row_table[ip] = row_table[ip].replace(gns, "") - gpu_names = row_table[ip].split("/") + gpu_names = row_table[ip].split(", ") num_gpus = len(gpu_names) all_names_the_same = len(set(gpu_names)) == 1 if len(gpu_names) >= 2 and all_names_the_same: From a0f7016d170ca4bfe24d9a9f26c024d034af69f2 Mon Sep 17 00:00:00 2001 From: xiaofei Date: Wed, 30 Apr 2025 14:29:22 +0800 Subject: [PATCH 045/126] rpc : fix cache directory initialization (#13188) Signed-off-by: xiaofei --- examples/rpc/rpc-server.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/rpc/rpc-server.cpp b/examples/rpc/rpc-server.cpp index 0277e25cb5..b663a81191 100644 --- a/examples/rpc/rpc-server.cpp +++ b/examples/rpc/rpc-server.cpp @@ -304,8 +304,9 @@ int main(int argc, char * argv[]) { get_backend_memory(&free_mem, &total_mem); } const char * cache_dir = nullptr; - std::string cache_dir_str = fs_get_cache_directory() + "rpc/"; + std::string cache_dir_str; if (params.use_cache) { + cache_dir_str = fs_get_cache_directory() + "rpc/"; if (!fs_create_directory_with_parents(cache_dir_str)) { fprintf(stderr, "Failed to create cache directory: %s\n", cache_dir_str.c_str()); return 1; From da84c04d8fa43ff92b172feb8130c74d062f956a Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 30 Apr 2025 10:44:07 +0200 Subject: [PATCH 046/126] docker : do not build tests (#13204) * docker : do not build tests * include "ggml-cpu.h" --- .devops/cpu.Dockerfile | 4 ++-- .devops/cuda.Dockerfile | 2 +- .devops/intel.Dockerfile | 2 +- .devops/llama-cli-cann.Dockerfile | 2 +- .devops/musa.Dockerfile | 2 +- .devops/rocm.Dockerfile | 2 +- .devops/vulkan.Dockerfile | 2 +- tests/test-quantize-stats.cpp | 1 + 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.devops/cpu.Dockerfile b/.devops/cpu.Dockerfile index aa2aa03120..9459f08c10 100644 --- a/.devops/cpu.Dockerfile +++ b/.devops/cpu.Dockerfile @@ -14,9 +14,9 @@ WORKDIR /app COPY . . RUN if [ "$TARGETARCH" = "amd64" ]; then \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON; \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DLLAMA_BUILD_TESTS=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON; \ elif [ "$TARGETARCH" = "arm64" ]; then \ - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}; \ + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DLLAMA_BUILD_TESTS=OFF -DGGML_CPU_ARM_ARCH=${GGML_CPU_ARM_ARCH}; \ else \ echo "Unsupported architecture"; \ exit 1; \ diff --git a/.devops/cuda.Dockerfile b/.devops/cuda.Dockerfile index 8ae57d2e28..94f1433972 100644 --- a/.devops/cuda.Dockerfile +++ b/.devops/cuda.Dockerfile @@ -21,7 +21,7 @@ COPY . . RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ fi && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/intel.Dockerfile b/.devops/intel.Dockerfile index 091e1dc5d8..c8839fe027 100644 --- a/.devops/intel.Dockerfile +++ b/.devops/intel.Dockerfile @@ -17,7 +17,7 @@ RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \ && export OPT_SYCL_F16="-DGGML_SYCL_F16=ON"; \ fi && \ echo "Building with dynamic libs" && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_CURL=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON ${OPT_SYCL_F16} && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF ${OPT_SYCL_F16} && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/llama-cli-cann.Dockerfile b/.devops/llama-cli-cann.Dockerfile index 0eb1af87cb..ef43d78cd2 100644 --- a/.devops/llama-cli-cann.Dockerfile +++ b/.devops/llama-cli-cann.Dockerfile @@ -22,7 +22,7 @@ ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/runtime/lib64/stub:$LD_LIBRARY_PATH RUN echo "Building with static libs" && \ source /usr/local/Ascend/ascend-toolkit/set_env.sh --force && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_CANN=ON -DBUILD_SHARED_LIBS=OFF && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CANN=ON -DBUILD_SHARED_LIBS=OFF -DLLAMA_BUILD_TESTS=OFF && \ cmake --build build --config Release --target llama-cli # TODO: use image with NNRT diff --git a/.devops/musa.Dockerfile b/.devops/musa.Dockerfile index 261a2823a0..e0f1ad9728 100644 --- a/.devops/musa.Dockerfile +++ b/.devops/musa.Dockerfile @@ -35,7 +35,7 @@ COPY . . RUN if [ "${MUSA_DOCKER_ARCH}" != "default" ]; then \ export CMAKE_ARGS="-DMUSA_ARCHITECTURES=${MUSA_DOCKER_ARCH}"; \ fi && \ - cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON -DLLAMA_CURL=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON -DLLAMA_BUILD_TESTS=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/.devops/rocm.Dockerfile b/.devops/rocm.Dockerfile index a1b34723a4..1c00f1b9c2 100644 --- a/.devops/rocm.Dockerfile +++ b/.devops/rocm.Dockerfile @@ -40,7 +40,7 @@ WORKDIR /app COPY . . RUN HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \ - cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=$ROCM_DOCKER_ARCH -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON \ + cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=$ROCM_DOCKER_ARCH -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DCMAKE_BUILD_TYPE=Release -DLLAMA_BUILD_TESTS=OFF \ && cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib \ diff --git a/.devops/vulkan.Dockerfile b/.devops/vulkan.Dockerfile index f8f3072e95..fcd81ffa1e 100644 --- a/.devops/vulkan.Dockerfile +++ b/.devops/vulkan.Dockerfile @@ -16,7 +16,7 @@ WORKDIR /app COPY . . -RUN cmake -B build -DGGML_NATIVE=OFF -DGGML_VULKAN=1 -DLLAMA_CURL=1 -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON && \ +RUN cmake -B build -DGGML_NATIVE=OFF -DGGML_VULKAN=1 -DLLAMA_BUILD_TESTS=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON && \ cmake --build build --config Release -j$(nproc) RUN mkdir -p /app/lib && \ diff --git a/tests/test-quantize-stats.cpp b/tests/test-quantize-stats.cpp index db01059119..a284a1f0c5 100644 --- a/tests/test-quantize-stats.cpp +++ b/tests/test-quantize-stats.cpp @@ -1,4 +1,5 @@ #include "ggml.h" +#include "ggml-cpu.h" #include "llama.h" #include "common.h" From 5933e6fdc9c051eea6c83b5a7608de12f9f15670 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 30 Apr 2025 10:46:32 +0200 Subject: [PATCH 047/126] arg : allow using -hf offline (#13202) * arg : allow using -hf offline * add more comments in code [no ci] --- common/arg.cpp | 130 +++++++++++++++++++++++++++++++------------------ 1 file changed, 83 insertions(+), 47 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index 75e8e0bd51..6633c3a1db 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -43,6 +43,25 @@ std::initializer_list mmproj_examples = { // TODO: add LLAMA_EXAMPLE_SERVER when it's ready }; +static std::string read_file(const std::string & fname) { + std::ifstream file(fname); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", fname.c_str())); + } + std::string content((std::istreambuf_iterator(file)), std::istreambuf_iterator()); + file.close(); + return content; +} + +static void write_file(const std::string & fname, const std::string & content) { + std::ofstream file(fname); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", fname.c_str())); + } + file << content; + file.close(); +} + common_arg & common_arg::set_examples(std::initializer_list examples) { this->examples = std::move(examples); return *this; @@ -200,9 +219,11 @@ struct curl_slist_ptr { static bool curl_perform_with_retry(const std::string & url, CURL * curl, int max_attempts, int retry_delay_seconds) { int remaining_attempts = max_attempts; + char * method = nullptr; + curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_METHOD, &method); while (remaining_attempts > 0) { - LOG_INF("%s: Trying to download from %s (attempt %d of %d)...\n", __func__ , url.c_str(), max_attempts - remaining_attempts + 1, max_attempts); + LOG_INF("%s: %s %s (attempt %d of %d)...\n", __func__ , method, url.c_str(), max_attempts - remaining_attempts + 1, max_attempts); CURLcode res = curl_easy_perform(curl); if (res == CURLE_OK) { @@ -213,6 +234,7 @@ static bool curl_perform_with_retry(const std::string & url, CURL * curl, int ma LOG_WRN("%s: curl_easy_perform() failed: %s, retrying after %d milliseconds...\n", __func__, curl_easy_strerror(res), exponential_backoff_delay); remaining_attempts--; + if (remaining_attempts == 0) break; std::this_thread::sleep_for(std::chrono::milliseconds(exponential_backoff_delay)); } @@ -231,8 +253,6 @@ static bool common_download_file_single(const std::string & url, const std::stri return false; } - bool force_download = false; - // Set the URL, allow to follow http redirection curl_easy_setopt(curl.get(), CURLOPT_URL, url.c_str()); curl_easy_setopt(curl.get(), CURLOPT_FOLLOWLOCATION, 1L); @@ -256,7 +276,7 @@ static bool common_download_file_single(const std::string & url, const std::stri // If the file exists, check its JSON metadata companion file. std::string metadata_path = path + ".json"; - nlohmann::json metadata; + nlohmann::json metadata; // TODO @ngxson : get rid of this json, use regex instead std::string etag; std::string last_modified; @@ -266,7 +286,7 @@ static bool common_download_file_single(const std::string & url, const std::stri if (metadata_in.good()) { try { metadata_in >> metadata; - LOG_INF("%s: previous metadata file found %s: %s\n", __func__, metadata_path.c_str(), metadata.dump().c_str()); + LOG_DBG("%s: previous metadata file found %s: %s\n", __func__, metadata_path.c_str(), metadata.dump().c_str()); if (metadata.contains("url") && metadata.at("url").is_string()) { auto previous_url = metadata.at("url").get(); if (previous_url != url) { @@ -296,7 +316,10 @@ static bool common_download_file_single(const std::string & url, const std::stri }; common_load_model_from_url_headers headers; + bool head_request_ok = false; + bool should_download = !file_exists; // by default, we should download if the file does not exist + // get ETag to see if the remote file has changed { typedef size_t(*CURLOPT_HEADERFUNCTION_PTR)(char *, size_t, size_t, void *); auto header_callback = [](char * buffer, size_t /*size*/, size_t n_items, void * userdata) -> size_t { @@ -325,23 +348,28 @@ static bool common_download_file_single(const std::string & url, const std::stri curl_easy_setopt(curl.get(), CURLOPT_HEADERFUNCTION, static_cast(header_callback)); curl_easy_setopt(curl.get(), CURLOPT_HEADERDATA, &headers); - bool was_perform_successful = curl_perform_with_retry(url, curl.get(), CURL_MAX_RETRY, CURL_RETRY_DELAY_SECONDS); + // we only allow retrying once for HEAD requests + // this is for the use case of using running offline (no internet), retrying can be annoying + bool was_perform_successful = curl_perform_with_retry(url, curl.get(), 1, 0); if (!was_perform_successful) { - return false; + head_request_ok = false; } long http_code = 0; curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &http_code); - if (http_code != 200) { - // HEAD not supported, we don't know if the file has changed - // force trigger downloading - force_download = true; - LOG_ERR("%s: HEAD invalid http status code received: %ld\n", __func__, http_code); + if (http_code == 200) { + head_request_ok = true; + } else { + LOG_WRN("%s: HEAD invalid http status code received: %ld\n", __func__, http_code); + head_request_ok = false; } } - bool should_download = !file_exists || force_download; - if (!should_download) { + // if head_request_ok is false, we don't have the etag or last-modified headers + // we leave should_download as-is, which is true if the file does not exist + if (head_request_ok) { + // check if ETag or Last-Modified headers are different + // if it is, we need to download the file again if (!etag.empty() && etag != headers.etag) { LOG_WRN("%s: ETag header is different (%s != %s): triggering a new download\n", __func__, etag.c_str(), headers.etag.c_str()); should_download = true; @@ -350,6 +378,7 @@ static bool common_download_file_single(const std::string & url, const std::stri should_download = true; } } + if (should_download) { std::string path_temporary = path + ".downloadInProgress"; if (file_exists) { @@ -424,13 +453,15 @@ static bool common_download_file_single(const std::string & url, const std::stri {"etag", headers.etag}, {"lastModified", headers.last_modified} }); - std::ofstream(metadata_path) << metadata.dump(4); - LOG_INF("%s: file metadata saved: %s\n", __func__, metadata_path.c_str()); + write_file(metadata_path, metadata.dump(4)); + LOG_DBG("%s: file metadata saved: %s\n", __func__, metadata_path.c_str()); if (rename(path_temporary.c_str(), path.c_str()) != 0) { LOG_ERR("%s: unable to rename file: %s to %s\n", __func__, path_temporary.c_str(), path.c_str()); return false; } + } else { + LOG_INF("%s: using cached file: %s\n", __func__, path.c_str()); } return true; @@ -605,16 +636,37 @@ static struct common_hf_file_res common_get_hf_file(const std::string & hf_repo_ // Important: the User-Agent must be "llama-cpp" to get the "ggufFile" field in the response // User-Agent header is already set in common_remote_get_content, no need to set it here + // we use "=" to avoid clashing with other component, while still being allowed on windows + std::string cached_response_fname = "manifest=" + hf_repo + "=" + tag + ".json"; + string_replace_all(cached_response_fname, "/", "_"); + std::string cached_response_path = fs_get_cache_file(cached_response_fname); + // make the request common_remote_params params; params.headers = headers; - auto res = common_remote_get_content(url, params); - long res_code = res.first; - std::string res_str(res.second.data(), res.second.size()); + long res_code = 0; + std::string res_str; + bool use_cache = false; + try { + auto res = common_remote_get_content(url, params); + res_code = res.first; + res_str = std::string(res.second.data(), res.second.size()); + } catch (const std::exception & e) { + LOG_WRN("error: failed to get manifest: %s\n", e.what()); + LOG_WRN("try reading from cache\n"); + // try to read from cache + try { + res_str = read_file(cached_response_path); + res_code = 200; + use_cache = true; + } catch (const std::exception & e) { + throw std::runtime_error("error: failed to get manifest (check your internet connection)"); + } + } std::string ggufFile; std::string mmprojFile; - if (res_code == 200) { + if (res_code == 200 || res_code == 304) { // extract ggufFile.rfilename in json, using regex { std::regex pattern("\"ggufFile\"[\\s\\S]*?\"rfilename\"\\s*:\\s*\"([^\"]+)\""); @@ -631,6 +683,10 @@ static struct common_hf_file_res common_get_hf_file(const std::string & hf_repo_ mmprojFile = match[1].str(); } } + if (!use_cache) { + // if not using cached response, update the cache file + write_file(cached_response_path, res_str); + } } else if (res_code == 401) { throw std::runtime_error("error: model is private or does not exist; if you are accessing a gated model, please provide a valid HF token"); } else { @@ -1142,6 +1198,9 @@ bool common_params_parse(int argc, char ** argv, common_params & params, llama_e fprintf(stderr, "%s\n", ex.what()); ctx_arg.params = params_org; return false; + } catch (std::exception & ex) { + fprintf(stderr, "%s\n", ex.what()); + exit(1); // for other exceptions, we exit with status code 1 } return true; @@ -1442,13 +1501,9 @@ common_params_context common_params_parser_init(common_params & params, llama_ex {"-f", "--file"}, "FNAME", "a file containing the prompt (default: none)", [](common_params & params, const std::string & value) { - std::ifstream file(value); - if (!file) { - throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); - } + params.prompt = read_file(value); // store the external file name in params params.prompt_file = value; - std::copy(std::istreambuf_iterator(file), std::istreambuf_iterator(), back_inserter(params.prompt)); if (!params.prompt.empty() && params.prompt.back() == '\n') { params.prompt.pop_back(); } @@ -1458,11 +1513,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex {"-sysf", "--system-prompt-file"}, "FNAME", "a file containing the system prompt (default: none)", [](common_params & params, const std::string & value) { - std::ifstream file(value); - if (!file) { - throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); - } - std::copy(std::istreambuf_iterator(file), std::istreambuf_iterator(), back_inserter(params.system_prompt)); + params.system_prompt = read_file(value); if (!params.system_prompt.empty() && params.system_prompt.back() == '\n') { params.system_prompt.pop_back(); } @@ -1887,15 +1938,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex {"--grammar-file"}, "FNAME", "file to read grammar from", [](common_params & params, const std::string & value) { - std::ifstream file(value); - if (!file) { - throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); - } - std::copy( - std::istreambuf_iterator(file), - std::istreambuf_iterator(), - std::back_inserter(params.sampling.grammar) - ); + params.sampling.grammar = read_file(value); } ).set_sparam()); add_opt(common_arg( @@ -2815,14 +2858,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex "list of built-in templates:\n%s", list_builtin_chat_templates().c_str() ), [](common_params & params, const std::string & value) { - std::ifstream file(value); - if (!file) { - throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); - } - std::copy( - std::istreambuf_iterator(file), - std::istreambuf_iterator(), - std::back_inserter(params.chat_template)); + params.chat_template = read_file(value); } ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CHAT_TEMPLATE_FILE")); add_opt(common_arg( From 44cd8d91ff2c9e4a0f2e3151f8d6f04c928e2571 Mon Sep 17 00:00:00 2001 From: Aaron Teo <57927438+taronaeo@users.noreply.github.com> Date: Wed, 30 Apr 2025 17:47:35 +0800 Subject: [PATCH 048/126] feat(ggml-cpu): enable z17 compile (#13182) z17 compilation requires GCC 15.1.0 and onwards Signed-off-by: Aaron Teo --- ggml/src/ggml-cpu/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cpu/CMakeLists.txt b/ggml/src/ggml-cpu/CMakeLists.txt index 6a652738c1..9a3085befc 100644 --- a/ggml/src/ggml-cpu/CMakeLists.txt +++ b/ggml/src/ggml-cpu/CMakeLists.txt @@ -352,10 +352,14 @@ function(ggml_add_cpu_backend_variant_impl tag_name) # TODO: Separation to determine activation of VX/VXE/VXE2 if (${S390X_M} MATCHES "8561|8562") message(STATUS "z15 target") - list(APPEND ARCH_FLAGS -march=z15 -mtune=z15) + list(APPEND ARCH_FLAGS -march=z15) elseif (${S390X_M} MATCHES "3931") message(STATUS "z16 target") - list(APPEND ARCH_FLAGS -march=z16 -mtune=z16) + list(APPEND ARCH_FLAGS -march=z16) + elseif (${S390X_M} MATCHES "9175|9176") + # NOTE: Only available from GCC 15.1.0 onwards. Any z17 machine with compile issues must first verify their GCC version. + message(STATUS "z17 target") + list(APPEND ARCH_FLAGS -march=z17) else() message(STATUS "Unknown target") message(WARNING "Unknown target. If you are compiling for z14 and earlier, you might have to add -DGGML_VXE=OFF.") From 07c2e2f76cce9a61c110b6995fbb90ccea2c3aaa Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 30 Apr 2025 13:06:15 +0200 Subject: [PATCH 049/126] convert : correct typo image_mean --> image_std (#13208) --- convert_hf_to_gguf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index b9cea7e469..d607af6955 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1103,7 +1103,7 @@ class VisionModel(ModelBase): # preprocessor config self.gguf_writer.add_vision_image_mean(self.preprocessor_config["image_mean"]) - self.gguf_writer.add_vision_image_std(self.preprocessor_config["image_mean"]) + self.gguf_writer.add_vision_image_std(self.preprocessor_config["image_std"]) def write_vocab(self): raise ValueError("VisionModel does not support vocab writing") From 416313773b53585fddcafbcb914cbbfbaeb94b1f Mon Sep 17 00:00:00 2001 From: shalinib-ibm Date: Wed, 30 Apr 2025 16:47:08 +0530 Subject: [PATCH 050/126] ggml : fix ppc64le build (#13176) Build fails with compilation error on power pc. This patch fixes the same. Tested with unit tests run via --build && cd && make test Signed-off-by: Shalini Salomi Bodapati --- ggml/src/ggml-cpu/simd-mappings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/ggml-cpu/simd-mappings.h b/ggml/src/ggml-cpu/simd-mappings.h index 04d10cec26..45c31cf1fa 100644 --- a/ggml/src/ggml-cpu/simd-mappings.h +++ b/ggml/src/ggml-cpu/simd-mappings.h @@ -341,7 +341,7 @@ static inline void __avx_f32cx8_store(ggml_fp16_t *x, __m256 y) { #define GGML_F32_EPR 4 #define GGML_F32x4 vector float -#define GGML_F32x4_ZERO 0.0f +#define GGML_F32x4_ZERO {0.0f} #define GGML_F32x4_SET1 vec_splats #define GGML_F32x4_LOAD(p) vec_xl(0, p) #define GGML_F32x4_STORE(p, r) vec_xst(r, 0, p) From e5007a5edf2692ef7151a81a61ce2716b83374e5 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Wed, 30 Apr 2025 07:38:37 -0500 Subject: [PATCH 051/126] vulkan: use uint array index to avoid glslang bug (#13193) --- ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp index 962d2353f8..9cb7da2daa 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp @@ -482,7 +482,7 @@ float16_t dequantFuncIQ2_XXS(const in decodeBufIQ2_XXS bl, const in uint blockCo const uint ib8 = (idx & 0x18) >> 3; // 0..3 const uint iqs = 8 * ib32 + ib8; - const uint8_t qs = bl.block.qs[iqs]; + const uint qs = bl.block.qs[iqs]; const uint signscale = pack32(u16vec2(bl16.block.qs[4*ib32+2], bl16.block.qs[4*ib32+3])); const float dscale = float(bl.block.d) * 0.25 * (0.5 + float(signscale >> 28)); From 3b127c738535d95e06abd0d43da147bc13516ad0 Mon Sep 17 00:00:00 2001 From: Olivier Chafik Date: Wed, 30 Apr 2025 13:52:35 +0100 Subject: [PATCH 052/126] common : add -jf / --json-schema-file flag (#12011) --- common/arg.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/common/arg.cpp b/common/arg.cpp index 6633c3a1db..b8c72ee645 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -1948,6 +1948,23 @@ common_params_context common_params_parser_init(common_params & params, llama_ex params.sampling.grammar = json_schema_to_grammar(json::parse(value)); } ).set_sparam()); + add_opt(common_arg( + {"-jf", "--json-schema-file"}, "FILE", + "File containing a JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object\nFor schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead", + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + std::string schema; + std::copy( + std::istreambuf_iterator(file), + std::istreambuf_iterator(), + std::back_inserter(schema) + ); + params.sampling.grammar = json_schema_to_grammar(json::parse(schema)); + } + ).set_sparam()); add_opt(common_arg( {"--pooling"}, "{none,mean,cls,last,rank}", "pooling type for embeddings, use model default if unspecified", From ceda28ef8e310a8dee60bf275077a3eedae8e36c Mon Sep 17 00:00:00 2001 From: Tatsuya Tanaka Date: Wed, 30 Apr 2025 22:25:20 +0900 Subject: [PATCH 053/126] llava : remove duplicate include (#13207) --- examples/llava/clip-impl.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/llava/clip-impl.h b/examples/llava/clip-impl.h index 04bfcbb5e5..66cb21ef1a 100644 --- a/examples/llava/clip-impl.h +++ b/examples/llava/clip-impl.h @@ -2,8 +2,6 @@ #include "gguf.h" #include "clip.h" -#include "clip.h" - #include #include #include From 3e168bede4d27b35656ab8026015b87659ecbec2 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 30 Apr 2025 16:56:24 +0200 Subject: [PATCH 054/126] convert : improve model arch handling (#13122) * convert : improve model arch handling * use AutoConfig * rm trust_remote_code * Update convert_hf_to_gguf.py * fix self.block_count for vision * fix NomicBertModel --- convert_hf_to_gguf.py | 98 +++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 41 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index d607af6955..123df801bf 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -16,6 +16,7 @@ from pathlib import Path from hashlib import sha256 from typing import TYPE_CHECKING, Any, Callable, ContextManager, Iterable, Iterator, Literal, Sequence, TypeVar, cast from itertools import chain +from transformers import AutoConfig import math import numpy as np @@ -66,8 +67,6 @@ class ModelBase: part_names: list[str] is_safetensors: bool hparams: dict[str, Any] - block_count: int - tensor_map: gguf.TensorNameMap tensor_names: set[str] | None gguf_writer: gguf.GGUFWriter model_name: str | None @@ -78,6 +77,10 @@ class ModelBase: # subclasses should define this! model_arch: gguf.MODEL_ARCH + # subclasses should initialize this! + block_count: int + tensor_map: gguf.TensorNameMap + def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, *, is_big_endian: bool = False, use_temp_file: bool = False, eager: bool = False, metadata_override: Path | None = None, model_name: str | None = None, @@ -113,8 +116,6 @@ class ModelBase: if not self.is_safetensors: self.part_names = ModelBase.get_model_part_names(self.dir_model, "pytorch_model", ".bin") self.hparams = ModelBase.load_hparams(self.dir_model) if hparams is None else hparams - self.block_count = self.find_hparam(["n_layers", "num_hidden_layers", "n_layer", "num_layers"]) - self.tensor_map = gguf.get_tensor_name_map(self.model_arch, self.block_count) self.tensor_names = None self.metadata_override = metadata_override self.model_name = model_name @@ -417,15 +418,13 @@ class ModelBase: @staticmethod def load_hparams(dir_model: Path): - with open(dir_model / "config.json", "r", encoding="utf-8") as f: - hparams = json.load(f) - architectures = hparams.get("architectures") - if "text_config" in hparams: - hparams = {**hparams, **hparams["text_config"]} - if architectures is not None: - # preserve "architectures" from root level config - hparams["architectures"] = architectures - return hparams + try: + return AutoConfig.from_pretrained(dir_model).to_dict() + except Exception as e: + logger.warning(f"Failed to load model config from {dir_model}: {e}") + logger.warning("Trying to load config.json instead") + with open(dir_model / "config.json", "r", encoding="utf-8") as f: + return json.load(f) @classmethod def register(cls, *names: str) -> Callable[[AnyModel], AnyModel]: @@ -454,6 +453,23 @@ class ModelBase: class TextModel(ModelBase): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if "text_config" in self.hparams: + # move the text_config to the root level + self.hparams = {**self.hparams, **self.hparams["text_config"]} + + self.block_count = self.find_hparam(["n_layers", "num_hidden_layers", "n_layer", "num_layers"]) + self.tensor_map = gguf.get_tensor_name_map(self.model_arch, self.block_count) + + @classmethod + def __init_subclass__(cls): + # can't use an abstract property, because overriding it without type errors + # would require using decorated functions instead of simply defining the property + if "model_arch" not in cls.__dict__: + raise TypeError(f"Missing property 'model_arch' for {cls.__name__!r}") + def set_vocab(self): self._set_vocab_gpt2() @@ -1070,9 +1086,9 @@ class VisionModel(ModelBase): if self.model_arch != gguf.MODEL_ARCH.CLIP_VISION: raise TypeError("VisionModel must be subclassed with model_arch = gguf.MODEL_ARCH.CLIP_VISION") - # small hack to correct the number of layers - self.tensor_map = gguf.get_tensor_name_map(gguf.MODEL_ARCH.CLIP_VISION, 128) - self.n_embd_text = self.find_hparam(["hidden_size", "n_embd"]) + # get n_embd of the text model + text_config = {**self.hparams, **self.hparams["text_config"]} + self.n_embd_text = text_config.get("hidden_size", text_config.get("n_embd", 0)) assert self.n_embd_text > 0, "n_embd not found in hparams" if "vision_config" not in self.hparams: @@ -1081,6 +1097,9 @@ class VisionModel(ModelBase): self.global_config = self.hparams self.hparams = self.hparams["vision_config"] + self.block_count = self.find_hparam(["n_layers", "num_hidden_layers", "n_layer", "num_layers", "depth"]) + self.tensor_map = gguf.get_tensor_name_map(gguf.MODEL_ARCH.CLIP_VISION, self.block_count) + # load preprocessor config with open(self.dir_model / "preprocessor_config.json", "r", encoding="utf-8") as f: self.preprocessor_config = json.load(f) @@ -1098,7 +1117,7 @@ class VisionModel(ModelBase): self.gguf_writer.add_vision_patch_size(self.find_hparam(["patch_size"])) self.gguf_writer.add_vision_embedding_length(self.find_hparam(["hidden_size"])) self.gguf_writer.add_vision_feed_forward_length(self.find_hparam(["intermediate_size"])) - self.gguf_writer.add_vision_block_count(self.find_hparam(["num_hidden_layers"])) + self.gguf_writer.add_vision_block_count(self.block_count) self.gguf_writer.add_vision_head_count(self.find_hparam(["num_attention_heads"])) # preprocessor config @@ -1719,23 +1738,12 @@ class StableLMModel(TextModel): "LlamaForCausalLM", "MistralForCausalLM", "MixtralForCausalLM", - "Idefics3ForConditionalGeneration", - "SmolVLMForConditionalGeneration", + "VLlama3ForCausalLM", "LlavaForConditionalGeneration") class LlamaModel(TextModel): model_arch = gguf.MODEL_ARCH.LLAMA undo_permute = True - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - # fix for SmolVLM2, missing `num_attention_heads` in config.json - if self.hparams["architectures"][0] == "SmolVLMForConditionalGeneration": - self.hparams["num_attention_heads"] = self.hparams.get("num_attention_heads", 32) - # fix for Pixtral, missing `num_attention_heads` in config.json - if self.hparams["architectures"][0] == "LlavaForConditionalGeneration" \ - and self.hparams.get("model_type") == "mistral": - self.hparams["num_attention_heads"] = self.hparams.get("num_attention_heads", 32) - def set_vocab(self): try: self._set_vocab_sentencepiece() @@ -1898,11 +1906,7 @@ class LlavaVisionModel(VisionModel): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.hparams["model_type"] == "pixtral": - # fix missing config.json values - self.hparams["num_attention_heads"] = self.hparams.get("num_attention_heads", 16) - self.hparams["num_hidden_layers"] = self.hparams.get("num_hidden_layers", 24) - self.hparams["intermediate_size"] = self.hparams.get("intermediate_size", 4096) - self.hparams["hidden_size"] = self.hparams.get("hidden_size", 1024) + # layer_norm_eps is not in config.json, it is hard-coded in modeling_pixtral.py self.hparams["layer_norm_eps"] = self.hparams.get("layer_norm_eps", 1e-5) self.img_break_tok_id = 12 # see tokenizer_config.json else: @@ -1913,7 +1917,6 @@ class LlavaVisionModel(VisionModel): hparams = self.hparams if hparams["model_type"] == "pixtral": self.gguf_writer.add_vision_projector_type(gguf.VisionProjectorType.PIXTRAL) - # default values below are taken from HF tranformers code self.gguf_writer.add_vision_attention_layernorm_eps(hparams["layer_norm_eps"]) self.gguf_writer.add_vision_use_silu(True) @@ -1944,13 +1947,12 @@ class LlavaVisionModel(VisionModel): class SmolVLMModel(VisionModel): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - # fix for SmolVLM2, missing some keys in config.json - # default values are taken from transformers code if self.hparams["model_type"] == "smolvlm_vision": + # fix for SmolVLM2, missing some keys in config.json + # default values are taken from transformers code self.hparams["hidden_size"] = self.hparams.get("hidden_size", 1152) self.hparams["num_attention_heads"] = self.hparams.get("num_attention_heads", 16) self.hparams["intermediate_size"] = self.hparams.get("intermediate_size", 3072) - self.hparams["num_hidden_layers"] = self.hparams.get("num_hidden_layers", 12) def set_gguf_parameters(self): super().set_gguf_parameters() @@ -3505,6 +3507,8 @@ class RobertaModel(BertModel): @ModelBase.register("NomicBertModel") class NomicBertModel(BertModel): + model_arch = gguf.MODEL_ARCH.BERT + def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path, **kwargs: Any): hparams = kwargs.pop("hparams", None) if hparams is None: @@ -5849,6 +5853,19 @@ def split_str_to_n_bytes(split_str: str) -> int: return n +def get_model_architecture(dir_model: Path, model_type: ModelType, hparams: Any = None) -> str: + hparams = ModelBase.load_hparams(dir_model) if hparams is None else hparams + text_config = hparams.get("text_config", {}) + vision_config = hparams.get("vision_config", {}) + arch = hparams["architectures"][0] + # if "architectures" is found in the sub-config, use that instead + if model_type == ModelType.TEXT and text_config.get("architectures") is not None: + arch = text_config["architectures"][0] + elif model_type == ModelType.VISION and vision_config.get("architectures") is not None: + arch = vision_config["architectures"][0] + return arch + + def main() -> None: args = parse_args() @@ -5901,16 +5918,15 @@ def main() -> None: logger.info(f"Loading model: {dir_model.name}") - hparams = ModelBase.load_hparams(dir_model) - if args.mmproj: if "mmproj" not in fname_out.name: fname_out = ModelBase.add_prefix_to_filename(fname_out, "mmproj-") with torch.inference_mode(): output_type = ftype_map[args.outtype] - model_architecture = hparams["architectures"][0] model_type = ModelType.VISION if args.mmproj else ModelType.TEXT + model_architecture = get_model_architecture(dir_model, model_type) + logger.info(f"Model architecture: {model_architecture}") try: model_class = ModelBase.from_model_architecture(model_architecture, model_type=model_type) except NotImplementedError: From 16a457facd996915652f6274384c87602b27d21a Mon Sep 17 00:00:00 2001 From: ddh0 Date: Wed, 30 Apr 2025 15:28:43 -0500 Subject: [PATCH 055/126] fix typo: `n_ctx_pre_seq` -> `n_ctx_per_seq` (#13221) --- src/llama-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-context.cpp b/src/llama-context.cpp index e49225aa22..5a2eef9b78 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -114,7 +114,7 @@ llama_context::llama_context( } if (n_ctx_per_seq > hparams.n_ctx_train) { - LLAMA_LOG_WARN("%s: n_ctx_pre_seq (%u) > n_ctx_train (%u) -- possible training context overflow\n", + LLAMA_LOG_WARN("%s: n_ctx_per_seq (%u) > n_ctx_train (%u) -- possible training context overflow\n", __func__, n_ctx_per_seq, hparams.n_ctx_train); } From 6f67cf1f480926391ad75ff746e0a021214bf70c Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Wed, 30 Apr 2025 22:29:15 +0200 Subject: [PATCH 056/126] arg : -hf do not fail if url mismatch (#13219) * arg : -hf do not fail if url mismatch * do not return if cannot parse metadata json --- common/arg.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index b8c72ee645..9f7241673d 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -287,13 +287,6 @@ static bool common_download_file_single(const std::string & url, const std::stri try { metadata_in >> metadata; LOG_DBG("%s: previous metadata file found %s: %s\n", __func__, metadata_path.c_str(), metadata.dump().c_str()); - if (metadata.contains("url") && metadata.at("url").is_string()) { - auto previous_url = metadata.at("url").get(); - if (previous_url != url) { - LOG_ERR("%s: Model URL mismatch: %s != %s\n", __func__, url.c_str(), previous_url.c_str()); - return false; - } - } if (metadata.contains("etag") && metadata.at("etag").is_string()) { etag = metadata.at("etag"); } @@ -301,10 +294,10 @@ static bool common_download_file_single(const std::string & url, const std::stri last_modified = metadata.at("lastModified"); } } catch (const nlohmann::json::exception & e) { - LOG_ERR("%s: error reading metadata file %s: %s\n", __func__, metadata_path.c_str(), e.what()); - return false; + LOG_ERR("%s: error reading metadata file %s: %s\n", __func__, metadata_path.c_str(), e.what()); } } + // if we cannot open the metadata file, we assume that the downloaded file is not valid (etag and last-modified are left empty, so we will download it again) } else { LOG_INF("%s: no previous model file found %s\n", __func__, path.c_str()); } From e1e8e0991ffd9e99a445c6812bb519d5bac9f4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Wed, 30 Apr 2025 23:12:59 +0200 Subject: [PATCH 057/126] CUDA: batched+noncont MMQ, refactor bs>1 MoE code (#13199) --- ggml/src/ggml-cuda/getrows.cu | 181 +++++++---- ggml/src/ggml-cuda/getrows.cuh | 7 + ggml/src/ggml-cuda/ggml-cuda.cu | 268 +++++++-------- ggml/src/ggml-cuda/mmq.cu | 220 +++++++++++-- ggml/src/ggml-cuda/mmq.cuh | 558 +++++++++++++++++++++++--------- ggml/src/ggml-cuda/mmvq.cu | 6 +- ggml/src/ggml-cuda/quantize.cu | 49 +-- ggml/src/ggml-cuda/quantize.cuh | 15 +- tests/test-backend-ops.cpp | 5 + 9 files changed, 869 insertions(+), 440 deletions(-) diff --git a/ggml/src/ggml-cuda/getrows.cu b/ggml/src/ggml-cuda/getrows.cu index 4cef53a98c..ea8bf69160 100644 --- a/ggml/src/ggml-cuda/getrows.cu +++ b/ggml/src/ggml-cuda/getrows.cu @@ -33,8 +33,8 @@ static __global__ void k_get_rows( dfloat2 v; dequantize_kernel(src0_row, ib, iqs, v); - dst_row[iybs + iqs + 0] = v.x; - dst_row[iybs + iqs + y_offset] = v.y; + dst_row[iybs + iqs + 0] = float(v.x); + dst_row[iybs + iqs + y_offset] = float(v.y); } template @@ -60,7 +60,7 @@ static __global__ void k_get_rows_float( dst_t * dst_row = dst + i10*s1 + i11*s2 + i12*s3; const src0_t * src0_row = (const src0_t *)((const char *) src0 + i01*nb01 + i11*nb02 + i12*nb03); - dst_row[i00] = src0_row[i00]; + dst_row[i00] = float(src0_row[i00]); } template @@ -86,120 +86,159 @@ static __global__ void k_get_rows_back_float( dst[dst_row*ncols + col] = sum; } -template -static void get_rows_cuda( - const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, - const void * src0_dd, const int32_t * src1_dd, float * dst_dd, cudaStream_t stream) { - - GGML_TENSOR_BINARY_OP_LOCALS - +template +static void get_rows_cuda_q( + const void * src0_d, const int32_t * src1_d, dst_t * dst_d, + const int64_t ne00, const size_t nb01, const size_t nb02, const size_t nb03, + const int64_t ne10, const int64_t ne11, const int64_t ne12, const size_t nb10, const size_t nb11, const size_t nb12, + const size_t nb1, const size_t nb2, const size_t nb3, + cudaStream_t stream) { const dim3 block_dims(CUDA_GET_ROWS_BLOCK_SIZE, 1, 1); const int block_num_x = (ne00 + 2*CUDA_GET_ROWS_BLOCK_SIZE - 1) / (2*CUDA_GET_ROWS_BLOCK_SIZE); const dim3 block_nums(block_num_x, ne10, ne11*ne12); // strides in elements - //const size_t s0 = nb0 / ggml_element_size(dst); - const size_t s1 = nb1 / ggml_element_size(dst); - const size_t s2 = nb2 / ggml_element_size(dst); - const size_t s3 = nb3 / ggml_element_size(dst); + // const size_t s0 = nb0 / sizeof(dst_t); + const size_t s1 = nb1 / sizeof(dst_t); + const size_t s2 = nb2 / sizeof(dst_t); + const size_t s3 = nb3 / sizeof(dst_t); - const size_t s10 = nb10 / ggml_element_size(src1); - const size_t s11 = nb11 / ggml_element_size(src1); - const size_t s12 = nb12 / ggml_element_size(src1); - //const size_t s13 = nb13 / ggml_element_size(src1); + const size_t s10 = nb10 / sizeof(int32_t); + const size_t s11 = nb11 / sizeof(int32_t); + const size_t s12 = nb12 / sizeof(int32_t); + // const size_t s13 = nb13 / sizeof(int32_t); GGML_ASSERT(ne00 % 2 == 0); k_get_rows<<>>( - src0_dd, src1_dd, dst_dd, + src0_d, src1_d, dst_d, ne00, /*ne01, ne02, ne03,*/ /*ne10, ne11,*/ ne12, /*ne13,*/ /* s0,*/ s1, s2, s3, /* nb00,*/ nb01, nb02, nb03, s10, s11, s12/*, s13*/); - - GGML_UNUSED(dst); } -template +template static void get_rows_cuda_float( - const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, - const src0_t * src0_dd, const int32_t * src1_dd, float * dst_dd, cudaStream_t stream) { - - GGML_TENSOR_BINARY_OP_LOCALS - - GGML_ASSERT(ne13 == 1); - + const src0_t * src0_d, const int32_t * src1_d, dst_t * dst_d, + const int64_t ne00, const size_t nb01, const size_t nb02, const size_t nb03, + const int64_t ne10, const int64_t ne11, const int64_t ne12, const size_t nb10, const size_t nb11, const size_t nb12, + const size_t nb1, const size_t nb2, const size_t nb3, + cudaStream_t stream) { const dim3 block_dims(CUDA_GET_ROWS_BLOCK_SIZE, 1, 1); const int block_num_x = (ne00 + CUDA_GET_ROWS_BLOCK_SIZE - 1) / CUDA_GET_ROWS_BLOCK_SIZE; const dim3 block_nums(block_num_x, ne10, ne11*ne12); // strides in elements - //const size_t s0 = nb0 / ggml_element_size(dst); - const size_t s1 = nb1 / ggml_element_size(dst); - const size_t s2 = nb2 / ggml_element_size(dst); - const size_t s3 = nb3 / ggml_element_size(dst); + // const size_t s0 = nb0 / sizeof(dst_t); + const size_t s1 = nb1 / sizeof(dst_t); + const size_t s2 = nb2 / sizeof(dst_t); + const size_t s3 = nb3 / sizeof(dst_t); - const size_t s10 = nb10 / ggml_element_size(src1); - const size_t s11 = nb11 / ggml_element_size(src1); - const size_t s12 = nb12 / ggml_element_size(src1); - //const size_t s13 = nb13 / ggml_element_size(src1); + const size_t s10 = nb10 / sizeof(int32_t); + const size_t s11 = nb11 / sizeof(int32_t); + const size_t s12 = nb12 / sizeof(int32_t); + // const size_t s13 = nb13 / sizeof(int32_t); k_get_rows_float<<>>( - src0_dd, src1_dd, dst_dd, + src0_d, src1_d, dst_d, ne00, /*ne01, ne02, ne03,*/ /*ne10, ne11,*/ ne12, /*ne13,*/ /* s0,*/ s1, s2, s3, /* nb00,*/ nb01, nb02, nb03, s10, s11, s12/*, s13*/); +} - GGML_UNUSED(dst); +template +static void ggml_cuda_get_rows_switch_src0_type( + const void * src0_d, const ggml_type src0_type, const int32_t * src1_d, dst_t * dst_d, + const int64_t ne00, const size_t nb01, const size_t nb02, const size_t nb03, + const int64_t ne10, const int64_t ne11, const int64_t ne12, const size_t nb10, const size_t nb11, const size_t nb12, + const size_t nb1, const size_t nb2, const size_t nb3, + cudaStream_t stream) { + switch (src0_type) { + case GGML_TYPE_F16: + get_rows_cuda_float((const half *) src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_F32: + get_rows_cuda_float((const float *) src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_BF16: + get_rows_cuda_float((const nv_bfloat16 *) src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_Q4_0: + get_rows_cuda_q(src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_Q4_1: + get_rows_cuda_q(src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_Q5_0: + get_rows_cuda_q(src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_Q5_1: + get_rows_cuda_q(src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_Q8_0: + get_rows_cuda_q(src0_d, src1_d, dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + default: + // TODO: k-quants + GGML_ABORT("%s: unsupported src0 type: %s\n", __func__, ggml_type_name(src0_type)); + break; + } +} + +void get_rows_cuda( + const void * src0_d, ggml_type src0_type, const int32_t * src1_d, void * dst_d, ggml_type dst_type, + int64_t ne00, size_t nb01, size_t nb02, size_t nb03, + int64_t ne10, int64_t ne11, int64_t ne12, size_t nb10, size_t nb11, size_t nb12, + size_t nb1, size_t nb2, size_t nb3, + cudaStream_t stream) { + switch (dst_type) { + case GGML_TYPE_F32: + ggml_cuda_get_rows_switch_src0_type(src0_d, src0_type, src1_d, (float *) dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_F16: + ggml_cuda_get_rows_switch_src0_type(src0_d, src0_type, src1_d, (half *) dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + case GGML_TYPE_BF16: + ggml_cuda_get_rows_switch_src0_type(src0_d, src0_type, src1_d, (nv_bfloat16 *) dst_d, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); + break; + default: + GGML_ABORT("%s: unsupported dst type: %s\n", __func__, ggml_type_name(dst_type)); + break; + } } void ggml_cuda_op_get_rows(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { const ggml_tensor * src0 = dst->src[0]; const ggml_tensor * src1 = dst->src[1]; - const void * src0_d = (const void *) src0->data; - const int32_t * src1_d = (const int32_t *) src1->data; - float * dst_d = (float *) dst->data; - cudaStream_t stream = ctx.stream(); + GGML_TENSOR_BINARY_OP_LOCALS + GGML_ASSERT(src1->type == GGML_TYPE_I32); - GGML_ASSERT(dst->type == GGML_TYPE_F32); + GGML_ASSERT(ne13 == 1); GGML_ASSERT(src0->nb[0] == ggml_type_size(src0->type)); GGML_ASSERT(src1->nb[0] == ggml_type_size(src1->type)); GGML_ASSERT(dst->nb[0] == ggml_type_size(dst->type)); - switch (src0->type) { - case GGML_TYPE_F16: - get_rows_cuda_float(src0, src1, dst, (const half *) src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_F32: - get_rows_cuda_float(src0, src1, dst, (const float *) src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_Q4_0: - get_rows_cuda(src0, src1, dst, src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_Q4_1: - get_rows_cuda(src0, src1, dst, src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_Q5_0: - get_rows_cuda(src0, src1, dst, src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_Q5_1: - get_rows_cuda(src0, src1, dst, src0_d, src1_d, dst_d, stream); - break; - case GGML_TYPE_Q8_0: - get_rows_cuda(src0, src1, dst, src0_d, src1_d, dst_d, stream); - break; - default: - // TODO: k-quants - GGML_ABORT("%s: unsupported type: %s\n", __func__, ggml_type_name(src0->type)); - break; - } + get_rows_cuda(src0->data, src0->type, (const int32_t *) src1->data, dst->data, dst->type, + ne00, nb01, nb02, nb03, ne10, ne11, ne12, nb10, nb11, nb12, nb1, nb2, nb3, stream); } void ggml_cuda_op_get_rows_back(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { diff --git a/ggml/src/ggml-cuda/getrows.cuh b/ggml/src/ggml-cuda/getrows.cuh index a1ca643f1c..3c5bea5f48 100644 --- a/ggml/src/ggml-cuda/getrows.cuh +++ b/ggml/src/ggml-cuda/getrows.cuh @@ -3,6 +3,13 @@ #define CUDA_GET_ROWS_BLOCK_SIZE 256 #define CUDA_GET_ROWS_BACK_BLOCK_SIZE 256 +void get_rows_cuda( + const void * src0_d, ggml_type src0_type, const int32_t * src1_d, void * dst_d, ggml_type dst_type, + int64_t ne00, size_t nb01, size_t nb02, size_t nb03, + int64_t ne10, int64_t ne11, int64_t ne12, size_t nb10, size_t nb11, size_t nb12, + size_t nb1, size_t nb2, size_t nb3, + cudaStream_t stream); + void ggml_cuda_op_get_rows(ggml_backend_cuda_context & ctx, ggml_tensor * dst); void ggml_cuda_op_get_rows_back(ggml_backend_cuda_context & ctx, ggml_tensor * dst); diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index fba8cb6565..9fb2134f98 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1551,7 +1551,7 @@ static void ggml_cuda_op_mul_mat( if (src1_on_device && src1_is_contiguous) { quantize_src1( - dev[id].src1_ddf, dev[id].src1_ddq, src0->type, ne10, + dev[id].src1_ddf, nullptr, dev[id].src1_ddq, src0->type, ne10, nb11/sizeof(float), nb12/sizeof(float), nb13/sizeof(float), src1_padded_col_size, ne11, ne12, ne13, stream); CUDA_CHECK(cudaGetLastError()); @@ -1649,7 +1649,7 @@ static void ggml_cuda_op_mul_mat( if (quantize_src1 && !src1_is_contiguous) { quantize_src1( - src1_ddf_i, src1_ddq_i, src0->type, ne10, ne10, ne11*ne10, ne12*ne11*ne10, + src1_ddf_i, nullptr, src1_ddq_i, src0->type, ne10, ne10, ne11*ne10, ne12*ne11*ne10, src1_padded_col_size, src1_ncols, 1, 1, stream); CUDA_CHECK(cudaGetLastError()); } @@ -1949,6 +1949,8 @@ static void ggml_cuda_mul_mat(ggml_backend_cuda_context & ctx, const ggml_tensor ggml_cuda_mul_mat_vec(ctx, src0, src1, nullptr, dst); } else if (!split && use_mul_mat_vec_q) { ggml_cuda_mul_mat_vec_q(ctx, src0, src1, nullptr, dst); + } else if (!split && use_mul_mat_q) { + ggml_cuda_mul_mat_q(ctx, src0, src1, nullptr, dst); } else if (!split && src0->type == GGML_TYPE_F16 && (src1->type == GGML_TYPE_F16 || !any_gpus_with_slow_fp16) && !ggml_is_transposed(src0) && !ggml_is_transposed(src1) && src1->ne[2]*src1->ne[3] > 1) { // general KQ + KQV multi-batch without FlashAttention @@ -1964,183 +1966,145 @@ static void ggml_cuda_mul_mat(ggml_backend_cuda_context & ctx, const ggml_tensor } } -struct mmid_row_mapping { - int32_t i1; - int32_t i2; -}; - -static __global__ void k_copy_src1_to_contiguous(const char * __restrict__ src1_original, char * __restrict__ src1_contiguous, - int * __restrict__ cur_src1_row, mmid_row_mapping * __restrict__ row_mapping, - const char * __restrict ids, int64_t i02, size_t ids_nb1, size_t ids_nb0, - int64_t ne11, int64_t ne10, - size_t nb11, size_t nb12) { - int32_t iid1 = blockIdx.x; - int32_t id = blockIdx.y; - - const int32_t row_id_i = *(const int32_t *) (ids + iid1*ids_nb1 + id*ids_nb0); - - if (row_id_i != i02) { - return; - } - - const int64_t i11 = id % ne11; - const int64_t i12 = iid1; - - __shared__ int src1_row; - if (threadIdx.x == 0) { - src1_row = atomicAdd(cur_src1_row, 1); - row_mapping[src1_row] = {id, iid1}; - } - __syncthreads(); - - const float * src1_row_original = (const float *)(src1_original + i11*nb11 + i12*nb12); - float * src1_row_contiguous = (float *)(src1_contiguous + src1_row*nb11); - - for (int i = threadIdx.x; i < ne10; i += blockDim.x) { - src1_row_contiguous[i] = src1_row_original[i]; - } -} - -static __global__ void k_copy_dst_from_contiguous(char * __restrict__ dst_original, const char * __restrict__ dst_contiguous, - const mmid_row_mapping * __restrict__ row_mapping, - int64_t ne0, - size_t nb1, size_t nb2) { - int32_t i = blockIdx.x; - - const int32_t i1 = row_mapping[i].i1; - const int32_t i2 = row_mapping[i].i2; - - const float * dst_row_contiguous = (const float *)(dst_contiguous + i*nb1); - float * dst_row_original = (float *)(dst_original + i1*nb1 + i2*nb2); - - for (int j = threadIdx.x; j < ne0; j += blockDim.x) { - dst_row_original[j] = dst_row_contiguous[j]; - } -} - static void ggml_cuda_mul_mat_id(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { const ggml_tensor * src0 = dst->src[0]; const ggml_tensor * src1 = dst->src[1]; const ggml_tensor * ids = dst->src[2]; + GGML_ASSERT(src1->type == GGML_TYPE_F32); + GGML_ASSERT(dst->type == GGML_TYPE_F32); + GGML_ASSERT(!ggml_backend_buft_is_cuda_split(src0->buffer->buft) && "mul_mat_id does not support split buffers"); + GGML_TENSOR_BINARY_OP_LOCALS - if (src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32 && ne2 == 1) { - if (ggml_is_quantized(src0->type)) { - ggml_cuda_mul_mat_vec_q(ctx, src0, src1, ids, dst); - } else { - ggml_cuda_mul_mat_vec(ctx, src0, src1, ids, dst); - } - return; - } + const int cc = ggml_cuda_info().devices[ggml_cuda_get_device()].cc; - GGML_ASSERT(!ggml_backend_buft_is_cuda_split(src0->buffer->buft) && "mul_mat_id does not support split buffers"); + if (src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { + if (ne2 == 1) { + if (ggml_is_quantized(src0->type)) { + ggml_cuda_mul_mat_vec_q(ctx, src0, src1, ids, dst); + } else { + ggml_cuda_mul_mat_vec(ctx, src0, src1, ids, dst); + } + return; + } + + if (ggml_cuda_should_use_mmq(src0->type, cc, ne12)) { + ggml_cuda_mul_mat_q(ctx, src0, src1, ids, dst); + return; + } + } cudaStream_t stream = ctx.stream(); - const int64_t n_as = ne02; - const int64_t n_ids = ids->ne[0]; + GGML_ASSERT(nb12 % nb11 == 0); + GGML_ASSERT(nb2 % nb1 == 0); + + const ggml_type type_src1_sorted = (src0->type == GGML_TYPE_F16 && !fast_fp16_hardware_available(cc)) + || ggml_is_quantized(src0->type) ? GGML_TYPE_F32 : src0->type; + const ggml_type type_dst_sorted = GGML_TYPE_F32; + const size_t ts_src1_sorted = ggml_type_size(type_src1_sorted); + const size_t ts_dst_sorted = ggml_type_size(type_dst_sorted); + + const int64_t n_expert_used = ids->ne[0]; + const int64_t ne_get_rows = ne12 * n_expert_used; + + std::vector ids_to_sorted_host; + ids_to_sorted_host.reserve(2*ne_get_rows); + std::vector ids_from_sorted_host(ne_get_rows); + + ggml_cuda_pool_alloc ids_buf_dev(ctx.pool(), 2*ne_get_rows); + + std::vector tokens_per_expert(ne02); + + ggml_cuda_pool_alloc src1_sorted(ctx.pool(), ne12*n_expert_used*ne10*ts_src1_sorted); + ggml_cuda_pool_alloc dst_sorted(ctx.pool(), ne2 *n_expert_used* ne0*ts_dst_sorted); std::vector ids_host(ggml_nbytes(ids)); - const char * ids_dev = (const char *) ids->data; - CUDA_CHECK(cudaMemcpyAsync(ids_host.data(), ids_dev, ggml_nbytes(ids), cudaMemcpyDeviceToHost, stream)); + CUDA_CHECK(cudaMemcpyAsync(ids_host.data(), ids->data, ggml_nbytes(ids), cudaMemcpyDeviceToHost, stream)); CUDA_CHECK(cudaStreamSynchronize(stream)); - ggml_tensor src0_row = *src0; - ggml_tensor src1_row = *src1; - ggml_tensor dst_row = *dst; - - char * src0_original = (char *) src0->data; - char * src1_original = (char *) src1->data; - char * dst_original = (char *) dst->data; - - src0_row.ne[2] = 1; - src0_row.ne[3] = 1; - src0_row.nb[3] = nb02; - - src1_row.ne[1] = 1; - src1_row.ne[2] = 1; - src1_row.ne[3] = 1; - src1_row.nb[2] = nb11; - src1_row.nb[3] = nb11; - - dst_row.ne[1] = 1; - dst_row.ne[2] = 1; - dst_row.ne[3] = 1; - dst_row.nb[2] = nb1; - dst_row.nb[3] = nb1; - - ggml_cuda_pool_alloc src1_contiguous(ctx.pool(), sizeof(float)*ggml_nelements(src1)); - ggml_cuda_pool_alloc dst_contiguous(ctx.pool(), sizeof(float)*ggml_nelements(dst)); - - src1_row.data = src1_contiguous.get(); - dst_row.data = dst_contiguous.get(); - - for (int64_t i02 = 0; i02 < n_as; i02++) { - int64_t num_src1_rows = 0; - - for (int64_t iid1 = 0; iid1 < ids->ne[1]; iid1++) { - for (int64_t id = 0; id < n_ids; id++) { - const int32_t row_id_i = *(const int32_t *) (ids_host.data() + iid1*ids->nb[1] + id*ids->nb[0]); - - GGML_ASSERT(row_id_i >= 0 && row_id_i < n_as); - - if (row_id_i != i02) { - continue; + for (int64_t i02 = 0; i02 < ne02; ++i02) { // expert matrices + for (int64_t i12 = 0; i12 < ne12; ++i12) { // tokens + for (int64_t iex = 0; iex < n_expert_used; ++iex) { + const int32_t expert_to_use = *(const int32_t *)(ids_host.data() + i12*ids->nb[1] + iex*ids->nb[0]); + assert(expert_to_use >= 0 && expert_to_use < ne02); + if (expert_to_use == i02) { + ids_from_sorted_host[i12*n_expert_used + iex] = ids_to_sorted_host.size(); + ids_to_sorted_host.push_back(i12*ne11 + iex % ne11); + tokens_per_expert[i02]++; + break; } - - num_src1_rows++; } } + } + GGML_ASSERT(ids_to_sorted_host.size() == size_t(ne_get_rows)); - if (num_src1_rows == 0) { + ids_to_sorted_host.insert(ids_to_sorted_host.end(), ids_from_sorted_host.begin(), ids_from_sorted_host.end()); + + CUDA_CHECK(cudaMemcpyAsync(ids_buf_dev.ptr, ids_to_sorted_host.data(), 2*ne_get_rows*sizeof(int32_t), cudaMemcpyHostToDevice, stream)); + CUDA_CHECK(cudaStreamSynchronize(stream)); + + const int32_t * ids_to_sorted = ids_buf_dev.ptr + 0*ne_get_rows; + const int32_t * ids_from_sorted = ids_buf_dev.ptr + 1*ne_get_rows; + + get_rows_cuda(src1->data, src1->type, ids_to_sorted, src1_sorted.ptr, type_src1_sorted, + ne10, nb11, nb12, nb13, + ne_get_rows, 1, 1, sizeof(int32_t), ne_get_rows*sizeof(int32_t), ne_get_rows*sizeof(int32_t), + ne10*ts_src1_sorted, ne_get_rows*ne10*ts_src1_sorted, ne_get_rows*ne10*ts_src1_sorted, stream); + CUDA_CHECK(cudaGetLastError()); + + char * src1_data_cur = (char *) src1_sorted.ptr; + char * dst_data_cur = (char *) dst_sorted.ptr; + for (int64_t i02 = 0; i02 < ne02; ++i02) { + if (tokens_per_expert[i02] == 0) { continue; } - ggml_cuda_pool_alloc dev_cur_src1_row(ctx.pool(), 1); - ggml_cuda_pool_alloc dev_row_mapping(ctx.pool(), num_src1_rows); - CUDA_CHECK(cudaMemsetAsync(dev_cur_src1_row.get(), 0, sizeof(int), stream)); + ggml_tensor src0_slice = *src0; + src0_slice.ne[2] = 1; + src0_slice.nb[3] = src0_slice.nb[2]; + src0_slice.data = (char *) src0->data + i02*nb02; - { - dim3 block_dims(std::min((unsigned int)ne10, 768u)); - dim3 grid_dims(ids->ne[1], n_ids); - k_copy_src1_to_contiguous<<>>( - src1_original, src1_contiguous.get(), - dev_cur_src1_row.get(), dev_row_mapping.get(), - ids_dev, i02, ids->nb[1], ids->nb[0], - ne11, ne10, - nb11, nb12); - CUDA_CHECK(cudaGetLastError()); - } + ggml_tensor src1_slice; + memset(&src1_slice, 0, sizeof(src1_slice)); + src1_slice.buffer = src1->buffer; + src1_slice.type = type_src1_sorted; + src1_slice.ne[0] = ne10; + src1_slice.ne[1] = tokens_per_expert[i02]; + src1_slice.ne[2] = 1; + src1_slice.ne[3] = 1; + src1_slice.nb[0] = ts_src1_sorted; + src1_slice.nb[1] = src1_slice.ne[0] * src1_slice.nb[0]; + src1_slice.nb[2] = src1_slice.ne[1] * src1_slice.nb[1]; + src1_slice.nb[3] = src1_slice.ne[2] * src1_slice.nb[2]; + src1_slice.data = src1_data_cur; - src0_row.data = src0_original + i02*nb02; + ggml_tensor dst_slice; + memset(&dst_slice, 0, sizeof(dst_slice)); + dst_slice.buffer = dst->buffer; + dst_slice.type = type_dst_sorted; + dst_slice.ne[0] = ne0; + dst_slice.ne[1] = tokens_per_expert[i02]; + dst_slice.ne[2] = 1; + dst_slice.ne[3] = 1; + dst_slice.nb[0] = ts_dst_sorted; + dst_slice.nb[1] = dst_slice.ne[0] * dst_slice.nb[0]; + dst_slice.nb[2] = dst_slice.ne[1] * dst_slice.nb[1]; + dst_slice.nb[3] = dst_slice.ne[2] * dst_slice.nb[2]; + dst_slice.data = dst_data_cur; - GGML_ASSERT(nb11 == sizeof(float)*ne10); - GGML_ASSERT(nb1 == sizeof(float)*ne0); + ggml_cuda_mul_mat(ctx, &src0_slice, &src1_slice, &dst_slice); + CUDA_CHECK(cudaGetLastError()); - src1_row.ne[1] = num_src1_rows; - src1_row.nb[1] = nb11; - src1_row.nb[2] = num_src1_rows*nb11; - src1_row.nb[3] = num_src1_rows*nb11; - - dst_row.ne[1] = num_src1_rows; - dst_row.nb[1] = nb1; - dst_row.nb[2] = num_src1_rows*nb1; - dst_row.nb[3] = num_src1_rows*nb1; - - ggml_cuda_mul_mat(ctx, &src0_row, &src1_row, &dst_row); - - { - dim3 block_dims(std::min((unsigned int)ne0, 768u)); - dim3 grid_dims(num_src1_rows); - k_copy_dst_from_contiguous<<>>( - dst_original, dst_contiguous.get(), - dev_row_mapping.get(), - ne0, - nb1, nb2); - CUDA_CHECK(cudaGetLastError()); - } + src1_data_cur += src1_slice.nb[2]; + dst_data_cur += dst_slice.nb[2]; } + + get_rows_cuda(dst_sorted.ptr, type_dst_sorted, ids_from_sorted, dst->data, dst->type, + ne0, ne0*ts_dst_sorted, ne_get_rows*ne0*ts_dst_sorted, ne_get_rows*ne0*ts_dst_sorted, + ne_get_rows, 1, 1, sizeof(int32_t), ne_get_rows*sizeof(int32_t), ne_get_rows*sizeof(int32_t), + nb1, nb2, nb3, stream); } static bool ggml_cuda_compute_forward(ggml_backend_cuda_context & ctx, struct ggml_tensor * dst) { diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index b36b43d541..f397a7e038 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -1,37 +1,10 @@ #include "mmq.cuh" +#include "quantize.cuh" -void ggml_cuda_op_mul_mat_q( - ggml_backend_cuda_context & ctx, - const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, const char * src0_dd_i, const float * src1_ddf_i, - const char * src1_ddq_i, float * dst_dd_i, const int64_t row_low, const int64_t row_high, const int64_t src1_ncols, - const int64_t src1_padded_row_size, cudaStream_t stream) { +#include - const int64_t ne00 = src0->ne[0]; - - const int64_t ne10 = src1->ne[0]; - const int64_t ne11 = src1->ne[1]; - GGML_ASSERT(ne10 % QK8_1 == 0); - - const int64_t ne0 = dst->ne[0]; - - const int64_t row_diff = row_high - row_low; - const int64_t stride00 = ne00 / ggml_blck_size(src0->type); - - int id = ggml_cuda_get_device(); - const int cc = ggml_cuda_info().devices[id].cc; - - // the main device has a larger memory buffer to hold the results from all GPUs - // nrows_dst == nrows of the matrix that the kernel writes into - const int64_t nrows_dst = id == ctx.device ? ne0 : row_diff; - - // The stream-k decomposition is only faster for recent NVIDIA GPUs. - // Also its fixup needs to allocate a temporary buffer in the memory pool. - // There are multiple parallel CUDA streams for src1_ncols != ne11 which would introduce a race condition for this buffer. - const bool use_stream_k = GGML_CUDA_CC_IS_NVIDIA(cc) && - ggml_cuda_highest_compiled_arch(cc) >= GGML_CUDA_CC_VOLTA && src1_ncols == ne11; - const mmq_args args = {src0_dd_i, src1_ddq_i, dst_dd_i, ne00, row_diff, stride00, src1_padded_row_size, src1_ncols, ne11, nrows_dst, use_stream_k}; - - switch (src0->type) { +static void ggml_cuda_mul_mat_q_switch_type(ggml_backend_cuda_context & ctx, const mmq_args & args, cudaStream_t stream) { + switch (args.type_x) { case GGML_TYPE_Q4_0: mul_mat_q_case(ctx, args, stream); break; @@ -90,10 +63,195 @@ void ggml_cuda_op_mul_mat_q( GGML_ABORT("fatal error"); break; } +} + +void ggml_cuda_mul_mat_q( + ggml_backend_cuda_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * ids, ggml_tensor * dst) { + GGML_ASSERT( src1->type == GGML_TYPE_F32); + GGML_ASSERT( dst->type == GGML_TYPE_F32); + GGML_ASSERT(!ids || ids->type == GGML_TYPE_I32); // Optional, used for batched GGML_MUL_MAT_ID. + + GGML_TENSOR_BINARY_OP_LOCALS; + + cudaStream_t stream = ctx.stream(); + const int cc = ggml_cuda_info().devices[ggml_cuda_get_device()].cc; + + const size_t ts_src0 = ggml_type_size(src0->type); + const size_t ts_src1 = ggml_type_size(src1->type); + const size_t ts_dst = ggml_type_size(dst->type); + + GGML_ASSERT( nb00 == ts_src0); + GGML_ASSERT( nb10 == ts_src1); + GGML_ASSERT( nb0 == ts_dst); + GGML_ASSERT(!ids || ids->nb[0] == ggml_type_size(ids->type)); + + const char * src0_d = (const char *) src0->data; + const float * src1_d = (const float *) src1->data; + float * dst_d = (float *) dst->data; + + const int64_t ne10_padded = GGML_PAD(ne10, MATRIX_ROW_PADDING); + + const int64_t s01 = src0->nb[1] / ts_src0; + const int64_t s1 = dst->nb[1] / ts_dst; + const int64_t s02 = src0->nb[2] / ts_src0; + const int64_t s2 = dst->nb[2] / ts_dst; + const int64_t s03 = src0->nb[3] / ts_src0; + const int64_t s3 = dst->nb[3] / ts_dst; + + const bool use_stream_k = GGML_CUDA_CC_IS_NVIDIA(cc) && ggml_cuda_highest_compiled_arch(cc) >= GGML_CUDA_CC_VOLTA; + + if (!ids) { + const size_t nbytes_src1_q8_1 = ne13*ne12 * ne11*ne10_padded * sizeof(block_q8_1)/QK8_1 + + get_mmq_x_max_host(cc)*sizeof(block_q8_1_mmq); + ggml_cuda_pool_alloc src1_q8_1(ctx.pool(), nbytes_src1_q8_1); + + { + const int64_t s11 = src1->nb[1] / ts_src1; + const int64_t s12 = src1->nb[2] / ts_src1; + const int64_t s13 = src1->nb[3] / ts_src1; + quantize_mmq_q8_1_cuda(src1_d, nullptr, src1_q8_1.get(), src0->type, + ne10, s11, s12, s13, ne10_padded, ne11, ne12, ne13, stream); + } + + const int64_t s12 = ne11*ne10_padded * sizeof(block_q8_1)/(QK8_1*sizeof(int)); + const int64_t s13 = ne12*s12; + + const mmq_args args = { + src0_d, src0->type, (const int *) src1_q8_1.ptr, nullptr, nullptr, dst_d, + ne00, ne01, ne1, s01, s1, + ne02, ne12, s02, s12, s2, + ne03, ne13, s03, s13, s3, + use_stream_k}; + ggml_cuda_mul_mat_q_switch_type(ctx, args, stream); + return; + } + + GGML_ASSERT(ne13 == 1); + GGML_ASSERT(nb12 % nb11 == 0); + GGML_ASSERT(nb2 % nb1 == 0); + + const int64_t n_expert_used = ids->ne[0]; + const int64_t ne_get_rows = ne12 * n_expert_used; + + std::vector ids_host(ggml_nbytes(ids)); + std::vector ids_src1_host; + ids_src1_host.reserve(ne_get_rows); + std::vector ids_dst_host; + ids_dst_host.reserve(ne_get_rows); + std::vector tokens_per_expert_host(ne02); + std::vector expert_bounds_host(ne02 + 1); + ggml_cuda_pool_alloc ids_buf_dev(ctx.pool()); + + CUDA_CHECK(cudaMemcpyAsync(ids_host.data(), ids->data, ggml_nbytes(ids), cudaMemcpyDeviceToHost, stream)); + CUDA_CHECK(cudaStreamSynchronize(stream)); + + for (int64_t i02 = 0; i02 < ne02; ++i02) { // expert matrices + for (int64_t i12 = 0; i12 < ne12; ++i12) { // tokens + for (int64_t iex = 0; iex < n_expert_used; ++iex) { + const int32_t expert_to_use = *(const int32_t *)(ids_host.data() + i12*ids->nb[1] + iex*ids->nb[0]); + assert(expert_to_use >= 0 && expert_to_use < ne02); + if (expert_to_use == i02) { + ids_src1_host.push_back(i12*(nb12/nb11) + iex % ne11); + ids_dst_host.push_back(i12*ne1 + iex); + tokens_per_expert_host[i02]++; + break; + } + } + } + } + + int32_t cumsum = 0; + for (int64_t i = 0; i < ne02; ++i) { + expert_bounds_host[i] = cumsum; + cumsum += tokens_per_expert_host[i]; + } + expert_bounds_host[ne02] = cumsum; + + std::vector ids_buf_host; + ids_buf_host.reserve(ids_src1_host.size() + ids_dst_host.size() + expert_bounds_host.size()); + ids_buf_host.insert(ids_buf_host.end(), ids_src1_host.begin(), ids_src1_host.end()); + ids_buf_host.insert(ids_buf_host.end(), ids_dst_host.begin(), ids_dst_host.end()); + ids_buf_host.insert(ids_buf_host.end(), expert_bounds_host.begin(), expert_bounds_host.end()); + ids_buf_dev.alloc(ids_buf_host.size() + get_mmq_x_max_host(cc)); // Expert bounds are padded on device. + CUDA_CHECK(cudaMemcpyAsync(ids_buf_dev.ptr, ids_buf_host.data(), ids_buf_host.size()*sizeof(int32_t), cudaMemcpyHostToDevice, stream)); + CUDA_CHECK(cudaStreamSynchronize(stream)); + + const int32_t * ids_src1_dev = ids_buf_dev.ptr; + const int32_t * ids_dst_dev = ids_src1_dev + ids_src1_host.size(); + const int32_t * expert_bounds_dev = ids_dst_dev + ids_dst_host.size(); + + const size_t nbytes_src1_q8_1 = ne12*n_expert_used*ne10_padded * sizeof(block_q8_1)/QK8_1 + + get_mmq_x_max_host(cc)*sizeof(block_q8_1_mmq); + ggml_cuda_pool_alloc src1_q8_1(ctx.pool(), nbytes_src1_q8_1); + + const int64_t ne11_flat = ne12*n_expert_used; + const int64_t ne12_flat = 1; + const int64_t ne13_flat = 1; + + { + const int64_t s11 = src1->nb[1] / ts_src1; + const int64_t s12 = src1->nb[2] / ts_src1; + const int64_t s13 = src1->nb[2] / ts_src1; + quantize_mmq_q8_1_cuda(src1_d, ids_src1_dev, src1_q8_1.get(), src0->type, + ne10, s11, s12, s13, ne10_padded, ne11_flat, ne12_flat, ne13_flat, stream); + } + + const int64_t s12 = ne11*ne10_padded * sizeof(block_q8_1)/(QK8_1*sizeof(int)); + const int64_t s13 = ne12*s12; + + // Note that ne02 is used instead of ne12 because the number of y channels determines the z dimension of the CUDA grid. + const mmq_args args = { + src0_d, src0->type, (const int *) src1_q8_1.ptr, ids_dst_dev, expert_bounds_dev, dst_d, + ne00, ne01, ne_get_rows, s01, s1, + ne02, ne02, s02, s12, s2, + ne03, ne13, s03, s13, s3, + use_stream_k}; + + ggml_cuda_mul_mat_q_switch_type(ctx, args, stream); +} + +void ggml_cuda_op_mul_mat_q( + ggml_backend_cuda_context & ctx, + const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, const char * src0_dd_i, const float * src1_ddf_i, + const char * src1_ddq_i, float * dst_dd_i, const int64_t row_low, const int64_t row_high, const int64_t src1_ncols, + const int64_t src1_padded_row_size, cudaStream_t stream) { + + const int64_t ne00 = src0->ne[0]; + + const int64_t ne10 = src1->ne[0]; + const int64_t ne11 = src1->ne[1]; + GGML_ASSERT(ne10 % QK8_1 == 0); + + const int64_t ne0 = dst->ne[0]; + + const int64_t row_diff = row_high - row_low; + const int64_t stride01 = ne00 / ggml_blck_size(src0->type); + + const int id = ggml_cuda_get_device(); + const int cc = ggml_cuda_info().devices[id].cc; + + // the main device has a larger memory buffer to hold the results from all GPUs + // nrows_dst == nrows of the matrix that the kernel writes into + const int64_t nrows_dst = id == ctx.device ? ne0 : row_diff; + + // The stream-k decomposition is only faster for recent NVIDIA GPUs. + // Also its fixup needs to allocate a temporary buffer in the memory pool. + // There are multiple parallel CUDA streams for src1_ncols != ne11 which would introduce a race condition for this buffer. + const bool use_stream_k = GGML_CUDA_CC_IS_NVIDIA(cc) && + ggml_cuda_highest_compiled_arch(cc) >= GGML_CUDA_CC_VOLTA && src1_ncols == ne11; + const mmq_args args = { + src0_dd_i, src0->type, (const int *) src1_ddq_i, nullptr, nullptr, dst_dd_i, + ne00, row_diff, src1_ncols, stride01, nrows_dst, + 1, 1, 0, 0, 0, + 1, 1, 0, 0, 0, + use_stream_k}; + + ggml_cuda_mul_mat_q_switch_type(ctx, args, stream); GGML_UNUSED(src1); GGML_UNUSED(dst); GGML_UNUSED(src1_ddf_i); + GGML_UNUSED(src1_padded_row_size); } bool ggml_cuda_should_use_mmq(enum ggml_type type, int cc, int64_t ne11) { diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index 3cb2015520..8c93e8326e 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -13,9 +13,10 @@ using namespace ggml_cuda_mma; #define MMQ_ITER_K 256 #define MMQ_NWARPS 8 -typedef void (*load_tiles_mmq_t)(const char * __restrict__ x, int * x_tile, const int & kbx0, const int & i_max, const int & stride); -typedef void (*vec_dot_mmq_t)(const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00); -typedef void (*mmq_write_back_t)(const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max); +typedef void (*load_tiles_mmq_t)(const char * __restrict__ x, int * x_tile, const int kbx0, const int i_max, const int stride); +typedef void (*vec_dot_mmq_t)(const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00); +typedef void (*mmq_write_back_t)(const float * __restrict__ sum, const int32_t * __restrict__ get_rows_to_sorted, + float * __restrict__ dst, const int stride, const int i_max, const int j_max); enum mmq_q8_1_ds_layout { MMQ_Q8_1_DS_LAYOUT_D4, @@ -233,7 +234,7 @@ static constexpr __device__ int mmq_get_granularity_device(const int /* mmq_x */ // ------------------------------------------------------------ template static __device__ __forceinline__ void load_tiles_q4_0( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -289,7 +290,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q4_0, mmq_y); const int * x_qs = (const int *) x; @@ -328,7 +329,7 @@ static __device__ __forceinline__ void vec_dot_q4_0_q8_1_dp4a( } template static __device__ __forceinline__ void load_tiles_q4_1( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -384,7 +385,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q4_1, mmq_y); const int * x_qs = (const int *) x; @@ -423,7 +424,7 @@ static __device__ __forceinline__ void vec_dot_q4_1_q8_1_dp4a( } template static __device__ __forceinline__ void load_tiles_q5_0( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -495,7 +496,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_q5_1( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -565,7 +566,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_q8_0( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -621,7 +622,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q8_0, mmq_y); const int * x_qs = (const int *) x; @@ -651,7 +652,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { typedef tile<16, 8, int> tile_A; typedef tile< 8, 8, int> tile_B; @@ -732,7 +733,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_q8_1_mma( template static __device__ __forceinline__ void vec_dot_q8_1_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q5_1, mmq_y); const int * x_qs = (const int *) x; @@ -762,7 +763,7 @@ static __device__ __forceinline__ void vec_dot_q8_1_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { typedef tile<16, 8, int> tile_A; typedef tile< 8, 8, int> tile_B; @@ -839,7 +840,7 @@ static __device__ __forceinline__ void vec_dot_q8_1_q8_1_mma( template static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = MMQ_DP4A_TXS_Q8_0_16; const int * x_qs = (const int *) x; @@ -871,7 +872,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { #ifdef NEW_MMA_AVAILABLE typedef tile<16, 4, int> tile_A; @@ -955,7 +956,7 @@ static __device__ __forceinline__ void vec_dot_q8_0_16_q8_1_mma( } template static __device__ __forceinline__ void load_tiles_q2_K( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1011,7 +1012,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q2_K_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q2_K, mmq_y); const int * x_qs = (const int *) x; @@ -1074,7 +1075,7 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { #ifdef NEW_MMA_AVAILABLE typedef tile<16, 4, int> tile_A; @@ -1201,7 +1202,7 @@ static __device__ __forceinline__ void vec_dot_q2_K_q8_1_mma( } template static __device__ __forceinline__ void load_tiles_q3_K( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1298,7 +1299,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q3_K_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q3_K, mmq_y); const int * x_qs = (const int *) x; @@ -1340,7 +1341,7 @@ static __device__ __forceinline__ int unpack_scales_q45_K(const int * scales, co } template static __device__ __forceinline__ void load_tiles_q4_K( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1437,7 +1438,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q4_K, mmq_y); const int * x_qs = (const int *) x; @@ -1469,7 +1470,7 @@ static __device__ __forceinline__ void vec_dot_q4_K_q8_1_dp4a( } template static __device__ __forceinline__ void load_tiles_q5_K( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1578,7 +1579,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q5_K, mmq_y); const int * x_qs = (const int *) x; @@ -1610,7 +1611,7 @@ static __device__ __forceinline__ void vec_dot_q5_K_q8_1_dp4a( } template static __device__ __forceinline__ void load_tiles_q6_K( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1693,7 +1694,7 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { constexpr tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(GGML_TYPE_Q6_K, mmq_y); const int * x_qs = (const int *) x; @@ -1726,7 +1727,7 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_dp4a( template static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( - const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int & k00) { + const int * __restrict__ x, const int * __restrict__ y, float * __restrict__ sum, const int k00) { #ifdef NEW_MMA_AVAILABLE typedef tile<16, 4, int> tile_A; @@ -1835,7 +1836,7 @@ static __device__ __forceinline__ void vec_dot_q6_K_q8_1_mma( } template static __device__ __forceinline__ void load_tiles_iq4_nl( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1893,7 +1894,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq2_xxs( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -1951,7 +1952,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq2_xs( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2007,7 +2008,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq2_s( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2070,7 +2071,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq3_xxs( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2126,7 +2127,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq3_s( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2189,7 +2190,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq1_s( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2245,7 +2246,7 @@ template static __device__ __forceinlin } template static __device__ __forceinline__ void load_tiles_iq4_xs( - const char * __restrict__ x, int * __restrict__ x_tile, const int & kbx0, const int & i_max, const int & stride) { + const char * __restrict__ x, int * __restrict__ x_tile, const int kbx0, const int i_max, const int stride) { #ifdef NEW_MMA_AVAILABLE int * x_qs = (int *) x_tile; @@ -2306,8 +2307,8 @@ template static __device__ __forceinlin template static __device__ __forceinline__ void mmq_write_back_dp4a( - const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max) { - + const float * __restrict__ sum, const int32_t * __restrict__ ids_dst, float * __restrict__ dst, + const int stride, const int i_max, const int j_max) { #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { const int j = j0 + threadIdx.y; @@ -2324,15 +2325,15 @@ static __device__ __forceinline__ void mmq_write_back_dp4a( continue; } - dst[j*stride + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + dst[ids_dst[j]*stride + i] = sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; } } } template static __device__ __forceinline__ void mmq_write_back_mma( - const float * __restrict__ sum, float * __restrict__ dst, const int & stride, const int & i_max, const int & j_max) { - + const float * __restrict__ sum, const int * __restrict__ ids_dst, float * __restrict__ dst, + const int stride, const int i_max, const int j_max) { typedef tile<16, 8, int> tile_C; constexpr int granularity = mmq_get_granularity_device(mmq_x); @@ -2362,7 +2363,7 @@ static __device__ __forceinline__ void mmq_write_back_mma( continue; } - dst[j*stride + i] = sum[(j0/tile_C::J + n)*tile_C::ne + l]; + dst[ids_dst[j]*stride + i] = sum[(j0/tile_C::J + n)*tile_C::ne + l]; } } } @@ -2518,17 +2519,18 @@ struct mmq_type_traits { }; template -static __device__ void mul_mat_q_process_tile( - const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, float * __restrict__ tmp_fixup, - const int & ne00, const int & ne01, const int & stride01, const int & ne10, const int & ne11, const int & stride11, const int & ne0, - const int & it, const int & jt, const int & kb0_start, const int & kb0_stop) { +static __device__ __forceinline__ void mul_mat_q_process_tile( + const char * __restrict__ x, const int offset_x, const int * __restrict__ y, + const int * __restrict__ ids_dst, float * __restrict__ dst, float * __restrict__ tmp_fixup, + const int nrows_x, const int ncols_y, const int stride_row_x, const int stride_col_dst, + const int tile_x_max_i, const int tile_y_max_j, const int kb0_start, const int kb0_stop) { constexpr int qk = ggml_cuda_type_traits::qk; constexpr int mmq_y = get_mmq_y_device(); constexpr load_tiles_mmq_t load_tiles = mmq_type_traits::load_tiles; - extern __shared__ char data_mul_mat_q[]; - int * tile_y = (int *) data_mul_mat_q; + extern __shared__ int data_mul_mat_q[]; + int * tile_y = data_mul_mat_q + mmq_x; int * tile_x = tile_y + GGML_PAD(mmq_x*(WARP_SIZE + WARP_SIZE/QI8_1), nwarps*WARP_SIZE); #ifdef NEW_MMA_AVAILABLE @@ -2543,16 +2545,11 @@ static __device__ void mul_mat_q_process_tile( float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; - const int tile_x_max_i = ne01 - it*mmq_y - 1; - const int tile_y_max_j = ne11 - jt*mmq_x - 1; - - const int * y = (const int *) yc + jt*(mmq_x*sizeof(block_q8_1_mmq)/sizeof(int)); - for (int kb0 = kb0_start; kb0 < kb0_stop; kb0 += blocks_per_iter) { - load_tiles(x, tile_x, stride01*it*mmq_y + kb0, tile_x_max_i, stride01); + load_tiles(x, tile_x, offset_x + kb0, tile_x_max_i, stride_row_x); { - const int * by0 = y + stride11*(kb0*(qk*sizeof(block_q8_1_mmq) / (4*QK8_1*sizeof(int))) + 0*sizeof(block_q8_1_mmq)/sizeof(int)); + const int * by0 = y + ncols_y*(kb0*(qk*sizeof(block_q8_1_mmq) / (4*QK8_1*sizeof(int))) + 0*sizeof(block_q8_1_mmq)/sizeof(int)); #pragma unroll for (int l0 = 0; l0 < mmq_x*MMQ_TILE_Y_K; l0 += nwarps*WARP_SIZE) { int l = l0 + threadIdx.y*WARP_SIZE + threadIdx.x; @@ -2568,7 +2565,7 @@ static __device__ void mul_mat_q_process_tile( __syncthreads(); { - const int * by0 = y + stride11*(kb0*(qk*sizeof(block_q8_1_mmq) / (4*QK8_1*sizeof(int))) + 1*sizeof(block_q8_1_mmq)/sizeof(int)); + const int * by0 = y + ncols_y*(kb0*(qk*sizeof(block_q8_1_mmq) / (4*QK8_1*sizeof(int))) + 1*sizeof(block_q8_1_mmq)/sizeof(int)); #pragma unroll for (int l0 = 0; l0 < mmq_x*MMQ_TILE_Y_K; l0 += nwarps*WARP_SIZE) { int l = l0 + threadIdx.y*WARP_SIZE + threadIdx.x; @@ -2585,12 +2582,10 @@ static __device__ void mul_mat_q_process_tile( } if (fixup) { - write_back(sum, tmp_fixup + blockIdx.x*(mmq_x*mmq_y), mmq_y, mmq_y, mmq_x); + write_back(sum, ids_dst, tmp_fixup + blockIdx.x*(mmq_x*mmq_y), mmq_y, mmq_y, mmq_x); } else { - write_back(sum, dst + jt*mmq_x*ne0 + it*mmq_y, ne0, tile_x_max_i, tile_y_max_j); + write_back(sum, ids_dst, dst, stride_col_dst, tile_x_max_i, tile_y_max_j); } - - GGML_UNUSED(ne00); GGML_UNUSED(ne10); } @@ -2609,8 +2604,11 @@ template #endif // __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA #endif // defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__) static __global__ void mul_mat_q( - const char * __restrict__ x, const char * __restrict__ yc, float * __restrict__ dst, float * __restrict__ tmp_fixup, - const int ne00, const int ne01, const int stride01, const int ne10, const int ne11, const int stride11, const int ne0) { + const char * __restrict__ x, const int * __restrict__ y, const int32_t * __restrict__ ids_dst, + const int32_t * __restrict__ expert_bounds, float * __restrict__ dst, float * __restrict__ tmp_fixup, + const int ncols_x, const int nrows_x, const int ncols_y, const int stride_row_x, const int stride_col_dst, + const int channel_ratio, const int nchannels_y, const int stride_channel_x, const int stride_channel_y, const int stride_channel_dst, + const int sample_ratio, const int nsamples_y, const int stride_sample_x, const int stride_sample_y, const int stride_sample_dst) { // Skip unused template specializations for faster compilation: if (mmq_x > get_mmq_x_max_device() || mmq_x % mmq_get_granularity_device(mmq_x) != 0) { @@ -2621,26 +2619,85 @@ static __global__ void mul_mat_q( constexpr int qk = ggml_cuda_type_traits::qk; constexpr int mmq_y = get_mmq_y_device(); + const int ntx = (ncols_y + mmq_x - 1) / mmq_x; // Number of tiles x + const int nty = (nrows_x + mmq_y - 1) / mmq_y; // Number of tiles y + + // Initialize the ids for writing back data with just the index. + // For regular matrix multiplications this is never changed. + // For MoE the correct indices are loaded from ids_dst. + extern __shared__ int ids_dst_shared[]; // Stored at beginning of shared memory. +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { + const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; + + if (j0 + nwarps*WARP_SIZE > mmq_x && j >= mmq_x) { + break; + } + + ids_dst_shared[j] = j; + } + // On AMD or old CUDA the performance with stream-k was worse, use conventional tiling instead: #if (defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ < GGML_CUDA_CC_VOLTA { + const int wt = blockIdx.z / nchannels_y; + const int zt = blockIdx.z - wt*nchannels_y; + const int jt = blockIdx.y; + const int it = blockIdx.x; + + // Defaults for regular matrix multiplication: + int col_low = 0; + int col_high = ncols_y; + int col_diff = ncols_y; + int offset_y = wt*stride_sample_y + zt*stride_channel_y; + int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; + + if (ids_dst) { + col_low = expert_bounds[zt + 0]; + col_high = expert_bounds[zt + 1]; + col_diff = col_high - col_low; + + offset_y = 0; + offset_dst = 0; + + if (jt*mmq_x >= col_diff) { + return; + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { + const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; + + if (j0 + nwarps*WARP_SIZE > mmq_x && j >= mmq_x) { + break; + } + + ids_dst_shared[j] = ids_dst[col_low + jt*mmq_x + j]; + } + } + + offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); + offset_dst += it*mmq_y; + + const int tile_x_max_i = nrows_x - it*mmq_y - 1; + const int tile_y_max_j = col_diff - jt*mmq_x - 1; + + const int offset_x = (wt/sample_ratio)*stride_sample_x + (zt/channel_ratio)*stride_channel_x + it*mmq_y*stride_row_x; + constexpr bool fixup = false; mul_mat_q_process_tile - (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, - blockIdx.x, blockIdx.y, 0, ne00/qk); + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + tile_x_max_i, tile_y_max_j, 0, ncols_x/qk); return; } #endif // (defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ < GGML_CUDA_CC_VOLTA - const int64_t blocks_per_ne00 = ne00 / qk; + const int64_t blocks_per_ne00 = ncols_x / qk; constexpr int blocks_per_iter = MMQ_ITER_K / qk; - const int ntx = (ne11 + mmq_x - 1) / mmq_x; // Number of tiles x - const int nty = (ne01 + mmq_y - 1) / mmq_y; // Number of tiles y - // kbc == k block continuous, current index in continuous ijk space. - int64_t kbc = (int64_t) blockIdx.x *blocks_per_ne00*ntx*nty / gridDim.x; - int64_t kbc_stop = (int64_t)(blockIdx.x + 1)*blocks_per_ne00*ntx*nty / gridDim.x; + int64_t kbc = (int64_t) blockIdx.x *nsamples_y*nchannels_y*ntx*nty*blocks_per_ne00 / gridDim.x; + int64_t kbc_stop = (int64_t)(blockIdx.x + 1)*nsamples_y*nchannels_y*ntx*nty*blocks_per_ne00 / gridDim.x; kbc -= (kbc % blocks_per_ne00) % blocks_per_iter; kbc_stop -= (kbc_stop % blocks_per_ne00) % blocks_per_iter; @@ -2649,13 +2706,64 @@ static __global__ void mul_mat_q( int kb0_start = kbc % blocks_per_ne00; int kb0_stop = min(blocks_per_ne00, kb0_start + kbc_stop - kbc); while (kbc < kbc_stop && kb0_stop == blocks_per_ne00) { - const int jt = kbc / (blocks_per_ne00*nty); // j index of current tile. - const int it = (kbc - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; // i index of current tile. + int tmp = kbc; + const int it = tmp / (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + tmp -= it * (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + const int wt = tmp / (nchannels_y*ntx*blocks_per_ne00); + tmp -= wt * (nchannels_y*ntx*blocks_per_ne00); + const int zt = tmp / (ntx*blocks_per_ne00); + tmp -= zt * (ntx*blocks_per_ne00); + const int jt = tmp / blocks_per_ne00; + + // Defaults for regular matrix multiplication: + int col_low = 0; + int col_high = ncols_y; + int col_diff = ncols_y; + int offset_y = wt*stride_sample_y + zt*stride_channel_y; + int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; + + if (ids_dst) { + col_low = expert_bounds[zt + 0]; + col_high = expert_bounds[zt + 1]; + col_diff = col_high - col_low; + + offset_y = 0; + offset_dst = 0; + + if (jt*mmq_x >= col_diff) { + kbc += blocks_per_ne00; + kbc -= kbc % blocks_per_ne00; + + kb0_start = 0; + kb0_stop = min(blocks_per_ne00, kbc_stop - kbc); + + continue; + } + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { + const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; + + if (j0 + nwarps*WARP_SIZE > mmq_x && j >= mmq_x) { + break; + } + + ids_dst_shared[j] = ids_dst[col_low + jt*mmq_x + j]; + } + } + + offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); + offset_dst += it*mmq_y; + + const int tile_x_max_i = nrows_x - it*mmq_y - 1; + const int tile_y_max_j = col_diff - jt*mmq_x - 1; + + const int offset_x = (wt/sample_ratio)*stride_sample_x + (zt/channel_ratio)*stride_channel_x + it*mmq_y*stride_row_x; constexpr bool fixup = false; // All but (potentially) the last iterations write their data to dst rather than the fixup buffer. mul_mat_q_process_tile - (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, - it, jt, kb0_start, kb0_stop); + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); kbc += blocks_per_ne00; kbc -= kbc % blocks_per_ne00; @@ -2668,55 +2776,106 @@ static __global__ void mul_mat_q( return; } - const int jt = kbc / (blocks_per_ne00*nty); - const int it = (kbc - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; + int tmp = kbc; + const int it = tmp / (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + tmp -= it * (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + const int wt = tmp / (nchannels_y*ntx*blocks_per_ne00); + tmp -= wt * (nchannels_y*ntx*blocks_per_ne00); + const int zt = tmp / (ntx*blocks_per_ne00); + tmp -= zt * (ntx*blocks_per_ne00); + const int jt = tmp / blocks_per_ne00; + + // Defaults for regular matrix multiplication: + int col_low = 0; + int col_high = ncols_y; + int col_diff = ncols_y; + int offset_y = wt*stride_sample_y + zt*stride_channel_y; + int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; + + if (ids_dst) { + col_low = expert_bounds[zt + 0]; + col_high = expert_bounds[zt + 1]; + col_diff = col_high - col_low; + + offset_y = 0; + offset_dst = 0; + + if (jt*mmq_x >= col_diff) { + return; + } + + // The memory layout for the fixup buffer is always contiguous, therefore reset ids: +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { + const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; + + if (j0 + nwarps*WARP_SIZE > mmq_x && j >= mmq_x) { + break; + } + + ids_dst_shared[j] = j; + } + } + + offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); + offset_dst += it*mmq_y; + + const int tile_x_max_i = nrows_x - it*mmq_y - 1; + const int tile_y_max_j = col_diff - jt*mmq_x - 1; + + const int offset_x = (wt/sample_ratio)*stride_sample_x + (zt/channel_ratio)*stride_channel_x + it*mmq_y*stride_row_x; constexpr bool fixup = true; // Last index writes its data to fixup buffer to avoid data races with other blocks. mul_mat_q_process_tile - (x, yc, dst, tmp_fixup, ne00, ne01, stride01, ne10, ne11, stride11, ne0, - it, jt, kb0_start, kb0_stop); + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); } template static __global__ void mul_mat_q_stream_k_fixup( - float * __restrict__ dst, const float * __restrict__ tmp_last_tile, const int ne00, const int ne01, const int ne11, const int ne0, const int block_num_mmq) { - + const int32_t * ids_dst, const int32_t * expert_bounds, float * __restrict__ dst, const float * __restrict__ tmp_last_tile, + const int ncols_x, const int nrows_x, const int ncols_y, const int stride_col_dst, + const int nchannels_y, const int stride_channel_dst, const int nsamples_y, const int stride_sample_dst) { constexpr int mmq_y = get_mmq_y_device(); constexpr int qk = ggml_cuda_type_traits::qk; constexpr int blocks_per_iter = MMQ_ITER_K / qk; - const int64_t blocks_per_ne00 = ne00 / qk; + const int64_t blocks_per_ne00 = ncols_x / qk; float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; - const int ntx = (ne11 + mmq_x - 1) / mmq_x; - const int nty = (ne01 + mmq_y - 1) / mmq_y; + const int ntx = (ncols_y + mmq_x - 1) / mmq_x; + const int nty = (nrows_x + mmq_y - 1) / mmq_y; + + const int bidx0 = blockIdx.x; + + // kbc == k block continuous, current index in continuous ijk space. + int64_t kbc0 = (int64_t) bidx0 *nsamples_y*nchannels_y*ntx*nty*blocks_per_ne00 / gridDim.x; + int64_t kbc0_stop = (int64_t)(bidx0 + 1)*nsamples_y*nchannels_y*ntx*nty*blocks_per_ne00 / gridDim.x; + + kbc0 -= (kbc0 % blocks_per_ne00) % blocks_per_iter; + kbc0_stop -= (kbc0_stop % blocks_per_ne00) % blocks_per_iter; + + const bool did_not_have_any_data = kbc0 == kbc0_stop; + const bool wrote_beginning_of_tile = kbc0 % blocks_per_ne00 == 0; + const bool did_not_write_last = kbc0/blocks_per_ne00 == kbc0_stop/blocks_per_ne00 && kbc0_stop % blocks_per_ne00 != 0; + if (did_not_have_any_data || wrote_beginning_of_tile || did_not_write_last) { + return; + } bool any_fixup = false; - const int bidx_start = ((blockIdx.y*nty + blockIdx.x) * block_num_mmq) / (gridDim.y*gridDim.x); - const int bidx_stop = ((blockIdx.y*nty + blockIdx.x + 1) * block_num_mmq + gridDim.y*gridDim.x - 1) / (gridDim.y*gridDim.x); + // Iterate over previous blocks and sum up partial sums written to fixup buffer. + // All CUDA blocks that get here must have a previous block that needs a fixup. + int64_t bidx = bidx0 - 1; + int64_t kbc_stop = kbc0; + while(true) { + int64_t kbc = bidx*nsamples_y*nchannels_y*ntx*nty*blocks_per_ne00 / gridDim.x; + kbc -= (kbc % blocks_per_ne00) % blocks_per_iter; - int64_t kbc_0; - int64_t kbc_stop_0 = (int64_t) bidx_start*blocks_per_ne00*ntx*nty / block_num_mmq; - - for (int bidx = bidx_start; bidx < bidx_stop; ++bidx) { - kbc_0 = kbc_stop_0; - kbc_stop_0 = (int64_t) (bidx + 1)*blocks_per_ne00*ntx*nty / block_num_mmq; - - const int64_t kbc = kbc_0 - (kbc_0 % blocks_per_ne00) % blocks_per_iter; - const int64_t kbc_stop = kbc_stop_0 - (kbc_stop_0 % blocks_per_ne00) % blocks_per_iter; - - // Skip fixup tile if the MMQ CUDA block never wrote anything to it: - if (kbc == kbc_stop || kbc_stop % blocks_per_ne00 == 0) { - continue; - } - - const int jt = kbc_stop / (blocks_per_ne00*nty); - const int it = (kbc_stop - jt*(blocks_per_ne00*nty)) / blocks_per_ne00; - - // Skip fixup tile if it's unrelated to the output tile assigned to this CUDA block: - if ((unsigned)it != blockIdx.x || (unsigned)jt != blockIdx.y) { + if (kbc == kbc_stop) { // Did not have any data. + bidx--; + kbc_stop = kbc; continue; } @@ -2733,16 +2892,71 @@ static __global__ void mul_mat_q_stream_k_fixup( sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE] += tmp_last_tile[bidx*(mmq_x*mmq_y) + j*mmq_y + i]; } } + + // If this block started in a previous tile we are done and don't need to combine additional partial results. + if (kbc % blocks_per_ne00 == 0 || kbc/blocks_per_ne00 < kbc0/blocks_per_ne00) { + break; + } + bidx--; + kbc_stop = kbc; } if (!any_fixup) { return; } - dst += blockIdx.y*mmq_x*ne0 + blockIdx.x*mmq_y; + int tmp = kbc0; + const int it = tmp / (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + tmp -= it * (nsamples_y*nchannels_y*ntx*blocks_per_ne00); + const int wt = tmp / (nchannels_y*ntx*blocks_per_ne00); + tmp -= wt * (nchannels_y*ntx*blocks_per_ne00); + const int zt = tmp / (ntx*blocks_per_ne00); + tmp -= zt * (ntx*blocks_per_ne00); + const int jt = tmp / blocks_per_ne00; - const int i_max = ne01 - blockIdx.x*mmq_y - 1; - const int j_max = ne11 - blockIdx.y*mmq_x - 1; + if (!ids_dst) { + const int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst + it*mmq_y; + dst += offset_dst; + + const int i_max = nrows_x - it*mmq_y - 1; + const int j_max = ncols_y - jt*mmq_x - 1; + +#pragma unroll + for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { + const int j = j0 + threadIdx.y; + + if (j > j_max) { + return; + } + +#pragma unroll + for (int i0 = 0; i0 < mmq_y; i0 += WARP_SIZE) { + const int i = i0 + threadIdx.x; + + if (need_check && i > i_max) { + continue; + } + + dst[j*stride_col_dst + i] += sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + } + } + return; + } + + __shared__ int ids_dst_shared[mmq_x]; + const int col_low = expert_bounds[zt + 0]; + const int col_high = expert_bounds[zt + 1]; + const int col_diff = col_high - col_low; + + for (int j = threadIdx.y*WARP_SIZE + threadIdx.x; j < mmq_x; j += nwarps*WARP_SIZE) { + ids_dst_shared[j] = ids_dst[col_low + j]; + } + + const int offset_dst = it*mmq_y; + dst += offset_dst; + + const int i_max = nrows_x - it*mmq_y - 1; + const int j_max = col_diff - jt*mmq_x - 1; #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { @@ -2760,26 +2974,27 @@ static __global__ void mul_mat_q_stream_k_fixup( continue; } - dst[j*ne0 + i] += sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; + dst[ids_dst_shared[j]*stride_col_dst + i] += sum[(j0/nwarps) * (mmq_y/WARP_SIZE) + i0/WARP_SIZE]; } } } struct mmq_args { - const char * x; const char * y; float * dst; - int64_t ne00; int64_t ne01; int64_t stride01; - int64_t ne10; int64_t ne11; int64_t stride11; - int64_t ne0; + const char * x; ggml_type type_x; const int * y; const int32_t * ids_dst; const int32_t * expert_bounds; float * dst; + int64_t ncols_x; int64_t nrows_x; int64_t ncols_y; int64_t stride_row_x; int64_t nrows_dst; + int64_t nchannels_x; int64_t nchannels_y; int64_t stride_channel_x; int64_t stride_channel_y; int64_t stride_channel_dst; + int64_t nsamples_x; int64_t nsamples_y; int64_t stride_sample_x; int64_t stride_sample_y; int64_t stride_sample_dst; bool use_stream_k; }; template -static int mmq_get_shmem(const int mmq_x, const int mmq_y, const int cc) { +static size_t mmq_get_nbytes_shared(const int mmq_x, const int mmq_y, const int cc) { const tile_x_sizes txs = mmq_get_dp4a_tile_x_sizes(type, mmq_y); const int mmq_tile_x_k = mmq_get_mma_tile_x_k(type); - const int shmem_x = new_mma_available(cc) ? mmq_y*mmq_tile_x_k*sizeof(int) : txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int); - const int shmem_y = mmq_x*sizeof(block_q8_1_mmq); - return shmem_x + GGML_PAD(shmem_y, MMQ_NWARPS*WARP_SIZE*sizeof(int)); + const size_t nbs_ids = mmq_x*sizeof(int); + const size_t nbs_x = new_mma_available(cc) ? mmq_y*mmq_tile_x_k*sizeof(int) : txs.qs*sizeof(int) + txs.dm*sizeof(half2) + txs.sc*sizeof(int); + const size_t nbs_y = mmq_x*sizeof(block_q8_1_mmq); + return nbs_ids + nbs_x + GGML_PAD(nbs_y, MMQ_NWARPS*WARP_SIZE*sizeof(int)); } template @@ -2791,86 +3006,114 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a const dim3 block_dims(WARP_SIZE, MMQ_NWARPS, 1); - const int shmem = mmq_get_shmem(mmq_x, mmq_y, cc); + const int nbytes_shared = mmq_get_nbytes_shared(mmq_x, mmq_y, cc); #if !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && !defined(GGML_USE_MUSA) - static bool shmem_limit_raised[GGML_CUDA_MAX_DEVICES] = {false}; - if (!shmem_limit_raised[id]) { - CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); - CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, shmem)); - shmem_limit_raised[id] = true; + static bool shared_memory_limit_raised[GGML_CUDA_MAX_DEVICES] = {false}; + if (!shared_memory_limit_raised[id]) { + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, nbytes_shared)); + CUDA_CHECK(cudaFuncSetAttribute(mul_mat_q, cudaFuncAttributeMaxDynamicSharedMemorySize, nbytes_shared)); + shared_memory_limit_raised[id] = true; } #endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && !defined(GGML_USE_MUSA) - const int nty = (args.ne01 + mmq_y - 1) / mmq_y; - const int ntx = (args.ne11 + mmq_x - 1) / mmq_x; - const dim3 block_nums_xy_tiling(nty, ntx, 1); + const int nty = (args.nrows_x + mmq_y - 1) / mmq_y; + const int ntx = (args.ncols_y + mmq_x - 1) / mmq_x; + const int ntzw = args.nchannels_y * args.nsamples_y; + const dim3 block_nums_xy_tiling(nty, ntx, ntzw); + + GGML_ASSERT(args.nchannels_y % args.nchannels_x == 0); + GGML_ASSERT(args.nsamples_y % args.nsamples_x == 0); + const int channel_ratio = args.nchannels_y / args.nchannels_x; + const int sample_ratio = args.nsamples_y / args.nsamples_x; if (!args.use_stream_k) { - if (args.ne01 % mmq_y == 0) { + if (args.nrows_x % mmq_y == 0) { constexpr bool need_check = false; - mul_mat_q<<>> - (args.x, args.y, args.dst, nullptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + mul_mat_q<<>> + (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, nullptr, + args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, + sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); } else { constexpr bool need_check = true; - mul_mat_q<<>> - (args.x, args.y, args.dst, nullptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + mul_mat_q<<>> + (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, nullptr, + args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, + sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); } return; } - const dim3 block_nums_mmq(nsm, 1, 1); + const dim3 block_nums_stream_k(nsm, 1, 1); + const bool fixup_needed = ntx*nty*ntzw % nsm != 0; ggml_cuda_pool & pool = ctx.pool(id); - ggml_cuda_pool_alloc tmp_fixup(pool, block_nums_mmq.x * mmq_x*mmq_y); + ggml_cuda_pool_alloc tmp_fixup(pool); + if (fixup_needed) { + tmp_fixup.alloc(block_nums_stream_k.x * mmq_x*mmq_y); + } - if (args.ne01 % mmq_y == 0) { + if (args.nrows_x % mmq_y == 0) { constexpr bool need_check = false; - mul_mat_q<<>> - (args.x, args.y, args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + mul_mat_q<<>> + (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, + args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, + sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); - mul_mat_q_stream_k_fixup<<>> - (args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.ne11, args.ne0, block_nums_mmq.x); + if (!fixup_needed) { + return; + } + + mul_mat_q_stream_k_fixup<<>> + (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_y, + args.nrows_dst, args.nchannels_y, args.stride_channel_dst, args.nsamples_y, args.stride_sample_dst); } else { constexpr bool need_check = true; - mul_mat_q<<>> - (args.x, args.y, args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.stride01, args.ne10, args.ne11, args.stride11, args.ne0); + mul_mat_q<<>> + (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, + args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, + sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); - mul_mat_q_stream_k_fixup<<>> - (args.dst, tmp_fixup.ptr, args.ne00, args.ne01, args.ne11, args.ne0, block_nums_mmq.x); + if (!fixup_needed) { + return; + } + + mul_mat_q_stream_k_fixup<<>> + (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_y, + args.nrows_dst, args.nchannels_y, args.stride_channel_dst, args.nsamples_y, args.stride_sample_dst); } } template void mul_mat_q_case(ggml_backend_cuda_context & ctx, const mmq_args & args, cudaStream_t stream) { - const int id = ggml_cuda_get_device(); - const int cc = ggml_cuda_info().devices[id].cc; - const int smpbo = ggml_cuda_info().devices[id].smpbo; + const int id = ggml_cuda_get_device(); + const int cc = ggml_cuda_info().devices[id].cc; + const size_t smpbo = ggml_cuda_info().devices[id].smpbo; const int mmq_x_max = get_mmq_x_max_host(cc); const int mmq_y = get_mmq_y_host(cc); - const int block_num_y = (args.ne01 + mmq_y - 1) / mmq_y; - const bool use_stream_k = GGML_CUDA_CC_IS_NVIDIA(cc) && ggml_cuda_highest_compiled_arch(cc) >= GGML_CUDA_CC_VOLTA; int mmq_x_best = 0; - int nparts_best = INT_MAX; + int ntiles_x_best = INT_MAX; - for (int mmq_x = 8; mmq_x <= mmq_x_max && nparts_best > 1; mmq_x += 8) { + for (int mmq_x = 8; mmq_x <= mmq_x_max && ntiles_x_best > 1; mmq_x += 8) { const int granularity = mmq_get_granularity_host(mmq_x, cc); - if (mmq_x % granularity != 0 || mmq_get_shmem(mmq_x, mmq_y, cc) > smpbo) { + if (mmq_x % granularity != 0 || mmq_get_nbytes_shared(mmq_x, mmq_y, cc) > smpbo) { continue; } - const int ntiles_x = (args.ne11 + mmq_x - 1) / mmq_x; - const int nwaves_xy_tiling = ntiles_x*block_num_y; - const int nparts = use_stream_k ? ntiles_x : nwaves_xy_tiling; + const int ntiles_x = (args.ncols_y + mmq_x - 1) / mmq_x; - if (nparts < nparts_best) { - mmq_x_best = mmq_x; - nparts_best = nparts; + if (ntiles_x < ntiles_x_best) { + mmq_x_best = mmq_x; + ntiles_x_best = ntiles_x; } } @@ -2954,6 +3197,9 @@ extern DECL_MMQ_CASE(GGML_TYPE_IQ4_XS); // ------------------------------------------------------------------------------------------------------------------------- +void ggml_cuda_mul_mat_q( + ggml_backend_cuda_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, const ggml_tensor * ids, ggml_tensor * dst); + void ggml_cuda_op_mul_mat_q( ggml_backend_cuda_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, const char * src0_dd_i, const float * src1_ddf_i, diff --git a/ggml/src/ggml-cuda/mmvq.cu b/ggml/src/ggml-cuda/mmvq.cu index d846e35a6a..132c466fd1 100644 --- a/ggml/src/ggml-cuda/mmvq.cu +++ b/ggml/src/ggml-cuda/mmvq.cu @@ -158,7 +158,7 @@ static __global__ void mul_mat_vec_q( const int blocks_per_row_x = ncols_x / qk; constexpr int blocks_per_iter = vdr * nwarps*warp_size / qi; - // The MUL_MAT_ID code path with ids != nullptr is only implemetned for ncols_dst == 1. + // The MUL_MAT_ID code path with ids != nullptr is only implemented for ncols_dst == 1. const int channel_dst = blockIdx.y; const int channel_x = ncols_dst == 1 && ids ? ids[channel_dst] : channel_dst / channel_ratio; const int channel_y = ncols_dst == 1 && ids ? channel_dst % nchannels_y : channel_dst; @@ -507,7 +507,7 @@ void ggml_cuda_mul_mat_vec_q( GGML_ASSERT( nb0 == ts_dst); GGML_ASSERT(!ids || ids->nb[0] == ggml_type_size(ids->type)); - GGML_ASSERT(!ids || ne12 == 1); // Implementation is only correct for batch size 1. + GGML_ASSERT(!ids || ne12 == 1); // Implementation is only correct for batch size 1. const float * src1_d = (const float *) src1->data; const int32_t * ids_d = ids ? (const int32_t *) ids->data : nullptr; @@ -519,7 +519,7 @@ void ggml_cuda_mul_mat_vec_q( const int64_t s11 = src1->nb[1] / ts_src1; const int64_t s12 = src1->nb[2] / ts_src1; const int64_t s13 = src1->nb[3] / ts_src1; - quantize_row_q8_1_cuda(src1_d, src1_q8_1.get(), src0->type, ne10, s11, s12, s13, ne10_padded, ne11, ne12, ne13, stream); + quantize_row_q8_1_cuda(src1_d, nullptr, src1_q8_1.get(), src0->type, ne10, s11, s12, s13, ne10_padded, ne11, ne12, ne13, stream); } const int64_t s01 = src0->nb[1] / ts_src0; diff --git a/ggml/src/ggml-cuda/quantize.cu b/ggml/src/ggml-cuda/quantize.cu index 3bab47d56a..931a45ad34 100644 --- a/ggml/src/ggml-cuda/quantize.cu +++ b/ggml/src/ggml-cuda/quantize.cu @@ -49,29 +49,38 @@ static __global__ void quantize_q8_1( template static __global__ void quantize_mmq_q8_1( - const float * __restrict__ x, void * __restrict__ vy, const int64_t kx0, const int64_t kx1, const int64_t kx0_padded) { + const float * __restrict__ x, const int32_t * __restrict__ ids, void * __restrict__ vy, + const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, + const int64_t ne0, const int ne1, const int ne2) { constexpr int vals_per_scale = ds_layout == MMQ_Q8_1_DS_LAYOUT_D2S6 ? 64 : 32; constexpr int vals_per_sum = ds_layout == MMQ_Q8_1_DS_LAYOUT_D2S6 ? 16 : 32; - const int64_t ix0 = ((int64_t)blockDim.x*blockIdx.x + threadIdx.x)*4; + const int64_t i0 = ((int64_t)blockDim.x*blockIdx.x + threadIdx.x)*4; - if (ix0 >= kx0_padded) { + if (i0 >= ne0) { return; } - const float4 * x4 = (const float4 *) x; + const int64_t i1 = blockIdx.y; + const int64_t i2 = blockIdx.z % ne2; + const int64_t i3 = blockIdx.z / ne2; - const int64_t ix1 = kx1*blockIdx.z + blockIdx.y; + const int64_t i00 = i0; + const int64_t i01 = ids ? ids[i1] : i1; + const int64_t i02 = i2; + const int64_t i03 = i3; + + const float4 * x4 = (const float4 *) x; block_q8_1_mmq * y = (block_q8_1_mmq *) vy; const int64_t ib0 = blockIdx.z*((int64_t)gridDim.y*gridDim.x*blockDim.x/QK8_1); // first block of channel - const int64_t ib = ib0 + (ix0 / (4*QK8_1))*kx1 + blockIdx.y; // block index in channel - const int64_t iqs = ix0 % (4*QK8_1); // quant index in block + const int64_t ib = ib0 + (i0 / (4*QK8_1))*ne1 + blockIdx.y; // block index in channel + const int64_t iqs = i0 % (4*QK8_1); // quant index in block // Load 4 floats per thread and calculate max. abs. value between them: - const float4 xi = ix0 < kx0 ? x4[(ix1*kx0 + ix0)/4] : make_float4(0.0f, 0.0f, 0.0f, 0.0f); + const float4 xi = i0 < ne00 ? x4[(i03*s03 + i02*s02 + i01*s01 + i00)/4] : make_float4(0.0f, 0.0f, 0.0f, 0.0f); float amax = fabsf(xi.x); amax = fmaxf(amax, fabsf(xi.y)); amax = fmaxf(amax, fabsf(xi.z)); @@ -87,7 +96,7 @@ static __global__ void quantize_mmq_q8_1( if (ds_layout != MMQ_Q8_1_DS_LAYOUT_D4) { sum = xi.x + xi.y + xi.z + xi.w; - // Exchange calculate sum across vals_per_sum/4 threads. + // Calculate sums across vals_per_sum/4 threads. #pragma unroll for (int offset = vals_per_sum/8; offset > 0; offset >>= 1) { sum += __shfl_xor_sync(0xFFFFFFFF, sum, offset, WARP_SIZE); @@ -137,9 +146,10 @@ static __global__ void quantize_mmq_q8_1( } void quantize_row_q8_1_cuda( - const float * x, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, - const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { - + const float * x, const int32_t * ids, void * vy, const ggml_type type_src0, + const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, + const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { + GGML_ASSERT(!ids); GGML_ASSERT(ne0 % QK8_1 == 0); const int64_t block_num_x = (ne0 + CUDA_QUANTIZE_BLOCK_SIZE - 1) / CUDA_QUANTIZE_BLOCK_SIZE; @@ -150,9 +160,9 @@ void quantize_row_q8_1_cuda( } void quantize_mmq_q8_1_cuda( - const float * x, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, - const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { - + const float * x, const int32_t * ids, void * vy, const ggml_type type_src0, + const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, + const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { GGML_ASSERT(ne0 % (4*QK8_1) == 0); const int64_t block_num_x = (ne0 + 4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ - 1) / (4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ); @@ -161,21 +171,18 @@ void quantize_mmq_q8_1_cuda( switch (mmq_get_q8_1_ds_layout(type_src0)) { case MMQ_Q8_1_DS_LAYOUT_D4: quantize_mmq_q8_1 - <<>>(x, vy, ne00, ne1, ne0); + <<>>(x, ids, vy, ne00, s01, s02, s03, ne0, ne1, ne2); break; case MMQ_Q8_1_DS_LAYOUT_DS4: quantize_mmq_q8_1 - <<>>(x, vy, ne00, ne1, ne0); + <<>>(x, ids, vy, ne00, s01, s02, s03, ne0, ne1, ne2); break; case MMQ_Q8_1_DS_LAYOUT_D2S6: quantize_mmq_q8_1 - <<>>(x, vy, ne00, ne1, ne0); + <<>>(x, ids, vy, ne00, s01, s02, s03, ne0, ne1, ne2); break; default: GGML_ABORT("fatal error"); break; } - GGML_UNUSED(s01); - GGML_UNUSED(s02); - GGML_UNUSED(s03); } diff --git a/ggml/src/ggml-cuda/quantize.cuh b/ggml/src/ggml-cuda/quantize.cuh index b627c4e400..725ab52443 100644 --- a/ggml/src/ggml-cuda/quantize.cuh +++ b/ggml/src/ggml-cuda/quantize.cuh @@ -12,13 +12,16 @@ static_assert(MATRIX_ROW_PADDING % CUDA_QUANTIZE_BLOCK_SIZE == 0, "Risk static_assert(MATRIX_ROW_PADDING % (4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ) == 0, "Risk of out-of-bounds access."); typedef void (*quantize_cuda_t)( - const float * x, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, - const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream); + const float * x, const int32_t * ids, void * vy, + ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, + int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); void quantize_row_q8_1_cuda( - const float * x, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, - const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream); + const float * x, const int32_t * ids, void * vy, + ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, + int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); void quantize_mmq_q8_1_cuda( - const float * x, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, - const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream); + const float * x, const int32_t * ids, void * vy, + ggml_type type_src0, int64_t ne00, int64_t s01, int64_t s02, int64_t s03, + int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, cudaStream_t stream); diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index d70acb7719..9591b1a89e 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -4184,6 +4184,11 @@ static std::vector> make_test_cases_eval() { test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {2, 3}, {1, 1}, {0, 2, 1, 3})); test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {2, 3}, {1, 1}, {0, 1, 3, 2})); test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 256, {2, 3}, {1, 1}, {0, 3, 2, 1})); + + // test cases with large ne00/ne10 to cover stream-k fixup + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 1, 1024, {3, 2}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 8, 1024, {3, 2}, {1, 1})); + test_cases.emplace_back(new test_mul_mat(type_a, type_b, 16, 16, 1024, {3, 2}, {1, 1})); } } for (ggml_type type_a : other_types) { From 9998540149a490200894acfe595e9a1546bab723 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 24 Apr 2025 18:59:06 +0300 Subject: [PATCH 058/126] cuda : fix unused variable compile warning (whisper/0) ggml-ci --- ggml/src/ggml-cuda/cpy.cu | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ggml/src/ggml-cuda/cpy.cu b/ggml/src/ggml-cuda/cpy.cu index 2d46176eab..d027271fcd 100644 --- a/ggml/src/ggml-cuda/cpy.cu +++ b/ggml/src/ggml-cuda/cpy.cu @@ -592,6 +592,8 @@ void ggml_cuda_cpy(ggml_backend_cuda_context & ctx, const ggml_tensor * src0, gg dest_ptrs_d = ctx.cuda_graph->dest_ptrs_d; graph_cpynode_index = ctx.cuda_graph->graph_cpynode_index; } +#else + GGML_UNUSED(disable_indirection_for_this_node); #endif if (src0->type == src1->type && ggml_is_contiguous(src0) && ggml_is_contiguous(src1)) { GGML_ASSERT(ggml_nbytes(src0) == ggml_nbytes(src1)); From 4254bb49518e0f920f14c9aadd96eefdfd38b429 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Wed, 30 Apr 2025 15:20:40 +0200 Subject: [PATCH 059/126] ggml : fix ggml_gallocr_ptr type (ggml/1205) --- ggml/include/ggml-cpp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/include/ggml-cpp.h b/ggml/include/ggml-cpp.h index a12342c25d..48aa79682b 100644 --- a/ggml/include/ggml-cpp.h +++ b/ggml/include/ggml-cpp.h @@ -24,7 +24,7 @@ typedef std::unique_ptr gguf_context_ptr; struct ggml_gallocr_deleter { void operator()(ggml_gallocr_t galloc) { ggml_gallocr_free(galloc); } }; -typedef std::unique_ptr ggml_gallocr_ptr; +typedef std::unique_ptr ggml_gallocr_ptr; // ggml-backend From 8d33d740c308fe0049515668aac0e561269afe9e Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 1 May 2025 09:59:02 +0300 Subject: [PATCH 060/126] sync : ggml --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 41feffca92..5b798aeb49 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -13bcf9ce50651a8b4238ec6d136f46f2c1b23b6f +7734363ac74a14d7f2c8033c552d9d655c5dfc00 From a70183eb0079fdf6ebeaed12966338a039461b5d Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Thu, 1 May 2025 03:09:41 -0400 Subject: [PATCH 061/126] llama-model : fix the reported size class for nomic-embed-text-v2-moe (#13223) --- src/llama-model.cpp | 7 ++++++- src/llama-model.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 822e2bb2cf..51092a128c 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -40,6 +40,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_335M: return "335M"; case LLM_TYPE_410M: return "410M"; case LLM_TYPE_450M: return "450M"; + case LLM_TYPE_475M: return "475M"; case LLM_TYPE_770M: return "770M"; case LLM_TYPE_780M: return "780M"; case LLM_TYPE_0_5B: return "0.5B"; @@ -707,7 +708,11 @@ void llama_model::load_hparams(llama_model_loader & ml) { ml.get_key(LLM_KV_MOE_EVERY_N_LAYERS, hparams.moe_every_n_layers, 0); if (hparams.n_layer == 12 && hparams.n_embd == 768) { - type = LLM_TYPE_137M; + if (arch == LLM_ARCH_NOMIC_BERT) { + type = LLM_TYPE_137M; + } else if (arch == LLM_ARCH_NOMIC_BERT_MOE && hparams.moe_every_n_layers == 2) { + type = LLM_TYPE_475M; + } } } break; case LLM_ARCH_BLOOM: diff --git a/src/llama-model.h b/src/llama-model.h index 95eca00266..34aac337cf 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -36,6 +36,7 @@ enum llm_type { LLM_TYPE_335M, LLM_TYPE_410M, LLM_TYPE_450M, + LLM_TYPE_475M, LLM_TYPE_770M, LLM_TYPE_780M, LLM_TYPE_0_5B, From 13c9a3319b65469e883c49dd1c478abedc410157 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Thu, 1 May 2025 10:23:25 +0200 Subject: [PATCH 062/126] arg : remove CURLINFO_EFFECTIVE_METHOD (#13228) --- common/arg.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index 9f7241673d..e35417de7e 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -217,13 +217,11 @@ struct curl_slist_ptr { #define CURL_MAX_RETRY 3 #define CURL_RETRY_DELAY_SECONDS 2 -static bool curl_perform_with_retry(const std::string & url, CURL * curl, int max_attempts, int retry_delay_seconds) { +static bool curl_perform_with_retry(const std::string & url, CURL * curl, int max_attempts, int retry_delay_seconds, const char * method_name) { int remaining_attempts = max_attempts; - char * method = nullptr; - curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_METHOD, &method); while (remaining_attempts > 0) { - LOG_INF("%s: %s %s (attempt %d of %d)...\n", __func__ , method, url.c_str(), max_attempts - remaining_attempts + 1, max_attempts); + LOG_INF("%s: %s %s (attempt %d of %d)...\n", __func__ , method_name, url.c_str(), max_attempts - remaining_attempts + 1, max_attempts); CURLcode res = curl_easy_perform(curl); if (res == CURLE_OK) { @@ -343,7 +341,7 @@ static bool common_download_file_single(const std::string & url, const std::stri // we only allow retrying once for HEAD requests // this is for the use case of using running offline (no internet), retrying can be annoying - bool was_perform_successful = curl_perform_with_retry(url, curl.get(), 1, 0); + bool was_perform_successful = curl_perform_with_retry(url, curl.get(), 1, 0, "HEAD"); if (!was_perform_successful) { head_request_ok = false; } @@ -425,7 +423,7 @@ static bool common_download_file_single(const std::string & url, const std::stri // start the download LOG_INF("%s: trying to download model from %s to %s (server_etag:%s, server_last_modified:%s)...\n", __func__, llama_download_hide_password_in_url(url).c_str(), path.c_str(), headers.etag.c_str(), headers.last_modified.c_str()); - bool was_perform_successful = curl_perform_with_retry(url, curl.get(), CURL_MAX_RETRY, CURL_RETRY_DELAY_SECONDS); + bool was_perform_successful = curl_perform_with_retry(url, curl.get(), CURL_MAX_RETRY, CURL_RETRY_DELAY_SECONDS, "GET"); if (!was_perform_successful) { return false; } From 8936784f7a1ec4f91637d04b77fdc90ec36ebac9 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Thu, 1 May 2025 17:05:42 +0200 Subject: [PATCH 063/126] mtmd : add **vision** support for Mistral Small 3.1 (#13231) * convert ok * load ok, missing patch merger * ah sheet it works * update llava/readme * add test * fix test --- convert_hf_to_gguf.py | 30 +++++++++++++-- examples/llava/README.md | 4 ++ examples/llava/clip-impl.h | 3 ++ examples/llava/clip.cpp | 70 ++++++++++++++++++++++++++++------ examples/llava/mtmd-cli.cpp | 1 + examples/llava/tests.sh | 1 + gguf-py/gguf/constants.py | 7 ++++ gguf-py/gguf/gguf_writer.py | 3 ++ gguf-py/gguf/tensor_mapping.py | 8 ++++ 9 files changed, 112 insertions(+), 15 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 123df801bf..04ca646b50 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1899,7 +1899,10 @@ class LlamaModel(TextModel): raise ValueError(f"Unprocessed experts: {experts}") -@ModelBase.register("LlavaForConditionalGeneration") +@ModelBase.register( + "LlavaForConditionalGeneration", # pixtral + "Mistral3ForConditionalGeneration", # mistral small 3.1 +) class LlavaVisionModel(VisionModel): img_break_tok_id = -1 @@ -1908,17 +1911,38 @@ class LlavaVisionModel(VisionModel): if self.hparams["model_type"] == "pixtral": # layer_norm_eps is not in config.json, it is hard-coded in modeling_pixtral.py self.hparams["layer_norm_eps"] = self.hparams.get("layer_norm_eps", 1e-5) - self.img_break_tok_id = 12 # see tokenizer_config.json + self.img_break_tok_id = self.get_token_id("[IMG_BREAK]") + logger.info(f"Image break token id: {self.img_break_tok_id}") else: raise ValueError(f"Unsupported model type: {self.hparams['model_type']}") + def get_token_id(self, token: str) -> int: + tokenizer_config_file = self.dir_model / 'tokenizer_config.json' + with open(tokenizer_config_file, "r", encoding="utf-8") as f: + added_tokens_decoder = json.load(f)['added_tokens_decoder'] + for id_, token_data in added_tokens_decoder.items(): + if token_data["content"] == token: + return int(id_) + raise ValueError(f"Token '{token}' not found in tokenizer config.") + def set_gguf_parameters(self): super().set_gguf_parameters() hparams = self.hparams if hparams["model_type"] == "pixtral": self.gguf_writer.add_vision_projector_type(gguf.VisionProjectorType.PIXTRAL) self.gguf_writer.add_vision_attention_layernorm_eps(hparams["layer_norm_eps"]) - self.gguf_writer.add_vision_use_silu(True) + + # hidden_act + if hparams["hidden_act"] == "silu": + self.gguf_writer.add_vision_use_silu(True) + elif hparams["hidden_act"] == "gelu": + self.gguf_writer.add_vision_use_gelu(True) + else: + raise ValueError(f"Unsupported hidden_act: {hparams['hidden_act']}") + + # spatial_merge_size + if "spatial_merge_size" in self.global_config: + self.gguf_writer.add_vision_spatial_merge_size(self.global_config["spatial_merge_size"]) def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: del bid # unused diff --git a/examples/llava/README.md b/examples/llava/README.md index f58d9de710..3b62627ce8 100644 --- a/examples/llava/README.md +++ b/examples/llava/README.md @@ -34,6 +34,9 @@ llama-mtmd-cli -hf ggml-org/SmolVLM2-500M-Video-Instruct-GGUF # Pixtral 12B llama-mtmd-cli -hf ggml-org/pixtral-12b-GGUF + +# Mistral Small 3.1 24B (IQ2_M quantization) +llama-mtmd-cli -hf ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF --chat-template mistral-v7 ``` ## How it works and what is `mmproj`? @@ -73,3 +76,4 @@ For the following models, you can use `convert_hf_to_gguf.py`with `--mmproj` fla - SmolVLM (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) - SmolVLM2 (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) - [Pixtral 12B](https://huggingface.co/mistral-community/pixtral-12b) - only works with `transformers`-compatible checkpoint +- [Mistral Small 3.1 24B](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) diff --git a/examples/llava/clip-impl.h b/examples/llava/clip-impl.h index 66cb21ef1a..b575ca4d7c 100644 --- a/examples/llava/clip-impl.h +++ b/examples/llava/clip-impl.h @@ -31,6 +31,7 @@ #define KEY_FEATURE_LAYER "clip.vision.feature_layer" #define KEY_PROJ_SCALE_FACTOR "clip.vision.projector.scale_factor" #define KEY_PROJ_TYPE "clip.projector_type" +#define KEY_SPATIAL_MERGE_SIZE "clip.vision.spatial_merge_size" #define KEY_USE_GLU_MLP "clip.use_glu_mlp" // for qwen2.5vl #define KEY_USE_RMS_NORM "clip.use_rms_norm" // for qwen2.5vl @@ -68,9 +69,11 @@ #define TN_MVLM_PROJ_BLOCK "mm.model.mb_block.%d.block.%d.%s" #define TN_MVLM_PROJ_PEG "mm.model.peg.%d.%s" #define TN_IMAGE_NEWLINE "model.image_newline" +#define TN_MM_INP_NORM "mm.input_norm.weight" #define TN_MM_INP_PROJ "mm.input_projection.weight" // gemma3 #define TN_MM_SOFT_EMB_N "mm.soft_emb_norm.weight" // gemma3 #define TN_MM_PROJECTOR "mm.model.fc.weight" // idefics3 +#define TN_MM_PATCH_MERGER "mm.patch_merger.weight" // mistral small 3.1 #define TN_TOK_IMG_BREAK "v.token_embd.img_break" // pixtral // mimicpmv diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index ad3e7df1d8..984e300e75 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -172,6 +172,7 @@ struct clip_hparams { std::unordered_set vision_feature_layer; int32_t attn_window_size = 0; int32_t n_wa_pattern = 0; + int32_t spatial_merge_size = 0; }; struct clip_layer { @@ -232,6 +233,7 @@ struct clip_vision_model { struct ggml_tensor * projection; // LLaVA projection + struct ggml_tensor * mm_input_norm_w = nullptr; struct ggml_tensor * mm_0_w = nullptr; struct ggml_tensor * mm_0_b = nullptr; struct ggml_tensor * mm_2_w = nullptr; @@ -311,6 +313,7 @@ struct clip_vision_model { // pixtral struct ggml_tensor * token_embd_img_break = nullptr; + struct ggml_tensor * mm_patch_merger_w = nullptr; }; struct clip_ctx { @@ -637,6 +640,7 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i const int d_head = hidden_size / n_head; const int n_layer = hparams.n_layer; const float eps = hparams.eps; + const int n_merge = hparams.spatial_merge_size; struct ggml_init_params params = { /*.mem_size =*/ ctx->buf_compute_meta.size(), @@ -721,7 +725,13 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i { ggml_tensor * gate_proj = ggml_mul_mat(ctx0, model.layers[il].ff_gate_w, cur); ggml_tensor * up_proj = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); - gate_proj = ggml_silu(ctx0, gate_proj); // pixtral uses silu + if (ctx->use_silu) { + gate_proj = ggml_silu(ctx0, gate_proj); + } else if (ctx->use_gelu) { + gate_proj = ggml_gelu(ctx0, gate_proj); + } else { + GGML_ABORT("Pixtral: Unsupported activation"); + } cur = ggml_mul(ctx0, up_proj, gate_proj); cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); } @@ -732,14 +742,42 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i embeddings = cur; } - // LlavaMultiModalProjector (with GELU activation) + // mistral small 3.1 patch merger + // ref: https://github.com/huggingface/transformers/blob/7a3e208892c06a5e278144eaf38c8599a42f53e7/src/transformers/models/mistral3/modeling_mistral3.py#L67 + if (model.mm_patch_merger_w) { + GGML_ASSERT(hparams.spatial_merge_size > 0); + + ggml_tensor * cur = embeddings; + cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.mm_input_norm_w); + + // reshape image tokens to 2D grid + cur = ggml_reshape_3d(ctx0, cur, hidden_size, n_patches_x, n_patches_y); + cur = ggml_permute(ctx0, cur, 2, 0, 1, 3); // [x, y, hidden_size] + cur = ggml_cont(ctx0, cur); + + // torch.nn.functional.unfold is just an im2col under the hood + // we just need a dummy kernel to make it work + ggml_tensor * kernel = ggml_view_3d(ctx0, cur, n_merge, n_merge, cur->ne[2], 0, 0, 0); + cur = ggml_im2col(ctx0, kernel, cur, n_merge, n_merge, 0, 0, 1, 1, true, inp->type); + + // project to hidden_size + cur = ggml_reshape_2d(ctx0, cur, cur->ne[0], cur->ne[1] * cur->ne[2]); + cur = ggml_mul_mat(ctx0, model.mm_patch_merger_w, cur); + embeddings = cur; + } + + // LlavaMultiModalProjector (always using GELU activation) { embeddings = ggml_mul_mat(ctx0, model.mm_1_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); + if (model.mm_1_b) { + embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); + } embeddings = ggml_gelu(ctx0, embeddings); embeddings = ggml_mul_mat(ctx0, model.mm_2_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_2_b); + if (model.mm_2_b) { + embeddings = ggml_add(ctx0, embeddings, model.mm_2_b); + } } // arrangement of the [IMG_BREAK] token @@ -749,11 +787,14 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i // and then concatenate the [IMG_BREAK] token to the end of each row, aka n_patches_per_row dimension // after the concatenation, we have a tensor with shape [hidden_size, n_patches_per_row + 1, n_rows] + const int p_y = n_merge > 0 ? n_patches_y / n_merge : n_patches_y; + const int p_x = n_merge > 0 ? n_patches_x / n_merge : n_patches_x; + const int p_total = p_x * p_y; const int n_embd_text = embeddings->ne[0]; - const int n_tokens_output = num_patches + n_patches_y - 1; // one [IMG_BREAK] per row, except the last row + const int n_tokens_output = p_total + p_y - 1; // one [IMG_BREAK] per row, except the last row - ggml_tensor * cur = ggml_reshape_3d(ctx0, embeddings, n_embd_text, n_patches_x, n_patches_y); - ggml_tensor * tok = ggml_new_tensor_3d(ctx0, embeddings->type, n_embd_text, 1, n_patches_y); + ggml_tensor * cur = ggml_reshape_3d(ctx0, embeddings, n_embd_text, p_x, p_y); + ggml_tensor * tok = ggml_new_tensor_3d(ctx0, embeddings->type, n_embd_text, 1, p_y); tok = ggml_scale(ctx0, tok, 0.0); // clear the tensor tok = ggml_add(ctx0, tok, model.token_embd_img_break); cur = ggml_concat(ctx0, cur, tok, 1); @@ -1734,6 +1775,7 @@ struct clip_model_loader { case PROJECTOR_TYPE_PIXTRAL: { hparams.rope_theta = 10000.0f; + get_u32(KEY_SPATIAL_MERGE_SIZE, hparams.spatial_merge_size, false); } break; case PROJECTOR_TYPE_QWEN25VL: { @@ -1957,11 +1999,14 @@ struct clip_model_loader { case PROJECTOR_TYPE_PIXTRAL: { vision_model.mm_1_w = get_tensor(string_format(TN_LLAVA_PROJ, 1, "weight")); - vision_model.mm_1_b = get_tensor(string_format(TN_LLAVA_PROJ, 1, "bias")); + vision_model.mm_1_b = get_tensor(string_format(TN_LLAVA_PROJ, 1, "bias"), false); vision_model.mm_2_w = get_tensor(string_format(TN_LLAVA_PROJ, 2, "weight")); - vision_model.mm_2_b = get_tensor(string_format(TN_LLAVA_PROJ, 2, "bias")); + vision_model.mm_2_b = get_tensor(string_format(TN_LLAVA_PROJ, 2, "bias"), false); // [IMG_BREAK] token embedding vision_model.token_embd_img_break = get_tensor(TN_TOK_IMG_BREAK); + // for mistral small 3.1 + vision_model.mm_input_norm_w = get_tensor(TN_MM_INP_NORM, false); + vision_model.mm_patch_merger_w = get_tensor(TN_MM_PATCH_MERGER, false); } break; default: GGML_ASSERT(false && "unknown projector type"); @@ -2926,8 +2971,9 @@ int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * im } else if (ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { n_patches /= ctx->vision_model.hparams.proj_scale_factor; } else if (ctx->proj_type == PROJECTOR_TYPE_PIXTRAL) { - int n_patches_x = img->nx / params.patch_size; - int n_patches_y = img->ny / params.patch_size; + int n_merge = ctx->vision_model.hparams.spatial_merge_size; + int n_patches_x = img->nx / params.patch_size / (n_merge > 0 ? n_merge : 1); + int n_patches_y = img->ny / params.patch_size / (n_merge > 0 ? n_merge : 1); n_patches = n_patches_y*n_patches_x + n_patches_y - 1; // + one [IMG_BREAK] per row, except the last row } @@ -3484,7 +3530,7 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { return ctx->vision_model.mm_model_peg_0_b->ne[0]; case PROJECTOR_TYPE_MLP: case PROJECTOR_TYPE_PIXTRAL: - return ctx->vision_model.mm_2_b->ne[0]; + return ctx->vision_model.mm_2_w->ne[1]; case PROJECTOR_TYPE_MLP_NORM: return ctx->vision_model.mm_3_b->ne[0]; case PROJECTOR_TYPE_MINICPMV: diff --git a/examples/llava/mtmd-cli.cpp b/examples/llava/mtmd-cli.cpp index 4d857ca64e..aa52d92cab 100644 --- a/examples/llava/mtmd-cli.cpp +++ b/examples/llava/mtmd-cli.cpp @@ -94,6 +94,7 @@ struct mtmd_cli_context { LOG_ERR("Model does not have chat template.\n"); LOG_ERR(" For old llava models, you may need to use '--chat-template vicuna'\n"); LOG_ERR(" For MobileVLM models, use '--chat-template deepseek'\n"); + LOG_ERR(" For Mistral Small 3.1, use '--chat-template mistral-v7'\n"); exit(1); } diff --git a/examples/llava/tests.sh b/examples/llava/tests.sh index 75604315cf..4af3700640 100755 --- a/examples/llava/tests.sh +++ b/examples/llava/tests.sh @@ -59,6 +59,7 @@ add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" # to test the big models, run: ./tests.sh big add_test_big "llama-mtmd-cli" "ggml-org/pixtral-12b-GGUF:Q4_K_M" +add_test_big "llama-mtmd-cli" "ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF" "mistral-v7" # these models always give the wrong answer, not sure why # add_test "llama-mtmd-cli" "ggml-org/SmolVLM-Instruct-GGUF:Q4_K_M" diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 326ccdb071..a2540bd93f 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -231,6 +231,7 @@ class Keys: BLOCK_COUNT = "clip.vision.block_count" IMAGE_MEAN = "clip.vision.image_mean" IMAGE_STD = "clip.vision.image_std" + SPATIAL_MERGE_SIZE = "clip.vision.spatial_merge_size" USE_GELU = "clip.use_gelu" USE_SILU = "clip.use_silu" @@ -491,6 +492,7 @@ class MODEL_TENSOR(IntEnum): V_ENC_FFN_DOWN = auto() V_PRE_NORM = auto() V_POST_NORM = auto() + V_MM_INP_NORM = auto() V_MM_INP_PROJ = auto() # gemma3 V_MM_SOFT_EMB_NORM = auto() # gemma3 V_RESMPL_POS_EMBD_K = auto() # minicpmv @@ -505,6 +507,7 @@ class MODEL_TENSOR(IntEnum): V_RESMPL_PROJ = auto() # minicpmv V_RESMPL_QUERY = auto() # minicpmv V_TOK_EMBD_IMG_BREAK = auto() # pixtral + V_MM_PATCH_MERGER = auto() # mistral small 3.1 MODEL_ARCH_NAMES: dict[MODEL_ARCH, str] = { @@ -747,6 +750,7 @@ TENSOR_NAMES: dict[MODEL_TENSOR, str] = { MODEL_TENSOR.V_PRE_NORM: "v.pre_ln", MODEL_TENSOR.V_POST_NORM: "v.post_ln", MODEL_TENSOR.V_MM_INP_PROJ: "mm.input_projection", + MODEL_TENSOR.V_MM_INP_NORM: "mm.input_norm", MODEL_TENSOR.V_MM_SOFT_EMB_NORM: "mm.soft_emb_norm", MODEL_TENSOR.V_RESMPL_POS_EMBD_K: "resampler.pos_embd_k", MODEL_TENSOR.V_RESMPL_ATTN_Q: "resampler.attn.q", @@ -760,6 +764,7 @@ TENSOR_NAMES: dict[MODEL_TENSOR, str] = { MODEL_TENSOR.V_RESMPL_PROJ: "resampler.proj", MODEL_TENSOR.V_RESMPL_QUERY: "resampler.query", MODEL_TENSOR.V_TOK_EMBD_IMG_BREAK: "v.token_embd.img_break", # pixtral + MODEL_TENSOR.V_MM_PATCH_MERGER: "mm.patch_merger", # mistral small 3.1 } MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { @@ -783,6 +788,7 @@ MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { MODEL_TENSOR.V_PRE_NORM, MODEL_TENSOR.V_POST_NORM, MODEL_TENSOR.V_MM_INP_PROJ, + MODEL_TENSOR.V_MM_INP_NORM, MODEL_TENSOR.V_MM_SOFT_EMB_NORM, MODEL_TENSOR.V_RESMPL_POS_EMBD_K, MODEL_TENSOR.V_RESMPL_ATTN_Q, @@ -796,6 +802,7 @@ MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { MODEL_TENSOR.V_RESMPL_PROJ, MODEL_TENSOR.V_RESMPL_QUERY, MODEL_TENSOR.V_TOK_EMBD_IMG_BREAK, + MODEL_TENSOR.V_MM_PATCH_MERGER, ], MODEL_ARCH.LLAMA: [ MODEL_TENSOR.TOKEN_EMBD, diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index f22a6d4a34..a30c49e32b 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -972,6 +972,9 @@ class GGUFWriter: def add_vision_image_std(self, values: Sequence[float]) -> None: self.add_array(Keys.ClipVision.IMAGE_STD, values) + def add_vision_spatial_merge_size(self, value: int) -> None: + self.add_uint32(Keys.ClipVision.SPATIAL_MERGE_SIZE, value) + def add_vision_use_gelu(self, value: bool) -> None: self.add_bool(Keys.ClipVision.USE_GELU, value) diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index 311d1ff69c..2f6326104f 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -1001,6 +1001,10 @@ class TensorNameMap: "multi_modal_projector.mm_input_projection", ), + MODEL_TENSOR.V_MM_INP_NORM: ( + "multi_modal_projector.norm", + ), + MODEL_TENSOR.V_MM_SOFT_EMB_NORM: ( "multi_modal_projector.mm_soft_emb_norm", ), @@ -1052,6 +1056,10 @@ class TensorNameMap: MODEL_TENSOR.V_TOK_EMBD_IMG_BREAK: ( "v.token_embd.img_break", # for pixtral, this is a generated vector ), + + MODEL_TENSOR.V_MM_PATCH_MERGER: ( + "multi_modal_projector.patch_merger.merging_layer", # mistral small 3.1 + ), } # architecture-specific block mappings From b5769d92b4510c77691ad9e3f8b643c2ba202e53 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 29 Apr 2025 15:47:55 +0200 Subject: [PATCH 064/126] ggml : suppress Windows compiler warnings (whisper/3075) * whisper: suppress Windows compiler warnings This commit disables compiler warnings on window using MSVC. The motivation for these changes is that some compilers generate warnings for these conversion, for example Windows MSVC, and there are quite a few of them. This makes it a little difficult to spot new warnings that may be introduced and also can be difficult for users/embedders of ggml where these warnings are hard to separate from their own warnings. * squash! whisper: suppress Windows compiler warnings Move ggml related warnings into ggml. This commit also fixes the indentation and adds a missing whitespace to the if statement. --- ggml/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index 61fe15a15f..e632af010c 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -360,3 +360,18 @@ write_basic_package_version_file( install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ggml-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/ggml-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ggml) + +if (MSVC) + set(MSVC_WARNING_FLAGS + /wd4005 # Macro redefinition + /wd4244 # Conversion from one type to another type, possible loss of data + /wd4267 # Conversion from 'size_t' to a smaller type, possible loss of data + ) + function(disable_msvc_warnings target_name) + target_compile_options(${target_name} PRIVATE ${MSVC_WARNING_FLAGS}) + endfunction() + + disable_msvc_warnings(ggml-base) + disable_msvc_warnings(ggml) + disable_msvc_warnings(ggml-cpu) +endif() From 99881f77d82efda80b21057d84f1cc2df2f1e0f6 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 1 May 2025 10:05:24 +0200 Subject: [PATCH 065/126] whisper : add check that target name exists (whisper/3103) This commit adds a check to makes sure that the target exists before trying to add compile options to ignore warnings when using MSVC. The motivation for this is currently the build is broken depending on the cmake options provided. With this fix it should be possible to build even if the targets are not actually available. Refs: https://github.com/ggml-org/whisper.cpp/pull/3090#issuecomment-2842760104 --- ggml/CMakeLists.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index e632af010c..b463cbd9b3 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -368,10 +368,19 @@ if (MSVC) /wd4267 # Conversion from 'size_t' to a smaller type, possible loss of data ) function(disable_msvc_warnings target_name) - target_compile_options(${target_name} PRIVATE ${MSVC_WARNING_FLAGS}) + if(TARGET ${target_name}) + target_compile_options(${target_name} PRIVATE ${MSVC_WARNING_FLAGS}) + endif() endfunction() disable_msvc_warnings(ggml-base) disable_msvc_warnings(ggml) disable_msvc_warnings(ggml-cpu) + disable_msvc_warnings(ggml-cpu-x64) + disable_msvc_warnings(ggml-cpu-sse42) + disable_msvc_warnings(ggml-cpu-sandybridge) + disable_msvc_warnings(ggml-cpu-haswell) + disable_msvc_warnings(ggml-cpu-skylakex) + disable_msvc_warnings(ggml-cpu-icelake) + disable_msvc_warnings(ggml-cpu-alderlake) endif() From b1dd4d08e8fe40c9484422c0c5ec9bbd13b067a9 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 1 May 2025 17:07:13 +0300 Subject: [PATCH 066/126] sync : ggml ggml-ci --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 5b798aeb49..433cfab7ff 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -7734363ac74a14d7f2c8033c552d9d655c5dfc00 +f3a375f20bf56860b30e7c511d03593a1e393345 From b0ecbd434be024c06bf547491be444ed92e1123e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Thu, 1 May 2025 20:18:56 +0200 Subject: [PATCH 067/126] test: non-cont. b in test-backend-ops -o MUL_MAT (#13187) --- tests/test-backend-ops.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 9591b1a89e..767498ef39 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -1981,7 +1981,7 @@ struct test_mul_mat : public test_case { const std::array bs; // dims 3 and 4 const std::array nr; // repeat in dims 3 and 4 const std::array per; // permutation of dimensions - const bool v; // whether a is a non-contiguous view + const bool v; // whether a and b are non-contiguous views std::string vars() override { return VARS_TO_STR9(type_a, type_b, m, n, k, bs, nr, per, v); @@ -2042,12 +2042,15 @@ struct test_mul_mat : public test_case { } else { if (v) { - a = ggml_new_tensor_4d(ctx, type_a, k*2, m, bs[0], bs[1]); - a = ggml_view_4d(ctx, a, k, m, bs[0], bs[1], a->nb[1], a->nb[2], a->nb[3], 0); + a = ggml_new_tensor_4d(ctx, type_a, k*2, m, bs[0], bs[1]); + b = ggml_new_tensor_4d(ctx, type_b, k*2, n, bs[0]*nr[0], bs[1]*nr[1]); + + a = ggml_view_4d(ctx, a, k, m, bs[0], bs[1], a->nb[1], a->nb[2], a->nb[3], 0); + b = ggml_view_4d(ctx, b, k, n, bs[0]*nr[0], bs[1]*nr[1], b->nb[1], b->nb[2], b->nb[3], 0); } else { a = ggml_new_tensor_4d(ctx, type_a, k, m, bs[0], bs[1]); + b = ggml_new_tensor_4d(ctx, type_b, k, n, bs[0]*nr[0], bs[1]*nr[1]); } - b = ggml_new_tensor_4d(ctx, type_b, k, n, bs[0]*nr[0], bs[1]*nr[1]); if (!ggml_is_quantized(type_a)) { if (bs[1] == 1 && nr[1] == 1) { ggml_set_param(ctx, a); From fc727bcdd5a311c7c69a76dbf87f4784e828c7b4 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 1 May 2025 13:19:31 -0500 Subject: [PATCH 068/126] vulkan: Handle src1 batch dimension in non-contiguous mat-vec-mul shader (#13191) * vulkan: Handle src1 batch dimension in non-contiguous mat-vec-mul shader --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 7 +++++-- ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index c0bdb9e17a..4614c3c156 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -2399,7 +2399,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_mul_mat_vec_p021_f16_f32[i], "mul_mat_vec_p021_f16_f32"+std::to_string(i+1), mul_mat_vec_p021_f16_f32_len, mul_mat_vec_p021_f16_f32_data, "main", 3, 6 * sizeof(uint32_t), {1, 1, 1}, {device->subgroup_size, i + 1}, 1, true); } } - ggml_vk_create_pipeline(device, device->pipeline_mul_mat_vec_nc_f16_f32, "mul_mat_vec_nc_f16_f32", mul_mat_vec_nc_f16_f32_len, mul_mat_vec_nc_f16_f32_data, "main", 3, 7 * sizeof(uint32_t), {1, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_mul_mat_vec_nc_f16_f32, "mul_mat_vec_nc_f16_f32", mul_mat_vec_nc_f16_f32_len, mul_mat_vec_nc_f16_f32_data, "main", 3, 9 * sizeof(uint32_t), {1, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_norm_f32, "norm_f32", norm_f32_len, norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_group_norm_f32, "group_norm_f32", group_norm_f32_len, group_norm_f32_data, "main", 2, sizeof(vk_op_push_constants), {1, 1, 1}, {}, 1); @@ -4949,6 +4949,8 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con const uint64_t nb01 = src0->nb[1]; const uint64_t nb02 = src0->nb[2]; + const uint64_t nb12 = src1->nb[2]; + // const uint64_t ne10 = src1->ne[0]; const uint64_t ne11 = src1->ne[1]; const uint64_t ne12 = src1->ne[2]; @@ -4974,6 +4976,7 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con const uint32_t row_stride_x = nb01 / sizeof(ggml_fp16_t); const uint32_t channel_stride_x = nb02 / sizeof(ggml_fp16_t); + const uint32_t channel_stride_y = nb12 / sizeof(float); const uint64_t qx_sz = ggml_nbytes(src0); const uint64_t qy_sz = ggml_nbytes(src1); @@ -5004,7 +5007,7 @@ static void ggml_vk_mul_mat_vec_nc_f16_f32(ggml_backend_vk_context * ctx, vk_con const uint64_t d_shader_offset = d_buf_offset - d_buffer_offset; // compute - const std::array pc = { (uint32_t)ne00, (uint32_t)ne01, row_stride_x, channel_stride_x, (uint32_t)(ne12 / ne02), (uint32_t)(qy_shader_offset / ggml_type_size(src1->type)), (uint32_t)(d_shader_offset / ggml_type_size(dst->type)) }; + const std::array pc = { (uint32_t)ne00, (uint32_t)ne01, row_stride_x, channel_stride_x, channel_stride_y, (uint32_t)(ne12 / ne02), (uint32_t)ne12, (uint32_t)(qy_shader_offset / ggml_type_size(src1->type)), (uint32_t)(d_shader_offset / ggml_type_size(dst->type)) }; ggml_vk_sync_buffers(subctx); ggml_vk_dispatch_pipeline(ctx, subctx, ctx->device->pipeline_mul_mat_vec_nc_f16_f32, { vk_subbuffer{ d_Qx, qx_buf_offset, qx_sz }, vk_subbuffer{ d_Qy, qy_buffer_offset, qy_sz + qy_shader_offset }, vk_subbuffer{ d_D, d_buffer_offset, d_sz + d_shader_offset } }, 7 * sizeof(uint32_t), &pc, { 1, (uint32_t)ne01, (uint32_t)ne12 }); diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp index 48376637fb..bc633369f9 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp @@ -21,7 +21,9 @@ layout (push_constant) uniform parameter uint nrows_x; uint row_stride_x; uint channel_stride_x; + uint channel_stride_y; uint channel_x_divisor; + uint ne12; uint b_offset; uint d_offset; } p; @@ -33,6 +35,7 @@ void main() { const uint row_x = gl_GlobalInvocationID.y; const uint channel = gl_GlobalInvocationID.z; const uint channel_x = channel / p.channel_x_divisor; + const uint channel_y = channel % p.ne12; const uint nrows_y = p.ncols_x; const uint nrows_dst = p.nrows_x; @@ -56,7 +59,7 @@ void main() { const uint row_y = col_x; const uint ix = channel_x*p.channel_stride_x + row_x*p.row_stride_x + col_x; - const uint iy = channel*nrows_y + row_y; + const uint iy = channel_y*p.channel_stride_y + row_y; const vec4 av4 = vec4(data_a_v4[ix / 4]); const vec4 bv4 = vec4(data_b_v4[iy / 4]); @@ -72,7 +75,7 @@ void main() { const uint row_y = col_x; const uint ix = channel_x*p.channel_stride_x + row_x*p.row_stride_x + col_x; - const uint iy = channel*nrows_y + row_y; + const uint iy = channel_y*p.channel_stride_y + row_y; const vec4 av4 = vec4(data_a_v4[ix / 4]); const vec4 bv4 = vec4(data_b_v4[iy / 4]); @@ -89,7 +92,7 @@ void main() { const uint row_y = col_x; const uint ix = channel_x*p.channel_stride_x + row_x*p.row_stride_x + col_x; - const uint iy = channel*nrows_y + row_y; + const uint iy = channel_y*p.channel_stride_y + row_y; const FLOAT_TYPE xi = FLOAT_TYPE(data_a[ix]); From 79f26e9e125b21760aeb016f34bfd42a93f48351 Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 1 May 2025 13:49:39 -0500 Subject: [PATCH 069/126] vulkan: Add bfloat16 support (#12554) * vulkan: Add bfloat16 support This adds bfloat16 matrix multiply support based on VK_KHR_shader_bfloat16. The extension is required for coopmat multiply support, but matrix-vector multiply trivially promotes bf16 to fp32 and doesn't require the extension. The copy/get_rows shaders also don't require the extension. It's probably possible to fall back to non-coopmat and promote to fp32 when the extension isn't supported, but this change doesn't do that. The coopmat support also requires a glslc that supports the extension, which currently requires a custom build. * vulkan: Support bf16 tensors without the bf16 extension or coopmat support Compile a variant of the scalar mul_mm shader that will promote the bf16 values to float, and use that when either the bf16 extension or the coopmat extensions aren't available. * vulkan: bfloat16 fixes (really works without bfloat16 support now) * vulkan: fix spirv-val failure and reenable -O --- ggml/src/ggml-vulkan/CMakeLists.txt | 17 ++ ggml/src/ggml-vulkan/ggml-vulkan.cpp | 196 ++++++++++++++++-- .../ggml-vulkan/vulkan-shaders/CMakeLists.txt | 3 + .../vulkan-shaders/contig_copy.comp | 11 +- ggml/src/ggml-vulkan/vulkan-shaders/copy.comp | 5 +- .../vulkan-shaders/dequant_funcs.comp | 8 +- .../ggml-vulkan/vulkan-shaders/get_rows.comp | 11 +- .../vulkan-shaders/mul_mat_vec.comp | 2 +- .../ggml-vulkan/vulkan-shaders/mul_mm.comp | 39 +++- .../vulkan-shaders/mul_mm_cm2.comp | 37 ++-- .../vulkan-shaders/test_bfloat16_support.comp | 7 + .../src/ggml-vulkan/vulkan-shaders/types.comp | 27 +++ .../vulkan-shaders/vulkan-shaders-gen.cpp | 72 +++++-- 13 files changed, 368 insertions(+), 67 deletions(-) create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp diff --git a/ggml/src/ggml-vulkan/CMakeLists.txt b/ggml/src/ggml-vulkan/CMakeLists.txt index 9d028f718d..31816219c0 100644 --- a/ggml/src/ggml-vulkan/CMakeLists.txt +++ b/ggml/src/ggml-vulkan/CMakeLists.txt @@ -71,6 +71,22 @@ if (Vulkan_FOUND) add_compile_definitions(GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT) endif() + # Compile a test shader to determine whether GL_EXT_bfloat16 is supported. + # If it's not, there will be an error to stderr. + # If it's supported, set a define to indicate that we should compile those shaders + execute_process(COMMAND ${Vulkan_GLSLC_EXECUTABLE} -o - -fshader-stage=compute --target-env=vulkan1.3 "${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders/test_bfloat16_support.comp" + OUTPUT_VARIABLE glslc_output + ERROR_VARIABLE glslc_error) + + if (${glslc_error} MATCHES ".*extension not supported: GL_EXT_bfloat16.*") + message(STATUS "GL_EXT_bfloat16 not supported by glslc") + set(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT OFF) + else() + message(STATUS "GL_EXT_bfloat16 supported by glslc") + set(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT ON) + add_compile_definitions(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + endif() + target_link_libraries(ggml-vulkan PRIVATE Vulkan::Vulkan) target_include_directories(ggml-vulkan PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -142,6 +158,7 @@ if (Vulkan_FOUND) -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT=${GGML_VULKAN_COOPMAT_GLSLC_SUPPORT} -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT=${GGML_VULKAN_COOPMAT2_GLSLC_SUPPORT} -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT=${GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT} + -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT=${GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT} BUILD_COMMAND ${CMAKE_COMMAND} --build . INSTALL_COMMAND ${CMAKE_COMMAND} --install . INSTALL_DIR ${CMAKE_BINARY_DIR} diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 4614c3c156..eac0b422bc 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -51,6 +51,24 @@ #include "ggml-vulkan-shaders.hpp" +// remove this once it's more widely available in the SDK +#if !defined(VK_KHR_shader_bfloat16) + +#define VK_KHR_shader_bfloat16 1 +#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1 +#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16" +#define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR ((VkStructureType)1000141000) +#define VK_COMPONENT_TYPE_BFLOAT16_KHR ((VkComponentTypeKHR)1000141000) + +typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderBFloat16Type; + VkBool32 shaderBFloat16DotProduct; + VkBool32 shaderBFloat16CooperativeMatrix; +} VkPhysicalDeviceShaderBfloat16FeaturesKHR; +#endif + #define ROUNDUP_POW2(M, N) (((M) + (N) - 1) & ~((N) - 1)) #define CEIL_DIV(M, N) (((M) + (N)-1) / (N)) static bool is_pow2(uint32_t x) { return x > 1 && (x & (x-1)) == 0; } @@ -266,8 +284,9 @@ struct vk_device_struct { bool subgroup_require_full_support; bool coopmat_support; - bool coopmat_acc_f32_support; - bool coopmat_acc_f16_support; + bool coopmat_acc_f32_support {}; + bool coopmat_acc_f16_support {}; + bool coopmat_bf16_support {}; uint32_t coopmat_m; uint32_t coopmat_n; uint32_t coopmat_k; @@ -293,6 +312,7 @@ struct vk_device_struct { vk_matmul_pipeline pipeline_matmul_f32 {}; vk_matmul_pipeline pipeline_matmul_f32_f16 {}; + vk_matmul_pipeline pipeline_matmul_bf16 {}; vk_matmul_pipeline2 pipeline_matmul_f16; vk_matmul_pipeline2 pipeline_matmul_f16_f32; @@ -301,6 +321,7 @@ struct vk_device_struct { vk_matmul_pipeline2 pipeline_dequant_mul_mat_mat_q8_1[GGML_TYPE_COUNT]; vk_matmul_pipeline pipeline_matmul_id_f32 {}; + vk_matmul_pipeline pipeline_matmul_id_bf16 {}; vk_matmul_pipeline2 pipeline_matmul_id_f16; vk_matmul_pipeline2 pipeline_matmul_id_f16_f32; @@ -333,8 +354,8 @@ struct vk_device_struct { vk_pipeline pipeline_clamp_f32; vk_pipeline pipeline_pad_f32; vk_pipeline pipeline_repeat_f32, pipeline_repeat_back_f32; - vk_pipeline pipeline_cpy_f32_f32, pipeline_cpy_f32_f16, pipeline_cpy_f16_f16; - vk_pipeline pipeline_contig_cpy_f32_f32, pipeline_contig_cpy_f32_f16, pipeline_contig_cpy_f16_f16; + vk_pipeline pipeline_cpy_f32_f32, pipeline_cpy_f32_f16, pipeline_cpy_f16_f16, pipeline_cpy_f32_bf16; + vk_pipeline pipeline_contig_cpy_f32_f32, pipeline_contig_cpy_f32_f16, pipeline_contig_cpy_f16_f16, pipeline_contig_cpy_f32_bf16; vk_pipeline pipeline_cpy_f32_quant[GGML_TYPE_COUNT]; vk_pipeline pipeline_cpy_quant_f32[GGML_TYPE_COUNT]; vk_pipeline pipeline_norm_f32; @@ -1791,6 +1812,12 @@ static void ggml_vk_load_shaders(vk_device& device) { if (!device->pipeline_matmul_id_f32) { device->pipeline_matmul_id_f32 = std::make_shared(); } + if (!device->pipeline_matmul_bf16) { + device->pipeline_matmul_bf16 = std::make_shared(); + } + if (!device->pipeline_matmul_id_bf16) { + device->pipeline_matmul_id_bf16 = std::make_shared(); + } std::vector> compiles; auto const &ggml_vk_create_pipeline = [&](vk_device& device, vk_pipeline& pipeline, const std::string &name, size_t spv_size, const void* spv_data, const std::string &entrypoint, @@ -1900,6 +1927,11 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(PIPELINE_NAME . f32acc, NAMELC, , WG_DENOMS, WARPTILE, PUSHCONST, PARAMCOUNT) \ CREATE_MM2(pipeline_matmul_f16, matmul_f16, wg_denoms, warptile, vk_mat_mat_push_constants, 3) +#if defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (device->coopmat_bf16_support) { + CREATE_MM(pipeline_matmul_bf16, matmul_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3) + } +#endif CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) @@ -1921,6 +1953,11 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(pipeline_dequant_mul_mat_mat_f16[GGML_TYPE_IQ4_NL].f16acc, matmul_iq4_nl_f16, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3) CREATE_MM2(pipeline_matmul_id_f16, matmul_id_f16, wg_denoms, warptile, vk_mat_mat_id_push_constants, 4) +#if defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (device->coopmat_bf16_support) { + CREATE_MM(pipeline_matmul_id_bf16, matmul_id_bf16, , wg_denoms, warptile, vk_mat_mat_id_push_constants, 4) + } +#endif CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) CREATE_MM(pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f16, , mmqid_wg_denoms, warptile_mmqid, vk_mat_mat_id_push_constants, 4) @@ -1974,6 +2011,11 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(GGML_TYPE_F32, pipeline_matmul_f32_f16, matmul_f32_f16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_f16, matmul_f16, wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_f16_f32, matmul_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); +#if defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (device->coopmat_bf16_support) { + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_bf16, matmul_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ) + } +#endif if (device->coopmat_acc_f16_support) { CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); @@ -2022,6 +2064,11 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(GGML_TYPE_F32, pipeline_matmul_id_f32, matmul_id_f32_f32, , wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_id_f16, matmul_id_f16, wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_id_f16_f32, matmul_id_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); +#if defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (device->coopmat_bf16_support) { + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_id_bf16, matmul_id_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); + } +#endif if (device->coopmat_acc_f16_support) { CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); @@ -2104,6 +2151,8 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_f16, matmul_f16, wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_f16_f32, matmul_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_bf16, matmul_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); + CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f16acc, matmul_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(GGML_TYPE_Q4_1, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f16acc, matmul_q4_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(GGML_TYPE_Q5_0, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f16acc, matmul_q5_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); @@ -2139,6 +2188,8 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_id_f16, matmul_id_f16, wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); CREATE_MM2(GGML_TYPE_F16, pipeline_matmul_id_f16_f32, matmul_id_f16_f32, wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_id_bf16, matmul_id_bf16, , wg_denoms, warptile, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f16acc, matmul_id_q4_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_Q4_1, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f16acc, matmul_id_q4_1_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_Q5_0, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f16acc, matmul_id_q5_0_f32, _f16acc, mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); @@ -2191,6 +2242,8 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(GGML_TYPE_F16, pipeline_matmul_f16.f32acc, matmul_f16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); CREATE_MM(GGML_TYPE_F16, pipeline_matmul_f16_f32.f32acc, matmul_f16_f32, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_bf16, matmul_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); + CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_0].f32acc, matmul_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(GGML_TYPE_Q4_1, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q4_1].f32acc, matmul_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); CREATE_MM(GGML_TYPE_Q5_0, pipeline_dequant_mul_mat_mat[GGML_TYPE_Q5_0].f32acc, matmul_q5_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_push_constants, 3, ); @@ -2226,6 +2279,8 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(GGML_TYPE_F16, pipeline_matmul_id_f16.f32acc, matmul_id_f16, , wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); CREATE_MM(GGML_TYPE_F16, pipeline_matmul_id_f16_f32.f32acc, matmul_id_f16_f32, , wg_denoms, warptile, vk_mat_mat_push_constants, 4, _id); + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_id_bf16, matmul_id_bf16, , wg_denoms, warptile, vk_mat_mat_id_push_constants, 4, _id); + CREATE_MM(GGML_TYPE_Q4_0, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_0].f32acc, matmul_id_q4_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_Q4_1, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q4_1].f32acc, matmul_id_q4_1_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_Q5_0, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_Q5_0].f32acc, matmul_id_q5_0_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); @@ -2246,8 +2301,26 @@ static void ggml_vk_load_shaders(vk_device& device) { CREATE_MM(GGML_TYPE_IQ3_S, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ3_S].f32acc, matmul_id_iq3_s_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_IQ4_XS, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_XS].f32acc, matmul_id_iq4_xs_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); CREATE_MM(GGML_TYPE_IQ4_NL, pipeline_dequant_mul_mat_mat_id[GGML_TYPE_IQ4_NL].f32acc, matmul_id_iq4_nl_f32, , mmq_wg_denoms, warptile_mmq, vk_mat_mat_id_push_constants, 4, _id); -#undef CREATE_MM } + // reusing CREATE_MM from the fp32 path + if ((device->coopmat2 || device->coopmat_support) +#if defined(GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT) + && !device->coopmat_bf16_support +#endif + ) { + // use scalar tile sizes + l_warptile = { 128, 128, 128, 16, subgroup_size_8 * 2, 64, 2, 4, 4, 1, subgroup_size_8 }; + m_warptile = { 128, 64, 64, 16, subgroup_size_8, 32, 2, 4, 2, 1, subgroup_size_8 }; + s_warptile = { subgroup_size_16, 32, 32, 16, 32, 32, 2, 2, 2, 1, subgroup_size_8 }; + + l_wg_denoms = {128, 128, 1 }; + m_wg_denoms = { 64, 64, 1 }; + s_wg_denoms = { 32, 32, 1 }; + + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_bf16, matmul_bf16, , wg_denoms, warptile, vk_mat_mat_push_constants, 3, ); + CREATE_MM(GGML_TYPE_BF16, pipeline_matmul_id_bf16, matmul_id_bf16, , wg_denoms, warptile, vk_mat_mat_id_push_constants, 4, _id); + } +#undef CREATE_MM // mul mat vec @@ -2266,6 +2339,7 @@ static void ggml_vk_load_shaders(vk_device& device) { for (uint32_t i = 0; i < mul_mat_vec_max_cols; ++i) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F32 ][i], "mul_mat_vec_f32_f32_f32_"+std::to_string(i+1), mul_mat_vec_f32_f32_f32_len, mul_mat_vec_f32_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_F16 ][i], "mul_mat_vec_f16_f32_f32_"+std::to_string(i+1), mul_mat_vec_f16_f32_f32_len, mul_mat_vec_f16_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_BF16][i], "mul_mat_vec_bf16_f32_f32_"+std::to_string(i+1), mul_mat_vec_bf16_f32_f32_len, mul_mat_vec_bf16_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_0][i], "mul_mat_vec_q4_0_f32_f32_"+std::to_string(i+1), mul_mat_vec_q4_0_f32_f32_len, mul_mat_vec_q4_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q4_1][i], "mul_mat_vec_q4_1_f32_f32_"+std::to_string(i+1), mul_mat_vec_q4_1_f32_f32_len, mul_mat_vec_q4_1_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f32_f32[GGML_TYPE_Q5_0][i], "mul_mat_vec_q5_0_f32_f32_"+std::to_string(i+1), mul_mat_vec_q5_0_f32_f32_len, mul_mat_vec_q5_0_f32_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); @@ -2288,6 +2362,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F32 ][i], "mul_mat_vec_f32_f16_f32_"+std::to_string(i+1), mul_mat_vec_f32_f16_f32_len, mul_mat_vec_f32_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_F16 ][i], "mul_mat_vec_f16_f16_f32_"+std::to_string(i+1), mul_mat_vec_f16_f16_f32_len, mul_mat_vec_f16_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_BF16][i], "mul_mat_vec_bf16_f16_f32_"+std::to_string(i+1), mul_mat_vec_bf16_f16_f32_len, mul_mat_vec_bf16_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2, 1, 1}, {device->subgroup_size, 2, i+1}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_0][i], "mul_mat_vec_q4_0_f16_f32_"+std::to_string(i+1), mul_mat_vec_q4_0_f16_f32_len, mul_mat_vec_q4_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q4_1][i], "mul_mat_vec_q4_1_f16_f32_"+std::to_string(i+1), mul_mat_vec_q4_1_f16_f32_len, mul_mat_vec_q4_1_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_f16_f32[GGML_TYPE_Q5_0][i], "mul_mat_vec_q5_0_f16_f32_"+std::to_string(i+1), mul_mat_vec_q5_0_f16_f32_len, mul_mat_vec_q5_0_f16_f32_data, "main", 3, sizeof(vk_mat_vec_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq, i+1}, 1, true); @@ -2311,6 +2386,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F32 ], "mul_mat_vec_id_f32_f32", mul_mat_vec_id_f32_f32_len, mul_mat_vec_id_f32_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2, 1, 1}, {device->subgroup_size, 2}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_F16 ], "mul_mat_vec_id_f16_f32", mul_mat_vec_id_f16_f32_len, mul_mat_vec_id_f16_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2, 1, 1}, {device->subgroup_size, 2}, 1); + ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_BF16], "mul_mat_vec_id_bf16_f32", mul_mat_vec_id_bf16_f32_len, mul_mat_vec_id_bf16_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2, 1, 1}, {device->subgroup_size, 2}, 1); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_0], "mul_mat_vec_id_q4_0_f32", mul_mat_vec_id_q4_0_f32_len, mul_mat_vec_id_q4_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q4_1], "mul_mat_vec_id_q4_1_f32", mul_mat_vec_id_q4_1_f32_len, mul_mat_vec_id_q4_1_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq}, 1, true); ggml_vk_create_pipeline(device, device->pipeline_dequant_mul_mat_vec_id_f32[GGML_TYPE_Q5_0], "mul_mat_vec_id_q5_0_f32", mul_mat_vec_id_q5_0_f32_len, mul_mat_vec_id_q5_0_f32_data, "main", 4, sizeof(vk_mat_vec_id_push_constants), {2*rm_stdq, 1, 1}, {device->subgroup_size, 2*rm_stdq}, 1, true); @@ -2356,6 +2432,7 @@ static void ggml_vk_load_shaders(vk_device& device) { // get_rows ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_F32 ], "get_rows_f32", get_rows_f32_len, get_rows_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_F16 ], "get_rows_f16", get_rows_f16_len, get_rows_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_BF16], "get_rows_bf16", get_rows_bf16_len, get_rows_bf16_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q4_0], "get_rows_q4_0", get_rows_q4_0_len, get_rows_q4_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q4_1], "get_rows_q4_1", get_rows_q4_1_len, get_rows_q4_1_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows[GGML_TYPE_Q5_0], "get_rows_q5_0", get_rows_q5_0_len, get_rows_q5_0_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); @@ -2373,6 +2450,7 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F32 ], "get_rows_f32_f32", get_rows_f32_f32_len, get_rows_f32_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_F16 ], "get_rows_f16_f32", get_rows_f16_f32_len, get_rows_f16_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_BF16], "get_rows_bf16_f32", get_rows_bf16_f32_len, get_rows_bf16_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), { 512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q4_0], "get_rows_q4_0_f32", get_rows_q4_0_f32_len, get_rows_q4_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q4_1], "get_rows_q4_1_f32", get_rows_q4_1_f32_len, get_rows_q4_1_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_get_rows_f32[GGML_TYPE_Q5_0], "get_rows_q5_0_f32", get_rows_q5_0_f32_len, get_rows_q5_0_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {1024, 1, 1}, {}, 1); @@ -2410,10 +2488,13 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f32, "cpy_f32_f32", cpy_f32_f32_len, cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f16, "cpy_f32_f16", cpy_f32_f16_len, cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f16_f16, "cpy_f16_f16", cpy_f16_f16_len, cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_bf16,"cpy_f32_bf16",cpy_f32_bf16_len,cpy_f32_bf16_data,"main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_f32, "contig_cpy_f32_f32", contig_cpy_f32_f32_len, contig_cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_f16, "contig_cpy_f32_f16", contig_cpy_f32_f16_len, contig_cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f16_f16, "contig_cpy_f16_f16", contig_cpy_f16_f16_len, contig_cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_bf16,"contig_cpy_f32_bf16",contig_cpy_f32_bf16_len,contig_cpy_f32_bf16_data,"main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + if (device->float_controls_rte_fp16) { ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_quant[GGML_TYPE_Q4_0], "cpy_f32_q4_0", cpy_f32_q4_0_rte_len, cpy_f32_q4_0_rte_data, "main", 2, sizeof(vk_op_unary_push_constants), {(uint32_t)ggml_blck_size(GGML_TYPE_Q4_0), 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_quant[GGML_TYPE_Q4_1], "cpy_f32_q4_1", cpy_f32_q4_1_rte_len, cpy_f32_q4_1_rte_data, "main", 2, sizeof(vk_op_unary_push_constants), {(uint32_t)ggml_blck_size(GGML_TYPE_Q4_1), 1, 1}, {}, 1); @@ -2578,6 +2659,7 @@ static vk_device ggml_vk_get_device(size_t idx) { bool coopmat2_support = false; device->coopmat_support = false; device->integer_dot_product = false; + bool bfloat16_support = false; for (const auto& properties : ext_props) { if (strcmp("VK_KHR_maintenance4", properties.extensionName) == 0) { @@ -2608,6 +2690,9 @@ static vk_device ggml_vk_get_device(size_t idx) { !getenv("GGML_VK_DISABLE_INTEGER_DOT_PRODUCT")) { device->integer_dot_product = true; #endif + } else if (strcmp("VK_KHR_shader_bfloat16", properties.extensionName) == 0 && + !getenv("GGML_VK_DISABLE_BFLOAT16")) { + bfloat16_support = true; } } @@ -2794,6 +2879,17 @@ static vk_device ggml_vk_get_device(size_t idx) { } #endif +#if defined(VK_KHR_shader_bfloat16) + VkPhysicalDeviceShaderBfloat16FeaturesKHR bfloat16_features {}; + bfloat16_features.pNext = nullptr; + bfloat16_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR; + if (bfloat16_support) { + last_struct->pNext = (VkBaseOutStructure *)&bfloat16_features; + last_struct = (VkBaseOutStructure *)&bfloat16_features; + device_extensions.push_back("VK_KHR_shader_bfloat16"); + } +#endif + VkPhysicalDeviceMaintenance4Features maint4_features {}; maint4_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES; if (maintenance4_support) { @@ -2991,6 +3087,25 @@ static vk_device ggml_vk_get_device(size_t idx) { device->coopmat_int_n = prop.NSize; device->coopmat_int_k = prop.KSize; } +#if defined(VK_KHR_shader_bfloat16) && defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (prop.AType == VK_COMPONENT_TYPE_BFLOAT16_KHR && + prop.BType == VK_COMPONENT_TYPE_BFLOAT16_KHR && + prop.CType == VK_COMPONENT_TYPE_FLOAT32_KHR && + prop.ResultType == VK_COMPONENT_TYPE_FLOAT32_KHR && + (vk::ScopeKHR)prop.scope == vk::ScopeKHR::eSubgroup + ) { + // coopmat sizes not set yet + if (device->coopmat_m == 0) { + device->coopmat_bf16_support = true; + device->coopmat_m = prop.MSize; + device->coopmat_n = prop.NSize; + device->coopmat_k = prop.KSize; + } else if (device->coopmat_m == prop.MSize && device->coopmat_n == prop.NSize && device->coopmat_k == prop.KSize) { + // Only enable if shape is identical + device->coopmat_bf16_support = true; + } + } +#endif } if (device->coopmat_m == 0 || !device->coopmat_acc_f32_support) { @@ -2998,11 +3113,19 @@ static vk_device ggml_vk_get_device(size_t idx) { GGML_LOG_DEBUG("ggml_vulkan: WARNING: No suitable matrix core mode found. Disabling matrix cores.\n"); device->coopmat_support = false; } + if (getenv("GGML_VK_DISABLE_BFLOAT16")) { + device->coopmat_bf16_support = false; + } } if (device->coopmat_support) { device_extensions.push_back("VK_KHR_cooperative_matrix"); } +#if defined(VK_KHR_shader_bfloat16) + if (device->coopmat_bf16_support) { + device_extensions.push_back("VK_KHR_shader_bfloat16"); + } +#endif #endif device->name = GGML_VK_NAME + std::to_string(idx); @@ -3459,6 +3582,9 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_pipeline(ggml_backend_vk_conte if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F16) { return ctx->device->pipeline_matmul_f32_f16; } + if (src0_type == GGML_TYPE_BF16 && src1_type == GGML_TYPE_BF16) { + return ctx->device->pipeline_matmul_bf16; + } if (prec == GGML_PREC_DEFAULT && ctx->device->fp16 && !(ctx->device->coopmat_support && !ctx->device->coopmat_acc_f16_support)) { if (src0_type == GGML_TYPE_F16 && src1_type == GGML_TYPE_F32) { return ctx->device->pipeline_matmul_f16_f32.f16acc; @@ -3530,6 +3656,7 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec(ggml_backend_vk_context * switch (a_type) { case GGML_TYPE_F32: case GGML_TYPE_F16: + case GGML_TYPE_BF16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: @@ -3562,6 +3689,9 @@ static vk_matmul_pipeline ggml_vk_get_mul_mat_mat_id_pipeline(ggml_backend_vk_co if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F32) { return ctx->device->pipeline_matmul_id_f32; } + if (src0_type == GGML_TYPE_BF16 && src1_type == GGML_TYPE_BF16) { + return ctx->device->pipeline_matmul_id_bf16; + } if (prec == GGML_PREC_DEFAULT && ctx->device->fp16 && !(ctx->device->coopmat_support && !ctx->device->coopmat_acc_f16_support)) { if (src0_type == GGML_TYPE_F16 && src1_type == GGML_TYPE_F32) { return ctx->device->pipeline_matmul_id_f16_f32.f16acc; @@ -3615,6 +3745,7 @@ static vk_pipeline ggml_vk_get_dequantize_mul_mat_vec_id(ggml_backend_vk_context switch (a_type) { case GGML_TYPE_F32: case GGML_TYPE_F16: + case GGML_TYPE_BF16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: @@ -4350,6 +4481,13 @@ static vk_pipeline ggml_vk_get_cpy_pipeline(ggml_backend_vk_context * ctx, const return ctx->device->pipeline_cpy_f16_f16; } } + if (src->type == GGML_TYPE_F32 && to == GGML_TYPE_BF16) { + if (contig) { + return ctx->device->pipeline_contig_cpy_f32_bf16; + } else { + return ctx->device->pipeline_cpy_f32_bf16; + } + } if (src->type == GGML_TYPE_F32) { switch (to) { case GGML_TYPE_Q4_0: @@ -4477,8 +4615,12 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context& sub const bool x_non_contig = (ctx->device->coopmat2 && src0->type == GGML_TYPE_F32) || !ggml_vk_dim01_contiguous(src0); const bool y_non_contig = (ctx->device->coopmat2 && src1->type == GGML_TYPE_F32) || + (src0->type == GGML_TYPE_BF16 && src1->type != GGML_TYPE_BF16) || !ggml_vk_dim01_contiguous(src1); + // If src0 is BF16, try to use a BF16 x BF16 multiply + ggml_type f16_type = src0->type == GGML_TYPE_BF16 ? GGML_TYPE_BF16 : GGML_TYPE_F16; + const bool y_f32_kernel = src1->type == GGML_TYPE_F32 && !y_non_contig; bool quantize_y = ctx->device->integer_dot_product && src1->type == GGML_TYPE_F32 && ggml_is_contiguous(src1) && (ne11 * ne10) % 4 == 0; @@ -4488,25 +4630,25 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context& sub if (mmp == nullptr) { // Fall back to f16 dequant mul mat - mmp = ggml_vk_get_mul_mat_mat_pipeline(ctx, src0->type, y_non_contig ? GGML_TYPE_F16 : src1->type, (ggml_prec)dst->op_params[0]); + mmp = ggml_vk_get_mul_mat_mat_pipeline(ctx, src0->type, y_non_contig ? f16_type : src1->type, (ggml_prec)dst->op_params[0]); quantize_y = false; } const bool qx_needs_dequant = mmp == nullptr || x_non_contig; - const bool qy_needs_dequant = !quantize_y && ((src1->type != GGML_TYPE_F16 && !y_f32_kernel) || y_non_contig); + const bool qy_needs_dequant = !quantize_y && ((src1->type != f16_type && !y_f32_kernel) || y_non_contig); if (qx_needs_dequant) { // Fall back to dequant + f16 mulmat - mmp = ggml_vk_get_mul_mat_mat_pipeline(ctx, GGML_TYPE_F16, y_f32_kernel ? GGML_TYPE_F32 : GGML_TYPE_F16, (ggml_prec)dst->op_params[0]); + mmp = ggml_vk_get_mul_mat_mat_pipeline(ctx, f16_type, y_f32_kernel ? GGML_TYPE_F32 : f16_type, (ggml_prec)dst->op_params[0]); } // Not implemented GGML_ASSERT(y_non_contig || !qy_needs_dequant); // NOLINT - const uint32_t kpad = quantize_y ? 0 : ggml_vk_align_size(ne10, ggml_vk_guess_matmul_pipeline_align(ctx, mmp, ne01, ne11, qx_needs_dequant ? GGML_TYPE_F16 : src0->type, quantize_y ? GGML_TYPE_Q8_1 : (y_f32_kernel ? GGML_TYPE_F32 : src1->type))); + const uint32_t kpad = quantize_y ? 0 : ggml_vk_align_size(ne10, ggml_vk_guess_matmul_pipeline_align(ctx, mmp, ne01, ne11, qx_needs_dequant ? f16_type : src0->type, quantize_y ? GGML_TYPE_Q8_1 : (y_f32_kernel ? GGML_TYPE_F32 : src1->type))); const bool aligned = !quantize_y && ne10 == kpad && ne01 > 8 && ne11 > 8; - vk_pipeline pipeline = ggml_vk_guess_matmul_pipeline(ctx, mmp, ne01, ne11, aligned, qx_needs_dequant ? GGML_TYPE_F16 : src0->type, quantize_y ? GGML_TYPE_Q8_1 : (y_f32_kernel ? GGML_TYPE_F32 : src1->type)); + vk_pipeline pipeline = ggml_vk_guess_matmul_pipeline(ctx, mmp, ne01, ne11, aligned, qx_needs_dequant ? f16_type : src0->type, quantize_y ? GGML_TYPE_Q8_1 : (y_f32_kernel ? GGML_TYPE_F32 : src1->type)); // Reserve extra storage in the N dimension for the Y matrix, so we can avoid bounds-checking uint32_t padded_n = qy_needs_dequant ? ROUNDUP_POW2(ne11, pipeline->wg_denoms[1]) : ne11; @@ -4527,12 +4669,12 @@ static void ggml_vk_mul_mat_q_f16(ggml_backend_vk_context * ctx, vk_context& sub vk_pipeline to_q8_1 = nullptr; if (x_non_contig) { - to_fp16_vk_0 = ggml_vk_get_cpy_pipeline(ctx, src0, nullptr, GGML_TYPE_F16); + to_fp16_vk_0 = ggml_vk_get_cpy_pipeline(ctx, src0, nullptr, f16_type); } else { to_fp16_vk_0 = ggml_vk_get_to_fp16(ctx, src0->type); } if (y_non_contig) { - to_fp16_vk_1 = ggml_vk_get_cpy_pipeline(ctx, src1, nullptr, GGML_TYPE_F16); + to_fp16_vk_1 = ggml_vk_get_cpy_pipeline(ctx, src1, nullptr, f16_type); } else { to_fp16_vk_1 = ggml_vk_get_to_fp16(ctx, src1->type); } @@ -5032,7 +5174,7 @@ static void ggml_vk_mul_mat(ggml_backend_vk_context * ctx, vk_context& subctx, c // mul_mat_vec supports batching ne12*ne13 when ne11==1, or treating ne11 as the batch size (up to four) // when ne12 and ne13 are one. } else if ((dst->ne[1] == 1 || (dst->ne[1] <= mul_mat_vec_max_cols && src1->ne[2] * src1->ne[3] == 1)) && - (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16 || ggml_is_quantized(src0->type))) { + (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_F16 || src0->type == GGML_TYPE_BF16 || ggml_is_quantized(src0->type))) { ggml_vk_mul_mat_vec_q_f16(ctx, subctx, src0, src1, dst, dryrun); } else { ggml_vk_mul_mat_q_f16(ctx, subctx, src0, src1, dst, dryrun); @@ -5100,27 +5242,31 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context& const bool x_non_contig = (ctx->device->coopmat2 && src0->type == GGML_TYPE_F32) || !ggml_vk_dim01_contiguous(src0); const bool y_non_contig = (ctx->device->coopmat2 && src1->type == GGML_TYPE_F32) || + (src0->type == GGML_TYPE_BF16 && src1->type != GGML_TYPE_BF16) || !ggml_vk_dim01_contiguous(src1); + // If src0 is BF16, try to use a BF16 x BF16 multiply + ggml_type f16_type = src0->type == GGML_TYPE_BF16 ? GGML_TYPE_BF16 : GGML_TYPE_F16; + const bool y_f32_kernel = src1->type == GGML_TYPE_F32 && !y_non_contig; - vk_matmul_pipeline mmp = ggml_vk_get_mul_mat_mat_id_pipeline(ctx, src0->type, y_non_contig ? GGML_TYPE_F16 : src1->type, (ggml_prec)dst->op_params[0]); + vk_matmul_pipeline mmp = ggml_vk_get_mul_mat_mat_id_pipeline(ctx, src0->type, y_non_contig ? f16_type : src1->type, (ggml_prec)dst->op_params[0]); const bool qx_needs_dequant = mmp == nullptr || x_non_contig; - const bool qy_needs_dequant = (src1->type != GGML_TYPE_F16 && !y_f32_kernel) || y_non_contig; + const bool qy_needs_dequant = (src1->type != f16_type && !y_f32_kernel) || y_non_contig; if (qx_needs_dequant) { // Fall back to dequant + f16 mulmat - mmp = ggml_vk_get_mul_mat_mat_id_pipeline(ctx, GGML_TYPE_F16, y_f32_kernel ? GGML_TYPE_F32 : GGML_TYPE_F16, (ggml_prec)dst->op_params[0]); + mmp = ggml_vk_get_mul_mat_mat_id_pipeline(ctx, f16_type, y_f32_kernel ? GGML_TYPE_F32 : f16_type, (ggml_prec)dst->op_params[0]); } // Not implemented GGML_ASSERT(y_non_contig || !qy_needs_dequant); // NOLINT - const uint32_t kpad = ggml_vk_align_size(ne10, ggml_vk_guess_matmul_id_pipeline_align(ctx, mmp, ne01, nei1, qx_needs_dequant ? GGML_TYPE_F16 : src0->type)); + const uint32_t kpad = ggml_vk_align_size(ne10, ggml_vk_guess_matmul_id_pipeline_align(ctx, mmp, ne01, nei1, qx_needs_dequant ? f16_type : src0->type)); const bool aligned = ne10 == kpad && ne01 > 8 && nei1 > 8; - vk_pipeline pipeline = ggml_vk_guess_matmul_id_pipeline(ctx, mmp, ne01, nei1, aligned, qx_needs_dequant ? GGML_TYPE_F16 : src0->type); + vk_pipeline pipeline = ggml_vk_guess_matmul_id_pipeline(ctx, mmp, ne01, nei1, aligned, qx_needs_dequant ? f16_type : src0->type); // Reserve extra storage in the N dimension for the Y matrix, so we can avoid bounds-checking uint32_t padded_n = qy_needs_dequant ? ROUNDUP_POW2(ne11, pipeline->wg_denoms[1]) :ne11; @@ -5139,12 +5285,12 @@ static void ggml_vk_mul_mat_id_q_f16(ggml_backend_vk_context * ctx, vk_context& vk_pipeline to_fp16_vk_1 = nullptr; if (x_non_contig) { - to_fp16_vk_0 = ggml_vk_get_cpy_pipeline(ctx, src0, nullptr, GGML_TYPE_F16); + to_fp16_vk_0 = ggml_vk_get_cpy_pipeline(ctx, src0, nullptr, f16_type); } else { to_fp16_vk_0 = ggml_vk_get_to_fp16(ctx, src0->type); } if (y_non_contig) { - to_fp16_vk_1 = ggml_vk_get_cpy_pipeline(ctx, src1, nullptr, GGML_TYPE_F16); + to_fp16_vk_1 = ggml_vk_get_cpy_pipeline(ctx, src1, nullptr, f16_type); } else { to_fp16_vk_1 = ggml_vk_get_to_fp16(ctx, src1->type); } @@ -9230,6 +9376,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm switch (src0_type) { case GGML_TYPE_F32: case GGML_TYPE_F16: + case GGML_TYPE_BF16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: @@ -9265,10 +9412,15 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm if (a->ne[3] != b->ne[3]) { return false; } - if (!(ggml_vk_dim01_contiguous(op->src[0]) || op->src[0]->type == GGML_TYPE_F32 || op->src[0]->type == GGML_TYPE_F16) || + if (!(ggml_vk_dim01_contiguous(op->src[0]) || op->src[0]->type == GGML_TYPE_F32 || op->src[0]->type == GGML_TYPE_F16 || op->src[0]->type == GGML_TYPE_BF16) || !(ggml_vk_dim01_contiguous(op->src[1]) || op->src[1]->type == GGML_TYPE_F32 || op->src[1]->type == GGML_TYPE_F16)) { return false; } + if (op->src[0]->type == GGML_TYPE_BF16 && op->src[1]->type == GGML_TYPE_F16) { + // We currently don't have a bf16 x f16 shader, or an fp16->bf16 copy shader. + // So don't support this combination for now. + return false; + } return true; } break; @@ -9341,6 +9493,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm switch (op->src[0]->type) { case GGML_TYPE_F32: case GGML_TYPE_F16: + case GGML_TYPE_BF16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: @@ -9371,6 +9524,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm switch (src1_type) { case GGML_TYPE_F32: case GGML_TYPE_F16: + case GGML_TYPE_BF16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt b/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt index d6e0b2a5a5..ad13f69b3f 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt +++ b/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt @@ -12,6 +12,9 @@ endif() if (GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT) add_compile_definitions(GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT) endif() +if (GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + add_compile_definitions(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) +endif() set(TARGET vulkan-shaders-gen) add_executable(${TARGET} vulkan-shaders-gen.cpp) install(TARGETS ${TARGET} RUNTIME) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp b/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp index dd828c2326..6567a8c54c 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp @@ -18,7 +18,11 @@ void main() { // fast path for when all four iterations are in-bounds if (idx + (num_iter-1)*num_threads < p.ne) { [[unroll]] for (uint i = 0; i < num_iter; ++i) { -#ifndef OPTIMIZATION_ERROR_WORKAROUND + +#if defined(DATA_D_BF16) + float f = float(data_a[get_aoffset() + idx]); + data_d[get_doffset() + idx] = D_TYPE(fp32_to_bf16(f)); +#elif !defined(OPTIMIZATION_ERROR_WORKAROUND) data_d[get_doffset() + idx] = D_TYPE(data_a[get_aoffset() + idx]); #else data_d[get_doffset() + idx] = data_a[get_aoffset() + idx]; @@ -31,7 +35,10 @@ void main() { continue; } -#ifndef OPTIMIZATION_ERROR_WORKAROUND +#if defined(DATA_D_BF16) + float f = float(data_a[get_aoffset() + idx]); + data_d[get_doffset() + idx] = D_TYPE(fp32_to_bf16(f)); +#elif !defined(OPTIMIZATION_ERROR_WORKAROUND) data_d[get_doffset() + idx] = D_TYPE(data_a[get_aoffset() + idx]); #else data_d[get_doffset() + idx] = data_a[get_aoffset() + idx]; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp b/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp index 29c9064942..f476a2e3dd 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp @@ -12,7 +12,10 @@ void main() { return; } -#ifndef OPTIMIZATION_ERROR_WORKAROUND +#if defined(DATA_D_BF16) + float f = float(data_a[get_aoffset() + src0_idx(idx)]); + data_d[get_doffset() + dst_idx(idx)] = D_TYPE(fp32_to_bf16(f)); +#elif !defined(OPTIMIZATION_ERROR_WORKAROUND) data_d[get_doffset() + dst_idx(idx)] = D_TYPE(data_a[get_aoffset() + src0_idx(idx)]); #else data_d[get_doffset() + dst_idx(idx)] = data_a[get_aoffset() + src0_idx(idx)]; diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp index 2a162a2c81..0d9739d406 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp @@ -23,6 +23,12 @@ vec2 dequantize(uint ib, uint iqs, uint a_offset) { } #endif +#if defined(DATA_A_BF16) +vec2 dequantize(uint ib, uint iqs, uint a_offset) { + return vec2(bf16_to_fp32(data_a[a_offset + ib]), bf16_to_fp32(data_a[a_offset + ib + 1])); +} +#endif + #if defined(DATA_A_Q4_0) vec2 dequantize(uint ib, uint iqs, uint a_offset) { const uint vui = uint(data_a[a_offset + ib].qs[iqs]); @@ -428,7 +434,7 @@ vec4 dequantize4(uint ib, uint iqs, uint a_offset) { } #endif -#if defined(DATA_A_F32) || defined(DATA_A_F16) +#if defined(DATA_A_F32) || defined(DATA_A_F16) || defined(DATA_A_BF16) vec2 get_dm(uint ib, uint a_offset) { return vec2(0, 0); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp index e877ed7796..ee6b86a18d 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp @@ -20,9 +20,14 @@ void main() { const uint a_offset = get_aoffset() + i01*p.nb01 + i11*p.nb02 + i12*p.nb03; const uint d_offset = get_doffset() + i10*p.nb21 + i11*p.nb22 + i12*p.nb23; -#ifndef OPTIMIZATION_ERROR_WORKAROUND - data_d[d_offset + i00] = D_TYPE(data_a[a_offset + i00]); +#if defined(DATA_A_BF16) + FLOAT_TYPE v = FLOAT_TYPE(bf16_to_fp32(data_a[a_offset + i00])); #else - data_d[d_offset + i00] = data_a[a_offset + i00]; + FLOAT_TYPE v = FLOAT_TYPE(data_a[a_offset + i00]); +#endif +#ifndef OPTIMIZATION_ERROR_WORKAROUND + data_d[d_offset + i00] = D_TYPE(v); +#else + data_d[d_offset + i00] = D_TYPE(v); #endif } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp index 775b48cd05..bb429dd594 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp @@ -6,7 +6,7 @@ layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in; -#if !defined(DATA_A_F32) && !defined(DATA_A_F16) +#if !defined(DATA_A_F32) && !defined(DATA_A_F16) && !defined(DATA_A_BF16) #define K_PER_ITER 8 #else #define K_PER_ITER 2 diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp index 23ce8ceec3..529ac4d44f 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp @@ -10,6 +10,10 @@ #extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #endif +#if defined(DATA_A_BF16) && defined(COOPMAT) +#extension GL_EXT_bfloat16 : enable +#endif + #ifdef COOPMAT #extension GL_KHR_cooperative_matrix : enable #extension GL_KHR_memory_scope_semantics : enable @@ -29,6 +33,10 @@ #define LOAD_VEC_B 1 #endif +#if !defined(TO_FLOAT_TYPE) +#define TO_FLOAT_TYPE FLOAT_TYPE +#endif + layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in; layout (binding = 0) readonly buffer A {A_TYPE data_a[];}; @@ -202,8 +210,8 @@ void main() { #endif #ifdef COOPMAT - coopmat cache_a; - coopmat cache_b; + coopmat cache_a; + coopmat cache_b; coopmat sums[cms_per_row * cms_per_col]; [[unroll]] for (uint i = 0; i < cms_per_row * cms_per_col; i++) { @@ -248,6 +256,21 @@ void main() { buf_a[(loadc_a + l) * SHMEM_STRIDE + loadr_a] = FLOAT_TYPE(0.0f); } #endif +#elif defined(DATA_A_BF16) +#if LOAD_VEC_A == 4 + const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; + const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + loadr_a * LOAD_VEC_A; + buf_a[buf_idx ] = TO_FLOAT_TYPE(data_a[idx].x); + buf_a[buf_idx + 1] = TO_FLOAT_TYPE(data_a[idx].y); + buf_a[buf_idx + 2] = TO_FLOAT_TYPE(data_a[idx].z); + buf_a[buf_idx + 3] = TO_FLOAT_TYPE(data_a[idx].w); +#else + if (ir * BM + loadc_a + l < p.M && block + loadr_a < end_k) { + buf_a[(loadc_a + l) * SHMEM_STRIDE + loadr_a] = TO_FLOAT_TYPE(data_a[pos_a + (loadc_a + l) * p.stride_a + loadr_a]); + } else { + buf_a[(loadc_a + l) * SHMEM_STRIDE + loadr_a] = TO_FLOAT_TYPE(uint16_t(0)); + } +#endif #elif defined(DATA_A_Q4_0) const uint idx = pos_a + (loadc_a + l) * p.stride_a / LOAD_VEC_A + loadr_a; const uint buf_idx = (loadc_a + l) * SHMEM_STRIDE + 4 * loadr_a; @@ -695,13 +718,13 @@ void main() { const uint idx = pos_b + (loadc_b + l) * p.stride_b / LOAD_VEC_B + loadr_b; #endif const uint buf_idx = (loadc_b + l) * SHMEM_STRIDE + loadr_b * LOAD_VEC_B; - buf_b[buf_idx + 0] = FLOAT_TYPE(data_b[idx].x); - buf_b[buf_idx + 1] = FLOAT_TYPE(data_b[idx].y); - buf_b[buf_idx + 2] = FLOAT_TYPE(data_b[idx].z); - buf_b[buf_idx + 3] = FLOAT_TYPE(data_b[idx].w); + buf_b[buf_idx + 0] = TO_FLOAT_TYPE(data_b[idx].x); + buf_b[buf_idx + 1] = TO_FLOAT_TYPE(data_b[idx].y); + buf_b[buf_idx + 2] = TO_FLOAT_TYPE(data_b[idx].z); + buf_b[buf_idx + 3] = TO_FLOAT_TYPE(data_b[idx].w); #elif !MUL_MAT_ID if (ic * BN + loadc_b + l < p.N && block + loadr_b < end_k) { - buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = FLOAT_TYPE(data_b[pos_b + (loadc_b + l) * p.stride_b + loadr_b]); + buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = TO_FLOAT_TYPE(data_b[pos_b + (loadc_b + l) * p.stride_b + loadr_b]); } else { buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = FLOAT_TYPE(0.0f); } @@ -709,7 +732,7 @@ void main() { const uint row_i = ic * BN + loadc_b + l; if (row_i < _ne1) { const u16vec2 row_idx = row_ids[row_i]; - buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = FLOAT_TYPE(data_b[pos_b + row_idx.y * p.batch_stride_b + (row_idx.x % p.ne11) * p.stride_b + loadr_b]); + buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = TO_FLOAT_TYPE(data_b[pos_b + row_idx.y * p.batch_stride_b + (row_idx.x % p.ne11) * p.stride_b + loadr_b]); } else { buf_b[(loadc_b + l) * SHMEM_STRIDE + loadr_b] = FLOAT_TYPE(0.0f); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp index 06b7ab09ea..344b466101 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp @@ -14,6 +14,9 @@ #extension GL_EXT_buffer_reference : enable #extension GL_KHR_shader_subgroup_ballot : enable #extension GL_KHR_shader_subgroup_vote : enable +#ifdef DATA_A_BF16 +#extension GL_EXT_bfloat16 : enable +#endif #include "types.comp" @@ -80,6 +83,12 @@ layout (binding = 2) writeonly buffer D {D_TYPE data_d[];}; #define store_scales(a) #endif +#if defined(DATA_A_BF16) +#define MAT_TYPE bfloat16_t +#else +#define MAT_TYPE FLOAT_TYPE +#endif + #ifdef MUL_MAT_ID layout (binding = 3) readonly buffer IDS {int data_ids[];}; @@ -271,8 +280,8 @@ void main() { // Manually partial unroll [[unroll]] for (uint j = 0; j < unroll_count; ++j) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BNover4, block_k, BK), tensorViewTranspose); @@ -286,8 +295,8 @@ void main() { store_scales(tid); } while (block_k < end_k) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BNover4, block_k, BK), tensorViewTranspose); @@ -310,8 +319,8 @@ void main() { // Manually partial unroll [[unroll]] for (uint j = 0; j < unroll_count; ++j) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BNover2, block_k, BK), tensorViewTranspose); @@ -325,8 +334,8 @@ void main() { store_scales(tid); } while (block_k < end_k) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BNover2, block_k, BK), tensorViewTranspose); @@ -350,8 +359,8 @@ void main() { // Manually partial unroll [[unroll]] for (uint j = 0; j < unroll_count; ++j) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BN, block_k, BK), tensorViewTranspose); @@ -365,8 +374,8 @@ void main() { store_scales(tid); } while (block_k < end_k) { - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutA, ir * BM, BM, block_k, BK) DECODEFUNCA); coopMatLoadTensorNV(mat_b, data_b, pos_b, sliceTensorLayoutNV(tensorLayoutB, ic * BN, BN, block_k, BK), tensorViewTranspose); @@ -405,8 +414,8 @@ void main() { fetch_scales(ir * BM, pos_a, stride_a, block_k + BK, tid, false); } - coopmat mat_a; - coopmat mat_b; + coopmat mat_a; + coopmat mat_b; coopMatLoadTensorNV(mat_a, data_a, pos_a, sliceTensorLayoutNV(tensorLayoutAClamp, ir * BM, BM, block_k, BK) DECODEFUNCA); #ifdef MUL_MAT_ID diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp b/ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp new file mode 100644 index 0000000000..fd0ba401fe --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp @@ -0,0 +1,7 @@ +#version 460 + +#extension GL_EXT_bfloat16 : require + +void main() +{ +} diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp index f5b29bfb13..3bde717832 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/types.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/types.comp @@ -33,6 +33,19 @@ #endif #endif +#if defined(DATA_A_BF16) +#define QUANT_K 1 +#define QUANT_R 1 + +#if !defined(LOAD_VEC_A) || LOAD_VEC_A == 1 +#define A_TYPE uint16_t +#elif LOAD_VEC_A == 4 +#define A_TYPE u16vec4 +#elif LOAD_VEC_A == 8 +#error unsupported +#endif +#endif + #define QUANT_K_Q4_0 32 #define QUANT_R_Q4_0 2 @@ -1343,4 +1356,18 @@ void init_iq_shmem(uvec3 wgsize) } #endif +// returns the bfloat value in the low 16b. +// See ggml_compute_fp32_to_bf16 +uint32_t fp32_to_bf16(float f) +{ + uint32_t u = floatBitsToUint(f); + u = (u + (0x7fff + ((u >> 16) & 1))) >> 16; + return u; +} + +float bf16_to_fp32(uint32_t u) +{ + return uintBitsToFloat(u << 16); +} + #endif // !defined(GGML_TYPES_COMP) diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index cf74625cc5..3b28578545 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -63,7 +63,8 @@ const std::vector type_names = { "iq3_xxs", "iq3_s", "iq4_xs", - "iq4_nl" + "iq4_nl", + "bf16", }; namespace { @@ -296,7 +297,6 @@ void matmul_shaders(bool fp16, bool matmul_id, bool coopmat, bool coopmat2, bool std::string aligned_b_type_f16 = coopmat2 ? "float16_t" : fp16 ? "f16mat2x4" : "f16vec4"; std::map base_dict = { - {"FLOAT_TYPE", (coopmat2 || fp16) ? "float16_t" : "float"}, {"FLOAT_TYPE_VEC2", (coopmat2 || fp16) ? "f16vec2" : "vec2"}, }; std::string shader_name = "matmul"; @@ -318,12 +318,45 @@ void matmul_shaders(bool fp16, bool matmul_id, bool coopmat, bool coopmat2, bool const std::string source_name = coopmat2 ? "mul_mm_cm2.comp" : "mul_mm.comp"; - // Shaders with f16 B_TYPE - string_to_spv(shader_name + "_f32_f16", source_name, merge_maps(base_dict, {{"DATA_A_F32", "1"}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}, }), fp16, coopmat, coopmat2, f16acc); - string_to_spv(shader_name + "_f32_f16_aligned", source_name, merge_maps(base_dict, {{"DATA_A_F32", "1"}, {"LOAD_VEC_A", load_vec}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + auto const &FLOAT_TYPE = [&](const std::string &t) -> std::string { + if (t == "bf16") { + // scalar path promotes to float + if (!coopmat && !coopmat2) { + return "float"; + } + return "bfloat16_t"; + } + if (coopmat2 || fp16) { + return "float16_t"; + } + return "float"; + }; - string_to_spv(shader_name + "_f16_aligned", source_name, merge_maps(base_dict, {{"DATA_A_F16", "1"}, {"LOAD_VEC_A", load_vec}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); - string_to_spv(shader_name + "_f16", source_name, merge_maps(base_dict, {{"DATA_A_F16", "1"}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); + // Shaders with f16 B_TYPE + string_to_spv(shader_name + "_f32_f16", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("f16")}, {"DATA_A_F32", "1"}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}, }), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_f32_f16_aligned", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("f16")}, {"DATA_A_F32", "1"}, {"LOAD_VEC_A", load_vec}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + + string_to_spv(shader_name + "_f16_aligned", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("f16")}, {"DATA_A_F16", "1"}, {"LOAD_VEC_A", load_vec}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_f16", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("f16")}, {"DATA_A_F16", "1"}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); + + // bf16 + { + std::string load_vec_a_unaligned = "1"; + // For aligned matmul loads + std::string load_vec_a = coopmat2 ? "1" : "4"; + + // scalar path promotes to float + std::string to_float_type = (coopmat || coopmat2) ? "uintBitsToBFloat16EXT" : "bf16_to_fp32"; + + // If bfloat16 is not supported, then only compile the scalar (promote to fp32) shader +#if !defined(GGML_VULKAN_BFLOAT16_GLSLC_SUPPORT) + if (!(coopmat || coopmat2)) +#endif + { + string_to_spv(shader_name + "_bf16_aligned", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("bf16")}, {"TO_FLOAT_TYPE", to_float_type}, {"DATA_A_BF16", "1"}, {"LOAD_VEC_A", load_vec_a}, {"LOAD_VEC_B", "4"}, {"B_TYPE", coopmat2 ? "bfloat16_t" : "u16vec4"}, {"D_TYPE", "float"}, {"B_IS_FLOAT", "1"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_bf16", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE("bf16")}, {"TO_FLOAT_TYPE", to_float_type}, {"DATA_A_BF16", "1"}, {"LOAD_VEC_A", load_vec_a_unaligned}, {"B_TYPE", coopmat2 ? "bfloat16_t" : "uint16_t"}, {"D_TYPE", "float"}, {"B_IS_FLOAT", "1"}}), fp16, coopmat, coopmat2, f16acc); + } + } for (const auto& tname : type_names) { std::string load_vec_quant = "2"; @@ -332,26 +365,30 @@ void matmul_shaders(bool fp16, bool matmul_id, bool coopmat, bool coopmat2, bool else if ((tname == "q5_0") || (tname == "q5_1") || (tname == "q8_0") || (tname == "iq4_nl")) load_vec_quant = "4"; + if (tname == "bf16") { + continue; + } + std::string data_a_key = "DATA_A_" + to_uppercase(tname); // For unaligned, load one at a time for f32/f16, or two at a time for quants - std::string load_vec_a_unaligned = (coopmat2 || tname == "f32" || tname == "f16") ? "1" : load_vec_quant; + std::string load_vec_a_unaligned = (coopmat2 || tname == "f32" || tname == "f16" || tname == "bf16") ? "1" : load_vec_quant; // For aligned matmul loads - std::string load_vec_a = (coopmat2 || tname == "f32" || tname == "f16") ? load_vec : load_vec_quant; + std::string load_vec_a = (coopmat2 || tname == "f32" || tname == "f16" || tname == "bf16") ? load_vec : load_vec_quant; // don't generate f32 variants for coopmat2 if (!coopmat2) { - string_to_spv(shader_name + "_" + tname + "_f32", source_name, merge_maps(base_dict, {{data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a_unaligned}, {"B_TYPE", "float"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); - string_to_spv(shader_name + "_" + tname + "_f32_aligned", source_name, merge_maps(base_dict, {{data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f32}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_" + tname + "_f32", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE(tname)}, {data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a_unaligned}, {"B_TYPE", "float"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_" + tname + "_f32_aligned", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE(tname)}, {data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f32}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); } if (tname != "f16" && tname != "f32") { - string_to_spv(shader_name + "_" + tname + "_f16", source_name, merge_maps(base_dict, {{data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a_unaligned}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); - string_to_spv(shader_name + "_" + tname + "_f16_aligned", source_name, merge_maps(base_dict, {{data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_" + tname + "_f16", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE(tname)}, {data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a_unaligned}, {"B_TYPE", "float16_t"}, {"D_TYPE", "float"}}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_" + tname + "_f16_aligned", source_name, merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE(tname)}, {data_a_key, "1"}, {"LOAD_VEC_A", load_vec_a}, {"LOAD_VEC_B", load_vec}, {"B_TYPE", aligned_b_type_f16}, {"D_TYPE", "float"}, {"ALIGNED", "1"}}), fp16, coopmat, coopmat2, f16acc); } #if defined(GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT) if (!coopmat && !coopmat2 && !matmul_id && (tname == "q4_0" || tname == "q4_1" || tname == "q5_0" || tname == "q5_1" || tname == "q8_0")) { - string_to_spv(shader_name + "_" + tname + "_q8_1", "mul_mmq.comp", merge_maps(base_dict, {{data_a_key, "1"}, {"D_TYPE", "float"},}), fp16, coopmat, coopmat2, f16acc); + string_to_spv(shader_name + "_" + tname + "_q8_1", "mul_mmq.comp", merge_maps(base_dict, {{"FLOAT_TYPE", FLOAT_TYPE(tname)}, {data_a_key, "1"}, {"D_TYPE", "float"},}), fp16, coopmat, coopmat2, f16acc); } #endif } @@ -393,6 +430,7 @@ void process_shaders() { if (tname == "f32") { continue; } + if (tname == "bf16") continue; if (tname == "f16") { string_to_spv("flash_attn_f32_f16_" + tname, "flash_attn_cm2.comp", @@ -417,12 +455,12 @@ void process_shaders() { string_to_spv("mul_mat_vec_id_" + tname + "_f32", shader, merge_maps(base_dict, {{"MUL_MAT_ID", "1"}, {data_a_key, "1"}, {"B_TYPE", "float"}, {"B_TYPE_VEC2", "vec2"}, {"B_TYPE_VEC4", "vec4"}, {"D_TYPE", "float"}})); // Dequant shaders - if (tname != "f16") { + if (tname != "f16" && tname != "bf16") { string_to_spv("dequant_" + tname, "dequant_" + tname + ".comp", merge_maps(base_dict, {{data_a_key, "1"}, {"D_TYPE", "float16_t"}})); } if (!string_ends_with(tname, "_k")) { - shader = (tname == "f32" || tname == "f16") ? "get_rows.comp" : "get_rows_quant.comp"; + shader = (tname == "f32" || tname == "f16" || tname == "bf16") ? "get_rows.comp" : "get_rows_quant.comp"; if (tname == "f16") { string_to_spv("get_rows_" + tname, shader, merge_maps(base_dict, {{data_a_key, "1"}, {"B_TYPE", "int"}, {"D_TYPE", "float16_t"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}})); @@ -447,9 +485,11 @@ void process_shaders() { string_to_spv("cpy_f32_f32", "copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); string_to_spv("cpy_f32_f16", "copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float16_t"}}); string_to_spv("cpy_f16_f16", "copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); + string_to_spv("cpy_f32_bf16","copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "uint16_t"}, {"DATA_D_BF16", "1"}}); string_to_spv("contig_cpy_f32_f32", "contig_copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); string_to_spv("contig_cpy_f32_f16", "contig_copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float16_t"}}); string_to_spv("contig_cpy_f16_f16", "contig_copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); + string_to_spv("contig_cpy_f32_bf16","contig_copy.comp",{{"A_TYPE", "float"}, {"D_TYPE", "uint16_t"}, {"DATA_D_BF16", "1"}}); for (std::string t : {"q4_0", "q4_1", "q5_0", "q5_1", "q8_0", "iq4_nl"}) { string_to_spv("cpy_f32_" + t, "copy_to_quant.comp", {{"DATA_A_" + to_uppercase(t), "1"}, {"D_TYPE", "float"}, {"FLOAT_TYPE", "float"}}); From e0f572c8466e70d35cbd70ee536ad8fc83b2acac Mon Sep 17 00:00:00 2001 From: matteo Date: Thu, 1 May 2025 21:16:38 +0200 Subject: [PATCH 070/126] llama-chat : update GLM4 chat template (#13238) * update GLM4 chat template * Update chat template Co-authored-by: Xuan-Son Nguyen --------- Co-authored-by: Xuan-Son Nguyen --- src/llama-chat.cpp | 2 +- tests/test-chat-template.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index 735d2619c9..9b56614951 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -454,7 +454,7 @@ int32_t llm_chat_apply_template( ss << "<|" << role << "|>" << "\n" << message->content; } if (add_ass) { - ss << "<|assistant|>"; + ss << "<|assistant|>\n"; } } else if (tmpl == LLM_CHAT_TEMPLATE_MINICPM) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index 85d89843d6..d217069575 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -181,8 +181,8 @@ int main(void) { }, { /* .name= */ "ChatGLM4", - /* .template_str= */ U8C("[gMASK]{% for item in messages %}{% if item['tools'] is defined %}<|system|>\n你是一个名为 ChatGLM 的人工智能助手。你是基于智谱AI训练的语言模型 GLM-4 模型开发的,你的任务是针对用户的问题和要求提供适当的答复和支持。\n\n# 可用工具{% set tools = item['tools'] %}{% for tool in tools %}{% if tool['type'] == 'function' %}\n\n## {{ tool['function']['name'] }}\n\n{{ tool['function'] | tojson(indent=4) }}\n......{% endif %}{% endfor %}{% endif %}{% if item['content'] %}<|{{ item['role'] }}|>{{ item['metadata'] }}\n{{ item['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>{% endif %}"), - /* .expected_output= */ "[gMASK]<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .template_str= */ U8C("[gMASK]{% for item in messages %}{% if item['tools'] is defined %}<|system|>\n你是一个名为 ChatGLM 的人工智能助手。你是基于智谱AI训练的语言模型 GLM-4 模型开发的,你的任务是针对用户的问题和要求提供适当的答复和支持。\n\n# 可用工具{% set tools = item['tools'] %}{% for tool in tools %}{% if tool['type'] == 'function' %}\n\n## {{ tool['function']['name'] }}\n\n{{ tool['function'] | tojson(indent=4) }}\n......{% endif %}{% endfor %}{% endif %}{% if item['content'] %}<|{{ item['role'] }}|>{{ item['metadata'] }}\n{{ item['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>\n{% endif %}"), + /* .expected_output= */ "[gMASK]<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>\n", /* .expected_output_jinja= */ "", /* .bos_token= */ "", /* .eos_token= */ "", From b6e4ff69b8abd509647b531bd5b4e86950204f66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Carr=C3=A8re?= Date: Thu, 1 May 2025 21:32:21 +0200 Subject: [PATCH 071/126] clip : (minicpmv) Re-enable upscaling of images smaller than the CLIP image size (#13237) --- examples/llava/clip.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp index 984e300e75..7607d4e3ae 100644 --- a/examples/llava/clip.cpp +++ b/examples/llava/clip.cpp @@ -2561,7 +2561,7 @@ struct llava_uhd { // no pinpoints, dynamically calculate the grid size (e.g. minicpmv) - auto best_size = get_best_resize(original_size, slice_size, patch_size, has_slices); + auto best_size = get_best_resize(original_size, slice_size, patch_size, !has_slices); res.overview_size = best_size; if (!has_slices) { From d7a14c42a1883a34a6553cbfe30da1e1b84dfd6a Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Thu, 1 May 2025 21:48:08 +0200 Subject: [PATCH 072/126] build : fix build info on windows (#13239) * build : fix build info on windows * fix cuda host compiler msg --- cmake/build-info.cmake | 10 ++++++++-- common/CMakeLists.txt | 4 +++- ggml/src/ggml-cuda/CMakeLists.txt | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cmake/build-info.cmake b/cmake/build-info.cmake index c1a456e179..75c78222f2 100644 --- a/cmake/build-info.cmake +++ b/cmake/build-info.cmake @@ -41,14 +41,20 @@ endif() if(MSVC) set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}") - set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME}) + if (CMAKE_VS_PLATFORM_NAME) + set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME}) + else() + set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}") + endif() else() execute_process( - COMMAND sh -c "\"$@\" --version | head -1" _ ${CMAKE_C_COMPILER} + COMMAND ${CMAKE_C_COMPILER} --version OUTPUT_VARIABLE OUT OUTPUT_STRIP_TRAILING_WHITESPACE ) + string(REGEX REPLACE " *\n.*" "" OUT "${OUT}") set(BUILD_COMPILER ${OUT}) + execute_process( COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE OUT diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 43533fc86a..f15e12a96b 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -39,7 +39,9 @@ add_custom_command( COMMENT "Generating build details from Git" COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION} -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake" + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR} + -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.." DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX} VERBATIM diff --git a/ggml/src/ggml-cuda/CMakeLists.txt b/ggml/src/ggml-cuda/CMakeLists.txt index 8623214c78..f3cfdeaef5 100644 --- a/ggml/src/ggml-cuda/CMakeLists.txt +++ b/ggml/src/ggml-cuda/CMakeLists.txt @@ -133,6 +133,7 @@ if (CUDAToolkit_FOUND) COMMAND ${NVCC_CMD} -Xcompiler "-dumpfullversion -dumpversion" OUTPUT_VARIABLE CUDA_CCVER ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE ) else() if (CUDA_CCFULLVER MATCHES Apple) @@ -143,7 +144,7 @@ if (CUDAToolkit_FOUND) string(REGEX REPLACE "^.* version ([0-9.]*).*$" "\\1" CUDA_CCVER ${CUDA_CCFULLVER}) endif() - message("-- CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}") + message(STATUS "CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}") ggml_get_flags(${CUDA_CCID} ${CUDA_CCVER}) list(APPEND CUDA_CXX_FLAGS ${CXX_FLAGS} ${GF_CXX_FLAGS}) # This is passed to -Xcompiler later From f057808ffadce213f54c1884ab5096e60140f358 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Thu, 1 May 2025 13:46:10 -0700 Subject: [PATCH 073/126] ggml: Don't assert fail when tensor data changes (#13222) The following scenario will cause an assertion failure in the graph allocator: - Build and allocate a graph containing a tensor with a non-NULL data pointer - Build and allocate a new graph where that data is NULL Result: ggml-alloc.c:819: GGML_ASSERT(talloc->buffer_id >= 0) failed This happens during revalidation because we think that memory should have been previously allocated based on the current graph but in reality the previous graph was different. In this situation, we should do a full reallocation pass. --- ggml/src/ggml-alloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-alloc.c b/ggml/src/ggml-alloc.c index a3d3f69013..5fd379f6a9 100644 --- a/ggml/src/ggml-alloc.c +++ b/ggml/src/ggml-alloc.c @@ -816,7 +816,10 @@ static void ggml_gallocr_init_tensor(ggml_gallocr_t galloc, struct ggml_tensor * static bool ggml_gallocr_node_needs_realloc(ggml_gallocr_t galloc, struct ggml_tensor * node, struct tensor_alloc * talloc) { size_t node_size = 0; if (!node->data && !node->view_src) { - GGML_ASSERT(talloc->buffer_id >= 0); // prevent segfault when misusing the API + // If we previously had data but don't now then reallocate + if (talloc->buffer_id < 0) { + return false; + } node_size = ggml_backend_buft_get_alloc_size(galloc->bufts[talloc->buffer_id], node); } return talloc->size_max >= node_size; From 8efbdadc616fa717c369059b9b388160958d886c Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Thu, 1 May 2025 17:32:11 -0400 Subject: [PATCH 074/126] rpc : avoid uninitialized memory in serialize_tensor (#13210) Zero out the name and padding buffers. --- ggml/src/ggml-rpc/ggml-rpc.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ggml/src/ggml-rpc/ggml-rpc.cpp b/ggml/src/ggml-rpc/ggml-rpc.cpp index 140a775f98..e662cc6eb3 100644 --- a/ggml/src/ggml-rpc/ggml-rpc.cpp +++ b/ggml/src/ggml-rpc/ggml-rpc.cpp @@ -518,6 +518,11 @@ static rpc_tensor serialize_tensor(const ggml_tensor * tensor) { result.view_src = reinterpret_cast(tensor->view_src); result.view_offs = tensor->view_offs; result.data = reinterpret_cast(tensor->data); + + // Avoid sending uninitialized data over the wire + memset(result.name, 0, sizeof(result.name)); + memset(result.padding, 0, sizeof(result.padding)); + snprintf(result.name, GGML_MAX_NAME, "%s", tensor->name); return result; } From d24d5928086471063fa9d9fd45aca710fd1336ae Mon Sep 17 00:00:00 2001 From: bandoti <141645996+bandoti@users.noreply.github.com> Date: Thu, 1 May 2025 19:06:39 -0300 Subject: [PATCH 075/126] ci: fix cross-compile sync issues (#12804) --- .github/workflows/build-linux-cross.yml | 63 +++++++++++++++---------- .github/workflows/build.yml | 5 +- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build-linux-cross.yml b/.github/workflows/build-linux-cross.yml index e8639913ea..d104b8b124 100644 --- a/.github/workflows/build-linux-cross.yml +++ b/.github/workflows/build-linux-cross.yml @@ -4,18 +4,25 @@ on: workflow_call: jobs: - ubuntu-latest-riscv64-cpu-cross: - runs-on: ubuntu-latest + ubuntu-24-riscv64-cpu-cross: + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Setup Riscv run: | sudo dpkg --add-architecture riscv64 - sudo sed -i 's|http://azure.archive.ubuntu.com/ubuntu|http://ports.ubuntu.com/ubuntu-ports|g' \ - /etc/apt/sources.list /etc/apt/apt-mirrors.txt - sudo apt-get clean - sudo apt-get update + + # Add arch-specific repositories for non-amd64 architectures + cat << EOF | sudo tee /etc/apt/sources.list.d/riscv64-ports.list + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe + EOF + + sudo apt-get update || true ;# Prevent failure due to missing URLs. + sudo apt-get install -y --no-install-recommends \ build-essential \ gcc-14-riscv64-linux-gnu \ @@ -40,21 +47,25 @@ jobs: cmake --build build --config Release -j $(nproc) - ubuntu-latest-riscv64-vulkan-cross: - runs-on: ubuntu-latest + ubuntu-24-riscv64-vulkan-cross: + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Setup Riscv run: | sudo dpkg --add-architecture riscv64 - sudo sed -i 's|http://azure.archive.ubuntu.com/ubuntu|http://ports.ubuntu.com/ubuntu-ports|g' \ - /etc/apt/sources.list /etc/apt/apt-mirrors.txt - sudo apt-get clean - sudo apt-get update + + # Add arch-specific repositories for non-amd64 architectures + cat << EOF | sudo tee /etc/apt/sources.list.d/riscv64-ports.list + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe + deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe + EOF + + sudo apt-get update || true ;# Prevent failure due to missing URLs. + sudo apt-get install -y --no-install-recommends \ build-essential \ glslc \ @@ -82,21 +93,25 @@ jobs: cmake --build build --config Release -j $(nproc) - ubuntu-latest-arm64-vulkan-cross: - runs-on: ubuntu-latest + ubuntu-24-arm64-vulkan-cross: + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Setup Arm64 run: | sudo dpkg --add-architecture arm64 - sudo sed -i 's|http://azure.archive.ubuntu.com/ubuntu|http://ports.ubuntu.com/ubuntu-ports|g' \ - /etc/apt/sources.list /etc/apt/apt-mirrors.txt - sudo apt-get clean - sudo apt-get update + + # Add arch-specific repositories for non-amd64 architectures + cat << EOF | sudo tee /etc/apt/sources.list.d/arm64-ports.list + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble main universe + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe + deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe + EOF + + sudo apt-get update || true ;# Prevent failure due to missing URLs. + sudo apt-get install -y --no-install-recommends \ build-essential \ glslc \ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32c8b7717f..34417985d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -601,9 +601,8 @@ jobs: -DGGML_SYCL_F16=ON cmake --build build --config Release -j $(nproc) -# Disabled for now due to sporadic issue syncing. -# build-linux-cross: -# uses: ./.github/workflows/build-linux-cross.yml + build-linux-cross: + uses: ./.github/workflows/build-linux-cross.yml macOS-latest-cmake-ios: runs-on: macos-latest From dcf886007de4b8e5200f461a13233315f897fb9d Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Fri, 2 May 2025 08:45:10 +0200 Subject: [PATCH 076/126] convert : explicitly disable trust_remote_code for AutoConfig (#13246) --- convert_hf_to_gguf.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 04ca646b50..df3f8a55d5 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -419,7 +419,9 @@ class ModelBase: @staticmethod def load_hparams(dir_model: Path): try: - return AutoConfig.from_pretrained(dir_model).to_dict() + # for security reason, we don't allow loading remote code by default + # if a model need remote code, we will fallback to config.json + return AutoConfig.from_pretrained(dir_model, trust_remote_code=False).to_dict() except Exception as e: logger.warning(f"Failed to load model config from {dir_model}: {e}") logger.warning("Trying to load config.json instead") From fab647e8842c5f80da7e8f2c625dab6a0e19e5d4 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 2 May 2025 09:48:31 +0300 Subject: [PATCH 077/126] server : add cache reuse card link to help (#13230) * server : add cache reuse card link to help * args : use short url --- common/arg.cpp | 5 ++++- examples/server/README.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/common/arg.cpp b/common/arg.cpp index e35417de7e..aface844c9 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -2783,7 +2783,10 @@ common_params_context common_params_parser_init(common_params & params, llama_ex ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_THREADS_HTTP")); add_opt(common_arg( {"--cache-reuse"}, "N", - string_format("min chunk size to attempt reusing from the cache via KV shifting (default: %d)", params.n_cache_reuse), + string_format( + "min chunk size to attempt reusing from the cache via KV shifting (default: %d)\n" + "[(card)](https://ggml.ai/f0.png)", params.n_cache_reuse + ), [](common_params & params, int value) { params.n_cache_reuse = value; } diff --git a/examples/server/README.md b/examples/server/README.md index a2a0903261..61446a0ba2 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -154,7 +154,7 @@ The project is under active development, and we are [looking for feedback and co | `--ssl-cert-file FNAME` | path to file a PEM-encoded SSL certificate
(env: LLAMA_ARG_SSL_CERT_FILE) | | `-to, --timeout N` | server read/write timeout in seconds (default: 600)
(env: LLAMA_ARG_TIMEOUT) | | `--threads-http N` | number of threads used to process HTTP requests (default: -1)
(env: LLAMA_ARG_THREADS_HTTP) | -| `--cache-reuse N` | min chunk size to attempt reusing from the cache via KV shifting (default: 0)
(env: LLAMA_ARG_CACHE_REUSE) | +| `--cache-reuse N` | min chunk size to attempt reusing from the cache via KV shifting (default: 0)
[(card)](https://ggml.ai/f0.png)
(env: LLAMA_ARG_CACHE_REUSE) | | `--metrics` | enable prometheus compatible metrics endpoint (default: disabled)
(env: LLAMA_ARG_ENDPOINT_METRICS) | | `--slots` | enable slots monitoring endpoint (default: disabled)
(env: LLAMA_ARG_ENDPOINT_SLOTS) | | `--props` | enable changing global properties via POST /props (default: disabled)
(env: LLAMA_ARG_ENDPOINT_PROPS) | From e84773ab604fe0d935d03741df003716398dc57b Mon Sep 17 00:00:00 2001 From: Shakil Ahmed <44522075+ahmedshakill@users.noreply.github.com> Date: Fri, 2 May 2025 14:20:27 +0600 Subject: [PATCH 078/126] mtmd-cli : fix out_of_range when input image path is empty (#13244) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix out_of_range error to keep the chat loop running * Update examples/llava/mtmd-cli.cpp Co-authored-by: Sigbjørn Skjæret * mtmd-cli : load image right away * add a new line for readability * rm printf * Update examples/llava/mtmd-cli.cpp Co-authored-by: Sigbjørn Skjæret * Update examples/llava/mtmd-cli.cpp --------- Co-authored-by: Sigbjørn Skjæret Co-authored-by: Xuan Son Nguyen Co-authored-by: Xuan-Son Nguyen --- examples/llava/mtmd-cli.cpp | 72 ++++++++++++++++++++----------------- examples/llava/mtmd.cpp | 2 +- 2 files changed, 41 insertions(+), 33 deletions(-) diff --git a/examples/llava/mtmd-cli.cpp b/examples/llava/mtmd-cli.cpp index aa52d92cab..474e7c4f83 100644 --- a/examples/llava/mtmd-cli.cpp +++ b/examples/llava/mtmd-cli.cpp @@ -72,6 +72,8 @@ struct mtmd_cli_context { llama_batch batch; int n_batch; + std::vector bitmaps; + // note: we know that gemma3 template is "linear", meaning each turn is completely separated to another // so here we don't need to keep track of chat history common_chat_templates_ptr tmpls; @@ -135,13 +137,22 @@ struct mtmd_cli_context { antiprompt_tokens.begin() ); } + + bool load_image(const std::string & fname) { + mtmd_bitmap bitmap; + if (mtmd_helper_bitmap_init_from_file(fname.c_str(), bitmap)) { + return false; + } + bitmaps.push_back(std::move(bitmap)); + return true; + } }; static int generate_response(mtmd_cli_context & ctx, common_sampler * smpl, int n_predict) { llama_tokens generated_tokens; for (int i = 0; i < n_predict; i++) { if (i > n_predict || !g_is_generating || g_is_interrupted) { - printf("\n"); + LOG("\n"); break; } @@ -150,15 +161,15 @@ static int generate_response(mtmd_cli_context & ctx, common_sampler * smpl, int common_sampler_accept(smpl, token_id, true); if (llama_vocab_is_eog(ctx.vocab, token_id) || ctx.check_antiprompt(generated_tokens)) { - printf("\n"); + LOG("\n"); break; // end of generation } - printf("%s", common_token_to_piece(ctx.lctx, token_id).c_str()); + LOG("%s", common_token_to_piece(ctx.lctx, token_id).c_str()); fflush(stdout); if (g_is_interrupted) { - printf("\n"); + LOG("\n"); break; } @@ -173,9 +184,7 @@ static int generate_response(mtmd_cli_context & ctx, common_sampler * smpl, int return 0; } -static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, std::vector & images_fname, bool add_bos = false) { - std::vector bitmaps; - +static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, bool add_bos = false) { common_chat_templates_inputs tmpl_inputs; tmpl_inputs.messages = {msg}; tmpl_inputs.add_generation_prompt = true; @@ -183,15 +192,6 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, std::vect auto formatted_chat = common_chat_templates_apply(ctx.tmpls.get(), tmpl_inputs); LOG_DBG("formatted_chat.prompt: %s\n", formatted_chat.prompt.c_str()); - for (auto & fname : images_fname) { - mtmd_bitmap bitmap; - if (mtmd_helper_bitmap_init_from_file(fname.c_str(), bitmap)) { - LOG_ERR("Unable to load image %s\n", fname.c_str()); - return 2; // image not found - } - bitmaps.push_back(std::move(bitmap)); - } - mtmd_input_text text; text.text = formatted_chat.prompt; text.add_special = add_bos; @@ -200,12 +200,14 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, std::vect if (g_is_interrupted) return 0; - int32_t res = mtmd_tokenize(ctx.ctx_vision.get(), chunks, text, bitmaps); + int32_t res = mtmd_tokenize(ctx.ctx_vision.get(), chunks, text, ctx.bitmaps); if (res != 0) { LOG_ERR("Unable to tokenize prompt, res = %d\n", res); return 1; } + ctx.bitmaps.clear(); + if (mtmd_helper_eval(ctx.ctx_vision.get(), ctx.lctx, chunks, ctx.n_past, 0, ctx.n_batch)) { LOG_ERR("Unable to eval prompt\n"); return 1; @@ -213,6 +215,8 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, std::vect ctx.n_past += mtmd_helper_get_n_pos(chunks); + LOG("\n"); + return 0; } @@ -235,7 +239,7 @@ int main(int argc, char ** argv) { } mtmd_cli_context ctx(params); - printf("%s: %s\n", __func__, params.model.path.c_str()); + LOG("%s: loading model: %s\n", __func__, params.model.path.c_str()); bool is_single_turn = !params.prompt.empty() && !params.image.empty(); @@ -268,7 +272,12 @@ int main(int argc, char ** argv) { common_chat_msg msg; msg.role = "user"; msg.content = params.prompt; - if (eval_message(ctx, msg, params.image, true)) { + for (const auto & image : params.image) { + if (!ctx.load_image(image)) { + return 1; // error is already printed by libmtmd + } + } + if (eval_message(ctx, msg, true)) { return 1; } if (!g_is_interrupted && generate_response(ctx, smpl, n_predict)) { @@ -283,7 +292,6 @@ int main(int argc, char ** argv) { LOG("\n"); bool is_first_msg = true; - std::vector images_fname; std::string content; while (!g_is_interrupted) { @@ -308,10 +316,17 @@ int main(int argc, char ** argv) { continue; } g_is_generating = true; - if (line.find("/image") == 0) { + if (line == "/image" || line.find("/image ") == 0) { + if (line.size() < 8) { + LOG_ERR("ERR: Missing image filename\n"); + continue; + } std::string image = line.substr(7); - images_fname.push_back(string_strip(image)); - content += "<__image__>"; + if (ctx.load_image(image)) { + LOG("Image %s loaded\n", image.c_str()); + content += "<__image__>"; + } + // else, error is already printed by libmtmd continue; } else { content += line; @@ -319,21 +334,14 @@ int main(int argc, char ** argv) { common_chat_msg msg; msg.role = "user"; msg.content = content; - int ret = eval_message(ctx, msg, images_fname, is_first_msg); - if (g_is_interrupted) break; - if (ret == 2) { - // non-fatal error - images_fname.clear(); - content.clear(); - continue; - } + int ret = eval_message(ctx, msg, is_first_msg); if (ret) { return 1; } + if (g_is_interrupted) break; if (generate_response(ctx, smpl, n_predict)) { return 1; } - images_fname.clear(); content.clear(); is_first_msg = false; } diff --git a/examples/llava/mtmd.cpp b/examples/llava/mtmd.cpp index 7081fd7352..d1d7530feb 100644 --- a/examples/llava/mtmd.cpp +++ b/examples/llava/mtmd.cpp @@ -590,7 +590,7 @@ int32_t mtmd_helper_eval(mtmd_context * ctx, } } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { - GGML_ASSERT(!is_last && "logits for last image chunk is not yet support"); + GGML_ASSERT(!is_last && "logits for last image chunk is not yet supported"); GGML_ASSERT(chunk.tokens_image != nullptr); int64_t t0 = ggml_time_ms(); if (ctx->print_timings) { From 2af6880178b4bc2c0eced726bab68b4bf333042b Mon Sep 17 00:00:00 2001 From: piDack <104877312+piDack@users.noreply.github.com> Date: Fri, 2 May 2025 17:06:09 +0800 Subject: [PATCH 079/126] llama-chat : reset glmedge chat template (#13253) * reset glmedge chat template * fix glmedge chat template --- src/llama-chat.cpp | 10 +++++++++- tests/test-chat-template.cpp | 17 ++++++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/llama-chat.cpp b/src/llama-chat.cpp index 9b56614951..46d43c58ef 100644 --- a/src/llama-chat.cpp +++ b/src/llama-chat.cpp @@ -447,7 +447,7 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>"; } - } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_4 || tmpl == LLM_CHAT_TEMPLATE_GLMEDGE) { + } else if (tmpl == LLM_CHAT_TEMPLATE_CHATGLM_4) { ss << "[gMASK]" << ""; for (auto message : chat) { std::string role(message->role); @@ -456,6 +456,14 @@ int32_t llm_chat_apply_template( if (add_ass) { ss << "<|assistant|>\n"; } + } else if (tmpl == LLM_CHAT_TEMPLATE_GLMEDGE) { + for (auto message : chat) { + std::string role(message->role); + ss << "<|" << role << "|>" << "\n" << message->content; + } + if (add_ass) { + ss << "<|assistant|>"; + } } else if (tmpl == LLM_CHAT_TEMPLATE_MINICPM) { // MiniCPM-3B-OpenHermes-2.5-v2-GGUF for (auto message : chat) { diff --git a/tests/test-chat-template.cpp b/tests/test-chat-template.cpp index d217069575..a0a50f9881 100644 --- a/tests/test-chat-template.cpp +++ b/tests/test-chat-template.cpp @@ -187,15 +187,14 @@ int main(void) { /* .bos_token= */ "", /* .eos_token= */ "", }, - // TODO @ngxson : GLMEdge produces poor result without `[gMASK]`, so we're temporarily using GLM4 template for it. We should fix this in the future. - // { - // /* .name= */ "GLMEdge", - // /* .template_str= */ "{% for item in messages %}{% if item['role'] == 'system' %}<|system|>\n{{ item['content'] }}{% elif item['role'] == 'user' %}<|user|>\n{{ item['content'] }}{% elif item['role'] == 'assistant' %}<|assistant|>\n{{ item['content'] }}{% endif %}{% endfor %}<|assistant|>", - // /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", - // /* .expected_output_jinja= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", - // /* .bos_token= */ "", - // /* .eos_token= */ "", - // }, + { + /* .name= */ "GLMEdge", + /* .template_str= */ "{% for item in messages %}{% if item['role'] == 'system' %}<|system|>\n{{ item['content'] }}{% elif item['role'] == 'user' %}<|user|>\n{{ item['content'] }}{% elif item['role'] == 'assistant' %}<|assistant|>\n{{ item['content'] }}{% endif %}{% endfor %}<|assistant|>", + /* .expected_output= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .expected_output_jinja= */ "<|system|>\nYou are a helpful assistant<|user|>\nHello<|assistant|>\nHi there<|user|>\nWho are you<|assistant|>\n I am an assistant <|user|>\nAnother question<|assistant|>", + /* .bos_token= */ "", + /* .eos_token= */ "", + }, { /* .name= */ "MiniCPM-3B-OpenHermes-2.5-v2-GGUF", /* .template_str= */ U8C("{% for message in messages %}{% if message['role'] == 'user' %}{{'<用户>' + message['content'].strip() + ''}}{% else %}{{message['content'].strip()}}{% endif %}{% endfor %}"), From 626083faf73faa54440f934bb1741bf443be91b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Fri, 2 May 2025 12:40:56 +0200 Subject: [PATCH 080/126] llama : plamo rope type is neox (#13260) --- src/llama-model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 51092a128c..498a245285 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -13226,7 +13226,6 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { case LLM_ARCH_DECI: case LLM_ARCH_BAICHUAN: case LLM_ARCH_STARCODER: - case LLM_ARCH_PLAMO: case LLM_ARCH_ORION: case LLM_ARCH_INTERNLM2: case LLM_ARCH_MINICPM: @@ -13265,6 +13264,7 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { case LLM_ARCH_PHI2: case LLM_ARCH_PHI3: case LLM_ARCH_PHIMOE: + case LLM_ARCH_PLAMO: case LLM_ARCH_GEMMA: case LLM_ARCH_GEMMA2: case LLM_ARCH_GEMMA3: From cb06a3c363f50cd35113984fe8fb164aea419077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Fri, 2 May 2025 12:44:24 +0200 Subject: [PATCH 081/126] llama : orion rope type is neox (#13261) --- src/llama-model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 498a245285..e5289f7077 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -13226,7 +13226,6 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { case LLM_ARCH_DECI: case LLM_ARCH_BAICHUAN: case LLM_ARCH_STARCODER: - case LLM_ARCH_ORION: case LLM_ARCH_INTERNLM2: case LLM_ARCH_MINICPM: case LLM_ARCH_XVERSE: @@ -13272,6 +13271,7 @@ llama_rope_type llama_model_rope_type(const llama_model * model) { case LLM_ARCH_OPENELM: case LLM_ARCH_GPTNEOX: case LLM_ARCH_CODESHELL: + case LLM_ARCH_ORION: case LLM_ARCH_NEMOTRON: case LLM_ARCH_EXAONE: case LLM_ARCH_MINICPM3: From c642bc014c105728ce45015813351dc5a37f60a2 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 2 May 2025 17:48:36 +0300 Subject: [PATCH 082/126] kv-cache : separate recurrent vs non-recurrent impl (#12799) * kv-cache : serparate recurrent vs non-recurrent impl (wip) ggml-ci * kv-cache : init -> contructor + add llama_memory_params ggml-ci * kv-cache : fix callback reference ggml-ci * context : llama_kv_cache -> llama_memory_i ggml-ci * context : move memory creation logic to model ggml-ci * llama : remove reference of memory during encode ggml-ci * kv-cache : hide padding details in the implementation ggml-ci * kv-cache : add ubatch_next() ggml-ci * context : simplify sbatch logic ggml-ci * kv-cache : hide defrag logic in the implementation ggml-ci * context : hide kv cache details in implementation ggml-ci * build : fix ggml-ci * cont : another fix ggml-ci * kv-cache : simplify interface (wip) ggml-ci * kv-cache : use separate KV cell structs for unified/recurrent ggml-ci * kv-cache : clean-up ggml-ci * model : better llama_model::create_model() signature ggml-ci * kv-cache : fix recurrent seq_rm() ggml-ci * kv-cache : replace `struct callbacks` with `llama_model &` ggml-ci * kv-cache : replace `struct graph_params` with `llama_context &` ggml-ci * kv-cache : fix offload check ggml-ci * context : avoid passing unique_ptr ggml-ci * kv-cache : avoid using the backends from the llama_context ref #13113 ggml-ci * kv-cache : more consistent debug logs [no ci] * kv-cache : do not pass the full llama_context for kv graphs ggml-ci * kv-cache : remove comment * kv-cache : ggml_rope_ext_inplace -> ggml_rope_ext ggml-ci * kv-cache : fix recurrent multi-user case ggml-ci * memory : remove comments [no ci] --- src/llama-batch.cpp | 6 +- src/llama-batch.h | 3 +- src/llama-context.cpp | 576 +++---------- src/llama-context.h | 45 +- src/llama-graph.cpp | 44 +- src/llama-graph.h | 17 +- src/llama-kv-cache.cpp | 1828 ++++++++++++++++++++++++++++++++-------- src/llama-kv-cache.h | 402 ++++++--- src/llama-memory.h | 12 +- src/llama-model.cpp | 70 +- src/llama-model.h | 5 +- 11 files changed, 1960 insertions(+), 1048 deletions(-) diff --git a/src/llama-batch.cpp b/src/llama-batch.cpp index 01d5ca57fd..a88b2fe308 100644 --- a/src/llama-batch.cpp +++ b/src/llama-batch.cpp @@ -189,7 +189,7 @@ llama_ubatch llama_sbatch::split_seq(size_t n_ubatch) { return ubatch; } -void llama_sbatch::from_batch(const llama_batch & batch, size_t n_embd, bool simple_split, bool logits_all) { +llama_sbatch::llama_sbatch(const llama_batch & batch, size_t n_embd, bool simple_split, bool logits_all) { GGML_ASSERT(batch.n_tokens >= 0); this->batch = &batch; this->n_embd = n_embd; @@ -203,6 +203,7 @@ void llama_sbatch::from_batch(const llama_batch & batch, size_t n_embd, bool sim for (size_t i = 0; i < n_tokens; ++i) { ids[i] = i; } + if (simple_split) { seq.resize(1); llama_sbatch_seq & s = seq[0]; @@ -212,6 +213,7 @@ void llama_sbatch::from_batch(const llama_batch & batch, size_t n_embd, bool sim s.length = n_tokens; return; } + std::sort(ids.begin(), ids.end(), [&batch](size_t a, size_t b) { int32_t n_seq_a = batch.n_seq_id ? batch.n_seq_id[a] : 1; @@ -239,6 +241,7 @@ void llama_sbatch::from_batch(const llama_batch & batch, size_t n_embd, bool sim return n_seq_a > n_seq_b; } ); + // init seq llama_sbatch_seq * last_seq = nullptr; @@ -262,6 +265,7 @@ void llama_sbatch::from_batch(const llama_batch & batch, size_t n_embd, bool sim seq.push_back(new_seq); last_seq = &seq.back(); } + // keep shared prompts first at the end, then sort by length descending. std::sort(seq.begin(), seq.end(), [](llama_sbatch_seq & a, llama_sbatch_seq & b) { diff --git a/src/llama-batch.h b/src/llama-batch.h index f1df40d270..6305051b62 100644 --- a/src/llama-batch.h +++ b/src/llama-batch.h @@ -70,7 +70,8 @@ struct llama_sbatch { // sequence-wise split llama_ubatch split_seq(size_t n_ubatch); - void from_batch(const llama_batch & batch, size_t n_embd, bool simple_split = false, bool logits_all = false); + llama_sbatch() = default; + llama_sbatch(const llama_batch & batch, size_t n_embd, bool simple_split = false, bool logits_all = false); }; // temporary allocate memory for the input batch if needed diff --git a/src/llama-context.cpp b/src/llama-context.cpp index 5a2eef9b78..a88b9a5ff9 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -6,11 +6,9 @@ #include "llama-model.h" #include "llama-kv-cache.h" -#include #include #include #include -#include // // llama_context @@ -177,44 +175,13 @@ llama_context::llama_context( } // init the memory module - // TODO: for now, always create a unified KV cache if (!hparams.vocab_only) { - kv_self.reset(static_cast(model.create_memory())); + llama_memory_params params_mem = { + /*.type_k =*/ params.type_k, + /*.type_v =*/ params.type_v, + }; - LLAMA_LOG_DEBUG("%s: n_ctx = %u\n", __func__, cparams.n_ctx); - - cparams.n_ctx = GGML_PAD(cparams.n_ctx, kv_self->get_padding(cparams)); - - LLAMA_LOG_DEBUG("%s: n_ctx = %u (padded)\n", __func__, cparams.n_ctx); - - uint32_t kv_size = cparams.n_ctx; - ggml_type type_k = params.type_k; - ggml_type type_v = params.type_v; - - if (llama_model_is_recurrent(&model)) { - // Mamba needs at least as many KV cells as there are sequences kept at any time - kv_size = std::max((uint32_t) 1, params.n_seq_max); - // it's probably best to keep as much precision as possible for the states - type_k = GGML_TYPE_F32; // required by ggml_ssm_conv for Mamba's conv_states - type_v = GGML_TYPE_F32; // required by ggml_ssm_scan for Mamba's ssm_states - } - - GGML_ASSERT(hparams.n_embd_head_k % ggml_blck_size(type_k) == 0); - GGML_ASSERT(hparams.n_embd_head_v % ggml_blck_size(type_v) == 0); - - if (!kv_self->init(model, cparams, type_k, type_v, kv_size, cparams.offload_kqv)) { - throw std::runtime_error("failed to initialize self-attention cache"); - } - - { - const size_t memory_size_k = kv_self->size_k_bytes(); - const size_t memory_size_v = kv_self->size_v_bytes(); - - LLAMA_LOG_INFO("%s: KV self size = %7.2f MiB, K (%s): %7.2f MiB, V (%s): %7.2f MiB\n", __func__, - (float)(memory_size_k + memory_size_v) / (1024.0f * 1024.0f), - ggml_type_name(type_k), (float)memory_size_k / (1024.0f * 1024.0f), - ggml_type_name(type_v), (float)memory_size_v / (1024.0f * 1024.0f)); - } + memory.reset(model.create_memory(params_mem, cparams)); } // init backends @@ -305,7 +272,9 @@ llama_context::llama_context( int n_nodes_tg = -1; // simulate full KV cache - kv_self->n = kv_self->size; + llama_kv_cache * kv_self = static_cast(memory.get()); + + kv_self->set_full(); cross.v_embd.clear(); @@ -427,6 +396,18 @@ const llama_model & llama_context::get_model() const { return model; } +const llama_cparams & llama_context::get_cparams() const { + return cparams; +} + +ggml_backend_sched_t llama_context::get_sched() const { + return sched.get(); +} + +ggml_context * llama_context::get_ctx_compute() const { + return ctx_compute.get(); +} + uint32_t llama_context::n_ctx() const { return cparams.n_ctx; } @@ -456,337 +437,21 @@ uint32_t llama_context::n_threads_batch() const { } llama_kv_cache * llama_context::get_kv_self() { - return kv_self.get(); + llama_kv_cache * kv_self = static_cast(memory.get()); + return kv_self; } const llama_kv_cache * llama_context::get_kv_self() const { - return kv_self.get(); -} - -ggml_tensor * llama_context::build_rope_shift( - ggml_context * ctx0, - ggml_tensor * cur, - ggml_tensor * shift, - ggml_tensor * factors, - float freq_base, - float freq_scale) const { - const auto & n_ctx_orig = cparams.n_ctx_orig_yarn; - - const auto & yarn_ext_factor = cparams.yarn_ext_factor; - const auto & yarn_beta_fast = cparams.yarn_beta_fast; - const auto & yarn_beta_slow = cparams.yarn_beta_slow; - - const auto & hparams = model.hparams; - - const auto & n_rot = hparams.n_rot; - const auto & rope_type = hparams.rope_type; - - // See llm_build_deepseek2() for why attn_factor has to be scaled for YaRN RoPE to work correctly. - // See https://github.com/ggerganov/llama.cpp/discussions/7416 for detailed explanation. - const float yarn_attn_factor = model.arch == LLM_ARCH_DEEPSEEK2 ? 1.0f / (1.0f + 0.1f * logf(1.0f / freq_scale)) : cparams.yarn_attn_factor; - - ggml_tensor * tmp; - - if (ggml_is_quantized(cur->type)) { - // dequantize to f32 -> RoPE -> quantize back - tmp = ggml_cast(ctx0, cur, GGML_TYPE_F32); - - tmp = ggml_rope_ext(ctx0, tmp, - shift, factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, - yarn_ext_factor, yarn_attn_factor, yarn_beta_fast, yarn_beta_slow); - - tmp = ggml_cpy(ctx0, tmp, cur); - } else { - // we rotate only the first n_rot dimensions - tmp = ggml_rope_ext_inplace(ctx0, cur, - shift, factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, - yarn_ext_factor, yarn_attn_factor, yarn_beta_fast, yarn_beta_slow); - } - - return tmp; -} - -class llm_graph_input_k_shift : public llm_graph_input_i { -public: - llm_graph_input_k_shift(const llama_kv_cache_unified * kv_self) : kv_self(kv_self) {} - virtual ~llm_graph_input_k_shift() = default; - - void set_input(const llama_ubatch * ubatch) override; - - ggml_tensor * k_shift; // I32 [kv_size] - - const llama_kv_cache_unified * kv_self; -}; - -void llm_graph_input_k_shift::set_input(const llama_ubatch * ubatch) { - GGML_UNUSED(ubatch); - - if (k_shift) { - assert(ggml_backend_buffer_is_host(k_shift->buffer)); - - int32_t * data = (int32_t *) k_shift->data; - - for (uint32_t i = 0; i < kv_self->size; ++i) { - data[i] = kv_self->cells[i].delta; - } - } -} - -llm_graph_result_ptr llama_context::build_kv_self_shift( - ggml_context * ctx0, - ggml_cgraph * gf) const { - auto res = std::make_unique(); - - const auto & hparams = model.hparams; - - const auto & n_layer = hparams.n_layer; - - const auto & n_embd_head_k = hparams.n_embd_head_k; - //const auto & n_embd_head_v = hparams.n_embd_head_v; - - //GGML_ASSERT(kv_self->size == n_ctx); - - auto inp = std::make_unique(kv_self.get()); - - inp->k_shift = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, cparams.n_ctx); - ggml_set_input(inp->k_shift); - - for (uint32_t il = 0; il < n_layer; ++il) { - const int64_t n_head_kv = hparams.n_head_kv(il); - const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(il); - - const bool is_swa = hparams.is_swa(il); - - // note: the swa rope params could become part of the cparams in the future - // if we decide to make them configurable, like the non-sliding ones - const float freq_base_l = is_swa ? hparams.rope_freq_base_train_swa : cparams.rope_freq_base; - const float freq_scale_l = is_swa ? hparams.rope_freq_scale_train_swa : cparams.rope_freq_scale; - - ggml_tensor * rope_factors = kv_self->cbs.get_rope_factors(n_ctx_per_seq(), il); - - ggml_tensor * k = - ggml_view_3d(ctx0, kv_self->k_l[il], - n_embd_head_k, n_head_kv, kv_self->size, - ggml_row_size(kv_self->k_l[il]->type, n_embd_head_k), - ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa), - 0); - - ggml_tensor * cur = build_rope_shift(ctx0, k, inp->k_shift, rope_factors, freq_base_l, freq_scale_l); - - ggml_build_forward_expand(gf, cur); - } - - res->add_input(std::move(inp)); - - return res; -} - -llm_graph_result_ptr llama_context::build_kv_self_defrag( - ggml_context * ctx0, - ggml_cgraph * gf) const { - auto res = std::make_unique(); - - const auto & hparams = model.hparams; - - const auto & ids = kv_self->defrag_info.ids; - -#if 0 - // CPU defrag - // - // TODO: optimizations are possible: - // - multiple threads - // - avoid copying to the host memory when already there - // - // likely not worth the effort, as we have ggml_graph based defrag - // - - const uint32_t n_embd_k_gqa = hparams.n_embd_k_gqa(); - const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(); - - const uint32_t kv_size = size; - - std::vector buf_k; - std::vector buf_v; - - for (uint32_t il = 0; il < n_layer; ++il) { - const size_t k_size_row = ggml_row_size(k_l[il]->type, n_embd_k_gqa); - const size_t k_size = ggml_row_size(k_l[il]->type, n_embd_k_gqa*kv_size); - - const size_t v_size_el = ggml_type_size(v_l[il]->type); - const size_t v_size = ggml_row_size (v_l[il]->type, n_embd_v_gqa*kv_size); - - buf_k.resize(k_size); - buf_v.resize(v_size); - - ggml_backend_tensor_get(k_l[il], buf_k.data(), 0, buf_k.size()); - ggml_backend_tensor_get(v_l[il], buf_v.data(), 0, buf_v.size()); - - // batch move [i, i+nm) to [id, id+nm) - // note: cells can move only to a lower index - for (uint32_t i = 0; i < n_kv; ++i) { - const uint32_t id = ids[i]; - - if (i == id || id == n_kv) { - continue; - } - - uint32_t nm = 1; - - while (i + nm < n_kv && ids[i + nm] == id + nm) { - nm++; - } - - // move keys - { - const int64_t os = i*k_size_row; - const int64_t od = id*k_size_row; - - memcpy(buf_k.data() + od, buf_k.data() + os, nm*k_size_row); - } - - // move values (note: they are transposed) - { - const int64_t os = i; - const int64_t od = id; - - for (uint32_t j = 0; j < n_embd_v_gqa; ++j) { - memcpy(buf_v.data() + (od + j*kv_size)*v_size_el, buf_v.data() + (os + j*kv_size)*v_size_el, nm*v_size_el); - } - } - - i += nm - 1; - } - - ggml_backend_tensor_set(k_l[il], buf_k.data(), 0, buf_k.size()); - ggml_backend_tensor_set(v_l[il], buf_v.data(), 0, buf_v.size()); - } -#else - for (uint32_t i = 0; i < ids.size(); ++i) { - const uint32_t id = ids[i]; - - if (i == id || id == ids.size()) { - continue; - } - - uint32_t nm = 1; - - while (i + nm < ids.size() && ids[i + nm] == id + nm) { - nm++; - } - - for (uint32_t il = 0; il < hparams.n_layer; ++il) { // NOLINT - const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(il); - const int64_t n_embd_v_gqa = hparams.n_embd_v_gqa(il); - - ggml_tensor * view_k_src = ggml_view_2d(ctx0, kv_self->k_l[il], - n_embd_k_gqa, nm, - ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa), - ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa*i)); - - ggml_tensor * view_k_dst = ggml_view_2d(ctx0, kv_self->k_l[il], - n_embd_k_gqa, nm, - ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa), - ggml_row_size(kv_self->k_l[il]->type, n_embd_k_gqa*id)); - - ggml_tensor * view_v_src; - ggml_tensor * view_v_dst; - - if (cparams.flash_attn) { - // NOTE: the V cache is not transposed when using flash attention - view_v_src = ggml_view_2d(ctx0, kv_self->v_l[il], - n_embd_v_gqa, nm, - ggml_row_size(kv_self->v_l[il]->type, n_embd_v_gqa), - ggml_row_size(kv_self->v_l[il]->type, n_embd_v_gqa*i)); - - view_v_dst = ggml_view_2d(ctx0, kv_self->v_l[il], - n_embd_v_gqa, nm, - ggml_row_size(kv_self->v_l[il]->type, n_embd_v_gqa), - ggml_row_size(kv_self->v_l[il]->type, n_embd_v_gqa*id)); - } else { - view_v_src = ggml_view_2d(ctx0, kv_self->v_l[il], - nm, n_embd_v_gqa, - ggml_row_size(kv_self->v_l[il]->type, kv_self->size), - ggml_row_size(kv_self->v_l[il]->type, i)); - - view_v_dst = ggml_view_2d(ctx0, kv_self->v_l[il], - nm, n_embd_v_gqa, - ggml_row_size(kv_self->v_l[il]->type, kv_self->size), - ggml_row_size(kv_self->v_l[il]->type, id)); - } - - ggml_build_forward_expand(gf, ggml_cpy(ctx0, view_k_src, view_k_dst)); - ggml_build_forward_expand(gf, ggml_cpy(ctx0, view_v_src, view_v_dst)); - } - - i += nm - 1; - } - - //LLAMA_LOG_INFO("gf->n_nodes = %d\n", gf->n_nodes); -#endif - - return res; + llama_kv_cache * kv_self = static_cast(memory.get()); + return kv_self; } void llama_context::kv_self_update() { - auto & kv = kv_self; - bool need_reserve = false; - if (kv->has_shift) { - if (!kv->get_can_shift()) { - GGML_ABORT("The current context does not support K-shift"); - } + llama_kv_cache * kv_self = static_cast(memory.get()); - LLAMA_LOG_DEBUG("%s: applying K-shift\n", __func__); - - // apply K-shift if needed - if (model.hparams.rope_type != LLAMA_ROPE_TYPE_NONE) { - ggml_backend_sched_reset(sched.get()); - - auto * gf = graph_init(); - - auto res = build_kv_self_shift(ctx_compute.get(), gf); - - ggml_backend_sched_alloc_graph(sched.get(), gf); - - res->set_inputs(nullptr); - - graph_compute(gf, false); - - need_reserve = true; - } - - { - kv->has_shift = false; - - for (uint32_t i = 0; i < kv->size; ++i) { - kv->cells[i].delta = 0; - } - } - } - - // defragment the KV cache if needed - if (kv->do_defrag) { - LLAMA_LOG_DEBUG("%s: defragmenting KV cache\n", __func__); - - if (kv->defrag_prepare(graph_max_nodes())) { - ggml_backend_sched_reset(sched.get()); - - auto * gf = graph_init(); - - auto res = build_kv_self_defrag(ctx_compute.get(), gf); - - ggml_backend_sched_alloc_graph(sched.get(), gf); - - res->set_inputs(nullptr); - - graph_compute(gf, false); - - need_reserve = true; - } - - kv->do_defrag = false; - } + need_reserve = kv_self->update(*this); // reserve a worst case graph if needed if (need_reserve) { @@ -797,7 +462,7 @@ void llama_context::kv_self_update() { uint32_t n_tokens = std::min(cparams.n_ctx, cparams.n_ubatch); // simulate full KV cache - kv_self->n = kv_self->size; + kv_self->set_full(); llama_token token = model.vocab.token_bos(); // not actually used by llama_build_graph, but required to choose between token and embedding inputs graph llama_ubatch ubatch = { true, n_tokens, n_tokens / n_seqs, n_seqs, &token, nullptr, nullptr, nullptr, nullptr, nullptr}; @@ -818,9 +483,6 @@ enum llama_pooling_type llama_context::pooling_type() const { } float * llama_context::get_logits() { - // reorder logits for backward compatibility - output_reorder(); - return logits; } @@ -863,9 +525,6 @@ float * llama_context::get_logits_ith(int32_t i) { } float * llama_context::get_embeddings() { - // reorder embeddings for backward compatibility - output_reorder(); - return embd; } @@ -1017,8 +676,8 @@ int llama_context::encode(llama_batch & inp_batch) { } // temporary allocate memory for the input batch if needed - // TODO: this is incorrect for multiple sequences because pos_max() is the maximum across all sequences - llama_batch_allocr batch_allocr(inp_batch, inp_batch.pos ? -1 : kv_self->pos_max() + 1); + // note: during encode, we always pass the full sequence starting from pos = 0 + llama_batch_allocr batch_allocr(inp_batch, inp_batch.pos ? -1 : 0); const llama_batch & batch = batch_allocr.batch; const int32_t n_tokens = batch.n_tokens; @@ -1047,7 +706,7 @@ int llama_context::encode(llama_batch & inp_batch) { const int64_t n_embd = hparams.n_embd; - sbatch.from_batch(batch, n_embd, /* simple_split */ true, /* logits_all */ true); + llama_sbatch sbatch = llama_sbatch(batch, n_embd, /* simple_split */ true, /* logits_all */ true); const llama_ubatch ubatch = sbatch.split_simple(n_tokens); @@ -1181,9 +840,11 @@ int llama_context::decode(llama_batch & inp_batch) { return -1; } + llama_kv_cache * kv_self = static_cast(memory.get()); + // temporary allocate memory for the input batch if needed - // TODO: this is incorrect for multiple sequences because pos_max() is the maximum across all sequences - llama_batch_allocr batch_allocr(inp_batch, inp_batch.pos ? -1 : kv_self->pos_max() + 1); + // TODO: this is incorrect for multiple sequences because get_pos_max() is the maximum across all sequences + llama_batch_allocr batch_allocr(inp_batch, inp_batch.pos ? -1 : kv_self->get_pos_max() + 1); const llama_batch & batch = batch_allocr.batch; @@ -1195,7 +856,7 @@ int llama_context::decode(llama_batch & inp_batch) { const int64_t n_tokens_all = batch.n_tokens; const int64_t n_embd = hparams.n_embd; - llama_kv_cache_guard kv_guard(kv_self.get()); + llama_kv_cache_guard kv_guard(kv_self); GGML_ASSERT((!batch.token && batch.embd) || (batch.token && !batch.embd)); // NOLINT @@ -1236,11 +897,7 @@ int llama_context::decode(llama_batch & inp_batch) { n_outputs_all = 1; } - const bool logits_all = n_outputs_all == n_tokens_all; - - sbatch.from_batch(batch, n_embd, - /* simple_split */ !kv_self->recurrent, - /* logits_all */ logits_all); + llama_sbatch sbatch = kv_self->sbatch_init(batch, /* logits_all */ n_outputs_all == n_tokens_all); // reserve output buffer if (output_reserve(n_outputs_all) < n_outputs_all) { @@ -1254,22 +911,7 @@ int llama_context::decode(llama_batch & inp_batch) { int64_t n_outputs_prev = 0; while (sbatch.n_tokens > 0) { - llama_ubatch ubatch = llama_ubatch(); - - const auto & n_ubatch = cparams.n_ubatch; - - if (kv_self->recurrent) { - if (embd_pooled) { - // Pooled embeddings cannot be split across ubatches (yet) - ubatch = sbatch.split_seq(cparams.n_ubatch); - } else { - // recurrent model architectures are easier to implement - // with equal-length sequences - ubatch = sbatch.split_equal(cparams.n_ubatch); - } - } else { - ubatch = sbatch.split_simple(n_ubatch); - } + llama_ubatch ubatch = kv_self->ubatch_next(sbatch, cparams.n_ubatch, embd_pooled); // count the outputs in this u_batch { @@ -1289,24 +931,12 @@ int llama_context::decode(llama_batch & inp_batch) { } // find KV slot - { - if (!kv_self->find_slot(ubatch)) { - LLAMA_LOG_WARN("%s: failed to find KV cache slot for ubatch of size %d\n", __func__, ubatch.n_tokens); + if (!kv_self->find_slot(ubatch)) { + LLAMA_LOG_WARN("%s: failed to find KV cache slot for ubatch of size %d\n", __func__, ubatch.n_tokens); - return 1; - } - - if (!kv_self->recurrent) { - // a heuristic, to avoid attending the full cache if it is not yet utilized - // after enough generations, the benefit from this heuristic disappears - // if we start defragmenting the cache, the benefit from this will be more important - const uint32_t pad = kv_self->get_padding(cparams); - kv_self->n = std::min(kv_self->size, std::max(pad, GGML_PAD(kv_self->cell_max(), pad))); - } + return 1; } - //printf("kv_self.n = %5d, kv_self.used = %5d, kv_self.head = %5d\n", kv_self->n, kv_self->used, kv_self->head); - ggml_backend_sched_reset(sched.get()); ggml_backend_sched_set_eval_callback(sched.get(), cparams.cb_eval, cparams.cb_eval_user_data); @@ -1424,18 +1054,52 @@ int llama_context::decode(llama_batch & inp_batch) { { bool sorted_output = true; - GGML_ASSERT(sbatch.out_ids.size() == (size_t) n_outputs_all); + auto & out_ids = sbatch.out_ids; + + GGML_ASSERT(out_ids.size() == (size_t) n_outputs_all); for (int64_t i = 0; i < n_outputs_all; ++i) { - int64_t out_id = sbatch.out_ids[i]; + int64_t out_id = out_ids[i]; output_ids[out_id] = i; if (out_id != i) { sorted_output = false; } } - if (sorted_output) { - sbatch.out_ids.clear(); + // make the outputs have the same order they had in the user-provided batch + // note: this is mostly relevant for recurrent models atm + if (!sorted_output) { + const uint32_t n_vocab = model.vocab.n_tokens(); + const uint32_t n_embd = model.hparams.n_embd; + + GGML_ASSERT((size_t) n_outputs == out_ids.size()); + + // TODO: is there something more efficient which also minimizes swaps? + // selection sort, to minimize swaps (from https://en.wikipedia.org/wiki/Selection_sort) + for (int32_t i = 0; i < n_outputs - 1; ++i) { + int32_t j_min = i; + for (int32_t j = i + 1; j < n_outputs; ++j) { + if (out_ids[j] < out_ids[j_min]) { + j_min = j; + } + } + if (j_min == i) { continue; } + std::swap(out_ids[i], out_ids[j_min]); + if (logits_size > 0) { + for (uint32_t k = 0; k < n_vocab; k++) { + std::swap(logits[i*n_vocab + k], logits[j_min*n_vocab + k]); + } + } + if (embd_size > 0) { + for (uint32_t k = 0; k < n_embd; k++) { + std::swap(embd[i*n_embd + k], embd[j_min*n_embd + k]); + } + } + } + std::fill(output_ids.begin(), output_ids.end(), -1); + for (int32_t i = 0; i < n_outputs; ++i) { + output_ids[out_ids[i]] = i; + } } } @@ -1446,17 +1110,8 @@ int llama_context::decode(llama_batch & inp_batch) { //synchronize(); // decide if we need to defrag the kv cache - if (cparams.causal_attn && cparams.defrag_thold > 0.0f) { - // - do not defrag small contexts (i.e. < 2048 tokens) - // - count the padding towards the number of used tokens - const float fragmentation = kv_self->n >= 2048 ? std::max(0.0f, 1.0f - float(kv_self->used + kv_self->get_padding(cparams))/float(kv_self->n)) : 0.0f; - - // queue defragmentation for next llama_kv_cache_update - if (fragmentation > cparams.defrag_thold) { - LLAMA_LOG_DEBUG("%s: fragmentation: %.2f - requesting defrag\n", __func__, fragmentation); - - kv_self->defrag(); - } + if (cparams.defrag_thold > 0.0f) { + kv_self->defrag_sched(cparams.defrag_thold); } // Reset state for the next token before backend sync, to allow the CPU activities in the reset to @@ -1542,44 +1197,6 @@ int32_t llama_context::output_reserve(int32_t n_outputs) { return n_outputs_max; } -void llama_context::output_reorder() { - auto & out_ids = sbatch.out_ids; - if (!out_ids.empty()) { - const uint32_t n_vocab = model.vocab.n_tokens(); - const uint32_t n_embd = model.hparams.n_embd; - - GGML_ASSERT((size_t) n_outputs == out_ids.size()); - - // TODO: is there something more efficient which also minimizes swaps? - // selection sort, to minimize swaps (from https://en.wikipedia.org/wiki/Selection_sort) - for (int32_t i = 0; i < n_outputs - 1; ++i) { - int32_t j_min = i; - for (int32_t j = i + 1; j < n_outputs; ++j) { - if (out_ids[j] < out_ids[j_min]) { - j_min = j; - } - } - if (j_min == i) { continue; } - std::swap(out_ids[i], out_ids[j_min]); - if (logits_size > 0) { - for (uint32_t k = 0; k < n_vocab; k++) { - std::swap(logits[i*n_vocab + k], logits[j_min*n_vocab + k]); - } - } - if (embd_size > 0) { - for (uint32_t k = 0; k < n_embd; k++) { - std::swap(embd[i*n_embd + k], embd[j_min*n_embd + k]); - } - } - } - std::fill(output_ids.begin(), output_ids.end(), -1); - for (int32_t i = 0; i < n_outputs; ++i) { - output_ids[out_ids[i]] = i; - } - out_ids.clear(); - } -} - // // graph // @@ -1616,7 +1233,7 @@ llm_graph_result_ptr llama_context::graph_build( /*.backend_cpu =*/ backend_cpu, /*.cvec =*/ &cvec, /*.loras =*/ &loras, - /*.memory =*/ kv_self.get(), + /*.memory =*/ memory.get(), /*.cross =*/ &cross, /*.n_outputs =*/ n_outputs, /*.cb =*/ graph_get_cb(), @@ -2020,8 +1637,6 @@ size_t llama_context::state_write_data(llama_io_write_i & io) { { LLAMA_LOG_DEBUG("%s: - writing output ids\n", __func__); - output_reorder(); - const auto n_outputs = this->n_outputs; const auto & output_ids = this->output_ids; @@ -2075,6 +1690,8 @@ size_t llama_context::state_write_data(llama_io_write_i & io) { } LLAMA_LOG_DEBUG("%s: - writing KV self\n", __func__); + llama_kv_cache * kv_self = static_cast(memory.get()); + kv_self->state_write(io); return io.n_bytes(); @@ -2159,6 +1776,8 @@ size_t llama_context::state_read_data(llama_io_read_i & io) { } LLAMA_LOG_DEBUG("%s: - reading KV self\n", __func__); + llama_kv_cache * kv_self = static_cast(memory.get()); + kv_self->state_read(io); return io.n_bytes(); @@ -2167,6 +1786,8 @@ size_t llama_context::state_read_data(llama_io_read_i & io) { size_t llama_context::state_seq_write_data(llama_io_write_i & io, llama_seq_id seq_id) { GGML_UNUSED(seq_id); + llama_kv_cache * kv_self = static_cast(memory.get()); + kv_self->state_write(io, seq_id); return io.n_bytes(); @@ -2175,6 +1796,8 @@ size_t llama_context::state_seq_write_data(llama_io_write_i & io, llama_seq_id s size_t llama_context::state_seq_read_data(llama_io_read_i & io, llama_seq_id seq_id) { GGML_UNUSED(seq_id); + llama_kv_cache * kv_self = static_cast(memory.get()); + kv_self->state_read(io, seq_id); return io.n_bytes(); @@ -2530,7 +2153,7 @@ void llama_kv_cache_seq_cp( llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) { - return llama_kv_self_seq_cp(ctx, seq_id_src, seq_id_dst, p0, p1); + llama_kv_self_seq_cp(ctx, seq_id_src, seq_id_dst, p0, p1); } void llama_kv_self_seq_cp( @@ -2544,14 +2167,14 @@ void llama_kv_self_seq_cp( return; } - return kv->seq_cp(seq_id_src, seq_id_dst, p0, p1); + kv->seq_cp(seq_id_src, seq_id_dst, p0, p1); } // deprecated void llama_kv_cache_seq_keep( llama_context * ctx, llama_seq_id seq_id) { - return llama_kv_self_seq_keep(ctx, seq_id); + llama_kv_self_seq_keep(ctx, seq_id); } void llama_kv_self_seq_keep(llama_context * ctx, llama_seq_id seq_id) { @@ -2560,7 +2183,7 @@ void llama_kv_self_seq_keep(llama_context * ctx, llama_seq_id seq_id) { return; } - return kv->seq_keep(seq_id); + kv->seq_keep(seq_id); } // deprecated @@ -2570,7 +2193,7 @@ void llama_kv_cache_seq_add( llama_pos p0, llama_pos p1, llama_pos delta) { - return llama_kv_self_seq_add(ctx, seq_id, p0, p1, delta); + llama_kv_self_seq_add(ctx, seq_id, p0, p1, delta); } void llama_kv_self_seq_add( @@ -2584,7 +2207,7 @@ void llama_kv_self_seq_add( return; } - return kv->seq_add(seq_id, p0, p1, delta); + kv->seq_add(seq_id, p0, p1, delta); } // deprecated @@ -2594,7 +2217,7 @@ void llama_kv_cache_seq_div( llama_pos p0, llama_pos p1, int d) { - return llama_kv_self_seq_div(ctx, seq_id, p0, p1, d); + llama_kv_self_seq_div(ctx, seq_id, p0, p1, d); } void llama_kv_self_seq_div( @@ -2608,7 +2231,7 @@ void llama_kv_self_seq_div( return; } - return kv->seq_div(seq_id, p0, p1, d); + kv->seq_div(seq_id, p0, p1, d); } // deprecated @@ -2627,7 +2250,7 @@ llama_pos llama_kv_self_seq_pos_max(llama_context * ctx, llama_seq_id seq_id) { // deprecated void llama_kv_cache_defrag(llama_context * ctx) { - return llama_kv_self_defrag(ctx); + llama_kv_self_defrag(ctx); } void llama_kv_self_defrag(llama_context * ctx) { @@ -2636,7 +2259,8 @@ void llama_kv_self_defrag(llama_context * ctx) { return; } - return kv->defrag(); + // force defrag + kv->defrag_sched(-1.0f); } // deprecated diff --git a/src/llama-context.h b/src/llama-context.h index 5457f077c1..cf41ac57b9 100644 --- a/src/llama-context.h +++ b/src/llama-context.h @@ -27,7 +27,12 @@ struct llama_context { void synchronize(); - const llama_model & get_model() const; + const llama_model & get_model() const; + const llama_cparams & get_cparams() const; + + ggml_backend_sched_t get_sched() const; + + ggml_context * get_ctx_compute() const; uint32_t n_ctx() const; uint32_t n_ctx_per_seq() const; @@ -137,49 +142,30 @@ private: // Returns max number of outputs for which space was reserved. int32_t output_reserve(int32_t n_outputs); - // make the outputs have the same order they had in the user-provided batch - // TODO: maybe remove this - void output_reorder(); - // // graph // +public: int32_t graph_max_nodes() const; // zero-out inputs and create the ctx_compute for the compute graph ggml_cgraph * graph_init(); - llm_graph_result_ptr graph_build( - ggml_context * ctx, - ggml_cgraph * gf, - const llama_ubatch & ubatch, - llm_graph_type gtype); - // returns the result of ggml_backend_sched_graph_compute_async execution ggml_status graph_compute( ggml_cgraph * gf, bool batched); +private: + llm_graph_result_ptr graph_build( + ggml_context * ctx, + ggml_cgraph * gf, + const llama_ubatch & ubatch, + llm_graph_type gtype); + llm_graph_cb graph_get_cb() const; - // used by kv_self_update() - ggml_tensor * build_rope_shift( - ggml_context * ctx0, - ggml_tensor * cur, - ggml_tensor * shift, - ggml_tensor * factors, - float freq_base, - float freq_scale) const; - - llm_graph_result_ptr build_kv_self_shift( - ggml_context * ctx0, - ggml_cgraph * gf) const; - - llm_graph_result_ptr build_kv_self_defrag( - ggml_context * ctx0, - ggml_cgraph * gf) const; - // TODO: read/write lora adapters and cvec size_t state_write_data(llama_io_write_i & io); size_t state_read_data (llama_io_read_i & io); @@ -196,11 +182,10 @@ private: llama_cparams cparams; llama_adapter_cvec cvec; llama_adapter_loras loras; - llama_sbatch sbatch; llama_cross cross; // TODO: tmp for handling cross-attention - need something better probably - std::unique_ptr kv_self; + std::unique_ptr memory; // TODO: remove bool logits_all = false; diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index fabb9ca237..0da4e7d2b0 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -284,24 +284,7 @@ void llm_graph_input_s_copy::set_input(const llama_ubatch * ubatch) { // assuming copy destinations ALWAYS happen ONLY on the cells between head and head+n for (uint32_t i = 0; i < n_kv; ++i) { - const uint32_t cell_id = i + kv_self->head; - - ////////////////////////////////////////////// - // TODO: this should not mutate the KV cache ! - llama_kv_cell & kv_cell = const_cast(kv_self)->cells[i]; - - // prevent out-of-bound sources - if (kv_cell.src < 0 || (uint32_t) kv_cell.src >= kv_self->size) { - kv_cell.src = cell_id; - } - - data[i] = kv_cell.src; - - // TODO: do not mutate the KV cache - // ensure copy only happens once - if (kv_cell.src != (int32_t) cell_id) { - kv_cell.src = cell_id; - } + data[i] = kv_self->s_copy(i); } } } @@ -317,18 +300,7 @@ void llm_graph_input_s_mask::set_input(const llama_ubatch * ubatch) { // clear unused states for (int i = 0; i < n_kv; ++i) { - const uint32_t cell_id = i + kv_self->head; - - ////////////////////////////////////////////// - // TODO: this should not mutate the KV cache ! - llama_kv_cell & kv_cell = const_cast(kv_self)->cells[i]; - - data[i] = (float) (kv_cell.src >= 0); - - // only clear once - if (kv_cell.src < 0) { - kv_cell.src = cell_id; - } + data[i] = kv_self->s_mask(i); } } } @@ -1105,7 +1077,7 @@ ggml_tensor * llm_graph_context::build_inp_cls() const { } ggml_tensor * llm_graph_context::build_inp_s_copy() const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); auto inp = std::make_unique(kv_self); @@ -1122,7 +1094,7 @@ ggml_tensor * llm_graph_context::build_inp_s_copy() const { } ggml_tensor * llm_graph_context::build_inp_s_mask() const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); auto inp = std::make_unique(kv_self); @@ -1436,8 +1408,6 @@ ggml_tensor * llm_graph_context::build_attn( // store to KV cache { - GGML_ASSERT(!kv_self->recurrent); - const auto kv_head = kv_self->head; GGML_ASSERT(kv_self->size == n_ctx); @@ -1587,7 +1557,7 @@ ggml_tensor * llm_graph_context::build_copy_mask_state( ggml_tensor * state_mask, int32_t n_state, int32_t n_seqs) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto n_kv = kv_self->n; const auto kv_head = kv_self->head; @@ -1619,7 +1589,7 @@ ggml_tensor * llm_graph_context::build_rwkv_token_shift_load( ggml_tensor * state_mask, const llama_ubatch & ubatch, int il) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto token_shift_count = hparams.token_shift_count; @@ -1640,7 +1610,7 @@ ggml_tensor * llm_graph_context::build_rwkv_token_shift_store( ggml_tensor * token_shift, const llama_ubatch & ubatch, int il) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto token_shift_count = hparams.token_shift_count; const auto n_embd = hparams.n_embd; diff --git a/src/llama-graph.h b/src/llama-graph.h index d0c8d32192..5b404366dc 100644 --- a/src/llama-graph.h +++ b/src/llama-graph.h @@ -19,6 +19,7 @@ struct llama_cparams; class llama_memory_i; class llama_kv_cache_unified; +class llama_kv_cache_recurrent; // certain models (typically multi-modal) can produce different types of graphs enum llm_graph_type { @@ -186,26 +187,26 @@ public: class llm_graph_input_s_copy : public llm_graph_input_i { public: - llm_graph_input_s_copy(const llama_kv_cache_unified * kv_self) : kv_self(kv_self) {} + llm_graph_input_s_copy(const llama_kv_cache_recurrent * kv_self) : kv_self(kv_self) {} virtual ~llm_graph_input_s_copy() = default; void set_input(const llama_ubatch * ubatch) override; ggml_tensor * s_copy; // I32 [kv_size] - const llama_kv_cache_unified * kv_self; + const llama_kv_cache_recurrent * kv_self; }; class llm_graph_input_s_mask : public llm_graph_input_i { public: - llm_graph_input_s_mask(const llama_kv_cache_unified * kv_self) : kv_self(kv_self) {} + llm_graph_input_s_mask(const llama_kv_cache_recurrent * kv_self) : kv_self(kv_self) {} virtual ~llm_graph_input_s_mask() = default; void set_input(const llama_ubatch * ubatch) override; ggml_tensor * s_mask; // F32 [1, n_kv] - const llama_kv_cache_unified * kv_self; + const llama_kv_cache_recurrent * kv_self; }; class llm_graph_input_cross_embd : public llm_graph_input_i { @@ -350,8 +351,8 @@ struct llm_graph_params { const llama_cparams & cparams; const llama_ubatch & ubatch; - ggml_backend_sched * sched; - ggml_backend * backend_cpu; + ggml_backend_sched_t sched; + ggml_backend_t backend_cpu; const llama_adapter_cvec * cvec; const llama_adapter_loras * loras; @@ -402,9 +403,9 @@ struct llm_graph_context { ggml_context * ctx0 = nullptr; - ggml_backend_sched * sched; + ggml_backend_sched_t sched; - ggml_backend * backend_cpu; // TODO: needed by build_attn_mha, figure out a way to remove? + ggml_backend_t backend_cpu; // TODO: needed by build_attn_mha, figure out a way to remove? const llama_adapter_cvec * cvec; const llama_adapter_loras * loras; diff --git a/src/llama-kv-cache.cpp b/src/llama-kv-cache.cpp index 7c9d46d811..3dcad65bb6 100644 --- a/src/llama-kv-cache.cpp +++ b/src/llama-kv-cache.cpp @@ -4,33 +4,41 @@ #include "llama-batch.h" #include "llama-cparams.h" #include "llama-model.h" +#include "llama-context.h" #include #include +#include #include #include #include -llama_kv_cache_unified::llama_kv_cache_unified(const llama_hparams & hparams, callbacks cbs) : hparams(hparams), cbs(std::move(cbs)) { +// +// llama_kv_cache_unified +// + +uint32_t llama_kv_cache_unified::get_padding(const llama_cparams & cparams) { + // the FA kernels require padding to avoid extra runtime boundary checks + return cparams.flash_attn ? 256u : 32u; } -bool llama_kv_cache_unified::init( +llama_kv_cache_unified::llama_kv_cache_unified( const llama_model & model, - const llama_cparams & cparams, ggml_type type_k, ggml_type type_v, + bool v_trans, + bool offload, uint32_t kv_size, - bool offload) { + uint32_t padding) : model(model), hparams(model.hparams), v_trans(v_trans), padding(padding) { const int32_t n_layer = hparams.n_layer; has_shift = false; + can_shift = true; - recurrent = llama_model_is_recurrent(&model); - v_trans = !recurrent && !cparams.flash_attn; - can_shift = !recurrent; + LLAMA_LOG_INFO("%s: kv_size = %d, type_k = '%s', type_v = '%s', n_layer = %d, can_shift = %d, padding = %d\n", + __func__, kv_size, ggml_type_name(type_k), ggml_type_name(type_v), n_layer, can_shift, padding); - LLAMA_LOG_INFO("%s: kv_size = %d, offload = %d, type_k = '%s', type_v = '%s', n_layer = %d, can_shift = %d\n", - __func__, kv_size, offload, ggml_type_name(type_k), ggml_type_name(type_v), n_layer, can_shift); + GGML_ASSERT(kv_size % padding == 0 && "kv_size must be a multiple of padding"); head = 0; size = kv_size; @@ -76,23 +84,20 @@ bool llama_kv_cache_unified::init( const char * dev_name = "CPU"; - ggml_backend_buffer_type_t buft; + ggml_backend_buffer_type_t buft = ggml_backend_cpu_buffer_type(); + if (offload) { auto * dev = model.dev_layer(i); buft = ggml_backend_dev_buffer_type(dev); dev_name = ggml_backend_dev_name(dev); - } else { - buft = ggml_backend_cpu_buffer_type(); } - LLAMA_LOG_DEBUG("%s: layer %3d: n_embd_k_gqa = %d, n_embd_v_gqa = %d, dev = %s\n", __func__, - i, n_embd_k_gqa, n_embd_v_gqa, dev_name); + LLAMA_LOG_DEBUG("%s: layer %3d: dev = %s\n", __func__, i, dev_name); ggml_context * ctx = ctx_for_buft(buft); if (!ctx) { - LLAMA_LOG_ERROR("%s: failed to create ggml context for kv cache\n", __func__); - return false; + throw std::runtime_error("failed to create ggml context for kv cache"); } ggml_tensor * k = ggml_new_tensor_1d(ctx, type_k, n_embd_k_gqa*kv_size); @@ -110,55 +115,28 @@ bool llama_kv_cache_unified::init( ggml_backend_buffer_t buf = ggml_backend_alloc_ctx_tensors_from_buft(ctx, buft); if (!buf) { - LLAMA_LOG_ERROR("%s: failed to allocate buffer for kv cache\n", __func__); - return false; + throw std::runtime_error("failed to allocate buffer for kv cache"); } ggml_backend_buffer_clear(buf, 0); LLAMA_LOG_INFO("%s: %10s KV buffer size = %8.2f MiB\n", __func__, ggml_backend_buffer_name(buf), ggml_backend_buffer_get_size(buf)/1024.0/1024.0); bufs.emplace_back(buf); } - return true; -} + { + const size_t memory_size_k = size_k_bytes(); + const size_t memory_size_v = size_v_bytes(); -int32_t llama_kv_cache_unified::get_n_tokens() const { - int32_t result = 0; - - for (uint32_t i = 0; i < size; i++) { - result += cells[i].seq_id.size(); + LLAMA_LOG_INFO("%s: KV self size = %7.2f MiB, K (%s): %7.2f MiB, V (%s): %7.2f MiB\n", __func__, + (float)(memory_size_k + memory_size_v) / (1024.0f * 1024.0f), + ggml_type_name(type_k), (float)memory_size_k / (1024.0f * 1024.0f), + ggml_type_name(type_v), (float)memory_size_v / (1024.0f * 1024.0f)); } - - return result; -} - -int32_t llama_kv_cache_unified::get_used_cells() const { - return used; -} - -size_t llama_kv_cache_unified::total_size() const { - size_t size = 0; - for (const auto & buf : bufs) { - size += ggml_backend_buffer_get_size(buf.get()); - } - - return size; -} - -llama_pos llama_kv_cache_unified::pos_max() const { - llama_pos pos_max = -1; - for (const auto & cell : cells) { - pos_max = std::max(pos_max, cell.pos); - } - - return pos_max; } void llama_kv_cache_unified::clear() { for (int32_t i = 0; i < (int32_t) size; ++i) { cells[i].pos = -1; cells[i].seq_id.clear(); - cells[i].src = -1; - cells[i].tail = -1; } head = 0; used = 0; @@ -179,35 +157,6 @@ bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos p1 = std::numeric_limits::max(); } - // models like Mamba or RWKV can't have a state partially erased - if (recurrent) { - if (seq_id >= (int64_t) size) { - // could be fatal - return false; - } - if (0 <= seq_id) { - int32_t & tail_id = cells[seq_id].tail; - if (tail_id >= 0) { - const llama_kv_cell & cell = cells[tail_id]; - // partial intersection is invalid - if ((0 < p0 && p0 <= cell.pos) || (0 < p1 && p1 <= cell.pos)) { - return false; - } - // invalidate tails which will be cleared - if (p0 <= cell.pos && cell.pos < p1) { - tail_id = -1; - } - } - } else { - // seq_id is negative, then the range should include everything or nothing - if (p0 != p1 && (p0 != 0 || p1 != std::numeric_limits::max())) { - return false; - } - } - - return true; - } - for (uint32_t i = 0; i < size; ++i) { if (cells[i].pos >= p0 && cells[i].pos < p1) { if (seq_id < 0) { @@ -224,7 +173,6 @@ bool llama_kv_cache_unified::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos } cells[i].pos = -1; - cells[i].src = -1; if (new_head == size) { new_head = i; @@ -254,34 +202,6 @@ void llama_kv_cache_unified::seq_cp(llama_seq_id seq_id_src, llama_seq_id seq_id p1 = std::numeric_limits::max(); } - if (recurrent) { - if ((uint32_t) seq_id_dst < size && (uint32_t) seq_id_src < size) { - llama_kv_cell & tail_src = cells[seq_id_src]; - llama_kv_cell & tail_dst = cells[seq_id_dst]; - if (tail_dst.tail >= 0) { - // clear destination seq_id if it wasn't empty - llama_kv_cell & cell_dst = cells[tail_dst.tail]; - - cell_dst.seq_id.erase(seq_id_dst); - tail_dst.tail = -1; - if (cell_dst.seq_id.empty()) { - cell_dst.pos = -1; - cell_dst.delta = -1; - cell_dst.src = -1; - used -= 1; - } - } - if (tail_src.tail >= 0) { - llama_kv_cell & cell_src = cells[tail_src.tail]; - - cell_src.seq_id.insert(seq_id_dst); - tail_dst.tail = tail_src.tail; - } - } - - return; - } - // otherwise, this is the KV of a Transformer-like model head = 0; @@ -296,17 +216,12 @@ void llama_kv_cache_unified::seq_keep(llama_seq_id seq_id) { uint32_t new_head = size; for (uint32_t i = 0; i < size; ++i) { - if (recurrent && (llama_seq_id) i != seq_id) { - cells[i].tail = -1; - } - if (!cells[i].has_seq_id(seq_id)) { if (cells[i].pos >= 0) { used--; } cells[i].pos = -1; - cells[i].src = -1; cells[i].seq_id.clear(); if (new_head == size){ @@ -344,20 +259,6 @@ void llama_kv_cache_unified::seq_add(llama_seq_id seq_id, llama_pos p0, llama_po return; } - if (recurrent) { - // for Mamba-like or RWKV models, only the pos needs to be shifted - if (0 <= seq_id && seq_id < (int64_t) size) { - const int32_t tail_id = cells[seq_id].tail; - if (tail_id >= 0) { - llama_kv_cell & cell = cells[tail_id]; - if (cell.has_seq_id(seq_id) && p0 <= cell.pos && cell.pos < p1) { - cell.pos += delta; - } - } - } - return; - } - for (uint32_t i = 0; i < size; ++i) { if (cells[i].has_seq_id(seq_id) && cells[i].pos >= p0 && cells[i].pos < p1) { has_shift = true; @@ -400,21 +301,6 @@ void llama_kv_cache_unified::seq_div(llama_seq_id seq_id, llama_pos p0, llama_po return; } - if (recurrent) { - // for Mamba-like or RWKV models, only the pos needs to be changed - if (0 <= seq_id && seq_id < (int64_t) size) { - const int32_t tail_id = cells[seq_id].tail; - if (tail_id >= 0) { - llama_kv_cell & cell = cells[tail_id]; - if (cell.has_seq_id(seq_id) && p0 <= cell.pos && cell.pos < p1) { - cell.pos /= d; - } - } - } - - return; - } - for (uint32_t i = 0; i < size; ++i) { if (cells[i].has_seq_id(seq_id) && cells[i].pos >= p0 && cells[i].pos < p1) { has_shift = true; @@ -440,23 +326,11 @@ llama_pos llama_kv_cache_unified::seq_pos_max(llama_seq_id seq_id) const { return result; } -void llama_kv_cache_unified::defrag() { - if (!recurrent) { - do_defrag = true; - } -} - void llama_kv_cache_unified::restore() { if (pending.ranges.empty()) { return; } - // TODO: tmp - move to llama_kv_cache_recurrent - if (recurrent) { - seq_rm(-1, -1, -1); - return; - } - uint32_t new_head = size; for (auto & range : pending.ranges) { @@ -469,7 +343,6 @@ void llama_kv_cache_unified::restore() { } cells[i].pos = -1; - cells[i].src = -1; } new_head = std::min(new_head, range.c0); @@ -481,11 +354,6 @@ void llama_kv_cache_unified::restore() { } void llama_kv_cache_unified::commit() { - // TODO: tmp - move to llama_kv_cache_recurrent - if (recurrent) { - return; - } - if (pending.ranges.empty()) { LLAMA_LOG_WARN("%s: no pending KV cache updates to commit - might indicate a bug (ref: %s)\n", __func__, "https://github.com/ggml-org/llama.cpp/pull/12695"); @@ -495,8 +363,98 @@ void llama_kv_cache_unified::commit() { pending.ranges.clear(); } -bool llama_kv_cache_unified::get_can_shift() const { - return can_shift; +bool llama_kv_cache_unified::update(llama_context & lctx) { + bool need_reserve = false; + + auto * sched = lctx.get_sched(); + + if (has_shift) { + if (!get_can_shift()) { + GGML_ABORT("The current KV cache / model configuration does not support K-shift"); + } + + LLAMA_LOG_DEBUG("%s: applying K-shift\n", __func__); + + // apply K-shift if needed + if (hparams.rope_type != LLAMA_ROPE_TYPE_NONE) { + ggml_backend_sched_reset(sched); + + auto * gf = lctx.graph_init(); + + auto res = build_graph_shift(lctx.get_cparams(), lctx.get_ctx_compute(), gf); + + ggml_backend_sched_alloc_graph(sched, gf); + + res->set_inputs(nullptr); + + lctx.graph_compute(gf, false); + + need_reserve = true; + } + + { + has_shift = false; + + for (uint32_t i = 0; i < size; ++i) { + cells[i].delta = 0; + } + } + } + + if (do_defrag) { + LLAMA_LOG_DEBUG("%s: defragmenting KV cache\n", __func__); + + if (defrag_prepare(lctx.graph_max_nodes())) { + ggml_backend_sched_reset(sched); + + auto * gf = lctx.graph_init(); + + auto res = build_graph_defrag(lctx.get_cparams(), lctx.get_ctx_compute(), gf); + + ggml_backend_sched_alloc_graph(sched, gf); + + res->set_inputs(nullptr); + + lctx.graph_compute(gf, false); + + need_reserve = true; + } + + do_defrag = false; + } + + return need_reserve; +} + +void llama_kv_cache_unified::defrag_sched(float thold) { + // - do not defrag small contexts (i.e. < 2048 tokens) + // - count the padding towards the number of used tokens + const float fragmentation = n >= 2048 ? std::max(0.0f, 1.0f - (float(used + padding)/n)) : 0.0f; + + // queue defragmentation for next llama_kv_cache_update + if (fragmentation > thold) { + LLAMA_LOG_DEBUG("%s: fragmentation: %.2f - requesting defrag\n", __func__, fragmentation); + + do_defrag = true; + } +} + +void llama_kv_cache_unified::set_full() { + n = size; +} + +llama_sbatch llama_kv_cache_unified::sbatch_init( + const llama_batch & batch, + bool logits_all) { + return llama_sbatch(batch, hparams.n_embd, true, logits_all); +} + +llama_ubatch llama_kv_cache_unified::ubatch_next( + llama_sbatch & sbatch, + uint32_t n_ubatch, + bool embd_pooled) const { + GGML_UNUSED(embd_pooled); + return sbatch.split_simple(n_ubatch); } bool llama_kv_cache_unified::find_slot( @@ -511,169 +469,6 @@ bool llama_kv_cache_unified::find_slot( head = 0; } - if (recurrent) { - // For recurrent state architectures (like Mamba or RWKV), - // each cache cell can store the state for a whole sequence. - // A slot should be always be contiguous. - - // can only process batches with an equal number of new tokens in each sequence - GGML_ASSERT(ubatch.equal_seqs); - - int32_t min = size - 1; - int32_t max = 0; - - // everything should fit if all seq_ids are smaller than the max - for (uint32_t s = 0; s < n_seqs; ++s) { - const uint32_t n_seq_id = ubatch.n_seq_id[s]; - for (uint32_t j = 0; j < n_seq_id; ++j) { - const llama_seq_id seq_id = ubatch.seq_id[s][j]; - - if (seq_id < 0 || (uint32_t) seq_id >= size) { - // too big seq_id - // TODO: would it be possible to resize the cache instead? - LLAMA_LOG_ERROR("%s: seq_id=%d >= n_seq_max=%d Try using a bigger --parallel value\n", __func__, seq_id, size); - return false; - } - if (j > 0) { - llama_kv_cell & seq = cells[seq_id]; - if (seq.tail >= 0) { - llama_kv_cell & cell = cells[seq.tail]; - // clear cells from seq_ids that become shared - // (should not normally happen, but let's handle it anyway) - cell.seq_id.erase(seq_id); - seq.tail = -1; - if (cell.seq_id.empty()) { - cell.pos = -1; - cell.src = -1; - used -= 1; - } - } - } - } - } - -#ifndef NDEBUG - { - std::vector tails_verif; - tails_verif.assign(size, -1); - for (uint32_t i = 0; i < size; ++i) { - llama_kv_cell & cell = cells[i]; - for (llama_seq_id seq_id : cell.seq_id) { - if (tails_verif[seq_id] != -1) { - LLAMA_LOG_ERROR("%s: duplicate tail for seq_id %d in cell %d and %d\n", __func__, seq_id, i, tails_verif[seq_id]); - } - tails_verif[seq_id] = i; - } - } - for (uint32_t i = 0; i < size; ++i) { - if (tails_verif[i] != cells[i].tail) { - LLAMA_LOG_ERROR("%s: wrong tail for seq_id %d, (%d instead of %d)\n", __func__, i, cells[i].tail, tails_verif[i]); - } - } - } -#endif - - // find next empty cell - uint32_t next_empty_cell = head; - - for (uint32_t i = 0; i < size; ++i) { - if (next_empty_cell >= size) { next_empty_cell -= size; } - llama_kv_cell & cell = cells[next_empty_cell]; - if (cell.is_empty()) { break; } - next_empty_cell += 1; - } - - // find usable cell range - for (uint32_t s = 0; s < n_seqs; ++s) { - const llama_seq_id seq_id = ubatch.seq_id[s][0]; - llama_kv_cell & seq_meta = cells[seq_id]; - bool has_cell = false; - if (seq_meta.tail >= 0) { - llama_kv_cell & cell = cells[seq_meta.tail]; - GGML_ASSERT(cell.has_seq_id(seq_id)); - // does this seq_id "own" the cell? - if (cell.seq_id.size() == 1) { has_cell = true; } - } - if (!has_cell) { - llama_kv_cell & empty_cell = cells[next_empty_cell]; - GGML_ASSERT(empty_cell.is_empty()); - // copy old tail into the empty cell - if (seq_meta.tail >= 0) { - llama_kv_cell & orig_cell = cells[seq_meta.tail]; - empty_cell.pos = orig_cell.pos; - empty_cell.src = orig_cell.src; - orig_cell.seq_id.erase(seq_id); - empty_cell.seq_id.insert(seq_id); // will be overwritten - } - seq_meta.tail = next_empty_cell; - // find next empty cell - if (s + 1 < n_seqs) { - next_empty_cell += 1; - for (uint32_t i = 0; i < size; ++i) { - if (next_empty_cell >= size) { next_empty_cell -= size; } - llama_kv_cell & cell = cells[next_empty_cell]; - if (cell.is_empty()) { break; } - next_empty_cell += 1; - } - } - } - if (min > seq_meta.tail) { min = seq_meta.tail; } - if (max < seq_meta.tail) { max = seq_meta.tail; } - } - - // gather and re-order - for (uint32_t s = 0; s < n_seqs; ++s) { - int32_t dst_id = s + min; - int32_t src_id = cells[ubatch.seq_id[s][0]].tail; - if (dst_id != src_id) { - llama_kv_cell & dst_cell = cells[dst_id]; - llama_kv_cell & src_cell = cells[src_id]; - - std::swap(dst_cell.pos, src_cell.pos); - std::swap(dst_cell.src, src_cell.src); - std::swap(dst_cell.seq_id, src_cell.seq_id); - - // swap tails (assuming they NEVER overlap) - for (const llama_seq_id seq_id : src_cell.seq_id) { - cells[seq_id].tail = src_id; - } - for (const llama_seq_id seq_id : dst_cell.seq_id) { - cells[seq_id].tail = dst_id; - } - } - } - - // update the pos of the used seqs - for (uint32_t s = 0; s < n_seqs; ++s) { - const llama_pos last_pos = ubatch.pos[n_seq_tokens * s + n_seq_tokens - 1]; - int32_t cell_id = s + min; - llama_kv_cell & cell = cells[cell_id]; - - if (cell.pos >= 0 && last_pos != cell.pos + (llama_pos) n_seq_tokens) { - // What should happen when the pos backtracks or skips a value? - // Clearing the state mid-batch would require special-casing which isn't done. - LLAMA_LOG_WARN("%s: non-consecutive token position %d after %d for sequence %d with %u new tokens\n", - __func__, last_pos, cell.pos, ubatch.seq_id[s][0], n_seq_tokens); - } - cell.pos = last_pos; - cell.seq_id.clear(); - for (int32_t j = 0; j < ubatch.n_seq_id[s]; ++j) { - const llama_seq_id seq_id = ubatch.seq_id[s][j]; - cell.seq_id.insert(seq_id); - cells[seq_id].tail = cell_id; - } - } - - // allow getting the range of used cells, from head to head + n - head = min; - n = max - min + 1; - used = std::count_if(cells.begin(), cells.end(), - [](const llama_kv_cell& cell){ return !cell.is_empty(); }); - - // sanity check - return n >= n_seqs; - } - // otherwise, one cell per token. if (n_tokens > size) { @@ -725,24 +520,50 @@ bool llama_kv_cache_unified::find_slot( pending.ranges.push_back({head, head + n_tokens}); + // a heuristic, to avoid attending the full cache if it is not yet utilized + // after enough generations, the benefit from this heuristic disappears + // if we start defragmenting the cache, the benefit from this will be more important + n = std::min(size, std::max(padding, GGML_PAD(cell_max(), padding))); + + //printf("n = %5d, used = %5d, head = %5d\n", n, used, head); + return true; } -uint32_t llama_kv_cache_unified::get_padding(const llama_cparams & cparams) const { - // the FA kernels require padding to avoid extra runtime boundary checks - return cparams.flash_attn ? 256u : 32u; -} +int32_t llama_kv_cache_unified::get_n_tokens() const { + int32_t result = 0; -uint32_t llama_kv_cache_unified::cell_max() const { - for (uint32_t i = size; i > 0; --i) { - const llama_kv_cell & cell = cells[i - 1]; - - if (cell.pos >= 0 && !cell.is_empty()) { - return i; - } + for (uint32_t i = 0; i < size; i++) { + result += cells[i].seq_id.size(); } - return 0; + return result; +} + +int32_t llama_kv_cache_unified::get_used_cells() const { + return used; +} + +bool llama_kv_cache_unified::get_can_shift() const { + return can_shift; +} + +llama_pos llama_kv_cache_unified::get_pos_max() const { + llama_pos pos_max = -1; + for (const auto & cell : cells) { + pos_max = std::max(pos_max, cell.pos); + } + + return pos_max; +} + +size_t llama_kv_cache_unified::total_size() const { + size_t size = 0; + for (const auto & buf : bufs) { + size += ggml_backend_buffer_get_size(buf.get()); + } + + return size; } size_t llama_kv_cache_unified::size_k_bytes() const { @@ -765,6 +586,269 @@ size_t llama_kv_cache_unified::size_v_bytes() const { return size_v_bytes; } +ggml_tensor * llama_kv_cache_unified::build_rope_shift( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_tensor * cur, + ggml_tensor * shift, + ggml_tensor * factors, + float freq_base, + float freq_scale) const { + const auto & n_ctx_orig = cparams.n_ctx_orig_yarn; + + const auto & yarn_ext_factor = cparams.yarn_ext_factor; + const auto & yarn_beta_fast = cparams.yarn_beta_fast; + const auto & yarn_beta_slow = cparams.yarn_beta_slow; + + const auto & n_rot = hparams.n_rot; + const auto & rope_type = hparams.rope_type; + + // See llm_build_deepseek2() for why attn_factor has to be scaled for YaRN RoPE to work correctly. + // See https://github.com/ggerganov/llama.cpp/discussions/7416 for detailed explanation. + const float yarn_attn_factor = model.arch == LLM_ARCH_DEEPSEEK2 ? 1.0f / (1.0f + 0.1f * logf(1.0f / freq_scale)) : cparams.yarn_attn_factor; + + ggml_tensor * tmp; + + if (ggml_is_quantized(cur->type)) { + // dequantize to f32 -> RoPE -> quantize back + tmp = ggml_cast(ctx, cur, GGML_TYPE_F32); + + tmp = ggml_rope_ext(ctx, tmp, + shift, factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, + yarn_ext_factor, yarn_attn_factor, yarn_beta_fast, yarn_beta_slow); + + tmp = ggml_cpy(ctx, tmp, cur); + } else { + // we rotate only the first n_rot dimensions + tmp = ggml_rope_ext_inplace(ctx, cur, + shift, factors, n_rot, rope_type, n_ctx_orig, freq_base, freq_scale, + yarn_ext_factor, yarn_attn_factor, yarn_beta_fast, yarn_beta_slow); + } + + return tmp; +} + +class llm_graph_input_k_shift : public llm_graph_input_i { +public: + llm_graph_input_k_shift(const llama_kv_cache_unified * kv_self) : kv_self(kv_self) {} + virtual ~llm_graph_input_k_shift() = default; + + void set_input(const llama_ubatch * ubatch) override; + + ggml_tensor * k_shift; // I32 [kv_size] + + const llama_kv_cache_unified * kv_self; +}; + +void llm_graph_input_k_shift::set_input(const llama_ubatch * ubatch) { + GGML_UNUSED(ubatch); + + if (k_shift) { + assert(ggml_backend_buffer_is_host(k_shift->buffer)); + + int32_t * data = (int32_t *) k_shift->data; + + for (uint32_t i = 0; i < kv_self->size; ++i) { + data[i] = kv_self->cells[i].delta; + } + } +} + +llm_graph_result_ptr llama_kv_cache_unified::build_graph_shift( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_cgraph * gf) const { + auto res = std::make_unique(); + + const auto & n_layer = hparams.n_layer; + + const auto & n_embd_head_k = hparams.n_embd_head_k; + //const auto & n_embd_head_v = hparams.n_embd_head_v; + + const uint32_t n_ctx_per_seq = cparams.n_ctx / cparams.n_seq_max; + + //GGML_ASSERT(kv_self->size == n_ctx); + + auto inp = std::make_unique(this); + + inp->k_shift = ggml_new_tensor_1d(ctx, GGML_TYPE_I32, cparams.n_ctx); + ggml_set_input(inp->k_shift); + + for (uint32_t il = 0; il < n_layer; ++il) { + const int64_t n_head_kv = hparams.n_head_kv(il); + const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(il); + + const bool is_swa = hparams.is_swa(il); + + // note: the swa rope params could become part of the cparams in the future + // if we decide to make them configurable, like the non-sliding ones + const float freq_base_l = is_swa ? hparams.rope_freq_base_train_swa : cparams.rope_freq_base; + const float freq_scale_l = is_swa ? hparams.rope_freq_scale_train_swa : cparams.rope_freq_scale; + + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); + + ggml_tensor * k = + ggml_view_3d(ctx, k_l[il], + n_embd_head_k, n_head_kv, size, + ggml_row_size(k_l[il]->type, n_embd_head_k), + ggml_row_size(k_l[il]->type, n_embd_k_gqa), + 0); + + ggml_tensor * cur = build_rope_shift(cparams, ctx, k, inp->k_shift, rope_factors, freq_base_l, freq_scale_l); + + ggml_build_forward_expand(gf, cur); + } + + res->add_input(std::move(inp)); + + return res; +} + +llm_graph_result_ptr llama_kv_cache_unified::build_graph_defrag( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_cgraph * gf) const { + auto res = std::make_unique(); + + const auto & ids = defrag_info.ids; + +#if 0 + // CPU defrag + // + // TODO: optimizations are possible: + // - multiple threads + // - avoid copying to the host memory when already there + // + // likely not worth the effort, as we have ggml_graph based defrag + // + + const uint32_t n_embd_k_gqa = hparams.n_embd_k_gqa(); + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(); + + const uint32_t kv_size = size; + + std::vector buf_k; + std::vector buf_v; + + for (uint32_t il = 0; il < n_layer; ++il) { + const size_t k_size_row = ggml_row_size(k_l[il]->type, n_embd_k_gqa); + const size_t k_size = ggml_row_size(k_l[il]->type, n_embd_k_gqa*kv_size); + + const size_t v_size_el = ggml_type_size(v_l[il]->type); + const size_t v_size = ggml_row_size (v_l[il]->type, n_embd_v_gqa*kv_size); + + buf_k.resize(k_size); + buf_v.resize(v_size); + + ggml_backend_tensor_get(k_l[il], buf_k.data(), 0, buf_k.size()); + ggml_backend_tensor_get(v_l[il], buf_v.data(), 0, buf_v.size()); + + // batch move [i, i+nm) to [id, id+nm) + // note: cells can move only to a lower index + for (uint32_t i = 0; i < n_kv; ++i) { + const uint32_t id = ids[i]; + + if (i == id || id == n_kv) { + continue; + } + + uint32_t nm = 1; + + while (i + nm < n_kv && ids[i + nm] == id + nm) { + nm++; + } + + // move keys + { + const int64_t os = i*k_size_row; + const int64_t od = id*k_size_row; + + memcpy(buf_k.data() + od, buf_k.data() + os, nm*k_size_row); + } + + // move values (note: they are transposed) + { + const int64_t os = i; + const int64_t od = id; + + for (uint32_t j = 0; j < n_embd_v_gqa; ++j) { + memcpy(buf_v.data() + (od + j*kv_size)*v_size_el, buf_v.data() + (os + j*kv_size)*v_size_el, nm*v_size_el); + } + } + + i += nm - 1; + } + + ggml_backend_tensor_set(k_l[il], buf_k.data(), 0, buf_k.size()); + ggml_backend_tensor_set(v_l[il], buf_v.data(), 0, buf_v.size()); + } +#else + for (uint32_t i = 0; i < ids.size(); ++i) { + const uint32_t id = ids[i]; + + if (i == id || id == ids.size()) { + continue; + } + + uint32_t nm = 1; + + while (i + nm < ids.size() && ids[i + nm] == id + nm) { + nm++; + } + + for (uint32_t il = 0; il < hparams.n_layer; ++il) { // NOLINT + const int64_t n_embd_k_gqa = hparams.n_embd_k_gqa(il); + const int64_t n_embd_v_gqa = hparams.n_embd_v_gqa(il); + + ggml_tensor * view_k_src = ggml_view_2d(ctx, k_l[il], + n_embd_k_gqa, nm, + ggml_row_size(k_l[il]->type, n_embd_k_gqa), + ggml_row_size(k_l[il]->type, n_embd_k_gqa*i)); + + ggml_tensor * view_k_dst = ggml_view_2d(ctx, k_l[il], + n_embd_k_gqa, nm, + ggml_row_size(k_l[il]->type, n_embd_k_gqa), + ggml_row_size(k_l[il]->type, n_embd_k_gqa*id)); + + ggml_tensor * view_v_src; + ggml_tensor * view_v_dst; + + if (cparams.flash_attn) { + // NOTE: the V cache is not transposed when using flash attention + view_v_src = ggml_view_2d(ctx, v_l[il], + n_embd_v_gqa, nm, + ggml_row_size(v_l[il]->type, n_embd_v_gqa), + ggml_row_size(v_l[il]->type, n_embd_v_gqa*i)); + + view_v_dst = ggml_view_2d(ctx, v_l[il], + n_embd_v_gqa, nm, + ggml_row_size(v_l[il]->type, n_embd_v_gqa), + ggml_row_size(v_l[il]->type, n_embd_v_gqa*id)); + } else { + view_v_src = ggml_view_2d(ctx, v_l[il], + nm, n_embd_v_gqa, + ggml_row_size(v_l[il]->type, size), + ggml_row_size(v_l[il]->type, i)); + + view_v_dst = ggml_view_2d(ctx, v_l[il], + nm, n_embd_v_gqa, + ggml_row_size(v_l[il]->type, size), + ggml_row_size(v_l[il]->type, id)); + } + + ggml_build_forward_expand(gf, ggml_cpy(ctx, view_k_src, view_k_dst)); + ggml_build_forward_expand(gf, ggml_cpy(ctx, view_v_src, view_v_dst)); + } + + i += nm - 1; + } + + //LLAMA_LOG_INFO("gf->n_nodes = %d\n", gf->n_nodes); +#endif + + return res; +} + bool llama_kv_cache_unified::defrag_prepare(int32_t n_max_nodes) { const uint32_t n_layer = hparams.n_layer; @@ -867,7 +951,7 @@ bool llama_kv_cache_unified::defrag_prepare(int32_t n_max_nodes) { cells[i0 + nf] = cell1; // clear the old cell and move the head there - cell1 = llama_kv_cell(); + cell1 = kv_cell(); head = n_used; if (!cont) { @@ -895,13 +979,25 @@ bool llama_kv_cache_unified::defrag_prepare(int32_t n_max_nodes) { return false; } - LLAMA_LOG_DEBUG("(tmp log) KV defrag cell moves: %u\n", n_moves); + LLAMA_LOG_DEBUG("%s: (tmp log) KV defrag cell moves: %u\n", __func__, n_moves); - LLAMA_LOG_DEBUG("expected gf nodes: %u\n", 6*n_moves*n_layer); + LLAMA_LOG_DEBUG("%s: expected gf nodes: %u\n", __func__, 6*n_moves*n_layer); return true; } +uint32_t llama_kv_cache_unified::cell_max() const { + for (uint32_t i = size; i > 0; --i) { + const kv_cell & cell = cells[i - 1]; + + if (cell.pos >= 0 && !cell.is_empty()) { + return i; + } + } + + return 0; +} + void llama_kv_cache_unified::state_write(llama_io_write_i & io, llama_seq_id seq_id) const { std::vector> cell_ranges; // ranges, from inclusive, to exclusive uint32_t cell_count = 0; @@ -1110,7 +1206,7 @@ bool llama_kv_cache_unified::state_read_meta(llama_io_read_i & io, uint32_t cell clear(); for (uint32_t i = 0; i < cell_count; ++i) { - llama_kv_cell & cell = cells[i]; + kv_cell & cell = cells[i]; llama_pos pos; uint32_t n_seq_id; @@ -1133,15 +1229,6 @@ bool llama_kv_cache_unified::state_read_meta(llama_io_read_i & io, uint32_t cell } cell.seq_id.insert(seq_id); - - if (recurrent) { - int32_t & tail = cells[seq_id].tail; - if (tail != -1) { - LLAMA_LOG_ERROR("%s: duplicate tail for seq_id %d in cell %d and %d\n", __func__, seq_id, i, tail); - return false; - } - tail = i; - } } } @@ -1149,14 +1236,6 @@ bool llama_kv_cache_unified::state_read_meta(llama_io_read_i & io, uint32_t cell used = cell_count; } - if (recurrent) { - for (uint32_t i = 0; i < cell_count; ++i) { - uint32_t cell_id = head + i; - // make sure the recurrent states will keep their restored state - cells[cell_id].src = cell_id; - } - } - return true; } @@ -1174,7 +1253,1034 @@ bool llama_kv_cache_unified::state_read_data(llama_io_read_i & io, uint32_t cell LLAMA_LOG_ERROR("%s: not enough cells in kv cache to restore state (%u > %u)\n", __func__, cell_count, size); return false; } - if (v_trans != (bool) v_trans) { + if (this->v_trans != (bool) v_trans) { + LLAMA_LOG_ERROR("%s: incompatible V transposition\n", __func__); + return false; + } + + // For each layer, read the keys for each cell, one row is one cell, read as one contiguous block + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_k_gqa = hparams.n_embd_k_gqa(il) + hparams.n_embd_k_s(); + + // Read type of key + int32_t k_type_i_ref; + io.read_to(&k_type_i_ref, sizeof(k_type_i_ref)); + const int32_t k_type_i = (int32_t) k_l[il]->type; + if (k_type_i != k_type_i_ref) { + LLAMA_LOG_ERROR("%s: mismatched key type (%d != %d, layer %d)\n", __func__, k_type_i, k_type_i_ref, il); + return false; + } + + // Read row size of key + uint64_t k_size_row_ref; + io.read_to(&k_size_row_ref, sizeof(k_size_row_ref)); + const size_t k_size_row = ggml_row_size(k_l[il]->type, n_embd_k_gqa); + if (k_size_row != k_size_row_ref) { + LLAMA_LOG_ERROR("%s: mismatched key row size (%zu != %zu, layer %d)\n", __func__, k_size_row, (size_t) k_size_row_ref, il); + return false; + } + + if (cell_count) { + // Read and set the keys for the whole cell range + ggml_backend_tensor_set(k_l[il], io.read(cell_count * k_size_row), head * k_size_row, cell_count * k_size_row); + } + } + + if (!this->v_trans) { + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(il) + hparams.n_embd_v_s(); + + // Read type of value + int32_t v_type_i_ref; + io.read_to(&v_type_i_ref, sizeof(v_type_i_ref)); + const int32_t v_type_i = (int32_t)v_l[il]->type; + if (v_type_i != v_type_i_ref) { + LLAMA_LOG_ERROR("%s: mismatched value type (%d != %d, layer %d)\n", __func__, v_type_i, v_type_i_ref, il); + return false; + } + + // Read row size of value + uint64_t v_size_row_ref; + io.read_to(&v_size_row_ref, sizeof(v_size_row_ref)); + const size_t v_size_row = ggml_row_size(v_l[il]->type, n_embd_v_gqa); + if (v_size_row != v_size_row_ref) { + LLAMA_LOG_ERROR("%s: mismatched value row size (%zu != %zu, layer %d)\n", __func__, v_size_row, (size_t) v_size_row_ref, il); + return false; + } + + if (cell_count) { + // Read and set the values for the whole cell range + ggml_backend_tensor_set(v_l[il], io.read(cell_count * v_size_row), head * v_size_row, cell_count * v_size_row); + } + } + } else { + // For each layer, read the values for each cell (transposed) + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(il) + hparams.n_embd_v_s(); + + // Read type of value + int32_t v_type_i_ref; + io.read_to(&v_type_i_ref, sizeof(v_type_i_ref)); + const int32_t v_type_i = (int32_t)v_l[il]->type; + if (v_type_i != v_type_i_ref) { + LLAMA_LOG_ERROR("%s: mismatched value type (%d != %d, layer %d)\n", __func__, v_type_i, v_type_i_ref, il); + return false; + } + + // Read element size of value + uint32_t v_size_el_ref; + io.read_to(&v_size_el_ref, sizeof(v_size_el_ref)); + const size_t v_size_el = ggml_type_size(v_l[il]->type); + if (v_size_el != v_size_el_ref) { + LLAMA_LOG_ERROR("%s: mismatched value element size (%zu != %zu, layer %d)\n", __func__, v_size_el, (size_t) v_size_el_ref, il); + return false; + } + + // Read GQA embedding size + uint32_t n_embd_v_gqa_ref; + io.read_to(&n_embd_v_gqa_ref, sizeof(n_embd_v_gqa_ref)); + if (n_embd_v_gqa != n_embd_v_gqa_ref) { + LLAMA_LOG_ERROR("%s: mismatched GQA embedding size (%u != %u, layer %d)\n", __func__, n_embd_v_gqa, n_embd_v_gqa_ref, il); + return false; + } + + if (cell_count) { + // For each row in the transposed matrix, read the values for the whole cell range + for (uint32_t j = 0; j < n_embd_v_gqa; ++j) { + const size_t dst_offset = (head + j * size) * v_size_el; + ggml_backend_tensor_set(v_l[il], io.read(cell_count * v_size_el), dst_offset, cell_count * v_size_el); + } + } + } + } + + return true; +} + +// +// llama_kv_cache_recurrent +// + +llama_kv_cache_recurrent::llama_kv_cache_recurrent( + const llama_model & model, + ggml_type type_k, + ggml_type type_v, + bool offload, + uint32_t kv_size) : hparams(model.hparams) { + const int32_t n_layer = hparams.n_layer; + + LLAMA_LOG_INFO("%s: kv_size = %d, type_k = '%s', type_v = '%s', n_layer = %d\n", + __func__, kv_size, ggml_type_name(type_k), ggml_type_name(type_v), n_layer); + + head = 0; + size = kv_size; + used = 0; + + this->type_k = type_k; + this->type_v = type_v; + + cells.clear(); + cells.resize(kv_size); + + // create a context for each buffer type + std::map ctx_map; + auto ctx_for_buft = [&](ggml_backend_buffer_type_t buft) -> ggml_context * { + auto it = ctx_map.find(buft); + if (it == ctx_map.end()) { + ggml_init_params params = { + /*.mem_size =*/ size_t(2u*n_layer*ggml_tensor_overhead()), + /*.mem_buffer =*/ NULL, + /*.no_alloc =*/ true, + }; + + ggml_context * ctx = ggml_init(params); + if (!ctx) { + return nullptr; + } + + ctx_map[buft] = ctx; + ctxs.emplace_back(ctx); + + return ctx; + } + + return it->second; + }; + + k_l.reserve(n_layer); + v_l.reserve(n_layer); + + for (int i = 0; i < n_layer; i++) { + const uint32_t n_embd_k_gqa = hparams.n_embd_k_gqa(i) + hparams.n_embd_k_s(); + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(i) + hparams.n_embd_v_s(); + + const char * dev_name = "CPU"; + + ggml_backend_buffer_type_t buft = ggml_backend_cpu_buffer_type(); + + if (offload) { + auto * dev = model.dev_layer(i); + buft = ggml_backend_dev_buffer_type(dev); + + dev_name = ggml_backend_dev_name(dev); + } + + LLAMA_LOG_DEBUG("%s, layer %3d: dev = %s\n", __func__, i, dev_name); + + ggml_context * ctx = ctx_for_buft(buft); + if (!ctx) { + throw std::runtime_error("failed to create ggml context for kv cache"); + } + + ggml_tensor * k = ggml_new_tensor_1d(ctx, type_k, n_embd_k_gqa*kv_size); + ggml_tensor * v = ggml_new_tensor_1d(ctx, type_v, n_embd_v_gqa*kv_size); + ggml_format_name(k, "cache_k_l%d", i); + ggml_format_name(v, "cache_v_l%d", i); + k_l.push_back(k); + v_l.push_back(v); + } + + // allocate tensors and initialize the buffers to avoid NaNs in the padding + for (auto it : ctx_map) { + auto * buft = it.first; + auto * ctx = it.second; + + ggml_backend_buffer_t buf = ggml_backend_alloc_ctx_tensors_from_buft(ctx, buft); + if (!buf) { + throw std::runtime_error("failed to allocate buffer for kv cache"); + } + ggml_backend_buffer_clear(buf, 0); + LLAMA_LOG_INFO("%s: %10s KV buffer size = %8.2f MiB\n", __func__, ggml_backend_buffer_name(buf), ggml_backend_buffer_get_size(buf)/1024.0/1024.0); + bufs.emplace_back(buf); + } + + { + const size_t memory_size_k = size_k_bytes(); + const size_t memory_size_v = size_v_bytes(); + + LLAMA_LOG_INFO("%s: KV self size = %7.2f MiB, K (%s): %7.2f MiB, V (%s): %7.2f MiB\n", __func__, + (float)(memory_size_k + memory_size_v) / (1024.0f * 1024.0f), + ggml_type_name(type_k), (float)memory_size_k / (1024.0f * 1024.0f), + ggml_type_name(type_v), (float)memory_size_v / (1024.0f * 1024.0f)); + } +} + +void llama_kv_cache_recurrent::clear() { + for (int32_t i = 0; i < (int32_t) size; ++i) { + cells[i].pos = -1; + cells[i].seq_id.clear(); + cells[i].src = -1; + cells[i].tail = -1; + } + head = 0; + used = 0; + + for (auto & buf : bufs) { + ggml_backend_buffer_clear(buf.get(), 0); + } +} + +bool llama_kv_cache_recurrent::seq_rm(llama_seq_id seq_id, llama_pos p0, llama_pos p1) { + uint32_t new_head = size; + + if (p0 < 0) { + p0 = 0; + } + + if (p1 < 0) { + p1 = std::numeric_limits::max(); + } + + // models like Mamba or RWKV can't have a state partially erased + if (seq_id >= (int64_t) size) { + // could be fatal + return false; + } + if (0 <= seq_id) { + int32_t & tail_id = cells[seq_id].tail; + if (tail_id >= 0) { + const kv_cell & cell = cells[tail_id]; + // partial intersection is invalid + if ((0 < p0 && p0 <= cell.pos) || (0 < p1 && p1 <= cell.pos)) { + return false; + } + // invalidate tails which will be cleared + if (p0 <= cell.pos && cell.pos < p1) { + tail_id = -1; + } + } + } else { + // seq_id is negative, then the range should include everything or nothing + if (p0 != p1 && (p0 != 0 || p1 != std::numeric_limits::max())) { + return false; + } + } + + for (uint32_t i = 0; i < size; ++i) { + if (cells[i].pos >= p0 && cells[i].pos < p1) { + if (seq_id < 0) { + cells[i].seq_id.clear(); + } else if (cells[i].has_seq_id(seq_id)) { + cells[i].seq_id.erase(seq_id); + } else { + continue; + } + if (cells[i].is_empty()) { + // keep count of the number of used cells + if (cells[i].pos >= 0) { + used--; + } + cells[i].pos = -1; + cells[i].src = -1; + if (new_head == size) { + new_head = i; + } + } + } + } + + // If we freed up a slot, set head to it so searching can start there. + if (new_head != size && new_head < head) { + head = new_head; + } + + return true; +} + +void llama_kv_cache_recurrent::seq_cp(llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) { + if (seq_id_src == seq_id_dst) { + return; + } + + if (p0 < 0) { + p0 = 0; + } + + if (p1 < 0) { + p1 = std::numeric_limits::max(); + } + + if ((uint32_t) seq_id_dst < size && (uint32_t) seq_id_src < size) { + kv_cell & tail_src = cells[seq_id_src]; + kv_cell & tail_dst = cells[seq_id_dst]; + if (tail_dst.tail >= 0) { + // clear destination seq_id if it wasn't empty + kv_cell & cell_dst = cells[tail_dst.tail]; + + cell_dst.seq_id.erase(seq_id_dst); + tail_dst.tail = -1; + if (cell_dst.seq_id.empty()) { + cell_dst.pos = -1; + cell_dst.src = -1; + used -= 1; + } + } + if (tail_src.tail >= 0) { + kv_cell & cell_src = cells[tail_src.tail]; + + cell_src.seq_id.insert(seq_id_dst); + tail_dst.tail = tail_src.tail; + } + } +} + +void llama_kv_cache_recurrent::seq_keep(llama_seq_id seq_id) { + uint32_t new_head = size; + + for (uint32_t i = 0; i < size; ++i) { + if ((llama_seq_id) i != seq_id) { + cells[i].tail = -1; + } + + if (!cells[i].has_seq_id(seq_id)) { + if (cells[i].pos >= 0) { + used--; + } + + cells[i].pos = -1; + cells[i].src = -1; + cells[i].seq_id.clear(); + + if (new_head == size){ + new_head = i; + } + } else { + cells[i].seq_id.clear(); + cells[i].seq_id.insert(seq_id); + } + } + + // If we freed up a slot, set head to it so searching can start there. + if (new_head != size && new_head < head) { + head = new_head; + } +} + +void llama_kv_cache_recurrent::seq_add(llama_seq_id seq_id, llama_pos p0, llama_pos p1, llama_pos delta) { + if (delta == 0) { + return; + } + + if (p0 < 0) { + p0 = 0; + } + + if (p1 < 0) { + p1 = std::numeric_limits::max(); + } + + // If there is no range then return early to avoid looping over the + if (p0 == p1) { + return; + } + + // for Mamba-like or RWKV models, only the pos needs to be shifted + if (0 <= seq_id && seq_id < (int64_t) size) { + const int32_t tail_id = cells[seq_id].tail; + if (tail_id >= 0) { + kv_cell & cell = cells[tail_id]; + if (cell.has_seq_id(seq_id) && p0 <= cell.pos && cell.pos < p1) { + cell.pos += delta; + } + } + } +} + +void llama_kv_cache_recurrent::seq_div(llama_seq_id seq_id, llama_pos p0, llama_pos p1, int d) { + if (d == 1) { + return; + } + + if (p0 < 0) { + p0 = 0; + } + + if (p1 < 0) { + p1 = std::numeric_limits::max(); + } + + // If there is no range then return early to avoid looping over the cache. + if (p0 == p1) { + return; + } + + // for Mamba-like or RWKV models, only the pos needs to be changed + if (0 <= seq_id && seq_id < (int64_t) size) { + const int32_t tail_id = cells[seq_id].tail; + if (tail_id >= 0) { + kv_cell & cell = cells[tail_id]; + if (cell.has_seq_id(seq_id) && p0 <= cell.pos && cell.pos < p1) { + cell.pos /= d; + } + } + } +} + +llama_pos llama_kv_cache_recurrent::seq_pos_max(llama_seq_id seq_id) const { + llama_pos result = 0; + + for (uint32_t i = 0; i < size; ++i) { + if (cells[i].has_seq_id(seq_id)) { + result = std::max(result, cells[i].pos); + } + } + + return result; +} + +void llama_kv_cache_recurrent::restore() { + if (pending.ranges.empty()) { + return; + } + + seq_rm(-1, -1, -1); +} + +void llama_kv_cache_recurrent::commit() { + pending.ranges.clear(); +} + +bool llama_kv_cache_recurrent::update(llama_context & lctx) { + GGML_UNUSED(lctx); + return false; +} + +void llama_kv_cache_recurrent::defrag_sched(float thold) { + GGML_UNUSED(thold); + // noop +} + +void llama_kv_cache_recurrent::set_full() { + n = size; +} + +llama_sbatch llama_kv_cache_recurrent::sbatch_init( + const llama_batch & batch, + bool logits_all) { + return llama_sbatch(batch, hparams.n_embd, false, logits_all); +} + +llama_ubatch llama_kv_cache_recurrent::ubatch_next(llama_sbatch & sbatch, uint32_t n_ubatch, bool embd_pooled) const { + if (embd_pooled) { + // Pooled embeddings cannot be split across ubatches (yet) + return sbatch.split_seq(n_ubatch); + } + + return sbatch.split_equal(n_ubatch); +} + +bool llama_kv_cache_recurrent::find_slot( + const llama_ubatch & ubatch) { + const uint32_t n_tokens = ubatch.n_tokens; + const uint32_t n_seqs = ubatch.n_seqs; + + const uint32_t n_seq_tokens = ubatch.n_seq_tokens; + + // if we have enough unused cells before the current head -> + // better to start searching from the beginning of the cache, hoping to fill it + if (head > used + 2*n_tokens) { + head = 0; + } + + // For recurrent state architectures (like Mamba or RWKV), + // each cache cell can store the state for a whole sequence. + // A slot should be always be contiguous. + + // can only process batches with an equal number of new tokens in each sequence + GGML_ASSERT(ubatch.equal_seqs); + + int32_t min = size - 1; + int32_t max = 0; + + // everything should fit if all seq_ids are smaller than the max + for (uint32_t s = 0; s < n_seqs; ++s) { + const uint32_t n_seq_id = ubatch.n_seq_id[s]; + for (uint32_t j = 0; j < n_seq_id; ++j) { + const llama_seq_id seq_id = ubatch.seq_id[s][j]; + + if (seq_id < 0 || (uint32_t) seq_id >= size) { + // too big seq_id + // TODO: would it be possible to resize the cache instead? + LLAMA_LOG_ERROR("%s: seq_id=%d >= n_seq_max=%d Try using a bigger --parallel value\n", __func__, seq_id, size); + return false; + } + if (j > 0) { + kv_cell & seq = cells[seq_id]; + if (seq.tail >= 0) { + kv_cell & cell = cells[seq.tail]; + // clear cells from seq_ids that become shared + // (should not normally happen, but let's handle it anyway) + cell.seq_id.erase(seq_id); + seq.tail = -1; + if (cell.seq_id.empty()) { + cell.pos = -1; + cell.src = -1; + used -= 1; + } + } + } + } + } + +#ifndef NDEBUG + { + std::vector tails_verif; + tails_verif.assign(size, -1); + for (uint32_t i = 0; i < size; ++i) { + kv_cell & cell = cells[i]; + for (llama_seq_id seq_id : cell.seq_id) { + if (tails_verif[seq_id] != -1) { + LLAMA_LOG_ERROR("%s: duplicate tail for seq_id %d in cell %d and %d\n", __func__, seq_id, i, tails_verif[seq_id]); + } + tails_verif[seq_id] = i; + } + } + for (uint32_t i = 0; i < size; ++i) { + if (tails_verif[i] != cells[i].tail) { + LLAMA_LOG_ERROR("%s: wrong tail for seq_id %d, (%d instead of %d)\n", __func__, i, cells[i].tail, tails_verif[i]); + } + } + } +#endif + + // find next empty cell + uint32_t next_empty_cell = head; + + for (uint32_t i = 0; i < size; ++i) { + if (next_empty_cell >= size) { next_empty_cell -= size; } + kv_cell & cell = cells[next_empty_cell]; + if (cell.is_empty()) { break; } + next_empty_cell += 1; + } + + // find usable cell range + for (uint32_t s = 0; s < n_seqs; ++s) { + const llama_seq_id seq_id = ubatch.seq_id[s][0]; + kv_cell & seq_meta = cells[seq_id]; + bool has_cell = false; + if (seq_meta.tail >= 0) { + kv_cell & cell = cells[seq_meta.tail]; + GGML_ASSERT(cell.has_seq_id(seq_id)); + // does this seq_id "own" the cell? + if (cell.seq_id.size() == 1) { has_cell = true; } + } + if (!has_cell) { + kv_cell & empty_cell = cells[next_empty_cell]; + GGML_ASSERT(empty_cell.is_empty()); + // copy old tail into the empty cell + if (seq_meta.tail >= 0) { + kv_cell & orig_cell = cells[seq_meta.tail]; + empty_cell.pos = orig_cell.pos; + empty_cell.src = orig_cell.src; + orig_cell.seq_id.erase(seq_id); + empty_cell.seq_id.insert(seq_id); // will be overwritten + } + seq_meta.tail = next_empty_cell; + // find next empty cell + if (s + 1 < n_seqs) { + next_empty_cell += 1; + for (uint32_t i = 0; i < size; ++i) { + if (next_empty_cell >= size) { next_empty_cell -= size; } + kv_cell & cell = cells[next_empty_cell]; + if (cell.is_empty()) { break; } + next_empty_cell += 1; + } + } + } + if (min > seq_meta.tail) { min = seq_meta.tail; } + if (max < seq_meta.tail) { max = seq_meta.tail; } + } + + // gather and re-order + for (uint32_t s = 0; s < n_seqs; ++s) { + int32_t dst_id = s + min; + int32_t src_id = cells[ubatch.seq_id[s][0]].tail; + if (dst_id != src_id) { + kv_cell & dst_cell = cells[dst_id]; + kv_cell & src_cell = cells[src_id]; + + std::swap(dst_cell.pos, src_cell.pos); + std::swap(dst_cell.src, src_cell.src); + std::swap(dst_cell.seq_id, src_cell.seq_id); + + // swap tails (assuming they NEVER overlap) + for (const llama_seq_id seq_id : src_cell.seq_id) { + cells[seq_id].tail = src_id; + } + for (const llama_seq_id seq_id : dst_cell.seq_id) { + cells[seq_id].tail = dst_id; + } + } + } + + // update the pos of the used seqs + for (uint32_t s = 0; s < n_seqs; ++s) { + const llama_pos last_pos = ubatch.pos[n_seq_tokens * s + n_seq_tokens - 1]; + int32_t cell_id = s + min; + kv_cell & cell = cells[cell_id]; + + if (cell.pos >= 0 && last_pos != cell.pos + (llama_pos) n_seq_tokens) { + // What should happen when the pos backtracks or skips a value? + // Clearing the state mid-batch would require special-casing which isn't done. + LLAMA_LOG_WARN("%s: non-consecutive token position %d after %d for sequence %d with %u new tokens\n", + __func__, last_pos, cell.pos, ubatch.seq_id[s][0], n_seq_tokens); + } + cell.pos = last_pos; + cell.seq_id.clear(); + for (int32_t j = 0; j < ubatch.n_seq_id[s]; ++j) { + const llama_seq_id seq_id = ubatch.seq_id[s][j]; + cell.seq_id.insert(seq_id); + cells[seq_id].tail = cell_id; + } + } + + // allow getting the range of used cells, from head to head + n + head = min; + n = max - min + 1; + used = std::count_if(cells.begin(), cells.end(), + [](const kv_cell & cell){ return !cell.is_empty(); }); + + // sanity check + return n >= n_seqs; +} + +int32_t llama_kv_cache_recurrent::get_n_tokens() const { + int32_t result = 0; + + for (uint32_t i = 0; i < size; i++) { + result += cells[i].seq_id.size(); + } + + return result; +} + +int32_t llama_kv_cache_recurrent::get_used_cells() const { + return used; +} + +llama_pos llama_kv_cache_recurrent::get_pos_max() const { + llama_pos pos_max = -1; + for (const auto & cell : cells) { + pos_max = std::max(pos_max, cell.pos); + } + + return pos_max; +} + +bool llama_kv_cache_recurrent::get_can_shift() const { + return false; +} + +int32_t llama_kv_cache_recurrent::s_copy(int i) const { + const uint32_t cell_id = i + head; + + ////////////////////////////////////////////// + // TODO: this should not mutate the KV cache ! + kv_cell & cell = const_cast(cells[cell_id]); + + // prevent out-of-bound sources + if (cell.src < 0 || (uint32_t) cell.src >= size) { + cell.src = cell_id; + } + + int32_t res = cell.src; + + // TODO: do not mutate the KV cache + // ensure copy only happens once + if (cell.src != (int32_t) cell_id) { + cell.src = cell_id; + } + + return res; +} + +float llama_kv_cache_recurrent::s_mask(int i) const { + const uint32_t cell_id = i + head; + + ////////////////////////////////////////////// + // TODO: this should not mutate the KV cache ! + kv_cell & cell = const_cast(cells[cell_id]); + + float res = (float) (cell.src >= 0); + + // only clear once + if (cell.src < 0) { + cell.src = cell_id; + } + + return res; +} + +uint32_t llama_kv_cache_recurrent::cell_max() const { + for (uint32_t i = size; i > 0; --i) { + const kv_cell & cell = cells[i - 1]; + + if (cell.pos >= 0 && !cell.is_empty()) { + return i; + } + } + + return 0; +} + +size_t llama_kv_cache_recurrent::total_size() const { + size_t size = 0; + for (const auto & buf : bufs) { + size += ggml_backend_buffer_get_size(buf.get()); + } + + return size; +} + +size_t llama_kv_cache_recurrent::size_k_bytes() const { + size_t size_k_bytes = 0; + + for (const auto & k : k_l) { + size_k_bytes += ggml_nbytes(k); + } + + return size_k_bytes; +} + +size_t llama_kv_cache_recurrent::size_v_bytes() const { + size_t size_v_bytes = 0; + + for (const auto & v : v_l) { + size_v_bytes += ggml_nbytes(v); + } + + return size_v_bytes; +} + +void llama_kv_cache_recurrent::state_write(llama_io_write_i & io, llama_seq_id seq_id) const { + std::vector> cell_ranges; // ranges, from inclusive, to exclusive + uint32_t cell_count = 0; + + // Count the number of cells with the specified seq_id + // Find all the ranges of cells with this seq id (or all, when -1) + uint32_t cell_range_begin = size; + for (uint32_t i = 0; i < size; ++i) { + const auto & cell = cells[i]; + if ((seq_id == -1 && !cell.is_empty()) || cell.has_seq_id(seq_id)) { + ++cell_count; + if (cell_range_begin == size) { + cell_range_begin = i; + } + } else { + if (cell_range_begin != size) { + cell_ranges.emplace_back(cell_range_begin, i); + cell_range_begin = size; + } + } + } + if (cell_range_begin != size) { + cell_ranges.emplace_back(cell_range_begin, size); + } + + // DEBUG CHECK: Sum of cell counts in ranges should equal the total cell count + uint32_t cell_count_check = 0; + for (const auto & range : cell_ranges) { + cell_count_check += range.second - range.first; + } + GGML_ASSERT(cell_count == cell_count_check); + + io.write(&cell_count, sizeof(cell_count)); + + state_write_meta(io, cell_ranges, seq_id); + state_write_data(io, cell_ranges); +} + +void llama_kv_cache_recurrent::state_read(llama_io_read_i & io, llama_seq_id seq_id) { + uint32_t cell_count; + io.read_to(&cell_count, sizeof(cell_count)); + + bool res = true; + res = res && state_read_meta(io, cell_count, seq_id); + res = res && state_read_data(io, cell_count); + + if (!res) { + if (seq_id == -1) { + clear(); + } else { + seq_rm(seq_id, -1, -1); + } + throw std::runtime_error("failed to restore kv cache"); + } +} + +void llama_kv_cache_recurrent::state_write_meta(llama_io_write_i & io, const std::vector> & cell_ranges, llama_seq_id seq_id) const { + for (const auto & range : cell_ranges) { + for (uint32_t i = range.first; i < range.second; ++i) { + const auto & cell = cells[i]; + const llama_pos pos = cell.pos; + const uint32_t n_seq_id = seq_id == -1 ? cell.seq_id.size() : 0; + + io.write(&pos, sizeof(pos)); + io.write(&n_seq_id, sizeof(n_seq_id)); + + if (n_seq_id) { + for (auto seq_id : cell.seq_id) { + io.write(&seq_id, sizeof(seq_id)); + } + } + } + } +} + +void llama_kv_cache_recurrent::state_write_data(llama_io_write_i & io, const std::vector> & cell_ranges) const { + const uint32_t v_trans = 0; + const uint32_t n_layer = hparams.n_layer; + + io.write(&v_trans, sizeof(v_trans)); + io.write(&n_layer, sizeof(n_layer)); + + std::vector tmp_buf; + + // Iterate and write all the keys first, each row is a cell + // Get whole range at a time + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_k_gqa = hparams.n_embd_k_gqa(il) + hparams.n_embd_k_s(); + + // Write key type + const int32_t k_type_i = (int32_t)k_l[il]->type; + io.write(&k_type_i, sizeof(k_type_i)); + + // Write row size of key + const uint64_t k_size_row = ggml_row_size(k_l[il]->type, n_embd_k_gqa); + io.write(&k_size_row, sizeof(k_size_row)); + + // Read each range of cells of k_size length each into tmp_buf and write out + for (const auto & range : cell_ranges) { + const size_t range_size = range.second - range.first; + const size_t buf_size = range_size * k_size_row; + io.write_tensor(k_l[il], range.first * k_size_row, buf_size); + } + } + + if (!v_trans) { + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(il) + hparams.n_embd_v_s(); + + // Write value type + const int32_t v_type_i = (int32_t)v_l[il]->type; + io.write(&v_type_i, sizeof(v_type_i)); + + // Write row size of value + const uint64_t v_size_row = ggml_row_size(v_l[il]->type, n_embd_v_gqa); + io.write(&v_size_row, sizeof(v_size_row)); + + // Read each range of cells of v_size length each into tmp_buf and write out + for (const auto & range : cell_ranges) { + const size_t range_size = range.second - range.first; + const size_t buf_size = range_size * v_size_row; + io.write_tensor(v_l[il], range.first * v_size_row, buf_size); + } + } + } else { + // When v is transposed, we also need the element size and get the element ranges from each row + const uint32_t kv_size = size; + for (uint32_t il = 0; il < n_layer; ++il) { + const uint32_t n_embd_v_gqa = hparams.n_embd_v_gqa(il) + hparams.n_embd_v_s(); + + // Write value type + const int32_t v_type_i = (int32_t)v_l[il]->type; + io.write(&v_type_i, sizeof(v_type_i)); + + // Write element size + const uint32_t v_size_el = ggml_type_size(v_l[il]->type); + io.write(&v_size_el, sizeof(v_size_el)); + + // Write GQA embedding size + io.write(&n_embd_v_gqa, sizeof(n_embd_v_gqa)); + + // For each row, we get the element values of each cell + for (uint32_t j = 0; j < n_embd_v_gqa; ++j) { + // Read each range of cells of v_size_el length each into tmp_buf and write out + for (const auto & range : cell_ranges) { + const size_t range_size = range.second - range.first; + const size_t src_offset = (range.first + j * kv_size) * v_size_el; + const size_t buf_size = range_size * v_size_el; + io.write_tensor(v_l[il], src_offset, buf_size); + } + } + } + } +} + +bool llama_kv_cache_recurrent::state_read_meta(llama_io_read_i & io, uint32_t cell_count, llama_seq_id dest_seq_id) { + if (dest_seq_id != -1) { + // single sequence + + seq_rm(dest_seq_id, -1, -1); + + llama_sbatch sbatch; + llama_ubatch batch = sbatch.reserve_ubatch(cell_count, /* has_embd */ false); + + batch.n_tokens = cell_count; + batch.n_seq_tokens = cell_count; + batch.n_seqs = 1; + + for (uint32_t i = 0; i < cell_count; ++i) { + llama_pos pos; + uint32_t n_seq_id; + + io.read_to(&pos, sizeof(pos)); + io.read_to(&n_seq_id, sizeof(n_seq_id)); + + if (n_seq_id != 0) { + LLAMA_LOG_ERROR("%s: invalid seq_id-agnostic kv cell\n", __func__); + return false; + } + + batch.pos[i] = pos; + } + batch.n_seq_id[0] = 1; + batch.seq_id[0] = &dest_seq_id; + if (!find_slot(batch)) { + LLAMA_LOG_ERROR("%s: failed to find available cells in kv cache\n", __func__); + return false; + } + commit(); + + // DEBUG CHECK: kv.head should be our first cell, kv.head + cell_count - 1 should be our last cell (verify seq_id and pos values) + // Assume that this is one contiguous block of cells + GGML_ASSERT(head + cell_count <= size); + GGML_ASSERT(cells[head].pos == batch.pos[0]); + GGML_ASSERT(cells[head + cell_count - 1].pos == batch.pos[cell_count - 1]); + GGML_ASSERT(cells[head].has_seq_id(dest_seq_id)); + GGML_ASSERT(cells[head + cell_count - 1].has_seq_id(dest_seq_id)); + } else { + // whole KV cache restore + + if (cell_count > size) { + LLAMA_LOG_ERROR("%s: not enough cells in kv cache\n", __func__); + return false; + } + + clear(); + + for (uint32_t i = 0; i < cell_count; ++i) { + kv_cell & cell = cells[i]; + + llama_pos pos; + uint32_t n_seq_id; + + io.read_to(&pos, sizeof(pos)); + io.read_to(&n_seq_id, sizeof(n_seq_id)); + + cell.pos = pos; + + for (uint32_t j = 0; j < n_seq_id; ++j) { + llama_seq_id seq_id; + io.read_to(&seq_id, sizeof(seq_id)); + + // TODO: llama_kv_cache_recurrent should have a notion of max sequences + //if (seq_id < 0 || (uint32_t) seq_id >= llama_n_seq_max(ctx)) { + if (seq_id < 0) { + //LLAMA_LOG_ERROR("%s: invalid seq_id, %d is out of range [0, %u)\n", __func__, seq_id, llama_n_seq_max(ctx)); + LLAMA_LOG_ERROR("%s: invalid seq_id, %d is out of range [0, inf)\n", __func__, seq_id); + return false; + } + + cell.seq_id.insert(seq_id); + + int32_t & tail = cells[seq_id].tail; + if (tail != -1) { + LLAMA_LOG_ERROR("%s: duplicate tail for seq_id %d in cell %d and %d\n", __func__, seq_id, i, tail); + return false; + } + tail = i; + } + } + + head = 0; + used = cell_count; + } + + for (uint32_t i = 0; i < cell_count; ++i) { + uint32_t cell_id = head + i; + // make sure the recurrent states will keep their restored state + cells[cell_id].src = cell_id; + } + + return true; +} + +bool llama_kv_cache_recurrent::state_read_data(llama_io_read_i & io, uint32_t cell_count) { + uint32_t v_trans; + uint32_t n_layer; + io.read_to(&v_trans, sizeof(v_trans)); + io.read_to(&n_layer, sizeof(n_layer)); + + if (n_layer != hparams.n_layer) { + LLAMA_LOG_ERROR("%s: mismatched layer count (%u instead of %u)\n", __func__, n_layer, hparams.n_layer); + return false; + } + if (cell_count > size) { + LLAMA_LOG_ERROR("%s: not enough cells in kv cache to restore state (%u > %u)\n", __func__, cell_count, size); + return false; + } + if (false != (bool) v_trans) { LLAMA_LOG_ERROR("%s: incompatible V transposition\n", __func__); return false; } @@ -1326,7 +2432,7 @@ void llama_kv_cache_view_update(llama_kv_cache_view * view, const llama_kv_cache view->cells_sequences = (llama_seq_id *)p; } - const std::vector & kv_cells = kvu->cells; + const std::vector & kv_cells = kvu->cells; llama_kv_cache_view_cell * c_curr = view->cells; llama_seq_id * cs_curr = view->cells_sequences; int32_t used_cells = 0; diff --git a/src/llama-kv-cache.h b/src/llama-kv-cache.h index 56c74035ae..bf3b4b6a44 100644 --- a/src/llama-kv-cache.h +++ b/src/llama-kv-cache.h @@ -2,32 +2,72 @@ #include "llama.h" #include "llama-io.h" +#include "llama-graph.h" #include "llama-memory.h" #include "ggml-cpp.h" -#include #include #include struct llama_cparams; struct llama_hparams; struct llama_ubatch; +struct llama_sbatch; +struct llama_model; +struct llama_context; struct llama_kv_cache : public llama_memory_i { - using llama_memory_i::llama_memory_i; + virtual ~llama_kv_cache() = default; - virtual void restore() = 0; // call if batch processing fails - restores the cache state - virtual void commit() = 0; // call after successful batch processing - clears any pending state + // call if batch processing fails - restores the cache state + virtual void restore() = 0; - virtual int32_t get_n_tokens() const = 0; - virtual int32_t get_used_cells() const = 0; // TODO: remove, this is too-specific to the unified cache + // call after successful batch processing - clears any pending state + virtual void commit() = 0; - virtual bool get_can_shift() const = 0; + // process any pending defrag/shift/etc. operations + // optionally call once before processing a new batch + virtual bool update(llama_context & lctx) = 0; + + // schedule a defrag if the fragmentation threshold is exceeded. otherwise, do nothing + virtual void defrag_sched(float thold) = 0; + + // simulate full cache, used for allocating worst-case compute buffers + virtual void set_full() = 0; + + // + // batch processing + // + + virtual llama_sbatch sbatch_init(const llama_batch & batch, bool logits_all) = 0; + + // different KV caches require different batch splitting strategies + virtual llama_ubatch ubatch_next(llama_sbatch & sbatch, uint32_t n_ubatch, bool embd_pooled) const = 0; + + // find an empty slot of size "n_tokens" in the cache + virtual bool find_slot(const llama_ubatch & batch) = 0; + + // getters + virtual int32_t get_n_tokens() const = 0; + virtual int32_t get_used_cells() const = 0; // TODO: remove, this is too-specific to the unified cache + virtual llama_pos get_pos_max() const = 0; + virtual bool get_can_shift() const = 0; bool get_can_edit() const override { return get_can_shift(); } + + // + // state write/read + // + + virtual void state_write(llama_io_write_i & io, llama_seq_id seq_id = -1) const = 0; + virtual void state_read (llama_io_read_i & io, llama_seq_id seq_id = -1) = 0; }; +// +// llama_kv_cache_guard +// + struct llama_kv_cache_guard { llama_kv_cache_guard(llama_kv_cache * kv) : kv(kv) {} @@ -43,65 +83,50 @@ private: llama_kv_cache * kv; }; -struct llama_kv_cell { - llama_pos pos = -1; - llama_pos delta = 0; - int32_t src = -1; // used by recurrent state models to copy states - int32_t tail = -1; +// +// llama_kv_cache_unified +// - std::set seq_id; - - bool has_seq_id(const llama_seq_id & id) const { - return seq_id.find(id) != seq_id.end(); - } - - bool is_empty() const { - return seq_id.empty(); - } - - bool is_same_seq(const llama_kv_cell & other) const { - return seq_id == other.seq_id; - } -}; - -// ring-buffer of cached KV data -// TODO: pimpl // TODO: add notion of max sequences class llama_kv_cache_unified : public llama_kv_cache { public: - // can be used to query data from the model if needed - struct callbacks { - std::function get_rope_factors; + struct kv_cell { + llama_pos pos = -1; + llama_pos delta = 0; + + std::set seq_id; + + bool has_seq_id(const llama_seq_id & id) const { + return seq_id.find(id) != seq_id.end(); + } + + bool is_empty() const { + return seq_id.empty(); + } + + bool is_same_seq(const kv_cell & other) const { + return seq_id == other.seq_id; + } }; + static uint32_t get_padding(const llama_cparams & cparams); + llama_kv_cache_unified( - const llama_hparams & hparams, - callbacks cbs); - - virtual ~llama_kv_cache_unified() = default; - - // TODO: become constructor - bool init( - const llama_model & model, // TODO: do not reference the model - const llama_cparams & cparams, + const llama_model & model, ggml_type type_k, ggml_type type_v, + bool v_trans, + bool offload, uint32_t kv_size, - bool offload); + uint32_t padding); - int32_t get_n_tokens() const override; - int32_t get_used_cells() const override; + ~llama_kv_cache_unified() = default; - size_t total_size() const; - - // TODO: better data structures to reduce the cost of this operation - llama_pos pos_max() const; + // + // llama_memory_i + // void clear() override; - void defrag() override; - - virtual void restore() override; - virtual void commit() override; bool seq_rm (llama_seq_id seq_id, llama_pos p0, llama_pos p1) override; void seq_cp (llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) override; @@ -111,63 +136,40 @@ public: llama_pos seq_pos_max(llama_seq_id seq_id) const override; - bool get_can_shift() const override; + // + // llama_kv_cache + // + + void restore() override; + void commit() override; + + bool update(llama_context & ctx) override; + + void defrag_sched(float thold) override; + + void set_full() override; + + llama_sbatch sbatch_init(const llama_batch & batch, bool logits_all) override; + + llama_ubatch ubatch_next(llama_sbatch & sbatch, uint32_t n_ubatch, bool embd_pooled) const override; - // find an empty slot of size "n_tokens" in the cache // updates the cache head // Note: On success, it's important that cache.head points // to the first cell of the slot. - bool find_slot(const llama_ubatch & batch); + bool find_slot(const llama_ubatch & batch) override; - // TODO: maybe not needed - uint32_t get_padding(const llama_cparams & cparams) const; + int32_t get_n_tokens() const override; + int32_t get_used_cells() const override; - // find how many cells are currently in use - uint32_t cell_max() const; + // TODO: better data structures to reduce the cost of this operation + llama_pos get_pos_max() const override; - size_t size_k_bytes() const; - size_t size_v_bytes() const; - - // defrag - - struct { - std::vector ids; - } defrag_info; - - // return true if cells have been moved - bool defrag_prepare(int32_t n_max_nodes); - - // commit/restore cache - - struct slot_range { - uint32_t c0 = 0; // note: these are cell indices, not sequence positions - uint32_t c1 = 0; - }; - - // pending cell updates that are not yet committed - struct { - std::vector ranges; - } pending; + bool get_can_shift() const override; // state write/load - void state_write(llama_io_write_i & io, llama_seq_id seq_id = -1) const; - void state_read (llama_io_read_i & io, llama_seq_id seq_id = -1); - - // members - - const llama_hparams & hparams; - - callbacks cbs; - - bool has_shift = false; - bool do_defrag = false; - - // TODO: remove this and implement llama_kv_cache_recurrent instead - bool recurrent = false; // with recurrent state models, a cell can hold the state for more than one past token - - bool v_trans = true; // the value tensor is transposed - bool can_shift = false; + void state_write(llama_io_write_i & io, llama_seq_id seq_id = -1) const override; + void state_read (llama_io_read_i & io, llama_seq_id seq_id = -1) override; // Note: The value of head isn't only used to optimize searching // for a free KV slot. llama_decode_impl also uses it, so it @@ -179,18 +181,213 @@ public: // computed before each graph build uint32_t n = 0; - std::vector cells; + std::vector cells; std::vector k_l; // per layer std::vector v_l; private: + const llama_model & model; + const llama_hparams & hparams; + + bool has_shift = false; + bool do_defrag = false; + + bool v_trans = true; // the value tensor is transposed + bool can_shift = false; + + // required padding + uint32_t padding = 1; + ggml_type type_k = GGML_TYPE_F16; ggml_type type_v = GGML_TYPE_F16; std::vector ctxs; std::vector bufs; + // defrag + struct { + std::vector ids; + } defrag_info; + + // return true if cells have been moved + bool defrag_prepare(int32_t n_max_nodes); + + // commit/restore cache + struct slot_range { + uint32_t c0 = 0; // note: these are cell indices, not sequence positions + uint32_t c1 = 0; + }; + + // pending cell updates that are not yet committed + struct { + std::vector ranges; + } pending; + + // find how many cells are currently in use + uint32_t cell_max() const; + + size_t total_size() const; + + size_t size_k_bytes() const; + size_t size_v_bytes() const; + + ggml_tensor * build_rope_shift( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_tensor * cur, + ggml_tensor * shift, + ggml_tensor * factors, + float freq_base, + float freq_scale) const; + + llm_graph_result_ptr build_graph_shift( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_cgraph * gf) const; + + llm_graph_result_ptr build_graph_defrag( + const llama_cparams & cparams, + ggml_context * ctx, + ggml_cgraph * gf) const; + + void state_write_meta(llama_io_write_i & io, const std::vector> & cell_ranges, llama_seq_id seq_id = -1) const; + void state_write_data(llama_io_write_i & io, const std::vector> & cell_ranges) const; + + bool state_read_meta(llama_io_read_i & io, uint32_t cell_count, llama_seq_id dest_seq_id = -1); + bool state_read_data(llama_io_read_i & io, uint32_t cell_count); +}; + +// +// llama_kv_cache_recurrent +// + +class llama_kv_cache_recurrent : public llama_kv_cache { +public: + struct kv_cell { + llama_pos pos = -1; + int32_t src = -1; // used to copy states + int32_t tail = -1; + + std::set seq_id; + + bool has_seq_id(const llama_seq_id & id) const { + return seq_id.find(id) != seq_id.end(); + } + + bool is_empty() const { + return seq_id.empty(); + } + + bool is_same_seq(const kv_cell & other) const { + return seq_id == other.seq_id; + } + }; + + llama_kv_cache_recurrent( + const llama_model & model, + ggml_type type_k, + ggml_type type_v, + bool offload, + uint32_t kv_size); + + ~llama_kv_cache_recurrent() = default; + + // + // llama_memory_i + // + + void clear() override; + + bool seq_rm (llama_seq_id seq_id, llama_pos p0, llama_pos p1) override; + void seq_cp (llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) override; + void seq_keep(llama_seq_id seq_id) override; + void seq_add (llama_seq_id seq_id, llama_pos p0, llama_pos p1, llama_pos delta) override; + void seq_div (llama_seq_id seq_id, llama_pos p0, llama_pos p1, int d) override; + + llama_pos seq_pos_max(llama_seq_id seq_id) const override; + + // + // llama_kv_cache + // + + void restore() override; + void commit() override; + + bool update(llama_context & lctx) override; + + void defrag_sched(float thold) override; + + void set_full() override; + + llama_sbatch sbatch_init(const llama_batch & batch, bool logits_all) override; + + llama_ubatch ubatch_next(llama_sbatch & sbatch, uint32_t n_ubatch, bool embd_pooled) const override; + + bool find_slot(const llama_ubatch & batch) override; + + int32_t get_n_tokens() const override; + int32_t get_used_cells() const override; + + // TODO: better data structures to reduce the cost of this operation + llama_pos get_pos_max() const override; + + bool get_can_shift() const override; + + // TODO: temporary methods - they are not really const as they do const_cast<>, fix this + int32_t s_copy(int i) const; + float s_mask(int i) const; + + // state write/load + + void state_write(llama_io_write_i & io, llama_seq_id seq_id = -1) const override; + void state_read (llama_io_read_i & io, llama_seq_id seq_id = -1) override; + + // Note: The value of head isn't only used to optimize searching + // for a free KV slot. llama_decode_impl also uses it, so it + // cannot be freely changed after a slot has been allocated. + uint32_t head = 0; + uint32_t size = 0; + uint32_t used = 0; // used cells (i.e. at least one seq_id) + + // computed before each graph build + uint32_t n = 0; + + std::vector cells; + + std::vector k_l; // per layer + std::vector v_l; + +private: + //const llama_model & model; + const llama_hparams & hparams; + + // commit/restore cache + // TODO: rework for recurrent cache + struct slot_range { + uint32_t c0 = 0; // note: these are cell indices, not sequence positions + uint32_t c1 = 0; + }; + + // pending cell updates that are not yet committed + struct { + std::vector ranges; + } pending; + + ggml_type type_k = GGML_TYPE_F16; + ggml_type type_v = GGML_TYPE_F16; + + std::vector ctxs; + std::vector bufs; + + // find how many cells are currently in use + uint32_t cell_max() const; + + size_t total_size() const; + + size_t size_k_bytes() const; + size_t size_v_bytes() const; + void state_write_meta(llama_io_write_i & io, const std::vector> & cell_ranges, llama_seq_id seq_id = -1) const; void state_write_data(llama_io_write_i & io, const std::vector> & cell_ranges) const; @@ -198,11 +395,6 @@ private: bool state_read_data(llama_io_read_i & io, uint32_t cell_count); }; -// TODO: temporary reusing llama_kv_cache_unified -- implement recurrent cache and simplify llama_kv_cache_unified -//class llama_kv_cache_recurrent : public llama_kv_cache_unified { -//public: -// using llama_kv_cache_unified::llama_kv_cache_unified; -//}; // // kv cache view diff --git a/src/llama-memory.h b/src/llama-memory.h index dfa8c4e90f..c7412d5911 100644 --- a/src/llama-memory.h +++ b/src/llama-memory.h @@ -2,12 +2,22 @@ #include "llama.h" +struct llama_memory_params { + // kv cache + ggml_type type_k; + ggml_type type_v; + + // parameters for other types of memory + // ... +}; + // general concept of LLM memory // the KV cache is a type of LLM memory, but there can be other types class llama_memory_i { public: + virtual ~llama_memory_i() = default; + virtual void clear() = 0; - virtual void defrag() = 0; virtual bool seq_rm (llama_seq_id seq_id, llama_pos p0, llama_pos p1) = 0; virtual void seq_cp (llama_seq_id seq_id_src, llama_seq_id seq_id_dst, llama_pos p0, llama_pos p1) = 0; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index e5289f7077..e163de76a7 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -4445,6 +4445,19 @@ const ggml_tensor * llama_model::get_tensor(const char * name) const { return it->second; } +ggml_tensor * llama_model::get_rope_factors(uint32_t n_ctx_per_seq, int il) const { + // choose long/short freq factors based on the context size + if (layers[il].rope_freqs != nullptr) { + return layers[il].rope_freqs; + } + + if (n_ctx_per_seq > hparams.n_ctx_orig_yarn) { + return layers[il].rope_long; + } + + return layers[il].rope_short; +} + struct llm_build_llama : public llm_graph_context { llm_build_llama(const llama_model & model, const llm_graph_params & params, ggml_cgraph * gf) : llm_graph_context(params) { const int64_t n_embd_head = hparams.n_embd_head_v; @@ -4485,7 +4498,7 @@ struct llm_build_llama : public llm_graph_context { // self-attention { // rope freq factors for llama3; may return nullptr for llama2 and other models - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -4710,7 +4723,7 @@ struct llm_build_deci : public llm_graph_context { } else if (n_head > 0) { // self-attention // rope freq factors for llama3; may return nullptr for llama2 and other models - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -7192,7 +7205,7 @@ struct llm_build_phi3 : public llm_graph_context { // self-attention { // rope freq factors for 128k context - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); ggml_tensor* attn_norm_output = build_norm(inpL, model.layers[il].attn_norm, @@ -7944,7 +7957,7 @@ struct llm_build_minicpm3 : public llm_graph_context { for (int il = 0; il < n_layer; ++il) { ggml_tensor * inpSA = inpL; - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // norm cur = build_norm(inpL, @@ -8711,7 +8724,7 @@ struct llm_build_mamba : public llm_graph_context { ggml_tensor * state_mask, const llama_ubatch & ubatch, int il) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto kv_head = kv_self->head; @@ -9012,7 +9025,7 @@ struct llm_build_cohere2 : public llm_graph_context { // self-attention { // rope freq factors for 128k context - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -9950,7 +9963,7 @@ struct llm_build_deepseek : public llm_graph_context { // self-attention { // rope freq factors for llama3; may return nullptr for llama2 and other models - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -11314,7 +11327,7 @@ struct llm_build_exaone : public llm_graph_context { // self-attention { // rope freq factors for llama3; may return nullptr for llama2 and other models - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -11459,7 +11472,7 @@ struct llm_build_rwkv6_base : public llm_graph_context { ggml_tensor * state_mask, const llama_ubatch & ubatch, int il) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto n_tokens = ubatch.n_tokens; const auto n_seqs = ubatch.n_seqs; @@ -11855,7 +11868,7 @@ struct llm_build_rwkv7_base : public llm_graph_context { ggml_tensor *& first_layer_value, const llama_ubatch & ubatch, int il) const { - const llama_kv_cache_unified * kv_self = static_cast(memory); + const llama_kv_cache_recurrent * kv_self = static_cast(memory); const auto n_tokens = ubatch.n_tokens; const auto n_seqs = ubatch.n_seqs; @@ -12695,7 +12708,7 @@ struct llm_build_bailingmoe : public llm_graph_context { // self-attention { // rope freq factors for llama3; may return nullptr for llama2 and other models - ggml_tensor * rope_factors = static_cast(memory)->cbs.get_rope_factors(n_ctx_per_seq, il); + ggml_tensor * rope_factors = model.get_rope_factors(n_ctx_per_seq, il); // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); @@ -12815,7 +12828,7 @@ struct llm_build_bailingmoe : public llm_graph_context { } }; -llama_memory_i * llama_model::create_memory() const { +llama_memory_i * llama_model::create_memory(const llama_memory_params & params, llama_cparams & cparams) const { llama_memory_i * res; switch (arch) { @@ -12825,26 +12838,29 @@ llama_memory_i * llama_model::create_memory() const { case LLM_ARCH_RWKV7: case LLM_ARCH_ARWKV7: { - res = new llama_kv_cache_unified(hparams, { - /*.get_rope_factors =*/ nullptr - }); + res = new llama_kv_cache_recurrent( + *this, + GGML_TYPE_F32, + GGML_TYPE_F32, + cparams.offload_kqv, + std::max((uint32_t) 1, cparams.n_seq_max)); } break; default: { - res = new llama_kv_cache_unified(hparams, { - /*.get_rope_factors =*/ [this](uint32_t n_ctx_per_seq, int il) { - // choose long/short freq factors based on the context size - if (layers[il].rope_freqs != nullptr) { - return layers[il].rope_freqs; - } + const auto padding = llama_kv_cache_unified::get_padding(cparams); - if (n_ctx_per_seq > hparams.n_ctx_orig_yarn) { - return layers[il].rope_long; - } + cparams.n_ctx = GGML_PAD(cparams.n_ctx, padding); - return layers[il].rope_short; - } - }); + LLAMA_LOG_DEBUG("%s: n_ctx = %u (padded)\n", __func__, cparams.n_ctx); + + res = new llama_kv_cache_unified( + *this, + params.type_k, + params.type_v, + !cparams.flash_attn, + cparams.offload_kqv, + cparams.n_ctx, + padding); } } diff --git a/src/llama-model.h b/src/llama-model.h index 34aac337cf..4c7e7a335b 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -395,8 +395,11 @@ struct llama_model { const struct ggml_tensor * get_tensor(const char * name) const; + ggml_tensor * get_rope_factors(uint32_t n_ctx_per_seq, int il) const; + + // note: can mutate `cparams` // TODO: move this to new llm_arch_model_i interface - llama_memory_i * create_memory() const; // TODO: params + llama_memory_i * create_memory(const llama_memory_params & params, llama_cparams & cparams) const; // TODO: move this to new llm_arch_model_i interface llm_graph_result_ptr build_graph( From 074e42ab31de4c99aa7d9d2d239660f64b2380d6 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Fri, 2 May 2025 17:17:15 +0200 Subject: [PATCH 083/126] convert : converting mmproj for Qwen2/2.5VL from convert_hf_to_gguf (#13209) * wip * qwen2.5vl ok * vision: fix models missing "text_config" * add test * fix test repo name * fix 32B model * Revert "fix 32B model" This reverts commit 651752f1ae25fe8a01c1e57c18cf2eca80b2774e. * clarify about 32B * rm qwen surgery script * update llava/readme * move V_ENC_EMBD_PATCH handling to Qwen2VLVisionModel --- convert_hf_to_gguf.py | 78 +++++++++++ examples/llava/README.md | 29 ++-- examples/llava/qwen2_vl_surgery.py | 217 ----------------------------- examples/llava/tests.sh | 18 +-- gguf-py/gguf/constants.py | 3 + gguf-py/gguf/gguf_writer.py | 3 + gguf-py/gguf/tensor_mapping.py | 17 +++ 7 files changed, 132 insertions(+), 233 deletions(-) delete mode 100644 examples/llava/qwen2_vl_surgery.py diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index df3f8a55d5..ff82a85a9d 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1089,6 +1089,8 @@ class VisionModel(ModelBase): raise TypeError("VisionModel must be subclassed with model_arch = gguf.MODEL_ARCH.CLIP_VISION") # get n_embd of the text model + if "text_config" not in self.hparams: + self.hparams["text_config"] = {} text_config = {**self.hparams, **self.hparams["text_config"]} self.n_embd_text = text_config.get("hidden_size", text_config.get("n_embd", 0)) assert self.n_embd_text > 0, "n_embd not found in hparams" @@ -2583,6 +2585,82 @@ class Qwen2VLModel(TextModel): return [(self.map_tensor_name(name), data_torch)] +@ModelBase.register("Qwen2VLForConditionalGeneration", "Qwen2_5_VLForConditionalGeneration") +class Qwen2VLVisionModel(VisionModel): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.hparams["image_size"] = self.hparams.get("image_size", 560) + # rename config.json values + self.hparams["num_attention_heads"] = self.hparams.get("num_heads") + self.hparams["num_hidden_layers"] = self.hparams.get("depth") + if "embed_dim" in self.hparams: # qwen2vl + self.hparams["intermediate_size"] = self.hparams.get("hidden_size") + self.hparams["hidden_size"] = self.hparams.get("embed_dim") + + def set_gguf_parameters(self): + super().set_gguf_parameters() + hparams = self.hparams + if self.global_config['model_type'] == 'qwen2_vl': + self.gguf_writer.add_vision_projector_type(gguf.VisionProjectorType.QWEN2VL) + elif self.global_config['model_type'] == 'qwen2_5_vl': + self.gguf_writer.add_vision_projector_type(gguf.VisionProjectorType.QWEN25VL) + self.gguf_writer.add_vision_use_silu(True) + # find n_wa_pattern (window attention pattern) + fullatt_block_indexes = hparams.get("fullatt_block_indexes") + assert fullatt_block_indexes is not None, "fullatt_block_indexes is required for qwen2_5_vl" + n_wa_pattern = fullatt_block_indexes[0] + 1 + # validate n_wa_pattern + for i in range(1, len(fullatt_block_indexes)): + if fullatt_block_indexes[i] - fullatt_block_indexes[i - 1] != n_wa_pattern: + raise ValueError(f"Invalid fullatt_block_indexes: {fullatt_block_indexes}") + self.gguf_writer.add_vision_n_wa_pattern(n_wa_pattern) + else: + raise ValueError(f"Unknown QwenVL model type: {self.global_config['model_type']}") + # default values below are taken from HF tranformers code + self.gguf_writer.add_vision_attention_layernorm_eps(self.global_config.get("rms_norm_eps", 1e-6)) + + def tensor_force_quant(self, name, new_name, bid, n_dims): + del bid, name, n_dims # unused + if ".patch_embd." in new_name: + return gguf.GGMLQuantizationType.F16 + if ".position_embd." in new_name: + return gguf.GGMLQuantizationType.F32 + return False + + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + del bid # unused + if name.startswith("visual."): + # process visual tensors + # split QKV tensors if needed + if ".qkv." in name: + if data_torch.ndim == 2: # weight + c3, _ = data_torch.shape + else: # bias + c3 = data_torch.shape[0] + assert c3 % 3 == 0 + c = c3 // 3 + wq = data_torch[:c] + wk = data_torch[c: c * 2] + wv = data_torch[c * 2:] + return [ + (self.map_tensor_name(name.replace("qkv", "q")), wq), + (self.map_tensor_name(name.replace("qkv", "k")), wk), + (self.map_tensor_name(name.replace("qkv", "v")), wv), + ] + elif 'patch_embed.proj.weight' in name: + # split Conv3D into Conv2Ds + c1, c2, kt, kh, kw = data_torch.shape + del c1, c2, kh, kw # unused + assert kt == 2, "Current implmentation only support temporal_patch_size of 2" + return [ + (gguf.TENSOR_NAMES[gguf.MODEL_TENSOR.V_ENC_EMBD_PATCH] + ".weight" , data_torch[:, :, 0, ...]), + (gguf.TENSOR_NAMES[gguf.MODEL_TENSOR.V_ENC_EMBD_PATCH] + ".weight.1", data_torch[:, :, 1, ...]), + ] + else: + return [(self.map_tensor_name(name), data_torch)] + return [] # skip other tensors + + @ModelBase.register("WavTokenizerDec") class WavTokenizerDecModel(TextModel): model_arch = gguf.MODEL_ARCH.WAVTOKENIZER_DEC diff --git a/examples/llava/README.md b/examples/llava/README.md index 3b62627ce8..b97b9e8c54 100644 --- a/examples/llava/README.md +++ b/examples/llava/README.md @@ -35,6 +35,16 @@ llama-mtmd-cli -hf ggml-org/SmolVLM2-500M-Video-Instruct-GGUF # Pixtral 12B llama-mtmd-cli -hf ggml-org/pixtral-12b-GGUF +# Qwen 2 VL +llama-mtmd-cli -hf ggml-org/Qwen2-VL-2B-Instruct-GGUF +llama-mtmd-cli -hf ggml-org/Qwen2-VL-7B-Instruct-GGUF + +# Qwen 2.5 VL +llama-mtmd-cli -hf ggml-org/Qwen2.5-VL-3B-Instruct-GGUF +llama-mtmd-cli -hf ggml-org/Qwen2.5-VL-7B-Instruct-GGUF +llama-mtmd-cli -hf ggml-org/Qwen2.5-VL-32B-Instruct-GGUF +llama-mtmd-cli -hf ggml-org/Qwen2.5-VL-72B-Instruct-GGUF + # Mistral Small 3.1 24B (IQ2_M quantization) llama-mtmd-cli -hf ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF --chat-template mistral-v7 ``` @@ -60,7 +70,17 @@ Built upon `clip.cpp` (similar to `llava.cpp`), `libmtmd` offers several advanta ## How to obtain `mmproj` -Multimodal projector (`mmproj`) files are specific to each model architecture. Please refer to the relevant guide for instructions on how to obtain or create them: +Multimodal projector (`mmproj`) files are specific to each model architecture. + +For the following models, you can use `convert_hf_to_gguf.py`with `--mmproj` flag to get the `mmproj` file: +- [Gemma 3](https://huggingface.co/collections/google/gemma-3-release-67c6c6f89c4f76621268bb6d) - Note: 1B variant does not have vision support +- SmolVLM (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) +- SmolVLM2 (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) +- [Pixtral 12B](https://huggingface.co/mistral-community/pixtral-12b) - only works with `transformers`-compatible checkpoint +- Qwen 2 VL and Qwen 2.5 VL (from [Qwen](https://huggingface.co/Qwen)) +- [Mistral Small 3.1 24B](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) + +For older models, please refer to the relevant guide for instructions on how to obtain or create them: - [LLaVA](../../docs/multimodal/llava.md) - [MobileVLM](../../docs/multimodal/MobileVLM.md) @@ -70,10 +90,3 @@ Multimodal projector (`mmproj`) files are specific to each model architecture. P - [MiniCPM-o 2.6](../../docs/multimodal/minicpmo2.6.md) - [IBM Granite Vision](../../docs/multimodal/granitevision.md) - [Google Gemma 3](../../docs/multimodal/gemma3.md) - -For the following models, you can use `convert_hf_to_gguf.py`with `--mmproj` flag to get the `mmproj` file: -- [Gemma 3](https://huggingface.co/collections/google/gemma-3-release-67c6c6f89c4f76621268bb6d) - Note: 1B variant does not have vision support -- SmolVLM (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) -- SmolVLM2 (from [HuggingFaceTB](https://huggingface.co/HuggingFaceTB)) -- [Pixtral 12B](https://huggingface.co/mistral-community/pixtral-12b) - only works with `transformers`-compatible checkpoint -- [Mistral Small 3.1 24B](https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503) diff --git a/examples/llava/qwen2_vl_surgery.py b/examples/llava/qwen2_vl_surgery.py deleted file mode 100644 index 7951a6fa89..0000000000 --- a/examples/llava/qwen2_vl_surgery.py +++ /dev/null @@ -1,217 +0,0 @@ -import argparse -from typing import Dict, List, Optional - -import torch -import numpy as np -from gguf import * -from transformers import ( - AutoProcessor, - Qwen2VLConfig, - Qwen2VLProcessor, - Qwen2VLForConditionalGeneration, - Qwen2_5_VLConfig, # type: ignore[reportAttributeAccessIssue] - Qwen2_5_VLForConditionalGeneration, # type: ignore[reportAttributeAccessIssue] -) - - -VISION = "clip.vision" - - -def k(raw_key: str, arch: str) -> str: - return raw_key.format(arch=arch) - - -def get_n_wa_pattern(fullatt_block_indexes: Optional[List[int]]): - if fullatt_block_indexes is None: - return 0 - n_wa = fullatt_block_indexes[0] - for a, b in zip(fullatt_block_indexes, fullatt_block_indexes[1:]): - if b - a - 1 != n_wa: - raise ValueError( - f"window/full attention layer should have fix pattern of " - f"for each full-attention layer followed by {n_wa} window-attention layers" - ) - return n_wa + 1 - - -class VL2: - - @staticmethod - def to_gguf_name(name: str) -> str: - og = name - name = name.replace("text_model", "t").replace("vision_model", "v") - name = name.replace("blocks", "blk").replace("embeddings.", "") - name = name.replace("attn.", "attn_") - name = name.replace("mlp.fc1", "ffn_down").replace("mlp.fc2", "ffn_up").replace("proj.", "out.") - # name = name.replace("layrnorm", "ln").replace("layer_norm", "ln").replace("layernorm", "ln") - name = name.replace("norm1", "ln1").replace("norm2", "ln2") - name = name.replace("merger.mlp", 'mm') - print(f"[to_gguf_name] {og} --> {name}") - return name - - @classmethod - def find_vision_tensors(cls, qwen2vl, dtype) -> Dict[str, np.ndarray]: - vision_model = qwen2vl.visual - tensor_map = {} - for name, ten in vision_model.state_dict().items(): - ten = ten.numpy() - if 'qkv' in name: - if ten.ndim == 2: # weight - c3, _ = ten.shape - else: # bias - c3 = ten.shape[0] - assert c3 % 3 == 0 - c = c3 // 3 - wq = ten[:c] - wk = ten[c: c * 2] - wv = ten[c * 2:] - tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "q")] = wq - tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "k")] = wk - tensor_map[cls.to_gguf_name(f"vision_model.{name}").replace("qkv", "v")] = wv - elif 'merger' in name: - if name.endswith("ln_q.weight"): - tensor_map['v.post_ln.weight'] = ten - elif name.endswith("ln_q.bias"): - tensor_map['v.post_ln.bias'] = ten - else: - # "merger.mlp.%d.weight/bias" --> "mm.%d.weight/bias" - tensor_map[cls.to_gguf_name(name)] = ten - elif 'patch_embed.proj.weight' in name: - # NOTE: split Conv3D into Conv2Ds - c1, c2, kt, kh, kw = ten.shape - assert kt == 2, "Current implmentation only support temporal_patch_size of 2" - tensor_map["v.patch_embd.weight"] = ten[:, :, 0, ...] - tensor_map["v.patch_embd.weight.1"] = ten[:, :, 1, ...] - else: - tensor_map[cls.to_gguf_name(f"vision_model.{name}")] = ten - - for new_name, ten in tensor_map.items(): - if ten.ndim <= 1 or new_name.endswith("_norm.weight"): - tensor_map[new_name] = ten.astype(np.float32) - else: - tensor_map[new_name] = ten.astype(dtype) - tensor_map["v.position_embd.weight"] = np.zeros([10, 10], dtype=np.float32) # dummy tensor, just here as a placeholder - return tensor_map - - -class VL25(VL2): - - @staticmethod - def to_gguf_name(name: str) -> str: - og = name - name = name.replace("text_model", "t").replace("vision_model", "v") - name = name.replace("blocks", "blk").replace("embeddings.", "") - name = name.replace("attn.", "attn_") - name = name.replace("mlp.down_proj", "ffn_down").replace("mlp.up_proj", "ffn_up") - name = name.replace("mlp.gate_proj", "ffn_gate").replace("proj.", "out.") - name = name.replace("norm1", "ln1").replace("norm2", "ln2") - name = name.replace("merger.mlp", 'mm') - print(f"[vl25][to_gguf_name] {og} --> {name}") - return name - - -def main(args): - if args.data_type == 'fp32': - dtype = torch.float32 - np_dtype = np.float32 - ftype = 0 - elif args.data_type == 'fp16': - dtype = torch.float16 - np_dtype = np.float16 - ftype = 1 - else: - raise ValueError() - - local_model = False - model_path = "" - model_name = args.model_name - print("model_name: ", model_name) - if args.model_type == "qwen2vl": - qwen2vl = Qwen2VLForConditionalGeneration.from_pretrained( - model_name, torch_dtype=dtype, device_map="cpu" - ) - cfg: Qwen2VLConfig = qwen2vl.config # type: ignore[reportAssignmentType] - vcfg = cfg.vision_config - else: - qwen2vl = Qwen2_5_VLForConditionalGeneration.from_pretrained( - model_name, torch_dtype=dtype, device_map="cpu" - ) - cfg: Qwen2_5_VLConfig = qwen2vl.config # type: ignore[reportAssignmentType] - vcfg = cfg.vision_config - - if os.path.isdir(model_name): - local_model = True - if model_name.endswith(os.sep): - model_name = model_name[:-1] - model_path = model_name - model_name = os.path.basename(model_name) - fname_out = f"{model_name.replace('/', '-').lower()}-vision.gguf" - - fout = GGUFWriter(path=fname_out, arch="clip") - fout.add_description("image encoder for Qwen2VL") - - fout.add_file_type(ftype) - fout.add_bool("clip.has_text_encoder", False) - fout.add_bool("clip.has_vision_encoder", True) - fout.add_bool("clip.has_qwen2vl_merger", True) - - print(cfg.vision_config) - if 'silu' in cfg.vision_config.hidden_act.lower(): - fout.add_bool("clip.use_silu", True) - fout.add_bool("clip.use_gelu", False) - elif 'gelu' in cfg.vision_config.hidden_act.lower(): - fout.add_bool("clip.use_silu", False) - fout.add_bool("clip.use_gelu", 'quick' not in cfg.vision_config.hidden_act.lower()) - else: - raise ValueError() - - if args.model_type == "qwen2.5vl": - fout.add_uint32("clip.vision.n_wa_pattern", get_n_wa_pattern(vcfg.fullatt_block_indexes)) - fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), vcfg.hidden_size) - fout.add_uint32("clip.vision.projection_dim", vcfg.out_hidden_size) - fout.add_string("clip.projector_type", "qwen2.5vl_merger") - else: - fout.add_string("clip.projector_type", "qwen2vl_merger") - fout.add_uint32(k(KEY_EMBEDDING_LENGTH, VISION), vcfg.embed_dim) - fout.add_uint32("clip.vision.projection_dim", vcfg.hidden_size) - - if args.model_type == "qwen2.5vl": - tensor_map = VL25.find_vision_tensors(qwen2vl, np_dtype) - else: - tensor_map = VL2.find_vision_tensors(qwen2vl, np_dtype) - for name, data in tensor_map.items(): - fout.add_tensor(name, data) - - fout.add_uint32("clip.vision.patch_size", vcfg.patch_size) - fout.add_uint32("clip.vision.image_size", 14 * 40) # some reasonable size that is divable by (14*2) - fout.add_uint32(k(KEY_ATTENTION_HEAD_COUNT, VISION), vcfg.num_heads) - fout.add_float32(k(KEY_ATTENTION_LAYERNORM_EPS, VISION), 1e-6) - fout.add_uint32(k(KEY_BLOCK_COUNT, VISION), vcfg.depth) - fout.add_uint32(k(KEY_FEED_FORWARD_LENGTH, VISION), 0) # not sure what this does, put 0 here as a placeholder - fout.add_name(model_name) - """ - HACK: Since vision rope related parameter aren't stored in the `Qwen2VLConfig, - it will be hardcoded in the `clip_image_build_graph` from `clip.cpp`. - """ - - if local_model: - processor: Qwen2VLProcessor = AutoProcessor.from_pretrained(model_path) - else: - processor: Qwen2VLProcessor = AutoProcessor.from_pretrained(model_name) - fout.add_array("clip.vision.image_mean", processor.image_processor.image_mean) # type: ignore[reportAttributeAccessIssue] - fout.add_array("clip.vision.image_std", processor.image_processor.image_std) # type: ignore[reportAttributeAccessIssue] - - fout.write_header_to_file() - fout.write_kv_data_to_file() - fout.write_tensors_to_file() - fout.close() - print("save model as: ", fname_out) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument("model_name", nargs='?', default="Qwen/Qwen2-VL-2B-Instruct") - parser.add_argument("--model_type", nargs='?', choices=['qwen2vl', 'qwen2.5vl'], default="qwen2vl") - parser.add_argument("--data_type", nargs='?', choices=['fp32', 'fp16'], default="fp32") - args = parser.parse_args() - main(args) diff --git a/examples/llava/tests.sh b/examples/llava/tests.sh index 4af3700640..22c2374971 100755 --- a/examples/llava/tests.sh +++ b/examples/llava/tests.sh @@ -36,12 +36,6 @@ add_test() { arr_tmpl+=("$tmpl") } -add_test_big() { - if [ "$RUN_BIG_TESTS" = true ]; then - add_test "$@" - fi -} - add_test "llama-mtmd-cli" "ggml-org/SmolVLM-500M-Instruct-GGUF:Q8_0" add_test "llama-mtmd-cli" "ggml-org/SmolVLM2-2.2B-Instruct-GGUF:Q4_K_M" add_test "llama-mtmd-cli" "ggml-org/SmolVLM2-500M-Video-Instruct-GGUF:Q8_0" @@ -58,8 +52,16 @@ add_test "llama-mtmd-cli" "bartowski/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M" add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" # to test the big models, run: ./tests.sh big -add_test_big "llama-mtmd-cli" "ggml-org/pixtral-12b-GGUF:Q4_K_M" -add_test_big "llama-mtmd-cli" "ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF" "mistral-v7" +if [ "$RUN_BIG_TESTS" = true ]; then + add_test "llama-mtmd-cli" "ggml-org/pixtral-12b-GGUF:Q4_K_M" + add_test "llama-mtmd-cli" "ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF" "mistral-v7" + add_test "llama-mtmd-cli" "ggml-org/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M" + add_test "llama-mtmd-cli" "ggml-org/Qwen2-VL-7B-Instruct-GGUF:Q4_K_M" + add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M" + add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-7B-Instruct-GGUF:Q4_K_M" + # add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-32B-Instruct-GGUF:Q4_K_M" # does not work on my mac M3 Ultra + # add_test "llama-mtmd-cli" "ggml-org/Qwen2.5-VL-72B-Instruct-GGUF:Q4_K_M" # too big +fi # these models always give the wrong answer, not sure why # add_test "llama-mtmd-cli" "ggml-org/SmolVLM-Instruct-GGUF:Q4_K_M" diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index a2540bd93f..74e46c3ee0 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -234,6 +234,7 @@ class Keys: SPATIAL_MERGE_SIZE = "clip.vision.spatial_merge_size" USE_GELU = "clip.use_gelu" USE_SILU = "clip.use_silu" + N_WA_PATTERN = "clip.vision.n_wa_pattern" # used by qwen2.5vl class Attention: HEAD_COUNT = "clip.vision.attention.head_count" @@ -2162,6 +2163,8 @@ class VisionProjectorType: GEMMA3 = "gemma3" IDEFICS3 = "idefics3" PIXTRAL = "pixtral" + QWEN2VL = "qwen2vl_merger" + QWEN25VL = "qwen2.5vl_merger" # Items here are (block size, type size) diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index a30c49e32b..ff50d3de31 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -984,6 +984,9 @@ class GGUFWriter: def add_vision_projector_scale_factor(self, value: int) -> None: self.add_uint32(Keys.ClipVision.Projector.SCALE_FACTOR, value) + def add_vision_n_wa_pattern(self, value: int) -> None: + self.add_uint32(Keys.ClipVision.N_WA_PATTERN, value) + def _pack(self, fmt: str, value: Any, skip_pack_prefix: bool = False) -> bytes: pack_prefix = '' if not skip_pack_prefix: diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index 2f6326104f..2b089f84a8 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -896,6 +896,7 @@ class TensorNameMap: MODEL_TENSOR.V_MMPROJ: ( "multi_modal_projector.linear_{bid}", + "visual.merger.mlp.{bid}", # qwen2vl ), MODEL_TENSOR.V_MMPROJ_FC: ( @@ -919,6 +920,7 @@ class TensorNameMap: "vpm.embeddings.patch_embedding", "model.vision_model.embeddings.patch_embedding", # SmolVLM "vision_tower.patch_conv", # pixtral + "visual.patch_embed.proj", # qwen2vl ), MODEL_TENSOR.V_ENC_EMBD_POS: ( @@ -932,6 +934,7 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.self_attn.q_proj", "model.vision_model.encoder.layers.{bid}.self_attn.q_proj", # SmolVLM "vision_tower.transformer.layers.{bid}.attention.q_proj", # pixtral + "visual.blocks.{bid}.attn.q", # qwen2vl, generated ), MODEL_TENSOR.V_ENC_ATTN_K: ( @@ -939,6 +942,7 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.self_attn.k_proj", "model.vision_model.encoder.layers.{bid}.self_attn.k_proj", # SmolVLM "vision_tower.transformer.layers.{bid}.attention.k_proj", # pixtral + "visual.blocks.{bid}.attn.k", # qwen2vl, generated ), MODEL_TENSOR.V_ENC_ATTN_V: ( @@ -946,6 +950,7 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.self_attn.v_proj", "model.vision_model.encoder.layers.{bid}.self_attn.v_proj", # SmolVLM "vision_tower.transformer.layers.{bid}.attention.v_proj", # pixtral + "visual.blocks.{bid}.attn.v", # qwen2vl, generated ), MODEL_TENSOR.V_ENC_INPUT_NORM: ( @@ -953,6 +958,7 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.layer_norm1", "model.vision_model.encoder.layers.{bid}.layer_norm1", # SmolVLM "vision_tower.transformer.layers.{bid}.attention_norm", # pixtral + "visual.blocks.{bid}.norm1", # qwen2vl ), MODEL_TENSOR.V_ENC_OUTPUT: ( @@ -960,6 +966,7 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.self_attn.out_proj", "model.vision_model.encoder.layers.{bid}.self_attn.out_proj", # SmolVLM "vision_tower.transformer.layers.{bid}.attention.o_proj", # pixtral + "visual.blocks.{bid}.attn.proj", # qwen2vl ), MODEL_TENSOR.V_ENC_OUTPUT_NORM: ( @@ -967,17 +974,24 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.layer_norm2", "model.vision_model.encoder.layers.{bid}.layer_norm2", # SmolVLM "vision_tower.transformer.layers.{bid}.ffn_norm", # pixtral + "visual.blocks.{bid}.norm2", # qwen2vl ), + # some namings are messed up because the original llava code swapped fc1 and fc2 + # we have no better way to fix it, just be careful + # new models like pixtral use the correct naming MODEL_TENSOR.V_ENC_FFN_UP: ( "vision_tower.vision_model.encoder.layers.{bid}.mlp.fc1", "vpm.encoder.layers.{bid}.mlp.fc1", "model.vision_model.encoder.layers.{bid}.mlp.fc2", # SmolVLM, gemma3 (note: name is swapped) "vision_tower.transformer.layers.{bid}.feed_forward.up_proj", # pixtral + "visual.blocks.{bid}.mlp.fc2", # qwen2vl + "visual.blocks.{bid}.mlp.up_proj", # qwen2.5vl ), MODEL_TENSOR.V_ENC_FFN_GATE: ( "vision_tower.transformer.layers.{bid}.feed_forward.gate_proj", # pixtral + "visual.blocks.{bid}.mlp.gate_proj", # qwen2.5vl ), MODEL_TENSOR.V_ENC_FFN_DOWN: ( @@ -985,6 +999,8 @@ class TensorNameMap: "vpm.encoder.layers.{bid}.mlp.fc2", "model.vision_model.encoder.layers.{bid}.mlp.fc1", # SmolVLM, gemma3 (note: name is swapped) "vision_tower.transformer.layers.{bid}.feed_forward.down_proj", # pixtral + "visual.blocks.{bid}.mlp.fc1", # qwen2vl + "visual.blocks.{bid}.mlp.down_proj", # qwen2.5vl ), MODEL_TENSOR.V_PRE_NORM: ( @@ -995,6 +1011,7 @@ class TensorNameMap: MODEL_TENSOR.V_POST_NORM: ( "vision_tower.vision_model.post_layernorm", "model.vision_model.post_layernorm", # SmolVLM + "visual.merger.ln_q", # qwen2vl ), MODEL_TENSOR.V_MM_INP_PROJ: ( From 7d2123484e6ba8fcd90fff8c01661b9dbbefdc9d Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Fri, 2 May 2025 11:41:54 -0400 Subject: [PATCH 084/126] convert : use correct context length for nomic-embed-text-v2 (#13216) --- convert_hf_to_gguf.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index ff82a85a9d..7a7c1858ec 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -506,7 +506,7 @@ class TextModel(ModelBase): def set_gguf_parameters(self): self.gguf_writer.add_block_count(self.block_count) - if (n_ctx := self.find_hparam(["max_position_embeddings", "n_ctx"], optional=True)) is not None: + if (n_ctx := self.find_hparam(["max_position_embeddings", "n_ctx", "n_positions"], optional=True)) is not None: self.gguf_writer.add_context_length(n_ctx) logger.info(f"gguf: context length = {n_ctx}") @@ -3627,8 +3627,13 @@ class NomicBertModel(BertModel): if self._tokenizer_is_xlmroberta: self._xlmroberta_tokenizer_init() - # the HF config claims n_ctx=8192, but it uses RoPE scaling - self.hparams["n_ctx"] = 2048 + npos, mtp = self.hparams["n_positions"], self.hparams.get("max_trained_positions", 2048) + if npos == 8192 and mtp == 2048: + self.hparams["n_positions"] = 2048 # nomic-embed-text v1 and v1.5 are trained for 2048 tokens. + elif npos == 2048 and mtp == 2048: + self.hparams["n_positions"] = 512 # nomic-embed-text-v2-moe is trained for 512 tokens. + else: + raise ValueError(f"unrecognized parameters: n_positions={npos}, max_trained_positions={mtp}") assert self.hparams["activation_function"] == "gelu" if self.is_moe else "swiglu" From 2f567611c0234bbca0a4009762acb47b56866095 Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Fri, 2 May 2025 11:42:30 -0400 Subject: [PATCH 085/126] llama-model : support Qwen2 embedding models and pooling_mode_lasttoken (#13245) --- convert_hf_to_gguf.py | 70 +++++++++++++++++++++++---------------- gguf-py/gguf/constants.py | 2 ++ src/llama-model.cpp | 1 + 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 7a7c1858ec..0862099da4 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -455,8 +455,12 @@ class ModelBase: class TextModel(ModelBase): + model_type = ModelType.TEXT + hf_arch: str + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + self.hf_arch = get_model_architecture(self.hparams, self.model_type) if "text_config" in self.hparams: # move the text_config to the root level @@ -1075,10 +1079,36 @@ class TextModel(ModelBase): if (field := vocab_reader.get_field(gguf.Keys.Tokenizer.ADD_EOS)) is not None: self.gguf_writer.add_add_eos_token(field.parts[-1].tolist()[0]) + def _try_set_pooling_type(self) -> None: + # get pooling path + pooling_path = None + module_path = self.dir_model / "modules.json" + if module_path.is_file(): + with open(module_path, encoding="utf-8") as f: + modules = json.load(f) + for mod in modules: + if mod["type"] == "sentence_transformers.models.Pooling": + pooling_path = mod["path"] + break + + # get pooling type + if pooling_path is not None: + with open(self.dir_model / pooling_path / "config.json", encoding="utf-8") as f: + pooling = json.load(f) + if pooling["pooling_mode_mean_tokens"]: + pooling_type = gguf.PoolingType.MEAN + elif pooling["pooling_mode_cls_token"]: + pooling_type = gguf.PoolingType.CLS + elif pooling["pooling_mode_lasttoken"]: + pooling_type = gguf.PoolingType.LAST + else: + raise NotImplementedError("Only MEAN, CLS, and LAST pooling types supported") + self.gguf_writer.add_pooling_type(pooling_type) + class VisionModel(ModelBase): + model_type = ModelType.VISION model_arch = gguf.MODEL_ARCH.CLIP_VISION - n_text_embd = 0 preprocessor_config: dict[str, Any] global_config: dict[str, Any] @@ -2542,7 +2572,7 @@ class QwenModel(TextModel): self.gguf_writer.add_file_type(self.ftype) -@ModelBase.register("Qwen2ForCausalLM") +@ModelBase.register("Qwen2Model", "Qwen2ForCausalLM") class Qwen2Model(TextModel): model_arch = gguf.MODEL_ARCH.QWEN2 @@ -2554,12 +2584,18 @@ class Qwen2Model(TextModel): def set_gguf_parameters(self): super().set_gguf_parameters() + self._try_set_pooling_type() if self.hparams.get("rope_scaling") is not None and "factor" in self.hparams["rope_scaling"]: if self.hparams["rope_scaling"].get("type") == "yarn": self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.YARN) self.gguf_writer.add_rope_scaling_factor(self.hparams["rope_scaling"]["factor"]) self.gguf_writer.add_rope_scaling_orig_ctx_len(self.hparams["rope_scaling"]["original_max_position_embeddings"]) + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + if self.hf_arch == "Qwen2Model": + name = f"model.{name}" # map to Qwen2ForCausalLM tensors + yield from super().modify_tensors(data_torch, name, bid) + @ModelBase.register("Qwen2VLForConditionalGeneration", "Qwen2_5_VLForConditionalGeneration") class Qwen2VLModel(TextModel): @@ -3396,29 +3432,7 @@ class BertModel(TextModel): def set_gguf_parameters(self): super().set_gguf_parameters() self.gguf_writer.add_causal_attention(False) - - # get pooling path - pooling_path = None - module_path = self.dir_model / "modules.json" - if module_path.is_file(): - with open(module_path, encoding="utf-8") as f: - modules = json.load(f) - for mod in modules: - if mod["type"] == "sentence_transformers.models.Pooling": - pooling_path = mod["path"] - break - - # get pooling type - if pooling_path is not None: - with open(self.dir_model / pooling_path / "config.json", encoding="utf-8") as f: - pooling = json.load(f) - if pooling["pooling_mode_mean_tokens"]: - pooling_type = gguf.PoolingType.MEAN - elif pooling["pooling_mode_cls_token"]: - pooling_type = gguf.PoolingType.CLS - else: - raise NotImplementedError("Only MEAN and CLS pooling types supported") - self.gguf_writer.add_pooling_type(pooling_type) + self._try_set_pooling_type() def set_vocab(self): tokens, toktypes, tokpre = self.get_vocab_base() @@ -5962,8 +5976,7 @@ def split_str_to_n_bytes(split_str: str) -> int: return n -def get_model_architecture(dir_model: Path, model_type: ModelType, hparams: Any = None) -> str: - hparams = ModelBase.load_hparams(dir_model) if hparams is None else hparams +def get_model_architecture(hparams: dict[str, Any], model_type: ModelType) -> str: text_config = hparams.get("text_config", {}) vision_config = hparams.get("vision_config", {}) arch = hparams["architectures"][0] @@ -6034,7 +6047,8 @@ def main() -> None: with torch.inference_mode(): output_type = ftype_map[args.outtype] model_type = ModelType.VISION if args.mmproj else ModelType.TEXT - model_architecture = get_model_architecture(dir_model, model_type) + hparams = ModelBase.load_hparams(dir_model) + model_architecture = get_model_architecture(hparams, model_type) logger.info(f"Model architecture: {model_architecture}") try: model_class = ModelBase.from_model_architecture(model_architecture, model_type=model_type) diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 74e46c3ee0..7dd7bb6d1b 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -2033,6 +2033,8 @@ class PoolingType(IntEnum): NONE = 0 MEAN = 1 CLS = 2 + LAST = 3 + RANK = 4 class GGMLQuantizationType(IntEnum): diff --git a/src/llama-model.cpp b/src/llama-model.cpp index e163de76a7..08d2130137 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -773,6 +773,7 @@ void llama_model::load_hparams(llama_model_loader & ml) { // fall through case LLM_ARCH_QWEN2: { + ml.get_key(LLM_KV_POOLING_TYPE, hparams.pooling_type, false); ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps); switch (hparams.n_layer) { case 24: type = hparams.n_embd == 1024 ? LLM_TYPE_0_5B : LLM_TYPE_1B; break; From 3f3769ba76061a511f02f2a48da2ad2d93fce511 Mon Sep 17 00:00:00 2001 From: shalinib-ibm Date: Fri, 2 May 2025 22:23:12 +0530 Subject: [PATCH 086/126] ggml : Enable MMA for BF16 in llamafile_sgemm (#13148) This patch upstreams llamafile's cpu matrix multiplication kernels for ppc64le using MMA builtins for BF16 data type. This change results in 9x - 40x gains in total speed S t/s (ie all tokens/total time), across various batch sizes tested using llama-batched-bench benchmark. The patch is tested with Meta-Lllama-3-8B, and Mistral-7B models (BF16 models generated by using llama-quantize from corresponding FP32 models) on an IBM POWER10 machine. Signed-off-by: Shalini Salomi Bodapati --- ggml/src/ggml-cpu/llamafile/sgemm.cpp | 501 ++++++++++++++++++++++++++ 1 file changed, 501 insertions(+) diff --git a/ggml/src/ggml-cpu/llamafile/sgemm.cpp b/ggml/src/ggml-cpu/llamafile/sgemm.cpp index f6374f7894..1d46158f92 100644 --- a/ggml/src/ggml-cpu/llamafile/sgemm.cpp +++ b/ggml/src/ggml-cpu/llamafile/sgemm.cpp @@ -1054,6 +1054,493 @@ class tinyBLAS_Q0_AVX { } \ } \ +template +class tinyBLAS_BF16_PPC { + public: + tinyBLAS_BF16_PPC(int64_t k, + const TA *A, int64_t lda, + const TB *B, int64_t ldb, + TC *C, int64_t ldc, + int ith, int nth) + : A(A), B(B), C(C), k(k), lda(lda), ldb(ldb), ldc(ldc), ith(ith), nth(nth) { + } + + void matmul(int64_t m, int64_t n) { + mnpack(0, m, 0, n); + } + + private: + void vector_permute_store(vec_t *c, int numVec, unsigned char *vecOffset) { + vec_t t[8], s[8]; + vec_t swiz1 = {0, 1, 2, 3, 16, 17, 18, 19, 4, 5, 6, 7, 20, 21, 22, 23}; + vec_t swiz2 = {8, 9, 10, 11, 24, 25, 26, 27, 12, 13, 14, 15, 28, 29, 30, 31}; + vec_t swiz3 = {0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 22, 23}; + vec_t swiz4 = {8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31}; + + if (numVec == 2) { + t[0] = vec_perm(c[0], c[1], swiz1); + t[1] = vec_perm(c[2], c[3], swiz1); + s[0] = vec_perm(t[0], t[1], swiz3); + s[1] = vec_perm(t[0], t[1], swiz4); + vec_xst(s[0], 0, (vec_t*)vecOffset); + vec_xst(s[1], 0, (vec_t*)(vecOffset + 16)); + } else if (numVec == 4) { + t[0] = vec_perm(c[0], c[1], swiz1); + t[1] = vec_perm(c[0], c[1], swiz2); + t[2] = vec_perm(c[2], c[3], swiz1); + t[3] = vec_perm(c[2], c[3], swiz2); + s[0] = vec_perm(t[0], t[2], swiz3); + s[1] = vec_perm(t[0], t[2], swiz4); + s[2] = vec_perm(t[1], t[3], swiz3); + s[3] = vec_perm(t[1], t[3], swiz4); + for (int i = 0; i < 4; ++i) + vec_xst(s[i], 0, (vec_t*)(vecOffset + i * 16)); + } else if (numVec == 8) { + for (int i = 0; i < 4; i += 2) { + t[i+0] = vec_perm(c[i+0], c[i+1], swiz1); + t[i+1] = vec_perm(c[i+0], c[i+1], swiz2); + } + for (int i = 4; i < 8; i += 2) { + t[i+0] = vec_perm(c[i+0], c[i+1], swiz1); + t[i+1] = vec_perm(c[i+0], c[i+1], swiz2); + } + s[0] = vec_perm(t[0], t[2], swiz3); + s[1] = vec_perm(t[0], t[2], swiz4); + s[2] = vec_perm(t[1], t[3], swiz3); + s[3] = vec_perm(t[1], t[3], swiz4); + s[4] = vec_perm(t[4], t[6], swiz3); + s[5] = vec_perm(t[4], t[6], swiz4); + s[6] = vec_perm(t[5], t[7], swiz3); + s[7] = vec_perm(t[5], t[7], swiz4); + for (int i = 0; i < 8; ++i) + vec_xst(s[i], 0, (vec_t*)(vecOffset + i * 16)); + } + } + + void packNormal(const TA* a, int64_t lda, int rows, int cols, unsigned char* vec) { + int64_t i, j; + TA *aoffset = NULL; + unsigned char *vecOffset = NULL; + TA * aoffsets[8]; + vector unsigned char c_arr[8]; + aoffset = const_cast(a); + vecOffset = vec; + j = (rows >> 3); + if (j > 0) { + do { + if (cols == 4) { + aoffsets[0] = aoffset; + for (int it = 1; it < 4; ++it) + aoffsets[it] = aoffsets[it-1] + lda; + aoffset += 4 * lda; + for (int i = 0; i < 4; ++i) + c_arr[i] = vec_xl(0, (vector unsigned char*)aoffsets[i]); + vector_permute_store(c_arr, 4, vecOffset); + for (int i = 0; i<4; i++) + aoffsets[i] = aoffsets[i]+lda; + vecOffset +=64; + } + i = (cols >> 3); + if (i > 0) { + aoffsets[0] = aoffset; + for (int it = 1; it < 8; ++it) { + aoffsets[it] = aoffsets[it-1] + lda; + } + aoffset += 8 * lda; + do { + for (int it = 0; it < 8; ++it) + c_arr[it] = vec_xl(0, (vector unsigned char*)aoffsets[it]); + vector_permute_store(c_arr, 8, vecOffset); + for (int it = 0; it < 8; ++it) + aoffsets[it] = aoffsets[it] + 8*lda; + vecOffset += 128; + i--; + } while(i > 0); + } + j--; + } while(j > 0); + } + if (rows & 4) { + aoffsets[0] = aoffset; + for (int it = 1; it < 4; ++it) + aoffsets[it] = aoffsets[it-1] + lda; + aoffset += 4 * lda; + if (cols == 4) { + for (int it = 0; it < 4; ++it) + c_arr[it] = vec_xl(0, (vector unsigned char*)aoffsets[it]); + vector_permute_store(c_arr, 2, vecOffset); + for (int it = 0; it< 4; it++) + aoffsets[it] = aoffsets[it] + lda; + vecOffset += 32; + } + i = (cols >> 3); + if (i > 0) { + do { + for (int it = 0; it < 4; ++it) + c_arr[it] = vec_xl(0, (vector unsigned char*)aoffsets[it]); + vector_permute_store(c_arr, 4, vecOffset); + for (int it = 0; it< 4; it++) + aoffsets[it] = aoffsets[it] + 8*lda; + vecOffset += 64; + i--; + } while(i > 0); + } + } + if (rows & 3) { + aoffsets[0] = aoffset; + for (int it = 1; it < 4; ++it) + aoffsets[it] = aoffsets[it-1] + lda; + if (cols == 4) { + switch(rows) { + case 3: c_arr[2] = vec_xl(0, (vector unsigned char*)aoffsets[2]); + case 2: c_arr[1] = vec_xl(0, (vector unsigned char*)aoffsets[1]); + case 1: c_arr[0] = vec_xl(0, (vector unsigned char*)aoffsets[0]); + break; + } + vector_permute_store(c_arr, 2, vecOffset); + for (int it = 0; it< 4; it++) + aoffsets[it] = aoffsets[it] + lda; + vecOffset += 32; + } + i = (cols >> 3); + if (i > 0) { + do { + switch(rows) { + case 3: c_arr[2] = vec_xl(0, (vector unsigned char*)aoffsets[2]); + case 2: c_arr[1] = vec_xl(0, (vector unsigned char*)aoffsets[1]); + case 1: c_arr[0] = vec_xl(0, (vector unsigned char*)aoffsets[0]); + break; + } + vector_permute_store(c_arr, 4, vecOffset); + for (int it = 0; it <4; it++) + aoffsets[it] = aoffsets[it] + 8* lda; + vecOffset += 64; + i--; + } while(i > 0); + } + } + } + + void mnpack(int64_t m0, int64_t m, int64_t n0, int64_t n) { + int64_t mc, nc, mp, np; + int m_rem = MIN(m - m0, 8); + int n_rem = MIN(n - n0, 8); + + if (m_rem >= 8 && n_rem >= 8) { + mc = 8; + nc = 8; + gemm<8,8>(m0, m, n0, n); + } else if (m_rem >= 4 && n_rem >= 8) { + mc = 4; + nc = 8; + gemm<4,8>(m0, m, n0, n); + } else if (m_rem >=8 && n_rem >=4){ + mc = 8; + nc = 4; + gemm<8,4>(m0, m, n0, n); + } else if ((m_rem < 4) && (n_rem >= 8)) { + nc = 8; + switch(m_rem) { + case 1: + mc = 1; + gemm_Mx8<1>(m0, m, n0, n); + break; + case 2: + mc = 2; + gemm_Mx8<2>(m0, m, n0, n); + break; + case 3: + mc = 3; + gemm_Mx8<3>(m0, m, n0, n); + break; + default: + return; + } + } else if (m_rem >= 4 && n_rem >= 4) { + mc = 4; + nc = 4; + gemm_small<4, 4>(m0, m, n0, n); + } else if ((m_rem > 4) && (n_rem < 4)) { + mc = 4; + switch(n_rem) { + case 1: + nc = 1; + gemm_small<4, 1>(m0, m, n0, n); + break; + case 2: + nc = 2; + gemm_small<4, 2>(m0, m, n0, n); + break; + case 3: + nc = 3; + gemm_small<4, 3>(m0, m, n0, n); + break; + + default: + return; + } + } else { + switch((m_rem << 4) | n_rem) { + case 0x43: + mc = 4; + nc = 3; + gemm_small<4, 3>(m0, m, n0, n); + break; + case 0x42: + mc = 4; + nc = 2; + gemm_small<4, 2>(m0, m, n0, n); + break; + case 0x41: + mc = 4; + nc = 1; + gemm_small<4, 1>(m0, m, n0, n); + break; + case 0x34: + mc = 3; + nc = 4; + gemm_small<3, 4>(m0, m, n0, n); + break; + case 0x33: + mc = 3; + nc = 3; + gemm_small<3, 3>(m0, m, n0, n); + break; + case 0x32: + mc = 3; + nc = 2; + gemm_small<3, 2>(m0, m, n0, n); + break; + case 0x31: + mc = 3; + nc = 1; + gemm_small<3, 1>(m0, m, n0, n); + break; + case 0x24: + mc = 2; + nc = 4; + gemm_small<2,4>(m0, m, n0, n); + break; + case 0x23: + mc = 2; + nc = 3; + gemm_small<2, 3>(m0, m, n0, n); + break; + case 0x22: + mc = 2; + nc = 2; + gemm_small<2, 2>(m0, m, n0, n); + break; + case 0x21: + mc = 2; + nc = 1; + gemm_small<2, 1>(m0, m, n0, n); + break; + case 0x14: + mc = 1; + nc = 4; + gemm_small<1, 4>(m0, m, n0, n); + break; + case 0x13: + mc = 1; + nc = 3; + gemm_small<1, 3>(m0, m, n0, n); + break; + case 0x12: + mc = 1; + nc = 2; + gemm_small<1, 2>(m0, m, n0, n); + break; + case 0x11: + mc = 1; + nc = 1; + gemm_small<1, 1>(m0, m, n0, n); + break; + default: + return; + } + } + mp = m0 + (m - m0) / mc * mc; + np = n0 + (n - n0) / nc * nc; + mnpack(mp, m, n0, np); + mnpack(m0, m, np, n); + } + + void KERNEL_4x8(int64_t ii, int64_t jj) { + vec_t vec_A[4], vec_B[8] , vec_C[4]; + acc_t acc_0, acc_1; + __builtin_mma_xxsetaccz(&acc_0); + __builtin_mma_xxsetaccz(&acc_1); + for (int l = 0; l < k; l+=8) { + packNormal((A+(ii*lda)+l), lda, 4, 8, (uint8_t*)vec_A); + packNormal((B+(jj*ldb)+l), ldb, 8, 8, (uint8_t*)vec_B); + for (int x = 0; x < 4; x++) { + __builtin_mma_xvbf16ger2pp(&acc_0, vec_A[x], vec_B[x]); + __builtin_mma_xvbf16ger2pp(&acc_1, vec_A[x], vec_B[x+4]); + } + } + SAVE_ACC(&acc_0, ii, jj); + SAVE_ACC(&acc_1, ii, jj+4); + } + + void KERNEL_8x4(int64_t ii, int64_t jj) { + vec_t vec_A[8], vec_B[4] , vec_C[4]; + acc_t acc_0, acc_1; + __builtin_mma_xxsetaccz(&acc_0); + __builtin_mma_xxsetaccz(&acc_1); + for (int l = 0; l < k; l+=8) { + packNormal((A+(ii*lda)+l), lda, 8, 8, (uint8_t*)vec_A); + packNormal((B+(jj*ldb)+l), ldb, 8, 4, (uint8_t*)vec_B); + for (int x = 0; x < 4; x++) { + __builtin_mma_xvbf16ger2pp(&acc_0, vec_A[x], vec_B[x]); + __builtin_mma_xvbf16ger2pp(&acc_1, vec_A[x+4], vec_B[x]); + } + } + SAVE_ACC(&acc_0, ii, jj); + SAVE_ACC(&acc_1, ii+4, jj); + } + + + void KERNEL_8x8(int64_t ii, int64_t jj) { + vec_t vec_A[8], vec_B[8], vec_C[4]; + acc_t acc_0, acc_1, acc_2, acc_3; + __builtin_mma_xxsetaccz(&acc_0); + __builtin_mma_xxsetaccz(&acc_1); + __builtin_mma_xxsetaccz(&acc_2); + __builtin_mma_xxsetaccz(&acc_3); + for (int l = 0; l < k; l+=8) { + packNormal(A+(ii*lda)+l, lda, 8, 8, (uint8_t*)vec_A); + packNormal(B+(jj*ldb)+l, ldb, 8, 8, (uint8_t*)vec_B); + for (int x = 0; x < 4; x++) { + __builtin_mma_xvbf16ger2pp(&acc_0, vec_A[x], vec_B[x]); + __builtin_mma_xvbf16ger2pp(&acc_1, (vec_t)vec_A[x], (vec_t)vec_B[x+4]); + __builtin_mma_xvbf16ger2pp(&acc_2, (vec_t)vec_A[x+4], (vec_t)vec_B[x]); + __builtin_mma_xvbf16ger2pp(&acc_3, (vec_t)vec_A[x+4], (vec_t)vec_B[x+4]); + } + } + + SAVE_ACC(&acc_0, ii, jj); + SAVE_ACC(&acc_1, ii, jj+4); + SAVE_ACC(&acc_2, ii+4, jj); + SAVE_ACC(&acc_3, ii+4, jj+4); + } + + template + void gemm_small(int64_t m0, int64_t m, int64_t n0, int64_t n) { + int64_t ytiles = (m - m0) / RM; + int64_t xtiles = (n - n0) / RN; + int64_t tiles = xtiles * ytiles; + int64_t duty = (tiles + nth - 1) / nth; + int64_t start = duty * ith; + int64_t end = start + duty; + if (end > tiles) + end = tiles; + for (int64_t job = start; job < end; ++job) { + int64_t ii = m0 + job / xtiles * RM; + int64_t jj = n0 + job % xtiles * RN; + vec_t vec_C[4]; + acc_t acc_0; + __builtin_mma_xxsetaccz(&acc_0); + vec_t vec_A[2], vec_B[2]; + for (int l=0; l + void gemm_Mx8(int64_t m0, int64_t m, int64_t n0, int64_t n) { + int RN = 8; + int64_t ytiles = (m - m0) / RM; + int64_t xtiles = (n - n0) / RN; + int64_t tiles = xtiles * ytiles; + int64_t duty = (tiles + nth - 1) / nth; + int64_t start = duty * ith; + int64_t end = start + duty; + if (end > tiles) + end = tiles; + for (int64_t job = start; job < end; ++job) { + int64_t ii = m0 + job / xtiles * RM; + int64_t jj = n0 + job % xtiles * RN; + vec_t vec_C[4]; + acc_t acc_0, acc_1; + __builtin_mma_xxsetaccz(&acc_0); + __builtin_mma_xxsetaccz(&acc_1); + vec_t vec_A[4], vec_B[8]; + for (int l=0; l + inline void kernel(int64_t ii, int64_t jj) { + if constexpr(RM == 4 && RN == 8) { + KERNEL_4x8(ii,jj); + } else if constexpr(RM == 8 && RN == 8) { + KERNEL_8x8(ii,jj); + } else if constexpr(RM == 8 && RN == 4) { + KERNEL_8x4(ii,jj); + } else { + static_assert(false, "RN/RM values not supported"); + } + } + + template + NOINLINE void gemm(int64_t m0, int64_t m, int64_t n0, int64_t n) { + int64_t ytiles = (m - m0) / RM; + int64_t xtiles = (n - n0) / RN; + int64_t tiles = xtiles * ytiles; + int64_t duty = (tiles + nth - 1) / nth; + int64_t start = duty * ith; + int64_t end = start + duty; + if (end > tiles) + end = tiles; + for (int64_t job = start; job < end; ++job) { + int64_t ii = m0 + job / xtiles * RM; + int64_t jj = n0 + job % xtiles * RN; + kernel(ii, jj); + } + } + + const TA *const A; + const TB *const B; + TC *C; + const int64_t k; + const int64_t lda; + const int64_t ldb; + const int64_t ldc; + const int ith; + const int nth; +}; + template class tinyBLAS_Q0_PPC { public: @@ -2202,6 +2689,7 @@ class tinyBLAS_PPC { boffset = vec; j = (rows >> 3); if (j > 0) { + do { aoffset1 = aoffset; aoffset2 = aoffset1 + lda; @@ -2875,9 +3363,22 @@ bool llamafile_sgemm(const struct ggml_compute_params * params, int64_t m, int64 (float *)C, ldc}; return tb.matmul(m, n); } +#elif defined(__MMA__) + if ((k % 8)) + return false; + if(Btype == GGML_TYPE_BF16) { + tinyBLAS_BF16_PPC tb{ k, + (const ggml_bf16_t *)A, lda, + (const ggml_bf16_t *)B, ldb, + (float *)C, ldc, + params->ith, params->nth}; + tb.matmul(m, n); + return true; + } #endif return false; } + case GGML_TYPE_F16: { #if defined(__AVX512F__) if (Btype == GGML_TYPE_F16) { From a75cb30dc9e63488c3614e2d5a9fe2306eaf47cd Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 2 May 2025 20:54:13 +0300 Subject: [PATCH 087/126] context : fix reorder logic (#13267) ggml-ci --- src/llama-context.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/llama-context.cpp b/src/llama-context.cpp index a88b9a5ff9..45591be992 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -1050,6 +1050,9 @@ int llama_context::decode(llama_batch & inp_batch) { // finalize the batch processing kv_guard.commit(); + // set to total number of outputs in the batch, for use in llama_get_logits_ith + n_outputs = n_outputs_all; + // set output mappings { bool sorted_output = true; @@ -1103,9 +1106,6 @@ int llama_context::decode(llama_batch & inp_batch) { } } - // set to total number of outputs in the batch, for use in llama_get_logits_ith - n_outputs = n_outputs_all; - // wait for the computation to finish (automatically done when obtaining the model output) //synchronize(); From b34443923cad751483cc53af2e680d595daadce7 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 2 May 2025 20:54:30 +0300 Subject: [PATCH 088/126] sync : ggml (#13268) * vulkan : kernels for depthwise 2D convolution (CONV_2D_DW) (ggml/1204) * vulkan : add kernels for depthwise 2d convolution (OP_CONV_2D_DW) * review: remove src_x/y < 0 checks; add performance tests * sync : ggml ggml-ci * vulkan : fix lint (#0) --------- Co-authored-by: Acly --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 66 +++++++++++ .../ggml-vulkan/vulkan-shaders/conv2d_dw.comp | 105 ++++++++++++++++++ .../vulkan-shaders/vulkan-shaders-gen.cpp | 3 + scripts/sync-ggml.last | 2 +- tests/test-backend-ops.cpp | 50 +++++++++ 5 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index eac0b422bc..c4df47abae 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -389,6 +389,8 @@ struct vk_device_struct { vk_pipeline pipeline_rwkv_wkv6_f32; vk_pipeline pipeline_rwkv_wkv7_f32; vk_pipeline pipeline_opt_step_adamw_f32; + vk_pipeline pipeline_conv2d_dw_whcn_f32; + vk_pipeline pipeline_conv2d_dw_cwhn_f32; // [2][2][2] is for {f16acc,f32acc}x{large,small_rows}x{unaligned, aligned} vk_pipeline pipeline_flash_attn_f32_f16_D64[GGML_TYPE_COUNT][2][2][2]; @@ -701,6 +703,24 @@ struct vk_op_rwkv_wkv7_push_constants { uint32_t H; }; +struct vk_op_conv2d_dw_push_constants { + uint32_t ne; + uint32_t batches; + uint32_t channels; + uint32_t dst_w; + uint32_t dst_h; + uint32_t src_w; + uint32_t src_h; + uint32_t knl_w; + uint32_t knl_h; + int32_t stride_x; + int32_t stride_y; + int32_t pad_x; + int32_t pad_y; + int32_t dilation_x; + int32_t dilation_y; +}; + struct vk_op_upscale_push_constants { uint32_t ne; uint32_t a_offset; uint32_t d_offset; uint32_t nb00; uint32_t nb01; uint32_t nb02; uint32_t nb03; @@ -2610,6 +2630,9 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_opt_step_adamw_f32, "opt_step_adamw_f32", opt_step_adamw_f32_len, opt_step_adamw_f32_data, "main", 5, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_conv2d_dw_whcn_f32, "conv2d_dw_whcn_f32", conv2d_dw_whcn_f32_len, conv2d_dw_whcn_f32_data, "main", 3, sizeof(vk_op_conv2d_dw_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_conv2d_dw_cwhn_f32, "conv2d_dw_cwhn_f32", conv2d_dw_cwhn_f32_len, conv2d_dw_cwhn_f32_data, "main", 3, sizeof(vk_op_conv2d_dw_push_constants), {512, 1, 1}, {}, 1); + for (auto &c : compiles) { c.wait(); } @@ -6137,6 +6160,15 @@ static vk_pipeline ggml_vk_op_get_pipeline(ggml_backend_vk_context * ctx, const return ctx->device->pipeline_leaky_relu_f32; } return nullptr; + case GGML_OP_CONV_2D_DW: + if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { + if (ggml_is_contiguous(src1)) { + return ctx->device->pipeline_conv2d_dw_whcn_f32; + } else if (ggml_is_contiguous_channels(src1)) { + return ctx->device->pipeline_conv2d_dw_cwhn_f32; + } + } + return nullptr; default: return nullptr; } @@ -6163,6 +6195,7 @@ static bool ggml_vk_op_supports_incontiguous(ggml_op op) { case GGML_OP_REPEAT_BACK: case GGML_OP_ROPE: case GGML_OP_RMS_NORM: + case GGML_OP_CONV_2D_DW: return true; default: return false; @@ -6459,6 +6492,7 @@ static void ggml_vk_op_f32(ggml_backend_vk_context * ctx, vk_context& subctx, co case GGML_OP_CONCAT: case GGML_OP_UPSCALE: case GGML_OP_UNARY: + case GGML_OP_CONV_2D_DW: { const uint32_t ne = ggml_nelements(dst); if (ne > 262144) { @@ -7245,6 +7279,30 @@ static void ggml_vk_pool_2d(ggml_backend_vk_context * ctx, vk_context& subctx, c }, dryrun); } +static void ggml_vk_conv_2d_dw(ggml_backend_vk_context * ctx, vk_context& subctx, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst, bool dryrun = false) { + vk_op_conv2d_dw_push_constants p{}; + p.ne = ggml_nelements(dst); + p.channels = dst->ne[2]; + p.batches = dst->ne[3]; + p.dst_w = dst->ne[0]; + p.dst_h = dst->ne[1]; + p.src_w = src1->ne[0]; + p.src_h = src1->ne[1]; + p.knl_w = src0->ne[0]; + p.knl_h = src0->ne[1]; + p.stride_x = dst->op_params[0]; + p.stride_y = dst->op_params[1]; + p.pad_x = dst->op_params[2]; + p.pad_y = dst->op_params[3]; + p.dilation_x = dst->op_params[4]; + p.dilation_y = dst->op_params[5]; + + GGML_ASSERT(src0->ne[3] == p.channels); + GGML_ASSERT(src1->ne[3] == p.batches); + + ggml_vk_op_f32(ctx, subctx, src0, src1, nullptr, dst, GGML_OP_CONV_2D_DW, std::move(p), dryrun); +} + static void ggml_vk_leaky_relu(ggml_backend_vk_context * ctx, vk_context& subctx, const ggml_tensor * src0, ggml_tensor * dst, bool dryrun = false) { const float * op_params = (const float *)dst->op_params; ggml_vk_op_f32(ctx, subctx, src0, nullptr, nullptr, dst, GGML_OP_LEAKY_RELU, { (uint32_t)ggml_nelements(src0), 0, op_params[0], 0.0f }, dryrun); @@ -8265,6 +8323,7 @@ static bool ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_IM2COL: case GGML_OP_TIMESTEP_EMBEDDING: case GGML_OP_POOL_2D: + case GGML_OP_CONV_2D_DW: case GGML_OP_RWKV_WKV6: case GGML_OP_RWKV_WKV7: case GGML_OP_LEAKY_RELU: @@ -8328,6 +8387,7 @@ static bool ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_IM2COL: case GGML_OP_TIMESTEP_EMBEDDING: case GGML_OP_POOL_2D: + case GGML_OP_CONV_2D_DW: case GGML_OP_LEAKY_RELU: { // These operations all go through ggml_vk_op_f32, so short-circuit and @@ -8501,6 +8561,10 @@ static bool ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_tensor * nod case GGML_OP_POOL_2D: ggml_vk_pool_2d(ctx, compute_ctx, src0, node, dryrun); + break; + case GGML_OP_CONV_2D_DW: + ggml_vk_conv_2d_dw(ctx, compute_ctx, src0, src1, node, dryrun); + break; case GGML_OP_LEAKY_RELU: ggml_vk_leaky_relu(ctx, compute_ctx, src0, node, dryrun); @@ -8622,6 +8686,7 @@ static bool ggml_vk_compute_forward(ggml_backend_vk_context * ctx, ggml_tensor * case GGML_OP_IM2COL: case GGML_OP_TIMESTEP_EMBEDDING: case GGML_OP_POOL_2D: + case GGML_OP_CONV_2D_DW: case GGML_OP_RWKV_WKV6: case GGML_OP_RWKV_WKV7: case GGML_OP_LEAKY_RELU: @@ -9599,6 +9664,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_OP_COUNT_EQUAL: case GGML_OP_IM2COL: case GGML_OP_TIMESTEP_EMBEDDING: + case GGML_OP_CONV_2D_DW: case GGML_OP_POOL_2D: case GGML_OP_RWKV_WKV6: case GGML_OP_RWKV_WKV7: diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp b/ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp new file mode 100644 index 0000000000..938c74da50 --- /dev/null +++ b/ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp @@ -0,0 +1,105 @@ +#version 450 + +#include "types.comp" + +layout (push_constant) uniform parameter +{ + uint ne; + uint batches; + uint channels; + uint dst_w; + uint dst_h; + uint src_w; + uint src_h; + uint knl_w; + uint knl_h; + int stride_x; + int stride_y; + int pad_x; + int pad_y; + int dilation_x; + int dilation_y; +} p; + +layout (binding = 0) readonly buffer A {A_TYPE knl_data[];}; +layout (binding = 1) readonly buffer B {B_TYPE src_data[];}; +layout (binding = 2) writeonly buffer D {D_TYPE dst_data[];}; + +layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in; + +FLOAT_TYPE conv_2d_dw_whcn(uint idx) { + uint i0 = idx / p.dst_w; + uint dst_x = idx - i0 * p.dst_w; + uint i1 = i0 / p.dst_h; + uint dst_y = i0 - i1 * p.dst_h; + uint n = i1 / p.channels; + uint c = i1 - n * p.channels; + + uint src_i = n * p.channels * p.src_h * p.src_w + c * p.src_h * p.src_w; + uint knl_i = c * p.knl_h * p.knl_w; + + FLOAT_TYPE sum = 0.0; + for (uint knl_y = 0; knl_y < p.knl_h; ++knl_y) { + uint src_y = dst_y * p.stride_y + knl_y * p.dilation_y - p.pad_y; + if (src_y >= p.src_h) { // src_y < 0 will wrap to a large unsigned int + continue; + } + for (uint knl_x = 0; knl_x < p.knl_w; ++knl_x) { + uint src_x = dst_x * p.stride_x + knl_x * p.dilation_x - p.pad_x; + if (src_x >= p.src_w) { // src_x < 0 will wrap to a large unsigned int + continue; + } + FLOAT_TYPE v = FLOAT_TYPE(src_data[src_i + src_y * p.src_w + src_x]); + FLOAT_TYPE k = FLOAT_TYPE(knl_data[knl_i + knl_y * p.knl_w + knl_x]); + sum = fma(v, k, sum); + } + } + return sum; +} + +FLOAT_TYPE conv_2d_dw_cwhn(uint idx) { + uint i0 = idx / p.channels; + uint c = idx - i0 * p.channels; + uint i1 = i0 / p.dst_w; + uint dst_x = i0 - i1 * p.dst_w; + uint n = i1 / p.dst_h; + uint dst_y = i1 - n * p.dst_h; + + uint src_i = n * p.channels * p.src_h * p.src_w; + uint src_row = p.src_w * p.channels; + uint knl_row = p.knl_w * p.channels; + + FLOAT_TYPE sum = 0.0; + for (uint knl_y = 0; knl_y < p.knl_h; ++knl_y) { + uint src_y = dst_y * p.stride_y + knl_y * p.dilation_y - p.pad_y; + if (src_y >= p.src_h) { // src_y < 0 will wrap to a large unsigned int + continue; + } + for (uint knl_x = 0; knl_x < p.knl_w; ++knl_x) { + uint src_x = dst_x * p.stride_x + knl_x * p.dilation_x - p.pad_x; + if (src_x >= p.src_w) { // src_x < 0 will wrap to a large unsigned int + continue; + } + FLOAT_TYPE v = FLOAT_TYPE(src_data[src_i + src_y * src_row + src_x * p.channels + c]); + FLOAT_TYPE k = FLOAT_TYPE(knl_data[ knl_y * knl_row + knl_x * p.channels + c]); + sum = fma(v, k, sum); + } + } + return sum; +} + +void main() { + uint idx = gl_GlobalInvocationID.z * 262144 + gl_GlobalInvocationID.y * 512 + gl_GlobalInvocationID.x; + if (idx >= p.ne) { + return; + } + + FLOAT_TYPE result = +#ifdef WHCN + conv_2d_dw_whcn(idx); +#else + conv_2d_dw_cwhn(idx); +#endif + dst_data[idx] = D_TYPE(result); +} + diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index 3b28578545..759112b946 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -584,6 +584,9 @@ void process_shaders() { string_to_spv("opt_step_adamw_f32", "opt_step_adamw.comp", merge_maps(base_dict, {{"A_TYPE", "float"}})); + string_to_spv("conv2d_dw_whcn_f32", "conv2d_dw.comp", merge_maps(base_dict, {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}, {"WHCN", "1"}})); + string_to_spv("conv2d_dw_cwhn_f32", "conv2d_dw.comp", merge_maps(base_dict, {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}, {"CWHN", "1"}})); + for (auto &c : compiles) { c.wait(); } diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 433cfab7ff..3e93dbf8af 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -f3a375f20bf56860b30e7c511d03593a1e393345 +0482de9c63b9134eb462c7732888c0ee0dbc2755 diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 767498ef39..9ec24d9f23 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -2765,6 +2765,48 @@ struct test_im2col : public test_case { } }; +// GGML_OP_CONV_2D_DW +struct test_conv_2d_dw : public test_case { + const std::array ne_input; + const std::array ne_kernel; + const int stride; + const int padding; + const int dilation; + const bool cwhn; + + std::string vars() override { + return VARS_TO_STR6(ne_input, ne_kernel, stride, padding, dilation, cwhn); + } + + test_conv_2d_dw(std::array ne_input = {64, 64, 16, 1}, + std::array ne_kernel = {3, 3, 1, 16}, + int stride = 1, int padding = 0, int dilation = 1, bool cwhn = false) + : ne_input(ne_input), ne_kernel(ne_kernel), stride(stride), padding(padding), dilation(dilation), cwhn(cwhn) {} + + ggml_tensor * build_graph(ggml_context * ctx) override { + ggml_tensor * input = ggml_new_tensor(ctx, GGML_TYPE_F32, 4, ne_input.data()); + ggml_set_name(input, "input"); + + ggml_tensor * kernel = ggml_new_tensor(ctx, GGML_TYPE_F32, 4, ne_kernel.data()); + ggml_set_name(kernel, "kernel"); + + if (cwhn) { + // change memory layout to channel-most-contiguous (CWHN), + // then permute it back so NE matches the original input + input = ggml_cont(ctx, ggml_permute(ctx, input, 1, 2, 0, 3)); + input = ggml_permute(ctx, input, 2, 0, 1, 3); + kernel = ggml_cont(ctx, ggml_permute(ctx, kernel, 2, 3, 1, 0)); + kernel = ggml_permute(ctx, kernel, 3, 2, 0, 1); + } + + ggml_tensor * out = ggml_conv_2d_dw_direct( + ctx, kernel, input, + stride, stride, padding, padding, dilation, dilation); + ggml_set_name(out, "out"); + return out; + } +}; + // GGML_OP_CONCAT struct test_concat : public test_case { const ggml_type type; @@ -3975,6 +4017,11 @@ static std::vector> make_test_cases_eval() { // test_cases.emplace_back(new test_im2col(GGML_TYPE_F32, GGML_TYPE_F16, GGML_TYPE_F16, {1024, 1024, 256, 1}, {3, 3, 256, 1}, 1, 1, 1, 1, 1, 1, true)); // test_cases.emplace_back(new test_im2col(GGML_TYPE_F32, GGML_TYPE_F16, GGML_TYPE_F32, {1024, 1024, 256, 1}, {3, 3, 256, 1}, 1, 1, 1, 1, 1, 1, true)); + test_cases.emplace_back(new test_conv_2d_dw({17, 34, 9, 1}, {3, 3, 1, 9}, 1, 0, 1, false)); + test_cases.emplace_back(new test_conv_2d_dw({17, 34, 9, 1}, {3, 3, 1, 9}, 1, 0, 1, true)); + test_cases.emplace_back(new test_conv_2d_dw({32, 8, 64, 1}, {3, 3, 1, 64}, 2, 1, 1, false)); + test_cases.emplace_back(new test_conv_2d_dw({32, 8, 64, 1}, {3, 3, 1, 64}, 2, 1, 1, true)); + test_cases.emplace_back(new test_conv_transpose_1d()); test_cases.emplace_back(new test_conv_transpose_1d({3,2,1,1}, {2,3,2,1}, 3, 0, 1)); test_cases.emplace_back(new test_conv_transpose_1d({3,2,1,1}, {2,3,2,1}, 2, 0, 1)); @@ -4549,6 +4596,9 @@ static std::vector> make_test_cases_perf() { } } + test_cases.emplace_back(new test_conv_2d_dw({512, 512, 256, 1}, {3, 3, 1, 256}, 1, 1, 1, false)); + test_cases.emplace_back(new test_conv_2d_dw({512, 512, 256, 1}, {3, 3, 1, 256}, 1, 1, 1, true)); + return test_cases; } From 1d36b3670b285e69e58b9d687c770a2a0a192194 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Fri, 2 May 2025 20:27:13 +0200 Subject: [PATCH 089/126] llama : move end-user examples to tools directory (#13249) * llama : move end-user examples to tools directory --------- Co-authored-by: Xuan Son Nguyen --- .editorconfig | 8 +- .flake8 | 3 +- .github/labeler.yml | 6 +- .github/workflows/bench.yml.disabled | 30 +++--- .github/workflows/build-linux-cross.yml | 3 + .github/workflows/build.yml | 5 + .github/workflows/server.yml | 24 ++--- .gitignore | 12 +-- CMakeLists.txt | 5 + CODEOWNERS | 2 +- Makefile | 92 +++++++++--------- README.md | 20 ++-- SECURITY.md | 2 +- build-xcframework.sh | 2 + ci/run.sh | 8 +- common/arg.cpp | 4 +- common/common.h | 6 +- docs/development/HOWTO-add-model.md | 8 +- docs/multimodal/MobileVLM.md | 12 +-- docs/multimodal/glmedge.md | 4 +- docs/multimodal/llava.md | 12 +-- docs/multimodal/minicpmo2.6.md | 4 +- docs/multimodal/minicpmv2.5.md | 4 +- docs/multimodal/minicpmv2.6.md | 4 +- examples/CMakeLists.txt | 23 +---- .../pydantic_models_to_grammar_examples.py | 2 +- examples/server/public/index.html.gz | Bin 1263380 -> 0 bytes grammars/README.md | 12 +-- pyrightconfig.json | 2 +- requirements/requirements-all.txt | 6 +- scripts/fetch_server_test_models.py | 4 +- scripts/tool_bench.py | 6 +- scripts/xxd.cmake | 2 +- tests/CMakeLists.txt | 2 +- tests/run-json-schema-to-grammar.mjs | 2 +- tools/CMakeLists.txt | 39 ++++++++ .../batched-bench/CMakeLists.txt | 0 {examples => tools}/batched-bench/README.md | 0 .../batched-bench/batched-bench.cpp | 0 .../cvector-generator/CMakeLists.txt | 0 .../cvector-generator/README.md | 0 .../cvector-generator/completions.txt | 0 .../cvector-generator/cvector-generator.cpp | 0 .../cvector-generator/mean.hpp | 0 .../cvector-generator/negative.txt | 0 {examples => tools}/cvector-generator/pca.hpp | 0 .../cvector-generator/positive.txt | 0 .../export-lora/CMakeLists.txt | 0 {examples => tools}/export-lora/README.md | 0 .../export-lora/export-lora.cpp | 0 {examples => tools}/gguf-split/CMakeLists.txt | 0 {examples => tools}/gguf-split/README.md | 0 {examples => tools}/gguf-split/gguf-split.cpp | 0 {examples => tools}/gguf-split/tests.sh | 0 {examples => tools}/imatrix/CMakeLists.txt | 0 {examples => tools}/imatrix/README.md | 2 +- {examples => tools}/imatrix/imatrix.cpp | 0 .../llama-bench/CMakeLists.txt | 0 {examples => tools}/llama-bench/README.md | 2 +- .../llama-bench/llama-bench.cpp | 0 {examples => tools}/llava/CMakeLists.txt | 0 {examples => tools}/llava/README-quantize.md | 0 {examples => tools}/llava/README.md | 0 {examples => tools}/llava/android/adb_run.sh | 0 {examples => tools}/llava/android/build_64.sh | 0 {examples => tools}/llava/clip-impl.h | 0 .../llava/clip-quantize-cli.cpp | 0 {examples => tools}/llava/clip.cpp | 0 {examples => tools}/llava/clip.h | 0 .../llava/convert_image_encoder_to_gguf.py | 0 .../llava/deprecation-warning.cpp | 0 .../glmedge-convert-image-encoder-to-gguf.py | 0 {examples => tools}/llava/glmedge-surgery.py | 0 {examples => tools}/llava/llava.cpp | 0 {examples => tools}/llava/llava.h | 0 {examples => tools}/llava/llava_surgery.py | 0 {examples => tools}/llava/llava_surgery_v2.py | 0 .../minicpmv-convert-image-encoder-to-gguf.py | 0 {examples => tools}/llava/minicpmv-surgery.py | 0 {examples => tools}/llava/mtmd-cli.cpp | 0 {examples => tools}/llava/mtmd.cpp | 0 {examples => tools}/llava/mtmd.h | 0 {examples => tools}/llava/qwen2vl-test.cpp | 0 {examples => tools}/llava/requirements.txt | 0 {examples => tools}/llava/test-1.jpeg | Bin {examples => tools}/llava/tests.sh | 0 {examples => tools}/main/CMakeLists.txt | 0 {examples => tools}/main/README.md | 2 +- {examples => tools}/main/main.cpp | 0 {examples => tools}/perplexity/CMakeLists.txt | 0 {examples => tools}/perplexity/README.md | 0 {examples => tools}/perplexity/perplexity.cpp | 0 {examples => tools}/quantize/CMakeLists.txt | 0 {examples => tools}/quantize/README.md | 0 {examples => tools}/quantize/quantize.cpp | 0 {examples => tools}/quantize/tests.sh | 0 {examples => tools}/rpc/CMakeLists.txt | 0 {examples => tools}/rpc/README.md | 0 {examples => tools}/rpc/rpc-server.cpp | 0 {examples => tools}/run/CMakeLists.txt | 0 {examples => tools}/run/README.md | 0 .../run/linenoise.cpp/linenoise.cpp | 0 .../run/linenoise.cpp/linenoise.h | 0 {examples => tools}/run/run.cpp | 0 {examples => tools}/server/CMakeLists.txt | 0 {examples => tools}/server/README.md | 8 +- {examples => tools}/server/bench/README.md | 0 {examples => tools}/server/bench/bench.py | 0 .../server/bench/prometheus.yml | 0 .../server/bench/requirements.txt | 0 {examples => tools}/server/bench/script.js | 0 {examples => tools}/server/chat-llama2.sh | 0 {examples => tools}/server/chat.mjs | 0 {examples => tools}/server/chat.sh | 0 {examples => tools}/server/httplib.h | 0 tools/server/public/index.html.gz | Bin 0 -> 1263378 bytes .../server/public/loading.html | 0 .../server/public_legacy/colorthemes.css | 0 .../server/public_legacy/completion.js | 0 .../server/public_legacy/favicon.ico | Bin .../server/public_legacy/index-new.html | 0 .../server/public_legacy/index.html | 0 .../server/public_legacy/index.js | 0 .../public_legacy/json-schema-to-grammar.mjs | 0 .../server/public_legacy/loading.html | 0 .../server/public_legacy/prompt-formats.js | 0 .../server/public_legacy/style.css | 0 .../server/public_legacy/system-prompts.js | 0 .../public_legacy/theme-beeninorder.css | 0 .../server/public_legacy/theme-ketivah.css | 0 .../server/public_legacy/theme-mangotango.css | 0 .../server/public_legacy/theme-playground.css | 0 .../server/public_legacy/theme-polarnight.css | 0 .../server/public_legacy/theme-snowstorm.css | 0 .../server/public_simplechat/datautils.mjs | 0 .../server/public_simplechat/index.html | 0 .../server/public_simplechat/readme.md | 14 +-- .../server/public_simplechat/simplechat.css | 0 .../server/public_simplechat/simplechat.js | 0 .../public_simplechat/simplechat_screens.webp | Bin .../server/public_simplechat/ui.mjs | 0 {examples => tools}/server/server.cpp | 0 {examples => tools}/server/tests/.gitignore | 0 {examples => tools}/server/tests/README.md | 2 +- {examples => tools}/server/tests/conftest.py | 0 {examples => tools}/server/tests/pytest.ini | 0 .../server/tests/requirements.txt | 0 {examples => tools}/server/tests/tests.sh | 0 .../server/tests/unit/test_basic.py | 0 .../server/tests/unit/test_chat_completion.py | 0 .../server/tests/unit/test_completion.py | 0 .../server/tests/unit/test_ctx_shift.py | 0 .../server/tests/unit/test_embedding.py | 0 .../server/tests/unit/test_infill.py | 0 .../server/tests/unit/test_lora.py | 0 .../server/tests/unit/test_rerank.py | 0 .../server/tests/unit/test_security.py | 0 .../server/tests/unit/test_slot_save.py | 0 .../server/tests/unit/test_speculative.py | 0 .../server/tests/unit/test_tokenize.py | 0 .../server/tests/unit/test_tool_call.py | 0 {examples => tools}/server/tests/utils.py | 0 {examples => tools}/server/themes/README.md | 0 .../server/themes/buttons-top/README.md | 0 .../server/themes/buttons-top/buttons_top.png | Bin .../server/themes/buttons-top/favicon.ico | Bin .../server/themes/buttons-top/index.html | 0 .../server/themes/wild/README.md | 0 .../server/themes/wild/favicon.ico | Bin .../server/themes/wild/index.html | 0 .../server/themes/wild/llama_cpp.png | Bin .../server/themes/wild/llamapattern.png | Bin .../server/themes/wild/wild.png | Bin {examples => tools}/server/utils.hpp | 0 {examples => tools}/server/webui/.gitignore | 0 .../server/webui/.prettierignore | 0 .../server/webui/eslint.config.js | 0 {examples => tools}/server/webui/index.html | 0 .../server/webui/package-lock.json | 0 {examples => tools}/server/webui/package.json | 0 .../server/webui/postcss.config.js | 0 .../webui/public/demo-conversation.json | 0 {examples => tools}/server/webui/src/App.tsx | 0 .../server/webui/src/Config.ts | 0 .../src/components/CanvasPyInterpreter.tsx | 0 .../webui/src/components/ChatMessage.tsx | 0 .../webui/src/components/ChatScreen.tsx | 0 .../server/webui/src/components/Header.tsx | 0 .../webui/src/components/MarkdownDisplay.tsx | 0 .../webui/src/components/SettingDialog.tsx | 2 +- .../server/webui/src/components/Sidebar.tsx | 0 .../webui/src/components/useChatTextarea.ts | 0 .../server/webui/src/index.scss | 0 {examples => tools}/server/webui/src/main.tsx | 0 .../server/webui/src/utils/app.context.tsx | 0 .../server/webui/src/utils/common.tsx | 0 .../server/webui/src/utils/llama-vscode.ts | 0 .../server/webui/src/utils/misc.ts | 0 .../server/webui/src/utils/storage.ts | 0 .../server/webui/src/utils/types.ts | 0 .../server/webui/src/vite-env.d.ts | 0 .../server/webui/tailwind.config.js | 0 .../server/webui/tsconfig.app.json | 0 .../server/webui/tsconfig.json | 0 .../server/webui/tsconfig.node.json | 0 .../server/webui/vite.config.ts | 0 {examples => tools}/tokenize/CMakeLists.txt | 0 {examples => tools}/tokenize/tokenize.cpp | 0 {examples => tools}/tts/CMakeLists.txt | 0 {examples => tools}/tts/README.md | 4 +- {examples => tools}/tts/convert_pt_to_hf.py | 0 {examples => tools}/tts/tts-outetts.py | 0 {examples => tools}/tts/tts.cpp | 0 213 files changed, 226 insertions(+), 190 deletions(-) delete mode 100644 examples/server/public/index.html.gz create mode 100644 tools/CMakeLists.txt rename {examples => tools}/batched-bench/CMakeLists.txt (100%) rename {examples => tools}/batched-bench/README.md (100%) rename {examples => tools}/batched-bench/batched-bench.cpp (100%) rename {examples => tools}/cvector-generator/CMakeLists.txt (100%) rename {examples => tools}/cvector-generator/README.md (100%) rename {examples => tools}/cvector-generator/completions.txt (100%) rename {examples => tools}/cvector-generator/cvector-generator.cpp (100%) rename {examples => tools}/cvector-generator/mean.hpp (100%) rename {examples => tools}/cvector-generator/negative.txt (100%) rename {examples => tools}/cvector-generator/pca.hpp (100%) rename {examples => tools}/cvector-generator/positive.txt (100%) rename {examples => tools}/export-lora/CMakeLists.txt (100%) rename {examples => tools}/export-lora/README.md (100%) rename {examples => tools}/export-lora/export-lora.cpp (100%) rename {examples => tools}/gguf-split/CMakeLists.txt (100%) rename {examples => tools}/gguf-split/README.md (100%) rename {examples => tools}/gguf-split/gguf-split.cpp (100%) rename {examples => tools}/gguf-split/tests.sh (100%) rename {examples => tools}/imatrix/CMakeLists.txt (100%) rename {examples => tools}/imatrix/README.md (98%) rename {examples => tools}/imatrix/imatrix.cpp (100%) rename {examples => tools}/llama-bench/CMakeLists.txt (100%) rename {examples => tools}/llama-bench/README.md (99%) rename {examples => tools}/llama-bench/llama-bench.cpp (100%) rename {examples => tools}/llava/CMakeLists.txt (100%) rename {examples => tools}/llava/README-quantize.md (100%) rename {examples => tools}/llava/README.md (100%) rename {examples => tools}/llava/android/adb_run.sh (100%) rename {examples => tools}/llava/android/build_64.sh (100%) rename {examples => tools}/llava/clip-impl.h (100%) rename {examples => tools}/llava/clip-quantize-cli.cpp (100%) rename {examples => tools}/llava/clip.cpp (100%) rename {examples => tools}/llava/clip.h (100%) rename {examples => tools}/llava/convert_image_encoder_to_gguf.py (100%) rename {examples => tools}/llava/deprecation-warning.cpp (100%) rename {examples => tools}/llava/glmedge-convert-image-encoder-to-gguf.py (100%) rename {examples => tools}/llava/glmedge-surgery.py (100%) rename {examples => tools}/llava/llava.cpp (100%) rename {examples => tools}/llava/llava.h (100%) rename {examples => tools}/llava/llava_surgery.py (100%) rename {examples => tools}/llava/llava_surgery_v2.py (100%) rename {examples => tools}/llava/minicpmv-convert-image-encoder-to-gguf.py (100%) rename {examples => tools}/llava/minicpmv-surgery.py (100%) rename {examples => tools}/llava/mtmd-cli.cpp (100%) rename {examples => tools}/llava/mtmd.cpp (100%) rename {examples => tools}/llava/mtmd.h (100%) rename {examples => tools}/llava/qwen2vl-test.cpp (100%) rename {examples => tools}/llava/requirements.txt (100%) rename {examples => tools}/llava/test-1.jpeg (100%) rename {examples => tools}/llava/tests.sh (100%) rename {examples => tools}/main/CMakeLists.txt (100%) rename {examples => tools}/main/README.md (99%) rename {examples => tools}/main/main.cpp (100%) rename {examples => tools}/perplexity/CMakeLists.txt (100%) rename {examples => tools}/perplexity/README.md (100%) rename {examples => tools}/perplexity/perplexity.cpp (100%) rename {examples => tools}/quantize/CMakeLists.txt (100%) rename {examples => tools}/quantize/README.md (100%) rename {examples => tools}/quantize/quantize.cpp (100%) rename {examples => tools}/quantize/tests.sh (100%) rename {examples => tools}/rpc/CMakeLists.txt (100%) rename {examples => tools}/rpc/README.md (100%) rename {examples => tools}/rpc/rpc-server.cpp (100%) rename {examples => tools}/run/CMakeLists.txt (100%) rename {examples => tools}/run/README.md (100%) rename {examples => tools}/run/linenoise.cpp/linenoise.cpp (100%) rename {examples => tools}/run/linenoise.cpp/linenoise.h (100%) rename {examples => tools}/run/run.cpp (100%) rename {examples => tools}/server/CMakeLists.txt (100%) rename {examples => tools}/server/README.md (99%) rename {examples => tools}/server/bench/README.md (100%) rename {examples => tools}/server/bench/bench.py (100%) rename {examples => tools}/server/bench/prometheus.yml (100%) rename {examples => tools}/server/bench/requirements.txt (100%) rename {examples => tools}/server/bench/script.js (100%) rename {examples => tools}/server/chat-llama2.sh (100%) rename {examples => tools}/server/chat.mjs (100%) rename {examples => tools}/server/chat.sh (100%) rename {examples => tools}/server/httplib.h (100%) create mode 100644 tools/server/public/index.html.gz rename {examples => tools}/server/public/loading.html (100%) rename {examples => tools}/server/public_legacy/colorthemes.css (100%) rename {examples => tools}/server/public_legacy/completion.js (100%) rename {examples => tools}/server/public_legacy/favicon.ico (100%) rename {examples => tools}/server/public_legacy/index-new.html (100%) rename {examples => tools}/server/public_legacy/index.html (100%) rename {examples => tools}/server/public_legacy/index.js (100%) rename {examples => tools}/server/public_legacy/json-schema-to-grammar.mjs (100%) rename {examples => tools}/server/public_legacy/loading.html (100%) rename {examples => tools}/server/public_legacy/prompt-formats.js (100%) rename {examples => tools}/server/public_legacy/style.css (100%) rename {examples => tools}/server/public_legacy/system-prompts.js (100%) rename {examples => tools}/server/public_legacy/theme-beeninorder.css (100%) rename {examples => tools}/server/public_legacy/theme-ketivah.css (100%) rename {examples => tools}/server/public_legacy/theme-mangotango.css (100%) rename {examples => tools}/server/public_legacy/theme-playground.css (100%) rename {examples => tools}/server/public_legacy/theme-polarnight.css (100%) rename {examples => tools}/server/public_legacy/theme-snowstorm.css (100%) rename {examples => tools}/server/public_simplechat/datautils.mjs (100%) rename {examples => tools}/server/public_simplechat/index.html (100%) rename {examples => tools}/server/public_simplechat/readme.md (97%) rename {examples => tools}/server/public_simplechat/simplechat.css (100%) rename {examples => tools}/server/public_simplechat/simplechat.js (100%) rename {examples => tools}/server/public_simplechat/simplechat_screens.webp (100%) rename {examples => tools}/server/public_simplechat/ui.mjs (100%) rename {examples => tools}/server/server.cpp (100%) rename {examples => tools}/server/tests/.gitignore (100%) rename {examples => tools}/server/tests/README.md (96%) rename {examples => tools}/server/tests/conftest.py (100%) rename {examples => tools}/server/tests/pytest.ini (100%) rename {examples => tools}/server/tests/requirements.txt (100%) rename {examples => tools}/server/tests/tests.sh (100%) rename {examples => tools}/server/tests/unit/test_basic.py (100%) rename {examples => tools}/server/tests/unit/test_chat_completion.py (100%) rename {examples => tools}/server/tests/unit/test_completion.py (100%) rename {examples => tools}/server/tests/unit/test_ctx_shift.py (100%) rename {examples => tools}/server/tests/unit/test_embedding.py (100%) rename {examples => tools}/server/tests/unit/test_infill.py (100%) rename {examples => tools}/server/tests/unit/test_lora.py (100%) rename {examples => tools}/server/tests/unit/test_rerank.py (100%) rename {examples => tools}/server/tests/unit/test_security.py (100%) rename {examples => tools}/server/tests/unit/test_slot_save.py (100%) rename {examples => tools}/server/tests/unit/test_speculative.py (100%) rename {examples => tools}/server/tests/unit/test_tokenize.py (100%) rename {examples => tools}/server/tests/unit/test_tool_call.py (100%) rename {examples => tools}/server/tests/utils.py (100%) rename {examples => tools}/server/themes/README.md (100%) rename {examples => tools}/server/themes/buttons-top/README.md (100%) rename {examples => tools}/server/themes/buttons-top/buttons_top.png (100%) rename {examples => tools}/server/themes/buttons-top/favicon.ico (100%) rename {examples => tools}/server/themes/buttons-top/index.html (100%) rename {examples => tools}/server/themes/wild/README.md (100%) rename {examples => tools}/server/themes/wild/favicon.ico (100%) rename {examples => tools}/server/themes/wild/index.html (100%) rename {examples => tools}/server/themes/wild/llama_cpp.png (100%) rename {examples => tools}/server/themes/wild/llamapattern.png (100%) rename {examples => tools}/server/themes/wild/wild.png (100%) rename {examples => tools}/server/utils.hpp (100%) rename {examples => tools}/server/webui/.gitignore (100%) rename {examples => tools}/server/webui/.prettierignore (100%) rename {examples => tools}/server/webui/eslint.config.js (100%) rename {examples => tools}/server/webui/index.html (100%) rename {examples => tools}/server/webui/package-lock.json (100%) rename {examples => tools}/server/webui/package.json (100%) rename {examples => tools}/server/webui/postcss.config.js (100%) rename {examples => tools}/server/webui/public/demo-conversation.json (100%) rename {examples => tools}/server/webui/src/App.tsx (100%) rename {examples => tools}/server/webui/src/Config.ts (100%) rename {examples => tools}/server/webui/src/components/CanvasPyInterpreter.tsx (100%) rename {examples => tools}/server/webui/src/components/ChatMessage.tsx (100%) rename {examples => tools}/server/webui/src/components/ChatScreen.tsx (100%) rename {examples => tools}/server/webui/src/components/Header.tsx (100%) rename {examples => tools}/server/webui/src/components/MarkdownDisplay.tsx (100%) rename {examples => tools}/server/webui/src/components/SettingDialog.tsx (99%) rename {examples => tools}/server/webui/src/components/Sidebar.tsx (100%) rename {examples => tools}/server/webui/src/components/useChatTextarea.ts (100%) rename {examples => tools}/server/webui/src/index.scss (100%) rename {examples => tools}/server/webui/src/main.tsx (100%) rename {examples => tools}/server/webui/src/utils/app.context.tsx (100%) rename {examples => tools}/server/webui/src/utils/common.tsx (100%) rename {examples => tools}/server/webui/src/utils/llama-vscode.ts (100%) rename {examples => tools}/server/webui/src/utils/misc.ts (100%) rename {examples => tools}/server/webui/src/utils/storage.ts (100%) rename {examples => tools}/server/webui/src/utils/types.ts (100%) rename {examples => tools}/server/webui/src/vite-env.d.ts (100%) rename {examples => tools}/server/webui/tailwind.config.js (100%) rename {examples => tools}/server/webui/tsconfig.app.json (100%) rename {examples => tools}/server/webui/tsconfig.json (100%) rename {examples => tools}/server/webui/tsconfig.node.json (100%) rename {examples => tools}/server/webui/vite.config.ts (100%) rename {examples => tools}/tokenize/CMakeLists.txt (100%) rename {examples => tools}/tokenize/tokenize.cpp (100%) rename {examples => tools}/tts/CMakeLists.txt (100%) rename {examples => tools}/tts/README.md (96%) rename {examples => tools}/tts/convert_pt_to_hf.py (100%) rename {examples => tools}/tts/tts-outetts.py (100%) rename {examples => tools}/tts/tts.cpp (100%) diff --git a/.editorconfig b/.editorconfig index 5d63d0a51e..1eadda334a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -21,15 +21,15 @@ indent_style = tab [prompts/*.txt] insert_final_newline = unset -[examples/server/public/*] +[tools/server/public/*] indent_size = 2 -[examples/server/public/deps_*] +[tools/server/public/deps_*] trim_trailing_whitespace = unset indent_style = unset indent_size = unset -[examples/server/deps_*] +[tools/server/deps_*] trim_trailing_whitespace = unset indent_style = unset indent_size = unset @@ -37,7 +37,7 @@ indent_size = unset [examples/llama.swiftui/llama.swiftui.xcodeproj/*] indent_style = tab -[examples/cvector-generator/*.txt] +[tools/cvector-generator/*.txt] trim_trailing_whitespace = unset insert_final_newline = unset diff --git a/.flake8 b/.flake8 index d64c2564ac..669d231f1f 100644 --- a/.flake8 +++ b/.flake8 @@ -2,8 +2,9 @@ max-line-length = 125 ignore = E203,E211,E221,E225,E231,E241,E251,E261,E266,E501,E701,E704,W503 exclude = - # Do not traverse examples + # Do not traverse examples and tools examples, + tools, # Do not include package initializers __init__.py, # No need to traverse our git directory diff --git a/.github/labeler.yml b/.github/labeler.yml index 1b47bc9688..278032ef2e 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -45,7 +45,9 @@ build: - CMakePresets.json examples: - changed-files: - - any-glob-to-any-file: examples/** + - any-glob-to-any-file: + - examples/** + - tools/** devops: - changed-files: - any-glob-to-any-file: @@ -70,7 +72,7 @@ android: server: - changed-files: - any-glob-to-any-file: - - examples/server/** + - tools/server/** ggml: - changed-files: - any-glob-to-any-file: diff --git a/.github/workflows/bench.yml.disabled b/.github/workflows/bench.yml.disabled index 75d2714792..f2d7e16e98 100644 --- a/.github/workflows/bench.yml.disabled +++ b/.github/workflows/bench.yml.disabled @@ -27,10 +27,10 @@ on: push: branches: - master - paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'examples/server/*.h*', 'examples/server/*.cpp'] + paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'tools/server/*.h*', 'tools/server/*.cpp'] pull_request_target: types: [opened, synchronize, reopened] - paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'examples/server/*.h*', 'examples/server/*.cpp'] + paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'tools/server/*.h*', 'tools/server/*.cpp'] schedule: - cron: '04 2 * * *' @@ -69,7 +69,7 @@ jobs: - name: Install python env id: pipenv run: | - cd examples/server/bench + cd tools/server/bench python3 -m venv venv source venv/bin/activate pip install -r requirements.txt @@ -79,7 +79,7 @@ jobs: run: | wget --quiet https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz tar xzf prometheus*.tar.gz --strip-components=1 - ./prometheus --config.file=examples/server/bench/prometheus.yml & + ./prometheus --config.file=tools/server/bench/prometheus.yml & while ! nc -z localhost 9090; do sleep 0.1 done @@ -92,7 +92,7 @@ jobs: - name: Install k6 and xk6-sse id: k6_installation run: | - cd examples/server/bench + cd tools/server/bench go install go.k6.io/xk6/cmd/xk6@latest xk6 build master \ --with github.com/phymbert/xk6-sse @@ -116,7 +116,7 @@ jobs: - name: Download the dataset id: download_dataset run: | - cd examples/server/bench + cd tools/server/bench wget --quiet https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json - name: Server bench @@ -126,7 +126,7 @@ jobs: run: | set -eux - cd examples/server/bench + cd tools/server/bench source venv/bin/activate python bench.py \ --runner-label ${{ env.RUNNER_LABEL }} \ @@ -157,9 +157,9 @@ jobs: name: bench-server-${{ github.job }}-${{ env.RUNNER_LABEL }}-${{ matrix.model }}-${{ matrix.ftype }} compression-level: 9 path: | - examples/server/bench/*.jpg - examples/server/bench/*.json - examples/server/bench/*.log + tools/server/bench/*.jpg + tools/server/bench/*.json + tools/server/bench/*.log - name: Commit status uses: Sibz/github-status-action@v1 @@ -178,17 +178,17 @@ jobs: with: client_id: ${{secrets.IMGUR_CLIENT_ID}} path: | - examples/server/bench/prompt_tokens_seconds.jpg - examples/server/bench/predicted_tokens_seconds.jpg - examples/server/bench/kv_cache_usage_ratio.jpg - examples/server/bench/requests_processing.jpg + tools/server/bench/prompt_tokens_seconds.jpg + tools/server/bench/predicted_tokens_seconds.jpg + tools/server/bench/kv_cache_usage_ratio.jpg + tools/server/bench/requests_processing.jpg - name: Extract mermaid id: set_mermaid run: | set -eux - cd examples/server/bench + cd tools/server/bench PROMPT_TOKENS_SECONDS=$(cat prompt_tokens_seconds.mermaid) echo "PROMPT_TOKENS_SECONDS<> $GITHUB_ENV echo "$PROMPT_TOKENS_SECONDS" >> $GITHUB_ENV diff --git a/.github/workflows/build-linux-cross.yml b/.github/workflows/build-linux-cross.yml index d104b8b124..1c38d7e11d 100644 --- a/.github/workflows/build-linux-cross.yml +++ b/.github/workflows/build-linux-cross.yml @@ -34,6 +34,7 @@ jobs: cmake -B build -DCMAKE_BUILD_TYPE=Release \ -DGGML_OPENMP=OFF \ -DLLAMA_BUILD_EXAMPLES=ON \ + -DLLAMA_BUILD_TOOLS=ON \ -DLLAMA_BUILD_TESTS=OFF \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_SYSTEM_PROCESSOR=riscv64 \ @@ -80,6 +81,7 @@ jobs: -DGGML_VULKAN=ON \ -DGGML_OPENMP=OFF \ -DLLAMA_BUILD_EXAMPLES=ON \ + -DLLAMA_BUILD_TOOLS=ON \ -DLLAMA_BUILD_TESTS=OFF \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_SYSTEM_PROCESSOR=riscv64 \ @@ -125,6 +127,7 @@ jobs: -DGGML_VULKAN=ON \ -DGGML_OPENMP=OFF \ -DLLAMA_BUILD_EXAMPLES=ON \ + -DLLAMA_BUILD_TOOLS=ON \ -DLLAMA_BUILD_TESTS=OFF \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_SYSTEM_PROCESSOR=aarch64 \ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 34417985d2..bcea1a8afc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -633,6 +633,7 @@ jobs: -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_SYSTEM_NAME=iOS \ @@ -669,6 +670,7 @@ jobs: -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_SYSTEM_NAME=tvOS \ @@ -699,6 +701,7 @@ jobs: -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_BUILD_COMMON=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_SYSTEM_NAME=visionOS \ @@ -739,6 +742,7 @@ jobs: -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_CURL=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" @@ -1417,6 +1421,7 @@ jobs: -DGGML_METAL_EMBED_LIBRARY=ON \ -DLLAMA_CURL=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DCMAKE_SYSTEM_NAME=iOS \ diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 6c9b513227..4baf6f6c75 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -15,10 +15,10 @@ on: push: branches: - master - paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] + paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'tools/server/**.*'] pull_request: types: [opened, synchronize, reopened] - paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] + paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'tools/server/**.*'] env: LLAMA_LOG_COLORS: 1 @@ -74,7 +74,7 @@ jobs: - name: Tests dependencies id: test_dependencies run: | - pip install -r examples/server/tests/requirements.txt + pip install -r tools/server/tests/requirements.txt # Setup nodejs (to be used for verifying bundled index.html) - uses: actions/setup-node@v4 @@ -84,14 +84,14 @@ jobs: - name: WebUI - Install dependencies id: webui_lint run: | - cd examples/server/webui + cd tools/server/webui npm ci - name: WebUI - Check code format id: webui_format run: | git config --global --add safe.directory $(realpath .) - cd examples/server/webui + cd tools/server/webui git status npm run format @@ -108,7 +108,7 @@ jobs: id: verify_server_index_html run: | git config --global --add safe.directory $(realpath .) - cd examples/server/webui + cd tools/server/webui git status npm run build @@ -161,21 +161,21 @@ jobs: env: GITHUB_ACTIONS: "true" run: | - cd examples/server/tests + cd tools/server/tests ./tests.sh - name: Tests (sanitizers) id: server_integration_tests_sanitizers if: ${{ matrix.sanitizer != '' }} run: | - cd examples/server/tests + cd tools/server/tests LLAMA_SANITIZE=1 ./tests.sh - name: Slow tests id: server_integration_tests_slow if: ${{ (github.event.schedule || github.event.inputs.slow_tests == 'true') && matrix.build_type == 'Release' }} run: | - cd examples/server/tests + cd tools/server/tests SLOW_TESTS=1 ./tests.sh @@ -211,7 +211,7 @@ jobs: - name: Tests dependencies id: test_dependencies run: | - pip install -r examples/server/tests/requirements.txt + pip install -r tools/server/tests/requirements.txt - name: Copy Libcurl id: prepare_libcurl @@ -224,7 +224,7 @@ jobs: id: server_integration_tests if: ${{ !matrix.disabled_on_pr || !github.event.pull_request }} run: | - cd examples/server/tests + cd tools/server/tests $env:PYTHONIOENCODING = ":replace" pytest -v -x -m "not slow" @@ -232,6 +232,6 @@ jobs: id: server_integration_tests_slow if: ${{ (github.event.schedule || github.event.inputs.slow_tests == 'true') && matrix.build_type == 'Release' }} run: | - cd examples/server/tests + cd tools/server/tests $env:SLOW_TESTS = "1" pytest -v -x diff --git a/.gitignore b/.gitignore index 2c67ad7f7c..f8ceb1560a 100644 --- a/.gitignore +++ b/.gitignore @@ -96,11 +96,11 @@ perf-*.txt # Examples examples/jeopardy/results.txt -examples/server/*.css.hpp -examples/server/*.html.hpp -examples/server/*.js.hpp -examples/server/*.mjs.hpp -examples/server/*.gz.hpp +tools/server/*.css.hpp +tools/server/*.html.hpp +tools/server/*.js.hpp +tools/server/*.mjs.hpp +tools/server/*.gz.hpp !build_64.sh !examples/*.bat !examples/*/*.kts @@ -110,7 +110,7 @@ examples/server/*.gz.hpp # Server Web UI temporary files node_modules -examples/server/webui/dist +tools/server/webui/dist # Python diff --git a/CMakeLists.txt b/CMakeLists.txt index de51c0a17b..3f7e43b6e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,7 @@ option(LLAMA_BUILD_COMMON "llama: build common utils library" ${LLAMA_STANDALONE # extra artifacts option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE}) +option(LLAMA_BUILD_TOOLS "llama: build tools" ${LLAMA_STANDALONE}) option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE}) option(LLAMA_BUILD_SERVER "llama: build server example" ${LLAMA_STANDALONE}) @@ -187,6 +188,10 @@ if (LLAMA_BUILD_COMMON AND LLAMA_BUILD_EXAMPLES) add_subdirectory(pocs) endif() +if (LLAMA_BUILD_COMMON AND LLAMA_BUILD_TOOLS) + add_subdirectory(tools) +endif() + # # install # diff --git a/CODEOWNERS b/CODEOWNERS index 72d594b46e..3186f8eb1c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -2,7 +2,7 @@ /ci/ @ggerganov /.devops/*.Dockerfile @ngxson -/examples/server/ @ngxson +/tools/server/ @ngxson /ggml/src/ggml-cuda/fattn* @JohannesGaessler /ggml/src/ggml-cuda/mmq.* @JohannesGaessler /ggml/src/ggml-cuda/mmv.* @JohannesGaessler diff --git a/Makefile b/Makefile index 772993ada2..305037089b 100644 --- a/Makefile +++ b/Makefile @@ -1156,10 +1156,10 @@ $(LIB_COMMON_S): $(OBJ_COMMON) # Clean generated server assets clean-server-assets: - find examples/server -type f -name "*.js.hpp" -delete - find examples/server -type f -name "*.mjs.hpp" -delete - find examples/server -type f -name "*.css.hpp" -delete - find examples/server -type f -name "*.html.hpp" -delete + find tools/server -type f -name "*.js.hpp" -delete + find tools/server -type f -name "*.mjs.hpp" -delete + find tools/server -type f -name "*.css.hpp" -delete + find tools/server -type f -name "*.html.hpp" -delete # Clean rule clean: clean-server-assets @@ -1179,7 +1179,7 @@ clean: clean-server-assets # Helper function that replaces .c, .cpp, and .cu file endings with .o: GET_OBJ_FILE = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cu,%.o,$(1)))) -llama-cli: examples/main/main.cpp \ +llama-cli: tools/main/main.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1192,7 +1192,7 @@ llama-infill: examples/infill/infill.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-run: examples/run/run.cpp \ +llama-run: tools/run/run.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1207,7 +1207,7 @@ llama-simple-chat: examples/simple-chat/simple-chat.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-tokenize: examples/tokenize/tokenize.cpp \ +llama-tokenize: tools/tokenize/tokenize.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1217,27 +1217,27 @@ llama-batched: examples/batched/batched.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-batched-bench: examples/batched-bench/batched-bench.cpp \ +llama-batched-bench: tools/batched-bench/batched-bench.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-quantize: examples/quantize/quantize.cpp \ +llama-quantize: tools/quantize/quantize.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-quantize-stats: examples/quantize-stats/quantize-stats.cpp \ +llama-quantize-stats: tools/quantize-stats/quantize-stats.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-perplexity: examples/perplexity/perplexity.cpp \ +llama-perplexity: tools/perplexity/perplexity.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-imatrix: examples/imatrix/imatrix.cpp \ +llama-imatrix: tools/imatrix/imatrix.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1279,7 +1279,7 @@ llama-gguf-hash: examples/gguf-hash/gguf-hash.cpp examples/gguf-hash/deps/sha1/s $(CXX) $(CXXFLAGS) -Iexamples/gguf-hash/deps -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-gguf-split: examples/gguf-split/gguf-split.cpp \ +llama-gguf-split: tools/gguf-split/gguf-split.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1289,7 +1289,7 @@ llama-eval-callback: examples/eval-callback/eval-callback.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-cvector-generator: examples/cvector-generator/cvector-generator.cpp \ +llama-cvector-generator: tools/cvector-generator/cvector-generator.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1299,12 +1299,12 @@ llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/convert-llama2c- $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-bench: examples/llama-bench/llama-bench.cpp \ +llama-bench: tools/llama-bench/llama-bench.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -llama-export-lora: examples/export-lora/export-lora.cpp \ +llama-export-lora: tools/export-lora/export-lora.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) @@ -1360,17 +1360,17 @@ llama-gbnf-validator: examples/gbnf-validator/gbnf-validator.cpp \ $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) ifdef GGML_RPC -rpc-server: examples/rpc/rpc-server.cpp \ +rpc-server: tools/rpc/rpc-server.cpp \ $(OBJ_GGML) $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) endif # GGML_RPC llama-server: \ - examples/server/server.cpp \ - examples/server/utils.hpp \ - examples/server/httplib.h \ - examples/server/index.html.hpp \ - examples/server/loading.html.hpp \ + tools/server/server.cpp \ + tools/server/utils.hpp \ + tools/server/httplib.h \ + tools/server/index.html.hpp \ + tools/server/loading.html.hpp \ common/chat.cpp \ common/chat.h \ common/chat-template.hpp \ @@ -1378,10 +1378,10 @@ llama-server: \ common/minja.hpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) - $(CXX) $(CXXFLAGS) $(filter-out %.h %.hpp $<,$^) -Iexamples/server $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) $(LWINSOCK2) + $(CXX) $(CXXFLAGS) $(filter-out %.h %.hpp $<,$^) -Itools/server $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) $(LWINSOCK2) -# Portable equivalent of `cd examples/server/public && xxd -i $(notdir $<) ../$(notdir $<).hpp`: -examples/server/%.hpp: examples/server/public/% FORCE Makefile +# Portable equivalent of `cd tools/server/public && xxd -i $(notdir $<) ../$(notdir $<).hpp`: +tools/server/%.hpp: tools/server/public/% FORCE Makefile @( export NAME=$(subst .,_,$(subst -,_,$(notdir $<))) && \ echo "unsigned char $${NAME}[] = {" && \ cat $< | od -v -t x1 -An | sed -E 's/([0-9a-fA-F]+)/0x\1, /g' && \ @@ -1394,36 +1394,36 @@ llama-gen-docs: examples/gen-docs/gen-docs.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -libllava.a: examples/llava/llava.cpp \ - examples/llava/llava.h \ - examples/llava/clip.cpp \ - examples/llava/clip.h \ +libllava.a: tools/llava/llava.cpp \ + tools/llava/llava.h \ + tools/llava/clip.cpp \ + tools/llava/clip.h \ common/stb_image.h \ common/base64.hpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -static -fPIC -c $< -o $@ -Wno-cast-qual -llama-llava-cli: examples/llava/llava-cli.cpp \ - examples/llava/llava.cpp \ - examples/llava/llava.h \ - examples/llava/clip.cpp \ - examples/llava/clip.h \ +llama-llava-cli: tools/llava/llava-cli.cpp \ + tools/llava/llava.cpp \ + tools/llava/llava.h \ + tools/llava/clip.cpp \ + tools/llava/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual -llama-minicpmv-cli: examples/llava/minicpmv-cli.cpp \ - examples/llava/llava.cpp \ - examples/llava/llava.h \ - examples/llava/clip.cpp \ - examples/llava/clip.h \ +llama-minicpmv-cli: tools/llava/minicpmv-cli.cpp \ + tools/llava/llava.cpp \ + tools/llava/llava.h \ + tools/llava/clip.cpp \ + tools/llava/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual -llama-qwen2vl-cli: examples/llava/qwen2vl-cli.cpp \ - examples/llava/llava.cpp \ - examples/llava/llava.h \ - examples/llava/clip.cpp \ - examples/llava/clip.h \ +llama-qwen2vl-cli: tools/llava/qwen2vl-cli.cpp \ + tools/llava/llava.cpp \ + tools/llava/llava.h \ + tools/llava/clip.cpp \ + tools/llava/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual @@ -1480,12 +1480,12 @@ tests/test-double-float: tests/test-double-float.cpp tests/test-json-schema-to-grammar: tests/test-json-schema-to-grammar.cpp \ $(OBJ_ALL) - $(CXX) $(CXXFLAGS) -Iexamples/server -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) -Itools/server -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) tests/test-chat: tests/test-chat.cpp \ $(OBJ_ALL) - $(CXX) $(CXXFLAGS) -Iexamples/server -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) -Itools/server -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) tests/test-opt: tests/test-opt.cpp \ diff --git a/README.md b/README.md index 42c0eb633e..e0232478c7 100644 --- a/README.md +++ b/README.md @@ -242,7 +242,7 @@ Instructions for adding support for new models: [HOWTO-add-model.md](docs/develo | [Vulkan](docs/build.md#vulkan) | GPU | | [CANN](docs/build.md#cann) | Ascend NPU | | [OpenCL](docs/backend/OPENCL.md) | Adreno GPU | -| [RPC](https://github.com/ggml-org/llama.cpp/tree/master/examples/rpc) | All | +| [RPC](https://github.com/ggml-org/llama.cpp/tree/master/tools/rpc) | All | ## Building the project @@ -276,9 +276,9 @@ The Hugging Face platform provides a variety of online tools for converting, qua - Use the [GGUF-editor space](https://huggingface.co/spaces/CISCai/gguf-editor) to edit GGUF meta data in the browser (more info: https://github.com/ggml-org/llama.cpp/discussions/9268) - Use the [Inference Endpoints](https://ui.endpoints.huggingface.co/) to directly host `llama.cpp` in the cloud (more info: https://github.com/ggml-org/llama.cpp/discussions/9669) -To learn more about model quantization, [read this documentation](examples/quantize/README.md) +To learn more about model quantization, [read this documentation](tools/quantize/README.md) -## [`llama-cli`](examples/main) +## [`llama-cli`](tools/main) #### A CLI tool for accessing and experimenting with most of `llama.cpp`'s functionality. @@ -341,7 +341,7 @@ To learn more about model quantization, [read this documentation](examples/quant -## [`llama-server`](examples/server) +## [`llama-server`](tools/server) #### A lightweight, [OpenAI API](https://github.com/openai/openai-openapi) compatible, HTTP server for serving LLMs. @@ -411,7 +411,7 @@ To learn more about model quantization, [read this documentation](examples/quant -## [`llama-perplexity`](examples/perplexity) +## [`llama-perplexity`](tools/perplexity) #### A tool for measuring the perplexity [^1][^2] (and other quality metrics) of a model over a given text. @@ -436,10 +436,10 @@ To learn more about model quantization, [read this documentation](examples/quant -[^1]: [examples/perplexity/README.md](./examples/perplexity/README.md) +[^1]: [tools/perplexity/README.md](./tools/perplexity/README.md) [^2]: [https://huggingface.co/docs/transformers/perplexity](https://huggingface.co/docs/transformers/perplexity) -## [`llama-bench`](examples/llama-bench) +## [`llama-bench`](tools/llama-bench) #### Benchmark the performance of the inference for various parameters. @@ -460,7 +460,7 @@ To learn more about model quantization, [read this documentation](examples/quant -## [`llama-run`](examples/run) +## [`llama-run`](tools/run) #### A comprehensive example for running `llama.cpp` models. Useful for inferencing. Used with RamaLama [^3]. @@ -504,8 +504,8 @@ To learn more about model quantization, [read this documentation](examples/quant ## Other documentation -- [main (cli)](examples/main/README.md) -- [server](examples/server/README.md) +- [main (cli)](tools/main/README.md) +- [server](tools/server/README.md) - [GBNF grammars](grammars/README.md) #### Development documentation diff --git a/SECURITY.md b/SECURITY.md index 9370fb1a88..9749e95b71 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -40,7 +40,7 @@ To protect sensitive data from potential leaks or unauthorized access, it is cru ### Untrusted environments or networks If you can't run your models in a secure and isolated environment or if it must be exposed to an untrusted network, make sure to take the following security precautions: -* Do not use the RPC backend, [rpc-server](https://github.com/ggml-org/llama.cpp/tree/master/examples/rpc) and [llama-server](https://github.com/ggml-org/llama.cpp/tree/master/examples/server) functionality (see https://github.com/ggml-org/llama.cpp/pull/13061). +* Do not use the RPC backend, [rpc-server](https://github.com/ggml-org/llama.cpp/tree/master/tools/rpc) and [llama-server](https://github.com/ggml-org/llama.cpp/tree/master/tools/server) functionality (see https://github.com/ggml-org/llama.cpp/pull/13061). * Confirm the hash of any downloaded artifact (e.g. pre-trained model weights) matches a known-good value. * Encrypt your data if sending it over the network. diff --git a/build-xcframework.sh b/build-xcframework.sh index 97001b5f7f..3c2498b035 100755 --- a/build-xcframework.sh +++ b/build-xcframework.sh @@ -8,6 +8,7 @@ TVOS_MIN_OS_VERSION=16.4 BUILD_SHARED_LIBS=OFF LLAMA_BUILD_EXAMPLES=OFF +LLAMA_BUILD_TOOLS=OFF LLAMA_BUILD_TESTS=OFF LLAMA_BUILD_SERVER=OFF GGML_METAL=ON @@ -31,6 +32,7 @@ COMMON_CMAKE_ARGS=( -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DLLAMA_BUILD_EXAMPLES=${LLAMA_BUILD_EXAMPLES} + -DLLAMA_BUILD_TOOLS=${LLAMA_BUILD_TOOLS} -DLLAMA_BUILD_TESTS=${LLAMA_BUILD_TESTS} -DLLAMA_BUILD_SERVER=${LLAMA_BUILD_SERVER} -DGGML_METAL_EMBED_LIBRARY=${GGML_METAL_EMBED_LIBRARY} diff --git a/ci/run.sh b/ci/run.sh index f463d7a8b2..b49a3a5f82 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -187,8 +187,8 @@ function gg_run_test_scripts_debug { set -e - (cd ./examples/gguf-split && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log - (cd ./examples/quantize && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./tools/gguf-split && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./tools/quantize && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log set +e } @@ -211,8 +211,8 @@ function gg_run_test_scripts_release { set -e - (cd ./examples/gguf-split && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log - (cd ./examples/quantize && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./tools/gguf-split && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./tools/quantize && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log set +e } diff --git a/common/arg.cpp b/common/arg.cpp index aface844c9..5080aa2fcb 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -2211,14 +2211,14 @@ common_params_context common_params_parser_init(common_params & params, llama_ex ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_NO_CONT_BATCHING")); add_opt(common_arg( {"--mmproj"}, "FILE", - "path to a multimodal projector file. see examples/llava/README.md", + "path to a multimodal projector file. see tools/llava/README.md", [](common_params & params, const std::string & value) { params.mmproj.path = value; } ).set_examples(mmproj_examples)); add_opt(common_arg( {"--mmproj-url"}, "URL", - "URL to a multimodal projector file. see examples/llava/README.md", + "URL to a multimodal projector file. see tools/llava/README.md", [](common_params & params, const std::string & value) { params.mmproj.url = value; } diff --git a/common/common.h b/common/common.h index 0a9dc0599f..cfe1b72786 100644 --- a/common/common.h +++ b/common/common.h @@ -340,7 +340,7 @@ struct common_params { common_conversation_mode conversation_mode = COMMON_CONVERSATION_MODE_AUTO; - // multimodal models (see examples/llava) + // multimodal models (see tools/llava) struct common_params_model mmproj; bool mmproj_use_gpu = true; // use GPU for multimodal model bool no_mmproj = false; // explicitly disable multimodal model @@ -414,8 +414,8 @@ struct common_params { int n_pca_batch = 100; int n_pca_iterations = 1000; dimre_method cvector_dimre_method = DIMRE_METHOD_PCA; - std::string cvector_positive_file = "examples/cvector-generator/positive.txt"; - std::string cvector_negative_file = "examples/cvector-generator/negative.txt"; + std::string cvector_positive_file = "tools/cvector-generator/positive.txt"; + std::string cvector_negative_file = "tools/cvector-generator/negative.txt"; bool spm_infill = false; // suffix/prefix/middle pattern for infill diff --git a/docs/development/HOWTO-add-model.md b/docs/development/HOWTO-add-model.md index 78c6f76077..7f71e0247d 100644 --- a/docs/development/HOWTO-add-model.md +++ b/docs/development/HOWTO-add-model.md @@ -9,10 +9,10 @@ Adding a model requires few steps: After following these steps, you can open PR. Also, it is important to check that the examples and main ggml backends (CUDA, METAL, CPU) are working with the new architecture, especially: -- [main](/examples/main/) -- [imatrix](/examples/imatrix/) -- [quantize](/examples/quantize/) -- [server](/examples/server/) +- [main](/tools/main/) +- [imatrix](/tools/imatrix/) +- [quantize](/tools/quantize/) +- [server](/tools/server/) ### 1. Convert the model to GGUF diff --git a/docs/multimodal/MobileVLM.md b/docs/multimodal/MobileVLM.md index 20ac02f7a8..a647d7d357 100644 --- a/docs/multimodal/MobileVLM.md +++ b/docs/multimodal/MobileVLM.md @@ -33,13 +33,13 @@ git clone https://huggingface.co/openai/clip-vit-large-patch14-336 2. Use `llava_surgery.py` to split the LLaVA model to LLaMA and multimodel projector constituents: ```sh -python ./examples/llava/llava_surgery.py -m path/to/MobileVLM-1.7B +python ./tools/llava/llava_surgery.py -m path/to/MobileVLM-1.7B ``` 3. Use `convert_image_encoder_to_gguf.py` with `--projector-type ldp` (for **V2** please use `--projector-type ldpv2`) to convert the LLaVA image encoder to GGUF: ```sh -python ./examples/llava/convert_image_encoder_to_gguf.py \ +python ./tools/llava/convert_image_encoder_to_gguf.py \ -m path/to/clip-vit-large-patch14-336 \ --llava-projector path/to/MobileVLM-1.7B/llava.projector \ --output-dir path/to/MobileVLM-1.7B \ @@ -47,7 +47,7 @@ python ./examples/llava/convert_image_encoder_to_gguf.py \ ``` ```sh -python ./examples/llava/convert_image_encoder_to_gguf.py \ +python ./tools/llava/convert_image_encoder_to_gguf.py \ -m path/to/clip-vit-large-patch14-336 \ --llava-projector path/to/MobileVLM-1.7B_V2/llava.projector \ --output-dir path/to/MobileVLM-1.7B_V2 \ @@ -69,10 +69,10 @@ Now both the LLaMA part and the image encoder is in the `MobileVLM-1.7B` directo ## Android compile and run ### compile -refer to `examples/llava/android/build_64.sh` +refer to `tools/llava/android/build_64.sh` ```sh -mkdir examples/llava/android/build_64 -cd examples/llava/android/build_64 +mkdir tools/llava/android/build_64 +cd tools/llava/android/build_64 ../build_64.sh ``` ### run on Android diff --git a/docs/multimodal/glmedge.md b/docs/multimodal/glmedge.md index af6b696a8a..e7dfafdde1 100644 --- a/docs/multimodal/glmedge.md +++ b/docs/multimodal/glmedge.md @@ -25,13 +25,13 @@ git clone https://huggingface.co/THUDM/glm-edge-v-5b or https://huggingface.co/T 2. Use `glmedge-surgery.py` to split the GLMV-EDGE model to LLM and multimodel projector constituents: ```sh -python ./examples/llava/glmedge-surgery.py -m ../model_path +python ./tools/llava/glmedge-surgery.py -m ../model_path ``` 4. Use `glmedge-convert-image-encoder-to-gguf.py` to convert the GLMV-EDGE image encoder to GGUF: ```sh -python ./examples/llava/glmedge-convert-image-encoder-to-gguf.py -m ../model_path --llava-projector ../model_path/glm.projector --output-dir ../model_path +python ./tools/llava/glmedge-convert-image-encoder-to-gguf.py -m ../model_path --llava-projector ../model_path/glm.projector --output-dir ../model_path ``` 5. Use `examples/convert_hf_to_gguf.py` to convert the LLM part of GLMV-EDGE to GGUF: diff --git a/docs/multimodal/llava.md b/docs/multimodal/llava.md index c5bdc82158..0087b10610 100644 --- a/docs/multimodal/llava.md +++ b/docs/multimodal/llava.md @@ -37,19 +37,19 @@ git clone https://huggingface.co/openai/clip-vit-large-patch14-336 2. Install the required Python packages: ```sh -pip install -r examples/llava/requirements.txt +pip install -r tools/llava/requirements.txt ``` 3. Use `llava_surgery.py` to split the LLaVA model to LLaMA and multimodel projector constituents: ```sh -python ./examples/llava/llava_surgery.py -m ../llava-v1.5-7b +python ./tools/llava/llava_surgery.py -m ../llava-v1.5-7b ``` 4. Use `convert_image_encoder_to_gguf.py` to convert the LLaVA image encoder to GGUF: ```sh -python ./examples/llava/convert_image_encoder_to_gguf.py -m ../clip-vit-large-patch14-336 --llava-projector ../llava-v1.5-7b/llava.projector --output-dir ../llava-v1.5-7b +python ./tools/llava/convert_image_encoder_to_gguf.py -m ../clip-vit-large-patch14-336 --llava-projector ../llava-v1.5-7b/llava.projector --output-dir ../llava-v1.5-7b ``` 5. Use `examples/convert_legacy_llama.py` to convert the LLaMA part of LLaVA to GGUF: @@ -69,12 +69,12 @@ git clone https://huggingface.co/liuhaotian/llava-v1.6-vicuna-7b 2) Install the required Python packages: ```sh -pip install -r examples/llava/requirements.txt +pip install -r tools/llava/requirements.txt ``` 3) Use `llava_surgery_v2.py` which also supports llava-1.5 variants pytorch as well as safetensor models: ```console -python examples/llava/llava_surgery_v2.py -C -m ../llava-v1.6-vicuna-7b/ +python tools/llava/llava_surgery_v2.py -C -m ../llava-v1.6-vicuna-7b/ ``` - you will find a llava.projector and a llava.clip file in your model directory @@ -88,7 +88,7 @@ curl -s -q https://huggingface.co/cmp-nct/llava-1.6-gguf/raw/main/config_vit.jso 5) Create the visual gguf model: ```console -python ./examples/llava/convert_image_encoder_to_gguf.py -m vit --llava-projector vit/llava.projector --output-dir vit --clip-model-is-vision +python ./tools/llava/convert_image_encoder_to_gguf.py -m vit --llava-projector vit/llava.projector --output-dir vit --clip-model-is-vision ``` - This is similar to llava-1.5, the difference is that we tell the encoder that we are working with the pure vision model part of CLIP diff --git a/docs/multimodal/minicpmo2.6.md b/docs/multimodal/minicpmo2.6.md index de470d8a82..c9aab8abc0 100644 --- a/docs/multimodal/minicpmo2.6.md +++ b/docs/multimodal/minicpmo2.6.md @@ -29,8 +29,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-o-2_6-gguf) by us) ```bash -python ./examples/llava/minicpmv-surgery.py -m ../MiniCPM-o-2_6 -python ./examples/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-o-2_6 --minicpmv-projector ../MiniCPM-o-2_6/minicpmv.projector --output-dir ../MiniCPM-o-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 4 +python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-o-2_6 +python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-o-2_6 --minicpmv-projector ../MiniCPM-o-2_6/minicpmv.projector --output-dir ../MiniCPM-o-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 4 python ./convert_hf_to_gguf.py ../MiniCPM-o-2_6/model # quantize int4 version diff --git a/docs/multimodal/minicpmv2.5.md b/docs/multimodal/minicpmv2.5.md index 7a6879d395..4603bd7c1c 100644 --- a/docs/multimodal/minicpmv2.5.md +++ b/docs/multimodal/minicpmv2.5.md @@ -28,8 +28,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-Llama3-V-2_5-gguf) by us) ```bash -python ./examples/llava/minicpmv-surgery.py -m ../MiniCPM-Llama3-V-2_5 -python ./examples/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-Llama3-V-2_5 --minicpmv-projector ../MiniCPM-Llama3-V-2_5/minicpmv.projector --output-dir ../MiniCPM-Llama3-V-2_5/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 2 +python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-Llama3-V-2_5 +python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-Llama3-V-2_5 --minicpmv-projector ../MiniCPM-Llama3-V-2_5/minicpmv.projector --output-dir ../MiniCPM-Llama3-V-2_5/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 2 python ./convert_hf_to_gguf.py ../MiniCPM-Llama3-V-2_5/model # quantize int4 version diff --git a/docs/multimodal/minicpmv2.6.md b/docs/multimodal/minicpmv2.6.md index 410a5dd177..69ebc12961 100644 --- a/docs/multimodal/minicpmv2.6.md +++ b/docs/multimodal/minicpmv2.6.md @@ -28,8 +28,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-V-2_6-gguf) by us) ```bash -python ./examples/llava/minicpmv-surgery.py -m ../MiniCPM-V-2_6 -python ./examples/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-V-2_6 --minicpmv-projector ../MiniCPM-V-2_6/minicpmv.projector --output-dir ../MiniCPM-V-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 3 +python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-V-2_6 +python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-V-2_6 --minicpmv-projector ../MiniCPM-V-2_6/minicpmv.projector --output-dir ../MiniCPM-V-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 3 python ./convert_hf_to_gguf.py ../MiniCPM-V-2_6/model # quantize int4 version diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 37476f9043..eca0d0b097 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -12,51 +12,30 @@ llama_add_compile_flags() # examples -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - if (EMSCRIPTEN) else() - add_subdirectory(batched-bench) add_subdirectory(batched) add_subdirectory(embedding) add_subdirectory(eval-callback) add_subdirectory(gguf-hash) - add_subdirectory(gguf-split) add_subdirectory(gguf) add_subdirectory(gritlm) - add_subdirectory(imatrix) add_subdirectory(infill) - add_subdirectory(llama-bench) add_subdirectory(lookahead) add_subdirectory(lookup) - add_subdirectory(main) add_subdirectory(parallel) add_subdirectory(passkey) - add_subdirectory(perplexity) - add_subdirectory(quantize) add_subdirectory(retrieval) - if (LLAMA_BUILD_SERVER) - add_subdirectory(server) - endif() add_subdirectory(save-load-state) - add_subdirectory(run) add_subdirectory(simple) add_subdirectory(simple-chat) add_subdirectory(speculative) add_subdirectory(speculative-simple) - add_subdirectory(tokenize) - add_subdirectory(tts) add_subdirectory(gen-docs) if (NOT GGML_BACKEND_DL) - # these examples use the backends directly and cannot be built with dynamic loading add_subdirectory(convert-llama2c-to-ggml) - add_subdirectory(cvector-generator) - add_subdirectory(export-lora) - add_subdirectory(llava) - if (GGML_RPC) - add_subdirectory(rpc) - endif() + # these examples use the backends directly and cannot be built with dynamic loading if (GGML_SYCL) add_subdirectory(sycl) endif() diff --git a/examples/pydantic_models_to_grammar_examples.py b/examples/pydantic_models_to_grammar_examples.py index f94b82ca47..6dadb7f3fa 100755 --- a/examples/pydantic_models_to_grammar_examples.py +++ b/examples/pydantic_models_to_grammar_examples.py @@ -23,7 +23,7 @@ def create_completion(host, prompt, gbnf_grammar): """Calls the /completion API on llama-server. See - https://github.com/ggml-org/llama.cpp/tree/HEAD/examples/server#api-endpoints + https://github.com/ggml-org/llama.cpp/tree/HEAD/tools/server#api-endpoints """ print(f" Request:\n Grammar:\n{textwrap.indent(gbnf_grammar, ' ')}\n Prompt:\n{textwrap.indent(prompt.rstrip(), ' ')}") headers = {"Content-Type": "application/json"} diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz deleted file mode 100644 index 674e227571e2d38be246c0ebde8bf275d973865b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1263380 zcmV(&K;ge1iwFP!000020NlOXcH6kNDEPjc?@m zL(Ycq;W*o4E*Z2TGA^lmes<7&<2o;_MEr7`gpE0MrxCxKq(Ztnc7XFBse2a4Jb6Q>CSlG`s-qRN;JL^P2OOb2zx=`fF>YLRAHDxy)8 zyqhxN{57VWzI&9RNbj7p*@X9nNQKA!MHiBP8&Z!GNfMvFldX_t9{1<-zs8=s#}Zgh zcRlej=YCS=^nM%Sw<|as!qyo(6A?|Bgq_9Xq3e^Rm$YE#c-#+UYs96;eV=@YmYeHY zt+C+{*F0lmUQ{{e<7+OQaVoeYLzXycGT^QsNGD1%$&vw2Z=ByayFKNyCtGYdRE=iP zC`o)WFs+iv?);sIB!}Hs?|amXbl*u*sVMQuPuYrTU;{V=R)=Mn;w1Q8?I*=WdCmQP@VX7;zI7knak zoU)UR@< z=N#pdLGM3ZXIxCV@KXBjv1}uTHc~&j@!}TlLrUF27{x;vfa{kTGsqaj+VJ6VI^>z3 zwImxI!{MOR{rLX)gWG6iFm?!6d(>z|Ugj_SR;qg8nNg9)qOoADO|tx23eJPI_QLO) zd3O>oHB%qc$3<67l#{liMDme{=MKcn&|| zIfMb_8E*~*AMym?N9Ok8mKCIKlnmm0$lYM6Bumm{Hcs>9GU+&yZcvMalhah^-zD*) zm<3qT$LPjOTYO^n3VhSGcGpY}%vAS=%R%U+tx)hA68npV?LnE z{=IZE6A07xLk*yUV6BJeje-X;~dKF&tuxb&B5vEY8z%K3OS?&)Kc z9i@39`7p5VG1dB7XF+)KSI%>Okct66pA4DgcD^G0gim5N;HUDb45wT!Coaey)#saK zSu{$>F|{GXzIRB*ob39Kuz_JsCmB5?7|<(7$6SR4zscya`p&VVg6_`e_ltcCc0?H- z=)H72NfW@&9v8$;&vY+o(M#w6o{Hu9Z#1m9VtyNq!!=woUtwel8*@#~UaQse14pu3 zo;iT&U|n!VGe~x(OhoKD<{6+ZY8*}~9Oe|0au-H}&`~S&d=)L%@7nXxs;z|wi3F#( z=%4FXXXK__cxzJhg4F7@Hi@a)waUA`wX`R&{wHNa)M~WM_3^)B1HeWslE_m1GZC6$uTeH1bQ)&OfY7-kS6eKO{)TRyWBV@X|iUByGXA9Ho#jyV}gztLD5 z)W_&yymuonM)H!5Is7Q};#N{7Mu^sBt(Yex88$bdpSO}y+VO8>3z0p+6S~{wamJnK z#_Md~N*@tYsAE@8x_2vm@>SAy_p98#mEEs$ecj*X7hmON*~rCLxxR7Pt<=jG(T#W5 zXdD_O0s5U;GjuCyHI3X#UysI`869&g)%etLeEjJr1rh>|us1j)u(+|r#XXh;H*jzx z$yIuna1nfI>Fuy6@wj`gfzDHPA|8$vk2zL+2+ODIK2(RqG;r8bA6EU}tn0yF2O~)s_im)$^LDB05`B*~8s07~ z*YS!I_ov1S*I##ExIQ_95^DBbw_Mz>vRJOKa^d^IjVx;W25sOGqW4&OcimgNk+4eh z`LS#?j`5pPsv>)?8^AiMkpDza)(?GzV3Rxxp#h)Z3LHz?CL?K&I2g%wH*jIFhrVwh z%PjztTe*FxK~wh@K+0n*>EXq#yzFY|Gm`2lJ(lbA3_~~pyBxO9!a%NFP63rO zSlBMN(J*ZHknU=Ddgv4Ez#8ne!&buYrRV#tVVdx+A4?j`)|ACLC)F;julrf+Le}%Hn9~FyJWS_2(c6bv&d$0>@qV6kUIzu@6=L z((UQCoV!Sd&Mlv1&ZE1o??niDhkonNG)g>|IIwgJHyCq&-Su0}`x|GL=FXV2L<0IF zIFdlj8KiNnS%&G2V}Lnv@{9ul#Nb9iRuN}IKzfR8Umo(4^4e7A5|5?9vb*Xkr5BfQ zOxmUbgbX7IJKNsev9v&!TEATq1MFB|_ZL1HS?wkgU?nu!x&rhp&nTtMP60j-TUUZ- zc`UnQPRHECJuE|>cs8J{ly1-GwaNhe6fqrA)Jb>!1^G|w*{IgzlWOKl-nNx@%>6}e zyq#jAO)hi8cGZq7;_(g`$U2&I&FP~QEXg7miH&peR|HJAR9>f03U-mO$^tUF0HTyfL6?uT~3S0JEMb z;#}tv;pc>9z&~==57%9oI1StOyvGI6=%Ei_4)G#__YL5WfFx*au|hmNVxUeo#D;8u zas?W@iiWtU&=3lH1vCxmqY4tPui+I*$n@Ujih{9;kX^o-2*G%7BrkS35+U$Y_UTp@ z9qip=o41goOb-t6NJhx_aASiCQx>{-!-^}Ayjs`B2;eWN=4EsVKz~2AP0{;fF0#h1HLkTxsGyID{;wUV3Pa$(*iZUdA0T zpAGRo3e8-Vc}eYpvM(p;u-fPk>1rP5I9(8OD71j#^zs zt(eJORGVa6KsA43G_^9-VSQw?G?#y)HoHKzs-q{5L#+zPSS@6|8*5M0Si9oVSD96Bx+xbK6m&ap zTAQtoOAZyT|EDE@8i!?de~#yK@6R#qkgvm*meWy?Q2AEG;(2jh^Uv(QDe^={z!&)6 zO?3Ccnz_HU=adRR-cyWHNF8t+oT0CkNQPtv zSZG{FLT8ABUd%4(@M3o90|q&0GzQC@XH^}orjVhJWvxC~b=7Zjsc!NC;)S<3bN2=- zG)Q4ua+`}?VpC3kWvxH6dz$Hw48QP{ezEr2&o9eU`UOtu7dWNg%2WCmp3*V`Yxs*o zIl}c`>Yo=xr@U~*s$&G6zHsT z?)w-Al4^P#@8l^B^OrsBaY-&(#H5^?l*`;F+gX|t|?{3Ej{$NItdW4S%%jRr&we6`(()Po99-*kUubS?cPIh&0EnB zazw*LDeInaag&NM=-<(0skfEdO47Rub6bf}sFkJ5OVl26FC!2!)Z+OIWB9jE3ne9a7L9qD%ZkcG z8LjBp6O(@sb0$`muoG07k5(J+$74POSfdr9$_UKc)j1P3jYgo#0ofXjBG}R(FG@z% z4Yew{6=m;}NiIM0WcaspYl3-2MoahZ01vJ?Zs(jP-o)>ob1jeS;-NlQ3>zfjG~+9R zY-az%)%`uhO8$=V+1 zGbY~9*S+-j=vtd3(u;L{k1Ge$XbhysII+9iyykX$F*her?Jf|o!^eqt%zbjqfy)lN zPpJ?*&|4&nVfqdLD#IT2hJJTcwCJsQquR*dor4DNHE%T5PPym%1^gZrv)r{5R;mZH z%wtZ&s5KE$3c8RV`IIX-3xbKIcDDh>!W>tRp;t(_#uW)y&uVJSgAuH}H}pZ(bLbNs zt`?Qyh%pg>j~P3%19y$s)Ie%nk&&#e$Vgf%0`s^_*E$A3?iMVE0s=fB1W-WY3#`w8 zYwZbGA#%^@OY)62J6&7mU8qHQ^$BQx+rHp$Bpj7ERmabi%1kwxoN#)^QOj?mt3NueG#RU0^oo;enytoV5va6ye11Qldlo44D}_;$>p-wEKdG=Kpw;%fYd)WMHePOD z^B!nbr7>@DCDo{wGn#MCBnAG!6wqQ2XUIFw6Q_;ncxU4!aiCa~jGP-N>40HM=7iBG zM68=7kjc53WJ^Lh*AMPFZ9_+nm<(GtaheLR!#7`Cb3b@l8PbRw%JZ`g0#_gwxAk%d zk;tT30?>C~Q3xTLT`s9`AYtOPI>)Wn;^-(Xjt%v*8EC+;sWm~2Uh_Gpw+nND+|qN7 zaHBxBEhg(NeOOewFk!$!T($m{Y=Zxl^GtqbkuAWgXUdb`A{iE&)EXHcLp?Y=xvNHp zKU?bOWl$aBHK&`_5U(pkJb!kGh9F#ZK*%{K59YpH0>-+-8X7*>NbiG&+-&DUF< zHyfLF(iSH1t=f(lbNZ5RE()mzeOMoJ6q`rGV79(a3{VKpIjP+DAP_I^&ftMm?|e`( zE0D0D*;$Z>cZWdfSg6?pk=_KxNnpcMb2DFayzwW%1Uc?`HU<Ax!G-LByX_Fwj z-)AX_Q4^kH^+sxc-#YW**0mMyWs%98{hlK1q}2*i<&;Q->$hNC5VgNGyy6 zvHlEKn+=D^k7uzH@_2HS$IcxSNtBGTmWw+zLL~2$OOjT!@MBL9=09fmLo!dSyL)UR zbHQE0Ec{Dlz==;U#3f}!fELO&Gt(y4*Zl~s_t=Hdvi1R8^C~t)@7&xitQ}NT%UFXw zmsS-ELr$>V_#V@GLSOtJ7r{>R_bb+X_#46*jYZfX!^RFaP<|3o-+S?x?bzZsBz5 z!#q?B^brw$Z>=5Z;0%MEVA7I2lb-NpWxPVI_kS_iivlav;2hLR9B(52c+1=nc%>S!l~KAP5gYk3QdL?<%aRr#{O6I8Th z`Z2xZVvl9q^II9fOs`E|`b4Zz>JFJ?O}Ej&005q*>lc@LVTDr;b+0m1R<{mf>V%XN z;uk}RZoIIZ25X*tJtbCw_7gk}4%&t0R!;|#$D zUZi;z&rZ2~pCnxTe0KEFvGrn1U@zo@Thu5txqzS%Jj?c!C3$}sAx86?g4sp#&$FSz z)`|oPY+!5E1H9BQ_)s|E zAl-(BxE7zEaD~`pCooRIhd333JkuS5r2{+Xop=(mAMZ=8b(h6)dUue=@##PS`OLCe zGC;Qu2hbRPeU8}--4Td1&dhd$UoMBLD=Ww+}jWqLZ{i8G1WEPJ2CQNjUt9ex5eP@!kX5o!j9PBus< z@Wa_S27~)Z^6@Fe{kAuYvaOYe5!_2;E^$SA2R~W#p!PLOex%Mu*@;@~g>)e}ek2ijV><`AuLJ>x`O!QGq)(9iwx^^|x|D(7bn|F&lAfYGN)W7frZ+F$i6Vl93+qn2B31nmier z&v8_I;!bqZDHph|ic1KRO%o%-XmFdLGY()*HB$j3>4YU|#+w~ylHyu6`4mVmr|1(d zaUz{8WD~oqnM^0TU-)Sj0<5xbIjCpnqp<8oHM;CeCPjM7n?sg`${NLrNN;X3E=>#! zV!$SL5X@mrcns#-aWsyK0#=V8h<<7uP*H5MWDo+G2;V@&Dnvkq%Ml{YUY*P`svJR{ zL_oqeucKj91O%Wk5RzGQ0<$`HrcDNy)-{*Wz?n9|(GRpTZAL?$js%;87(Zq*cyV`k z*Sgz8Zbs+r+qW;UE!PI{_v1JK=;RXoj9D_$pNJW|m;db@`FivbI`ig5V$knOha|g3 z1|MLHr4y7Nxp+F?ztQ(wI0HWmexr-IMTDy=(5o3@%=hLIsZ4U=W?}%DRT-w}M8s^z zJ1X$M*8MhFYx|3eNWGx(U@4|_zphxu{2r`_QWo&0h6J4=;Q}fhK{%hUc^d`m#h=gF zMf(zn%+zf(%=af3;yd`AV7&T1MvK-x4|*{rAp~+oE0SWeZ}5l{6Er)1YZKrDQkXt z&fUs@Kd;Jp%)je!<(@z9apl|d9#>BJvo2Sz_;-D--0|m~uADuWeifr{DiBaV>6#^x zPy1#WtV)Ah9H}f9#1Btfgp7~Hm`h{m4Z8e{5# zr_hBn!3MnhM7$mk3TJ>1<|8xA65&(_N%SNs`~4D(mV99#$g|5p9 zzX1Z#77^;G(yNI72>n}%_87UiG&4WaqNtFL_+mM$AQzXwWJeVksEsKWsa+h43Kee+ z$ttvJ$;*;3t}+fZaCoB;7J7aouJ#0_##KQnT$xgnsCdhm3}QNv=d3C5-??0+=Wrhy>fuQ66`J(g-{Vr6M5Lb87 z)ma6S{Z)I!EWmueqNq7Zrl65a2)zmeZu(~Q^IbKlFDCx8y6#o%eUaUmKI??zBB3;S z)=76|l36j8aJH0yi?yhZz_^qswouI>$*HNutIdkLXApsPw=nJ0O@AxP7!%NE3LDc= zUHFOzCFug2p*Xs<(gh;sb5BrKt(ob?a$O=QieucKdr;VSdMKmy-N1@-i>-FTOZiA` zxQOI4gQBw_He1o3&t0%J)4fk*0A-DhCv>8P2A#GB0u=U`uVMIOp#zSZUZq?`+GHGh z)LL=SH;hcj-D88$EWSCc9{cfC>$J;4e}CCJZ%jY-d5F>sKCEqe`@}PI(gl6uxVbK= zb>92Y^;FHhe&XyEfT<=FtDZ#z4BeA7H6;z`bkATC>hLs{h3xE&EoVFCJ^R=Ou624h zHcXYD3dB^`yYU1p*yt4J8ae7U;9Um;1>CNJ0bSS2VnhNtG)Kt3GerX%u6JHn;rmtr z=SzsfR)NzePG}9BvSo0}R-cPo`_40`;SEKg8K>?S*H_<2;z?BEMGqDP*wb*>Krgsbymf`^h-q9X zec~aHx#SM43uvU3K3vCX6e4(-(>aHglne zSy*9#XBI{ttGWQXU!>wjL&r_+fUYgbdp*%YjmHTWXcXSk-t2Xa3u{6DN~&G5ThX|R z>ju?$5|(|}9`=fGnN>H|&FQW5m|D3ax9WKAlUh&dW3{V6NOXi6cTThjJI1C;Pvj-| zD31U4!20<*0p}Fa+;P-v;Rk zuxvCJOb?l-Z2a@=0HxGG-R9xMH+_d$%RD+wvy%7;6Z#o#}McoNEc3j zoeiol0z>OASRIO+480-lWX&)2gXN6&egR_GE`T#*XYhSe%(+q8s_&!1ZJ?+n(6zOC zUTbX*6U9YWdQwk~2e!@gBQV^Vavj&aaIKu%Mgv1?ZlOA}I>ykhjKS46p4k~*o2!qj zI&8VR()IEpj8+TH;Ph0^D_i7LVZS8Dje*mp-lcG@+~v$Y4=9#u$*q}HD+)8~v9)q5 z&*uPhTWD#%uR$x=*9k2m&>Z+mzrQmDK{dO*Naek;A)Crn-Zs_(+?I}Z0^dRc&&+<(My zR@O;Wd()Ne6<}e_aI;lTtvxiKd!Vc}z4VJ5fS%gb+a{8~Mg>2ZwVu$CTj4=F@!ocP zzkX#_F2YqerP0OGX2VC@^;6;H zKIZEbTdtmU)AzeM&B0=x(R{(mNyhV?Q?_{OK2?)}Tf|y}tI7zgH`X$g?&bv$#toMv ze9+*?x`AL9u0SN#W$+904bsx@0 zr#q90A`9`e#qasxJjvJ%|CkO~e4tDAiYm0eu>bgMes7t)5=GI4zX-&_lGSTyr0zPD z8K0lLUweL1=5x2u)peu95x!^@5tMZc5PdJ{y`0aVdJ$+CO+nr&t-|hhHXXfl*Y%nF zbmRG@=W2i5-F|`TgwcE1x=Fk1DLu7jwZZDu}g#O%~h&_U!|h-kPYI5XcT zsz&|UPli?q6gur7sMDG79`>*rvP!E6y8<0!>Hvkp-%#5MLZCmk7qjui1b!}(w8|QO znn9#u5;8SCl3kxh4>-=dXqet%`fnkL~xs9Xs>2mO#MP-O0TrTinyw1>o4Ims()fIhX?~X??x& zydbsmRs>t&(~ajgn=UXt+hj_=C0%4qJ@6=DWa@^p!Mzh8BHbP2-LHZs^@(XfuK zxwkJ$Z}>LOD};5^mpcqMShMg@Ueq0BrCgyVoptdkL!};l56BKiR#`br=n6eEtD z%}fjmKBuy_Bp?V7f@hNyT?CzH29p6anm(BdJP7;#?}-*DG9(f_Cum&pckO~@6sg}? zRO{(4B~N!R1NOA_EYt7YeuJsD5jNhyjy2>0K9U6Ob{SGoySc}F@;hid6iGyD3$V%# z`VHD2MZFpPDNky`4`va)5SPIyqQU}!+5^leQcz9MQA8M>MR0It5jBIvF%gDd09RPc z{vx!gtR>K?q5Gaqwd_dn(Ets~q@si+Y<8GTd>bkDyO6nUv$<6xBri?du|DFBqJjr7 zGoQfVfriN*`eU)2FG-uqv}az?(#!f4>H^r!y&NG-xGGOhLy$Ic^Aw7);Y^dgI2zpQ zQ=vn~P}xN8r}=fvs~N4hdiJ9fT=u4S$#TrftVii|Ma;^q=aYJPWwt(8Gq`~l(zUSQ zxcI2Rp!aA<*E}TQu5&3=uIx6KY=Mx2tDOq*QoO!GL-0M!xEjvwD%TrE-KlDOc}KALhD5N*OgFUs_{jzGWO3ukw?Lp8y1!lb@2Xuzk z$uo`s$fn;_I(*8FL{3KBsN;R&+Wa+5)HHqqzhY2%iYM<(3-)*fp{WKRVMZTyfxyN$ zp-dafh=pZ&y(?A?pj!VIsXG@|JzNw(I9gQ)_{JBjonw$RQO}Yl#ax|1FD9y zynW;QT^`Nn9t^n+LmpLJtwlByh~yL{kD|q5G{KbI*Ho@%xciJ2-$d1s~!xLY4A47gQ}vzH8VGr&eGW|*;Sx`96j(MGN-zh z6}P@Zivggdvtabq3WDfltqL81_huAmRx3d4q`F@?cgUQt&H9@+w$%5y!e=WwrbWEU z0zFbU7^SOFMXb*pf9S7JTF+upPy|$fl&sq=h5UNDLBrG3s+`?GhCb-{+a2jsizy2h z0IE3f5_Nn|!>;jswNToXP`5&IDW!e&rL zPy4Mbx(2^qi&ZlVAXIm7jndHUvYbvyNc$zz2u6AYC*-{7&bfA_sQC9sa3oBzVoc}Q zCzTk|Danh(b9!EM3|8+*jrQCOes%SIsO72Z`_TTA)z?S=7BB-GezAHm1ND4w+h&#| z14n?H&uyr@#3+nsW9WWQ1gzY{M`;DW#VuW&tll+XzxC4_)lTnAK!(-lt5RcAp=?6W zpC}z(s`G-ibQSx*dQ7`W7wg%w&na5Yrc^%d%8Kj=JGtrzj@%@bvZYfbau?YtwsSA? ztF)7n^p0G|cFYq#(#UP4$|V_g-BhosBm@ zQo>K6ritDkB}IpHgZN={qgQ?gOb{8Vv^X7+JEp!r9&eQWXTsja@7}$mZ6eT{^5#ac z*=c$bw%dz4HgEg$Hnw*z>8mZ0M0Bh3c5Ab}Wf_ zO71`#zTDJVJDZ*MYn^%H)kbH__?p|;+IaKEG`98T8pQKjA{$}8|kmhj9FaD|8NwkF+xQzx_`){qY|GwDO=C>fdX5zQNB5HGvh za-*$XveBc)zo*@EbW9!61L2+ff!A-)Bhp_(RT&Rs`(R;*cq7#I?> z^Y3Z5&=@Qh>r<+obXCm=svZ|hCqC=oa8RFNb9Bvt{r}xDW$Q2b=6~Z6ZFcGhvvv+^ z$8Pm0Yt}h%P1}#t`?PeHRKVS-d7uh%3<;r!R;oTLKiKUty6~dItNamE`;VqUOXQ#Ska3|YKM#0tyRt-1} zYQb1}vOzbO=9cgNXW(t)->h4W0q=U>ZJt!uuYrZexl}%Vm>pY%QxM1M07`>+dprda zT-%u4_I6%SbZW#o*addBx2IipF}>@&ME7z1fyNk za9B2sKs4-58*DBv!pjD3?Theo4!U&Eu9gh_4)64pS|$}s-Ue+7(%BZht!>d0<^9#` zyb4NKuoWmr+_#LJC4?p9b3$$e=_A)B6tEQ!HJ>}vxav^IhS#zB(B4sW86Cnp^>;pTz;PB- z1iz}Dp-3kVyb!1Thd`dI4YwxXnvm<;kP&7~XYX}90hRwI>#p$CLx z&VYrh7st+xvkq=(jNApoQ1x&*vz|^XyNQ7U?}5t+3i@ELtK#1eeY^Z9mBm`wT;Vv) zmJ;G*Rc+QudPr@a-3sG$(0oCyb~xBzBHQx>eY^&GjSoL10VBh7jEVSkV@?nPoX#@I z#|J?41R=3%2>L_`kwB4yMF|&Ka524H5L-PEWH`*XqRv1h?i1k$o(3^i19KW8K&sbE zrfa3*uo3D_ef>hQ2K2zPvA9~N77Mf3KCHfdjJsJ*A5!m-ld=dg4k4}mW8NQ;kUNvB za$Ebyc)!Hl!jambI?fR=TE2^(0Qp zdgJ7|dRMr0yo*b&;n&nNi&kZZXs{lE{Ho%OQgIcL|ASmbV4Y&rHA6MmBA;j#8>j}E+eeoypDY5-U`Pc5_!arwqtY!e zQZ*U?7gTPWg=q((AWxhnG$gt1A{y}l9|TK#p-;37S}jGPv$B`j>#N}bsmwQ7>vUNQ zeZ6^x4ZmigjkmEu-f%i$bq!>+&i^hTm+D47ET4Ay45u7lK-X_;kWAW%nS?}rFZg6w zNgQJ0&?LT>g}Tpe?89lYf|lP}jp5j1q#Ez8?i11nK}a73Al#wGj9s;5+DBxjV8JOc+b30;9e;oHdg+z!-^8TM!rIzSG!?lXlU$J8yZ|x zsqn0oxMv7&D+_SX5UN(@{hlH0tV}nn%r;H6j#~(yBK!ya#EvlpAPf=T%%Bk5wCg^heg{LyugrdNw-Ta- z<=XF(cF6CnsGtz(|1Rm2R14Yo_tF1an_K@$n^qB2fMTZUg93%|D}te2)ya_b;n)+z z3B%F~>NJAAYUt=0>XL*33#ZxH{+Jf%1ZbMzHkej<{CxmfQ|wQ_ z*p#;nDDJ-9VbU-5K&`uwFg3z0+Fz8&%!;lma9PxVU?JBs;y$bKyRGI?h^4JV1pOQV z1QvKPmvRt)l_*aMXNwsEsVH2^d3h-dxRjYyO(7hy1-tq((f9b@yKk37t?WBDt<^5d z8&RmL&Zfb1K;m0749{06`zs>JD0f*JBZD~2c%k%FkSs;aWM)2dqqt=#F+*r*dd#9b zcrvs?${(um1=Coi2!+OG4c?)J+bC7=F0IXYTJLcd>PT(WQ z7vd6i9=nQroi~+;J*1s(i0-l2Mcxcm)_ya*?1qrJ=pLQw#}$A}7xp^M&=~exBCXWc zXSwCGJy1r}_Ew;V4`CcePmA_dloGWnJE+bkUMZbTA1tRBCUx2-j%;phgU11k-RudQ zseQ`ICj_nNpVBhgqM~C_!_e#RBwV3iLVUJBKV@*G2(I@@Ce5PN-^XVvQtb%yu&1MKoN8M8=gPWQT%2EG9T(@9H1FkJ-w)8wnpq#LA8vO2zBN*z zd`P{1`R28b)4l?h6N0|hm(jL`bgkp}PFe6%N_6!WzH}gLI90v9CKVviF1nLRamr_5Jw zL9B5HwRfzZ>}suCFJHzu%g(BcbvM7hj+c6Cr-7;OGmC*8o^X*xS!J>pB+5RkXkZ_n zvV~8S@z)ijk2u`VAy{U#$u+i<1#P0*MK3FDBBL?5#T!q86~>05RV2^n@T9PQX_zeS zur`UZGm&Tby&&U^#=^T|K8YAbljAF}Iga>U0M^EmMRCwx_+*6nBIc97Qu1?3_88es zRDp<*M|C@Y4cbI~eS_Y|;9~u2@da@cHsW9PFXoXV{=jEY4hTo}$zuHhMkeZO#KA!n zJO!mJUV{%QQOdwLVekPHCU^`uwL0Fb=c$sVa2whats9Y!wJtwe_LZgqJ@8Sazk^D~ zpjO|4z@0nBVK2At7KsV~i&mK%{desFV+8(*!qZ2IM)bVDQs|bN>E<3YpXBE<{#zOU z%@2M~>0c>rlRZWSESz8V@7r_z`&RGYx8Ua#bdY~xunTq*pZuAs#otZHBfRi)2Gs5i z7r0sObIA5*>XUw4?vd)^K)%x$^7Uh%^z(A_6_$|5iEk4gvq{E>_*P$=OfsGii`9Ty zu2e0#Pi9$J3%rSNoiZ`pXOgWNY$bykaJ7_HrmjT7G@Riy%rc)$trlS#utR&;p=sum zvzR{ivq9kYvjLlMmz;v>?KKmD>$v12zmb8vBSd-!pDsC{=-~OpB`0WVsKWT|5>U$5 zF{rUm_IVt*`^f)u$!}2-xSvj4a>SE7F#hNu;F6umB&$W8BJvox>i1&`FUK6E51&Pp zAbSlCo_n4|L!L-{gUwx#>x@3W3EW*axYeG|-v;g(yLL%uBXIZNMR1pNHUn4b^pno3 zz&(Y7?UK%G)xJn$mvr6)?oJG`Zv*!;5?W-V9l)b&nd-^L>vGaIH*mT(HzDr`%nHcn zmikuHu=x^N9J*xlRp9=d!c#q)uPZaV`No>r&9~KQ-D+1Rb?ar|zE3hPAn8>(za1Fk zK?goI1NUG9KDGk)U=u!G2JXQYe7p+WgO~8}I&cqO!N;4xJ$MZtZv*$>4NO%#a1Y+X zM+Yiw!xvT!b#Fl39jJV3D{znVv6_z#^vYhUjg76qJ>rtN3v!y%$DLRPu7aE{(GwlG z8ot7wkSuUDKy?W&O5hrx>sl)GC+!l0T)J2bWA{`VL}0^aJ{0CkUJ zpWJ2T-Bbwt0<^@IVbCV(ISsf=pv_z$b_J}11e|Dmwj!e#@fY|7Y(?GyR@WxFQZV&H zeCo4^#!So*`0pU_zsr2`zFqER#i_}#A-Mj|im+l@49kcWtG#kptXOck4DsrH-}cFV zyS$q0HwS*;M%}|o_S-%=%dKmk$C9nYYgCH4Lv=pIbJ(|%nxbXJ!Pda6-=3`UTcyfx zc9q{&R9VTeBE4wwcf@UD$&S?S@ySQrJZHI2j&pkPmUK4B#%r>skQnWjWwQwaNZmz4y5VGu<87AC9-VgyR%nY)sdFWBRax&^%Ox^5N zWc<}yV=HC=AsU!&Z0HvbVB*{4B-ceO4yxtU7rKWR%t_v8e9E<%P@Sb!bKUn-Y0{mQ zHm&Fwu-fzaeC#?wM#bI@{{Yh+T_mg-B(>6?+-5iV3YHM9NB$+ixIbWAtMV@7<)yp5ndxq}0(+PwMbH zXPkLu4q`+QTD%9+L!p$I6dNSSNvus)vw$tkD>K?0^tjH)l}f8*0*`!Je9$y1r)59Z zc1k~kR%&sGELG*a^qZi3ZmPi)s3X*KQ`q!kwPWl1j=E{0CeniWXhV3Xa$M18y(4w6 zs_*L*)e%>l3c`aiR71e4mQJ=!c@|@Or-XuIgnM)h*Tu>kXFh+sz4|IDr{oOuiXzZr zixB=A-4-`Z3^HNX@skg$q8G@j;!}aNS013HhL_%Gq>*>be6vg!m)+aUW8|0-LC|M| zPekI$6kZ3h)QAf0W#zI<$qRelndcK0Q7BJy!XkJl>G^JJzhK4f)M%V}wnO0Zl?1vZ zD${o6>MktA7^YW`eY7kZTJ$5Rib)_)H z<+Z&K32@_QM`#s04SLY>v~s;@)v}PbyJ6|~GBnCOQ<`6d%D=aMp_`GZKcBCCK$npO z6uOIXbynzQ{c7~_y9k6Ue#ffb!U|_Fr7(VX^h?gaDej`7{#)?;Ug?lW8&>ApPetwn3Rx+s)K-*g4faPAz`QizF9#Cx z{~S>;zW58z{3S7tZ(i8cxk6);tK8oxoQtzV>y zM~{5~*ZB~Z0xgXS5PkyC({PKxlOJeNR=oN)8aelBamD27wI$l8X;^ABapUKdspp}D z1b6N&o(vK1H~y00Wfq^5R|Z~d8-;r8L^`J$xs>2jw5h(lPf8-0d$2Llc12ZHT+V}(hsa` zFfpJI4#qW-C&Nag|1MP4iD-S_M^C{t;$BYrMrw|s(C{Xo41&|i^8Ds}i;*Ay+n1kKS9zXY7% z1k(borTxGoHv%mZgH!_LNx*C7H1)%Z2mSj+|9<8bZo$vSJ5=GY zPaP6;zK|DH29+!MZ7&aM$FBRC&*yz^(49W)FDX2Dt<(!?pRa-fAwrVS?}hXc4^j}; zpaS8^(2ndU!v*+H^1?b83+pg!`P}=pLry|)MrsaF5L%~+*e9q+Q9)81p&%@e6S0nv ziC3Y8PrmR*Bjer|PH;ZHa6I-ObMJuzNvZmTBxP8Vl*}S2bq+I$nxsU%(<({HERr$= z$-7Yt>GP`2cm)%CToi6NE^5!zT!N-(<)z!aaG$v@E~$H`zZoQeCrykU!v`bEOVpp- z^7;xZ`i*<;j)`zd`3l`<01Cx5``04yPVogPnJ;|&?lwhvgy=W5#tgofZbY< z2wYo{kLchEc$6RI^Te+5X=o3x%J7`eJ^i-JpS)#HP#GXAG8D7&d^VhfGU!(ZRPRVx zzA`CR$g*F{)4+6XOzm%N|>Wv(`jo?tz8Tjp8MM5^RqGeJfAr5d>#Jd zs1u++LB={XLDeHLW~?HYtP`CMn+VwZoFVYc?3{;f$oGHsxrIzd{g=GAJW;4m)g&J+Q>S+6H2l$ld zsPU`JbN4Kp-M+EeRdb@Wl66z+es`4es>+4^zGIPu=9J>H(@l zTk$C}5YuEAG^sKEYXadK1SfcxTCNz$MX9Y!EKTK0J1ZW-?`G9|zo^$zY9MoMc2Nsn ziH^ucU6w&gQ4FzUOhij=iW#v)l~}4~*Ita}348WZdbiv`t8TSR$&z`%e^>nqnp7K5 zHUETEvD$iyjkY4#uj=avTQP!-X${K0m^a;Ob1j~ z0`^0J`FDAsjoS3n>ga{M^hFq!?{&Ag=@GocZ5%d*7e|-mD?M)+b{`pWdS2~+7u^S* z7wwU+;AWuFn66Y5_I%&Cq!klyO3uMiD%c(>84mR7h_<^&1?kg0((fGoSZ~OGM_16D zA&<0!LP4id%{i;Z#GY1P+q?L)eThEo3#ONjG<(uFzE;-Vt1G4Q>~?d&dlhxeCLYLv zHt@OY9C#dFXp?H6+trQOMqk(AoNoDqO}v~45`y3eQulM}Dq8~O3>QwyI`W|eONQy# zetl%~m9H=O4I9_UipL=@_VY`4U1~pvcd|&d{Om#QKjQ0Rb$H)sc)!nZgy59ubK3)J zZ#W6+6AlHK@f+if3THtCwTH*LtPr9w=nG7l>C@-7x70W^RrU4FCZ#l2s{-7DqwvD9 zmg4s9v@Ne4&Q>s`M<&Jy&8PHtc%N_0sK*)|UpZjg@YRcYDC6P*N?*EKnp2T{bq!pSY=l1KKpHZi!_QU$nVvEh?P_nP z)A{_|-b!y8jdP15Xqo5g7Pfo^e2nYX?orhy_$xg!9rC`a9(~1PjfMwlPxOa;Rh{`- z>&(}BXUyP_=#lOLBJ=1kPj>@*`Ze{=eR5QrvgpRs9mED-s?NQFH)i|vsBn_&aCGQu ziLe%7G2(@&yso5OI`_#Z4z|U)Pxd(otMzrV!|CtJe~3~t*eRbzRAp01#~B$*D!R*> zSfysodFti(5=a4!S6jA%?p7-4C;M2IX0v0d1==o2B|VLoGNBq4)R8|<2(v9i>o;M6$X^&eso2**zK5ax)CB4t> z)_=@;*BZHP&6`SkW!L8XB$d_VNT}a^iFxeBalR%Hw^!+fu^3Gy9c6ZcHV{oE{aD#p zD{Z~CrdTTJ8T(INI{kfP>c3|jYgu5YlI|#-z?m$uNpg_TwV7-*lzxYr7&7E^CVM-^ zRYz}!ue-&o1*kB#!@DyH=igwC38y1YCcK;Q5=2cnO*jJZ51fLteEVUD2{&$+8;uX8 zR}gQ)=?6}RR?G)Zne-Bf^vQ?fd6=10?CsMG(mp`zzVG|wAknZqf#wZ3Yj4kF$w1%X zh=Qfk+u>v^jT+V`4sfl)HQ(VD+k7S$+P^j2VXuAvkq3_m?x-jXm2m#Gl8U_~0A{RQ zr6!9_-tX{61MsF<(r9>NiEh#@i=p{Ew@t6`x=FpU^yl-jyx3uvB^nD?Q!3~49rSjy z!|5kp%5OgL-X|XD*y>xZy&YbaknC`MMJS28HV7iA>^;%J!cGiEJc9Y9W7$*v#O*`I zrFR$aAOVLIW9h5dg9L`6-GaYtG>Y$6zM2vB@KNBU+MnJS+VDvVg~w8fo@W5|$Oleq zjGAE?qq#8&*X!XDuf7;7))4wIgOj8yuX1XJcAV9KuEB-9Nx}KFK2^bf?4{Bt6Hdp~ zSeOpIM`zOez)8Z_T?KzhD)mm?;YNaUkU*en)i;4Np{D3-3eQYXN=IDvU)MWS^(wFr z$3WFPlcwGYhd{O7g9PfGNgT`vPErYr2Tq5)`vLwS!w2sB6O*Ca-cERP!n^)VLL#)9@MhB_PIxonU4Mur0Xj^I zM9gM31EnC#wqS~mvtE%<$3}L`hKgDjGikXS(SdGS?%{Oe?Q^mNb3tYji8X77A0)Mm z2MNqIWP}HE3kWjez5Uo5albrabcb6SDpsJzriDFaz5b$tMo$H{iPkZ}C#!rUX(WB0 z7s?VRvA4s05W3v>Q%NOPPZUfg{TadcsidEA^j@`3exs4fYF{cEGFH>p6Yf^5dcz(4 z(n|Wf^7$iGXbRly5rFi^+YF{{s`qE1e|0JwjZ?_A!;xCAD>8bg*xAY}u|5=Om5fZ1W8wMT)P$Qx~}fNR0vqWPZlvgT9!&_=4-LvPNdQB!*i1*Jv1}` zv81=MNv&IJW(HJ3wA~0ryOCApwA`b60>|J8wX!M-`{0}|na@uEzN{+QJHf-h)R#sh z1C-)QqDcf8B{KSngKLl<^6CLb6K&rorxJ7%Mx2~T&`CJ8aHib-H%g{dpi`C-`<|AVcj?j0o1(HAKIR5K%hn1PWqG0;+F{@O z=nz!rW0iac8`qhXQ*6UcSaxL}TdL(tufGjbrz~xrWI~?+3Nb9yGKF$iYH5B?Z1$6x zraonsClzu8^OP53hcDw!^PJ|$S1#XYLdJ51cKKSA{EBboC@^?lPV2}bU(NxrPkY{1 zm^0Af15UI`JF@3CCtu0A@B6`YK3|>LOt8rbnq|g~$l|C}`)>S;5%=(+wJ)u`N6@#{)g$gMXD8I33C&2ge$s$z{sUV95@YvW~w=bf9k4-eW3y*+Q&%wc|N zFDd_5v}y6KPqTrDCV(!LI?4Ju)N*jE6N@KwzxOn%ZKe0j`>BOz<0o>o)SIemBjC{g zY8y@JjH8S8v}y>`E2Fi0B*I^sA_H(yu&R)qV2WiEQ|z-y$5F;BC3Kw0EQ>b&%6ZO@ zqJc;y%Wf-Ws!7KAOos2n_f}X)XOouTSsG6{a@GBo3^}B?)Qft_OMemkWjWDIUZR)3 zVgkI1yB`$d*bw>Wc131GK#DRnI16 zq@^i_+BT>JTQO^>i&)GXbseRDzFBg_8IDUGS7l*}-XqW;BW@fzfgxv0muC}DA%y#i^09r6=AC%a$yy#hOdiJP0)h;#ASTWza zvyBE@Utg@~%+ecP?_>G{@-xC1b+6RjgHKES^Dm+?P+Zz!)OltrujUF zqRMQBGV9jV5VLqk*1BygDf*Qh+ygf1f)!%FOqW2B8?%*$9fIbh+P~E=BH}~BmN_+4 zJD&>}0a+9J-8aQ>GM}%?Pw)k2zBh}P4U0!i;vacO&O#un*W2c%eY@@Ec1JI+vP+HM zAQ!cbk3_^^mtHC(SP$PlYP>P9A9%V(VA_87F^1=4ix>1hv@br!mqh)ji}YjMY+8K@ zwKV%PVd;$`IkF|CLz`pCTh+C23B62Qlf8xvdjUX zQP+w0m+;AT;?3-r69y9tLz@)~y+&!2)*oto1rIfbPytW_AykO(Nt?QcOS&?ZRYV(- zrQT|sAOwk`J?_e5#069Up=B+jSNblW!h(f9^6aNdx%mI(?(Lh}Mz(&@|Ieog)Lb9w z&|%wv36ay=MS?PU8HWVM8Smjz9K{w$6I*sbM zY!NfgOblnPhVz?#f|(d}Bd+fs+O1mF&BN!u-zxzYLC(tWbDt%TZz|83wPJKb{XpK= z^N&`03ApeR#P6}sZ7aAW!83oL960)e2-B+%bkZi`qk#N)DZcuq1US1C z?*E$dHv1&7SJ+v^JM1*#+uLTC-%0qBkJF2n)1945{-$L5`dbNg=1?JtkzD9y^(wvi zHHCs_5!2VFzxtFxywSoV%Lz$~RpC$kNCm*otDIZ|3U%W7tt;!cKs#O95 z5$@!Iw-aST@`#+@KO@#xZu0fYxx=CB_zcIR!`k$i{;h5JYtH$%vgdy*`N!$S)2A<| zmtur3^=viW@9CF6&3pc*Ie(R2Jbn6WdMQR%zI+-r-#=@{nD25?>XX~3{yu) zo-ODxe3p7$q3Oc^+J3K8;b+KdZ=Zy}gujL-+l=Hu!N5#0Y>-_WQEH|!YH&5YJjD0u zyIjP)U5ivd5NIs7J3TRO7B)x?uu{?;s~b?J!9aMJSZNXcSlTuT&?{^(ok;u>osR^X zOZzuXd5$AF_aYL&?xXY6mc(<`DLW&R&kdP+5Gg=1qRrcX^e15==w~|nL359f>Q$Ef z(_H{H%-CsQr6O+ExZI&(yC!xHSp;{`}wogp4^Zy1ir{q zbpLlBu4YY!>UN14eQo5|4}MAXN&V`YA_{W2+uVx6E*-F z*Jcv70!P^s*^ETCZ*&6WMw^QFJr?X)=`v&yfYOevY(|bs)?%bKx z{mwJr?@7oBM=Qhrs-i>bmV{R0PEaaa(WC8G(FWDh7Ev;-R!aLps#wdNDzj=WQ$9`m z_#NZtNWVz4VNr$^CW637EK}%eUT-mxQUIVHzemn80w#kSe3+`UW|$%qIZQPZiN1&3 zds6V21M$}-k$Q4etY0&;a|nhD3G%KZyGR6)EA*<7Y7F&LR<5$%ciffHe(o!pLWt

ya+D?_>T|PETZ*=UDk`Vfk@=MrAN^z@LYI_*APv7OjRdcmNC|Ia$ijX{xDQ;2S(Mm6m)m_gtxvwEMFNpE%O`i+J2vRf?jQ3s^S0TO zZGUHby&dF~Q~a`^xd^V(EHwbKUcP&^h;AVSg}m{7;ba6rHyyDmMNJEEnK4{d4=IE= z_vw9pk;Rv65>tL_AuX6$Yys4eZ*1k3Ax=8eXuX_j4inyWOR1=B)Vd|ATBu|atB6@z zT^7SAZs|pYQHi%ii<>Ig-7a4Iy_ z$T#8q>3d=pjKXuF{UzbiLbZ4izsO>o7l*s(?I2kuSlj!cCO_eruY@JAvzLbL%o z`xLF#w>mY{onr4zJz1=yD6&{-Kl@%5^KTPx0dAMbaltE0J5+KpoBUDgKMHLjj(A;ZG01Mo(O;(WW>gr#g??fc~xlZ9Mo#eaFuZ>sEXa6 zeiDUX0E$-Y%fhP)U?MZoFuxDZr?PvZDd2&M)brP+Ss~({>iByYmiIBAjXl{x*=Ah{ zlgrJF>tiY&k>D(>y-Gi=IqYBvSm`rFI)Bqn6Q9A5Bsb$Yd0xDdCEIT)Wx8?kTN`)%TFZ|`KL zZ4IC9Ip5IBRxfrf7iY0vy;3@!>g+)aTzqm7GfhsL7T*HBCh6isQBK`eO3;jY zI@FpiLdS6dUK1Q4q$?7{hO)d{LY7#l2Gw z%|*)Bw~1|_abeBu(b5hvA;mKd1uJMZP9D=ER~67AGjZ?r#4Y5+EzHC@!{F>};q)k` zY_Vy|=0%Mfn6Z0rP0V{|V%|4Q%mmMGh*`qs3Re=bv|x6`7kbVY^z6K^&CdIKX2*Q% zy&8EOi$xrW8>#^#*#P-J4z_~NX%RC_ej*~M`aEm3 z-XW(8HCO0ts~aoz)%78|D!8D;ro)!!B{uk~Xl(FRK^uHkz|*Tjo6g(@VHD$4!4uiy zhSrR8J}=;N_!4c?*a+j`3pmcrDC-ATg-QiI&gm98D*|ytj{i7s?9Mo+-5KZb6sFg3 z+*d_C)_FG9dd1io;w^w_Cj9 z8>8qs_}AaFr&yN3GRuT1l`Mv>EZd#Tvl!>fD)m=)+H7uiT9yf~W3|_2^GENs+5Ex1 zHk&uj^=wY(dNzlrv$@%8vZsG*lif2+StfTI?KI0WXTSX=0`d6$c7Ma@#@pDu+$L}h zTQAF;ttW2$9n$yE)_dKxx8CdS{af#KW^cU*nJ>6h0V3lVf0@3CaK)OG>a%}`p_7_n zBO(Ly4ucW*&I`*w>b%fg9R4;EHIt&WDkc=z&-^=F#b%swN-FQXU=5wHIBHbiXjQV# z_69Cx($z%}8B^*c8b1Hu zpbD5kgskSIP$i@oMY(p))w;35ae=0()q7s};-^>{2Owc?(h~5xmcS`)YXo?MmOxIZ z(c8%heNZ1@&mmgNlwenzNVsPy2iFg)Cb0g7u{5&JIgx!d`8dB%_EATM!`31ig(Va@ zj6hug`pZ%$>K=t`N%UiSo)7!pJ@c?({gy=K`|S~<=`$QhKX4`R*BRPlhEx810e&^? z>jJMjKKopPx1f;Zf0lkOKTT!YV%NX_UEA~TKDGHzQ!dLI0v}I|zWsBl9H)9;GVe1Y zqF%{6BJC=1dnqQ${G;5aX%G!~SLq`U&6(1e4JPqrD?%TGzIAg2&gACUOzcO#A8dFi zD{FWKO%$c{uO`7YrW4v$ro9g02YFRqyIKzN_YD1z0A8l)Q(%m!2nX;r}xgcV|jEMY2F#qbjOs~D4 zOWw%X?zh39`_q)??B~+zB)`KR1Z_r}4Zg8RGJcx!pQgzCaAP;a1sYGC1()HXidB31 z@f7Wh@wD!&_JaTl3ENz>YqEyx%mEKDrvbprwpX=PBeQCA7OY#PWThoF+V2x9 zr%75hpIe@S`9%0_?-tq1#B3gTBzx|at%J_*l|40u%2g7Y78HF@Ca;I7tE3q3Nb zYQV`VD|hv^SZ{(L;i5w_p%)(HTEQ!``pR8(N!DO5)IueoT?HWz#as=TO5~!#rc}%9 zS0eLDBu)yv+bijgP43yTmAgYjwIvgGOD1|tGMm7aDjp0RQJnp)0%rTQ!RAqrt99$X zMtPlomF^*B?@vL2B~D~*MhCodn*{zKqHB7e0<){9-hC=oj6hNYs6{@)X7|J&v8=Rf zNyu;FU?85{z~@K!=4os#+f!l=K1Ey`x@?DV!)-L=v%mmd`JvOeHlR0gFw|eJRl!F- zvi+gyC?GAyfC8wNM{mH}fSLxKl<}%OR1t>95L%22eqQjQ*$c>FCaq&cZ8?tpyL#`i zQDi603$cOPxOaxu-Wk^S&ai3k_zKSrfZEt?!G{X1?HF7+=fI{QI?Rp6M+9wM!2yd& zenAQ)Gb^;zzdHd)7@?({7YyN2jAt4?v;Z2O><6<#IzFn4*3-jocmLU{vv(xQwCi6# zj(KAP`n8V-GcaYzc~hT0iAAbcyM5wodjV{V_IhoGPS1&$MB5>C#SahQ3zgdA_&G^u z)IEMNybO+|Q_j%$1;Lp&&g^mgZ%i#LL3Os>zyboCo)JHZ{eY~edBFxNejFmNG>=TiMSdhVOZk%~tU`7u}_kpnBIJo04_2moeAa+*TZC|#>Kf!lsBpRV|TNnRYU zY-j6}n5KJOSiXmmUNZVh%5gMk5`0A?g8&>+1mH*@0IP+7z&cxG8qFh7al%WrbF2G| z4$nIn8C8kRl=y3rjON1(U7Z-ciY z-Wh+i#{KFb|%7 zfxh9N!IBhtg&u;%)Eg{yWSB(EEvDW)GT~yS{GL#%_GGRv&l$6lIxI#gZXN5IrR-w0 zNch!$$Y5&QWM)UDaz2-8fL>&&A0y&PEgkUfU4cv_ktcac{Ha-~eSS&-v!Z;K$=iumSd5-VqaTQ0?(|i)=1hW)hGI0eBHCi#uck;JVg~4Kww=~@9TDocH zl1>UAbZzml$4Sbwu$AU-R|Wt<`Wtr zH=kVOm%CTr=lR#SkeUTC+&{u(=I1y5LK>WAGF43uR|AnInk**>sdE#v~`o! z*FjzfzgftVSwfb~l4Qwj@PZ#t3_uMFg<5{fL+D_{oc$oWXzLB+EqTze-?fsHo0OvN zVWa$OyTNrAQlfbPj>FED{#_{GF2J|I4B=k)1rKX_HZUNEJG=u!uV$g4X{14k`ItP< z&z8tAlQPAaMf{VoFMi7KxRt-f+=~zD6@W7y)!Nr?JU1p2316J^(&k8@Ow_MOH7(v0u$Uvx#Z3<*tRB}lC?lR{QY`wgv0+#X(>evoU!zT>)a>wzL z^CdE-pE4p)o3WL*g$(yi-NFmX+y0dSUh7FAn$x8P7^I>kECC|&az7w4^ffUwz&tTH z%)Tl0)+S|j2R4xq&CftloyU{2cv6nzT!+zq%8+$4{SG0|tdXii%Ewif^W0W_p;C1voG3ebBKl(>fknA=H!~6~O1em#P=?K>Edf1x8v6z{ z%Nt37U#RGVHj8jjgPV9)T(KlthS7~gZG`*Q4HjF^%r7d;vV^wyWnBq2;CcXX zoN_N@1GOv}Bmp3U1E~lqzxUn?|H7Px)+`#GGnwenZ=Bmu63mN`(LwzcV)=;i&r&ZR zXDkszUGWHlFZtGcFLCCoLdiZvJEz^)ipgF8=@GzQl1v02>V*@$ZwY*QF;rEXY;LIeQ2_h!YILkGQ;Lx{B2gX(b)M{CTs40-f ztzw?X(pbgp7m>>p&%ufb7DujbXc4PVi-7K3*g0t^5;1g2&`@5oh|UF1*eRgje_~4q#$k9J2V=^3Z*08L0dSsfS`OtI(0X2=3opF$;357PL6+4F`92We$NFg?l`$rRZ!#!ZJr1#g$Ewv~e% zLNakbNwch~hmX5t%^zpDwOrbolih!^G?TAUaPB}mnKO~@G>F(FUKaWMHYnL7UMz!z za%}(E)ojXh#pcOnZJyAj-B2D<2Mg;ED-|m)pC!&00NIoPvH~HLV*n)29yL?$UCri# z%jP&!1R!UXt0G)_ofW(yiBDouh+_~1HU7tAw|Zy{U?aIN_1yelTKG~-q|2uxo#umG zIibX>rJQ&Pg9i|Tf7j4{Xi*56%9X3iqxu_Kehq&vEbjbW=^gDqZy$CK*%8Yv-PvMd zm5j$8l6AM($Aw$$fbBVDUN)3DaLT-1Xw5;B$lx19F361zPy&R?MZ()@EyXNq3zsh# zx!!tD-*!yy!x~ZL<(4uO$~<;R?{Q1X4!vGj`Kof?GF{Im)*=6seaOT5ig@I#uShdT z_8L++X(lqAuA+z~7oAJLpIo#r!3D-%7#BH-4?% zzytteR`Qd%=M&zyMBcY##Q8(8ZU`Ns@1a47l;|++jb*oqPTaCfhv)aA_j>`00nAee z|1A4uaKLi3t%w0y(rnH>>lY-nhC?++H@(R7DQZ>8?6L`2j(oxFUuQZfIdRY;z6pY4p5>n3`y-W!^D3YHEO@wt zdQyy=8qBJHtF_Qy(%_27qM_@Yp-f7`*cfV^Uuf=QS^;_bIh+C0>H}Z#N&}~)IPQl$ z^ae0=AiUTzEn3jqL6u2)wQ_ykDt&qg7EUk0 zwVuw3PA7ty!(6h)xulc%-r^~VPR&3^A7>(IpClD{$5ilH5~8yu2fbulyWA;_O}Wug z$!0gez0)`<5qL6c8Z>@Ef7>Gn-YdrZE{`LH>lb`TS-Ff~DFbqq<4^fe{F3aL`0;kO zz}(GMETCo8?Q9w6m~em={w2DdmxXl;AO_{7Vp!F$Yk4KMiMT$Azmzw^K~&wij`LhO zjf#6Fp|ko(iMck;=Vd-th0brYari^v9G(MHsaih43&7(4GL5g&<%jtDSqz6}I*s#S ztFva4?!9AXfU61D032S!$>APTmn>h?5f@d<5&Lt|IO6nsk3I9>l^!gg{r1tOlfO1! zjoq^9L6)d#_BXz&crCpW?2=*wQJJdYWM}uD%WJx_+>w%)T~__2NrMU5KZA(5Itii! z1+3QpoTQdF2x`%qCC!3b*&wJTbwN$-B?_lrmsP+)@vUxzuDd?tyg>ow}Wkk=RWQ3 z?3hY&xA@L>u&q~@tCv~de;8cfe;E9<*htP7lSXnrTr`o;kBb^Xe!0+O^V`BAa}%}c ze_5D~OQuS8^?KsHT?*p+7xuH!o~t2y1B`0TqL=#*Zg0_mi}ocG6*dZINXQ#D@vn>K zt@~ji*XAFK`)4ls|K7|ckDR&WKQwdNn%u9E{NQiTYV!Z)tdi6(saDBgx*+MYB|swY zBH`T``7$8NJTs0S01=-1;Ke}`x8rZ{?=Vb*$wFXonI=RhUW17&(G>!tVoEgufoKpb z8{~OrOL~@zHsMAj+IBYPcjZdHzMkh}6%XKW#v2-2ipClR!%5`9%9823_E@xKyiaulBi%r3 zNxgx9O{*G+vas1azb&X|5*t`K1x#WCW#ZUfCi4=&;b#j-yjMssTk15ip^TSc^??4Y zpc%n2&)_ts%a3Iq3x6>6YJY1P;{dEya0R|o0rji;mjj2t)nOG+=V*>4=_MRPO-N(Z zm2RXT@(-yOf`Wp-$-T($|2_{WK)+q(k^xpZPox&Nj~Om1KY%nC5uzSOB9~W<%@CtX zz&h1$DU8S)f#qwJ^K8s)%;?BnK|E*wZbpjgFJ+_%eMSi3h!_WR)lFt{X{kB=EuBu! z;&Gf-u>{PvF-bQT#D!og9DX=IejQ#ty55J%i|WmE0OrMbw}JF{kt)TUaM;^PJ;sKn z;KS&DUNV`OuXb7pfK_m-#sJ8k%3?>C^1W-gQbpBT4jb39DTd27^!<%Zg3sT?#Yvo} zmAv;lpU-f_7-bJb zh!)lfEbj$?yK8W>^-);@SMjt1yHiAE?=u}}$?qhzi?mTFjkEBy(6QW_^&m|w$6)aq zgQ4JL!V{m#UawhcM&i>wtIf>^sO${DY+-6jD_r(?v4N zc`2TOU?g2ut@H#UIz{Fqu#Z2Hm_Q27CM-qX3xw@fCl)0595Q{a4mWPZKrCi7Z>`Zw zVXlil2`cP%_YbvbSTXQ)0o7vEw~GYkmCoJ~(~fSP{Z9MYp8DP5PrG|Z?JiT83>{pd zE~HvtJnlRLFnF<7J2b|dfP)M8payiW-Q8Cc)Z+hDv0ox#qXdg5K$DfN*3WHN>5-lkCVP*TO4)nTsod%m z^}d%j;?e@rZsx_dewuip-)e=H=7Vgu5(!0=8wb&{xoBTTRCT(r1^_85Wa&&YdWq<0 z4xm@1L?9MQWejftL8Jmv2tckPkz|2{O{s|&an&l99oy1)G?lO1ltMd_O92qbJ}@+e z$<-SyV^(?tmSAo+OnxA~t@f*)BCXXiQ{XzFkkPi7Ot9AW52~eVefis)>+szT-rV1J@ zygwubPYYZM5VM!0lS!Oyixhp4%I@R4%1K0D_(j^)#&EKHoX@9%_cA^x%1bcGyw6is zramjv6)$zz%9dBQOa>$0xLg_8e^-BKRR*QDp+^MVhMOwbJ?+dNZf8RPmEH85i9o-9 zZ!{Xa2Rd|+!~F>@H9Vw;9;jCMTsO?tHe=^14sa!XIAQEq|BPKiJUYt zoQj3{TF&q0p+`$c&d7q zK!wVo%07q&oYcmK+zGbr4W!y*D6u~VO8EdWL}in1eeb~`+^n=2Jgl_2r=;D9!M&=Q!DCf5 zgZor9q`HSxDv_&F@dNMgzs#JS$!h^(eB?8=UBSnDDWNv>mIa87gb)9{W`LSrdP>-| zL*lB{X$b7=NWrs46n(Zo41P*I@r(^k>u+M%+zz{P924R*vT2W+lo2I8DtfU$0>U%$ z18>wwc1D8gj3m(k%$$uxrw70$@?-Pj?^7NB|18ac4Js%CB|0NXb6B0;ux5JGlTbr0 zb+W!OD>jmydC^RE<^_P3}e0IM*35q z(;5NNrZa3Udqf)_Lx}8JH_)S|>d0m$Z#`nM(pNie;K4Ugkfz}StRY8qYPAqo$&oWa zJ^vRP_#gNR_T>?DbyhSH)>%O)>j*=a|9>?ug3wD2`>V}O8$R}{gN-321gX=sAXyN~ z0W%}ET3Z91W~SA;7JD092qj}3LL3x5TxMMzL=&lqcD;$qjp}AP7&4ejDwl{aDbX8f z;b72LfHB*Ot&c-#!0nIm zz;*7{ZeS{9xlF-+FE3jy`MNq$Ve|!JlMNhBaaWoYo{;d9{oeK}BK+)i4;fJo>OMlJ zeoU;a#Zvq=iHn6QSm!Qo6K{ubVw_|ClFUv*K^{_xe8@Ck0Ad$wSi@|H>gORJfHr%` zsjS-w;&=xl{=^V!4mJ0bOn zp;FGU0l$Mgfl?|l^>Q#+vn?-ab$ntX2hSd((`keI57n>@{2=5vW6&EiOKNy9srk*%!7vBR8x5) zqL!d5LsZ9LP$$5AkTD&o0j;#+74iN^+LqDA0X7q*ypgxO0gkr;%c{hriK-KO@DqFR zM=T<#OyzP&Kowg7`;+W0%P+9gUn53jW&Lb*4i1mn?ZX3K4@5tNSAmj(BgAwH2n%Em zO}5{> z>Hn*2T3pFmtGm=(=UgvamI$S{oa`!v`*HJZ`;4e<5zavd9r?{8XdxLQ${U$!6Q=Fa z`M=07i8k!eCy)eWJ{r-p5(0v3#|KBSxi|JO0!&`q4QlU4^;Gu6=P4i8V&YAN>F;fD zYp5UoXt%^oZl4__4NGov#5VSiSRLdhCk}jI6Y*`0gLG?M91WUD5o3uRPLBPh(i7)VKh3K57?0>8-I=iu5yeq!+@7{7hNrY5_S zo2AxNCw$04Zc^Jn_kB5)umVJU3Z2I_0=RmE7Nrk@3;82ot%kBiWv)Z~HQwf+^>iSS zG!KG`?@35ZfvI^IRQ!nEIXsYPn|nv%Vy}BBF1npP`KY}o3qcTyxH@P*m&J}c&s90V zMG=?#d(RGKNnzp^1<=+dt2*549LUn$y@S1@BlR&%rmVh)1_Jp>)I`Zwj`oj^4%_OT z!)MQ)?RDf!`}^JQ!NI+o5peROmPBe8D{MR))3=vn)DXAj2c@aSN_d(b^};6p1w zMC26^%4NC4d=)Zf!ocshg9?xJcB=({a48Gs6&;cFFJ1|x`3i$v6ZAZWAR0y0hZE0t zw{^$a)*6_GqG|R$YY*2pI6t<$EWle#IEkJ?(|DwIJsc*46KBhmXLHY5-9DS9JYwe= zFtEe4b}+n3FMdsTb}so@#Pszkx&Aa~XCT(36Lt!J=T)3vPv_s+r@3&1M#`EHVrpdH z_VYsv%waM!kUUoY3>zKaO4?#_XF&EC4Yz4wC|ordpBz5U;Lp1(|6RI#8I8YwkMhY9 zf*w)W)KQ1}=Xnw30xPl)L!~@n z;3l6=c_}ZTVot^P>xWIm1a6hV!2tCDWmNtThT8}BfeKJbYtK)3((0`CtYgL?64IPD zTE>b42<^x<9BXbN(h{GaW;vyWOzdDhL)-bTv9}l z&PnzYJ9U$tuF6NK6sa6w;KD(jF?=_NOiltS)Mk`>u9g*bU&z)jp0h$zEsW??qhNouke?#79_)p#UwGe#sq!+x-wfdFYhmcI@M^lBEL z61)PGHH(W2AUr@Ig|}MhFhCz41nI;?JJhoT+I6)9bpoIR@0HRER<1cudgy}tNXZgA zZJ6)gP#Z^nWIsT5)zwaE-c@nQb!W}Kq;uwYX?6T2;YF`Bvflby?H4pwlXJbu8F7P> zlNktMpy5TUZ_h>F+@+4ZIz8TyV^=-Z=Wma81#w+#qeOH^mCFZI;+!Wb8zlCbprCHs zeU_-CbYvq6URyEd`+?(r)@ItFY;8N?$$-XW#$HX>V#a2(UNYl$(44{LR_A(Y(PQP# z+68cUnfuVsccTUDHVjG%rNNS$sHe5SmU%YD`yWex{VtXfnP8skl`?DKJoj#5 z2qUi0r7;0t_0#VFmcNMe;?_f7ovQin#Z7!E!wA!BuvTN@&)aD%V;Y7Wi{M8F@QtBA zbZZ)b60StZu{&_!zZhKd?QQA(g&tJflPJ51^Le?P-k!(B+boOoH@^;kQ65&?iV4>@ zmgQmrNdG9!WkoniF&O)|D9=PvQoGn2B)922a|=XeF@HTDmrEGTdBYg=!_~@zSwqE9 zh#6sps_#aID*0rD6NNaH;HZfFG!g&@2P#m|iH*YzJ{?1Vqu!F6a45&VHuzAppgMBY zw;G0hwHmcrqo(@}(_yA?R;sX|_lfTXIk4 zuEjn$wQX8x~L`-+wMR7$^CT<;*-`82PHfjP?!?-1A=ET!7x`E(jBmhogeDBTt$uCQ1(wIFdt z!$hN6fJ}^yXlRnSw%QfgrU@FWmp7ur5j}&xCq)4*Xs{AYTEayk@^wOYE&Chsu~ez1 zmaB@edMsIOvTBJ(*Y>^2Xc#JDv%}qwpZ|A0O}@D4LpoxKz6Tg|RM!j$(Il+0d!M>U zaTmWyS7;;DXw9(v+YMwoIF;cE|2~sCU8RW*tTa#uiXZ&~G11I$tR3}$N<*(p&u4B) z&C=S=C6K@g@+5uB@y~7UvneWL9ajpG;8}Y7xDRWkCF^b3_0^J7_WVCUX6qZW5Nvb; z*iDxwS|)0>wmf1R@?Ga0HcZX7`#AB2sjsxPpiq7#BNyG_=>`#?Jj%E~CtH<(#S*TX zxr=`Q!zd5p1$7c(%KINf1s)6lFfkvA%&Js#ba%7?hleJGjOmV0&pDa3aI7KHkxsqp zl8!aA8Eloh>>`RT!8UbqwY-EB2;8VxP`*?A^dya@^PBAePN8v>jpOMyhG)ai>3kW( zFG^I?>pYsp+qlA&-KqkC$BES-Yu5NL7(nr41nGHGT z&-+zS?am>Z_C#hgL?5p0q$n1_KmPIk`}f`N`@8e}<{zEs&!7L}2e9%Y9l_Ta0)!q> zx?iFgG|tmSvEBD_aGOVjf0;MY+n%J=Hqho&$rF70g(&~e7ytJ^9r^_{38EemdCR!|}s@3ua0EVMCa(|#N`BocwzdymY zI=~Aqe*3;3)T;h)ju5&mm-IVF`kk;uoKagH^m?SHOb+>Ul>wdSxqy|qkG$s=dB<&$ z{7n*HfBEl_c|e}AYiS_$4efj!xz8!Nuh-H@@*6&;$v*0QDy?<0sBmuWWVLzS&dCj) z-+wM7^jz4ask-Ou)`1}#tyEUcuNmioL>wj+#Ku&3l7vDf0XhnoUWOWzdw3CEqM=!e zqWxF!9tV32(7x>9e#=M@U<05Qrd)sfd-it~C@{&Gd@R?8ogpbkz zgb%0y!iTj`q2JdX4DVG41iIX7M1&iGtLEl&C&zOKoJY4ho6nsb&zB&8Ae zux^e<-XLxs1_G+GF8a*GvEpdyf%8;y4Z(`hYPClSIVgYGG8t=@aHNUN7IK^>$paBR z{eV4@OF~3x=X{zPzi_IMGDb>d3H6(-1YiRq5jmzyXGk8!Z{Ab+I&5IIo`CJm=C#V8 zw0SLG@&~`hKQIS0B3H?=p!1MyntWlw`~v1QpVbYS5Bc!dLImoDPMkl8DPN{U%2wWw zTUIoJUoAXgDK^XZ`BC?bL>6*f8H7(wHhedyiQ~6w31vG+VjvV)!d`_U>H^}`sMi7qHkh93T&&rZV5Qp zsjLhU`n0QA)I27s8z4MB;7IZ`$r943ihE722C8*~3%CedWyWqjWcz)KK4sEG*D zD1H#_j<5Uyl%5R6S}B1HdPBJMHv0*j?+Lx>1U5t(g{Pl++s~D&Gr=_ zuM7KoEnH{7iI*H3XvhRG!~e4M@Nm==`W>X!YTE!7roQ_e(*_(}huFY!NwGW>)Yn+T z2Nu+XB|+N4C7sg94xs>bb;+6x>LFkeqx+xq8J9}uLmUj__N2oc>Txv^az;fdD0f4r z0S=;%D%Ifh9@b$~LfeB#eL+)U<&938HlSK>)yjeNGg57pg_@dc2dLEAKX4ApTGWQS z8m(U0lNySc_kq-zVmda{UAOldI13FNcOo5yLi`bOw~UZeVz~IZwrwg(!CiA!S?!rP zJnBX$979bq@51x{`Ljh!VC4dnWtOiZhtd_>Bu>~$d^|-)C3xQF^k}J9S2}nr<)%$g zTAM($qU|f+R!zQ)hpT}of=E-d-dim&u+`PYcy#RjFX;QzCXZSi5NMtWeEVwy)UzCU z`>47Q_AA#@ae!$Mh5s%ya9FzhAkZb1m+wHcs@7aWUPf`lavP4+xM@pZvlHkB4nJ^@qCI_Nl6zfxZ|!;~9!k3xaiIJnQ@d@nj%_wz!C510c)4U!RGWF;dJ1=* ztGfT7<>f zgx(CZ$y!K8ad2014+h1S5ebOm=QRGlT76Hm$^5%cO$opYsx~M~e~X+$2}oEuDCk}Z zJR{x)V9R7T%Erk&7kJ`mWL39Ludg9!3{LF(a^Y%~Y$`Y6gPjD*QQ3SS^!Gbl-b689Dzkm&%?o%yYz>;PJ&ySaVgt>Ko@#S? z?VTW?g$$)AU2u#J}JNyqC8P( z)pt;_&f1NTJyxCss0Tt}u76g#$w(!~O%*M;U``gVNl*6Coql1p$rh=53u{Mo z`iq#_So!vLV3&B_YAxd3i6m3f#D({$k*;3E(Zxw6rabMGbna+)9R=h*q#Y4N{C$j6 zJkqh%?0xJDhYQ0|<|LR(ttnL;mzId8fn}?Mp2Pt-EBMWf;km$O1xYErbUlxVgdik; zB}Dg=T{j(h;-rlQ$_jhEH<<(d@GwD3OXSs2A%B(1p54<|5=<8}vMLDPUj>3y=tG1k zRw~h>g=aSLO`DJP=@!}Tw}GnN#z$7;OAas7#+S9m!zm>coxM`GJ@I@XJG65DbU)~-V2Eemj3j}~O)Q4G+&7m8M6|)TVvB!xY!oDXQQouT!AK+| z>f0U@4cW_O7)TeS3vqd9E;~o65z=YSb;cvT^HppJ1Z8dv1zjV6fUeIV2$(@9Yx#KM z;_w&IjY8n>u2zYNcClAq-?C;L^-IEd?53E$P8>i;R)VtOp668IMV!`xS(~kQO7M`5 zP~$=)Z*pH~nPlAfe2%9S9%U-))@l_gyPrk@_9AKuG%-7gh}ZFQ17xDDO)%wpxa=u5 zY+%!KGunf{IoeHQYLCLBdoXyQ2aV4~a*$kX)^DjL8ZGClPa@E@tm%BetKcjvzQ{l- z&qx^O%R;;JzbwFvJD<(c;&u8Z&WG8|#Q{ZOa6>uo&jP}~WSVbf?6r=A@A+!=e(GV& zwPZfTyez;U`CHmkUDkbM3s7EvOL@f>B;xd23f@eMTy&5m$+FgXPPYl=j7mSqog03z zaBh(hGdsNRDERA5dDHf2YZ$hG@_elp6oDT93r<2mc+>Wv(oL;62=u7I7?qoNOI$te zrU9k3xvcnsX32rLeb0r@{w6~O@KA%d2@3KCQdeAdiW>7Mmm=|Qwxt~W4{)brpa4oqjmipM3NsFYu>^;{xAmTnkpW4&7a zF+|20x;5O;fxS-9e19(}bzYJ0Ii#-pp8F7i*r-7@)BZi@iC?Qzab@~GIjO!{T$jUR zM})0+S&3eqIV?GeKC!rw`1_OZT{Ps*^Dr7GCRvh>bsX5KVG_SrVhWiAgR?M&3>fc4 zvX}}pH`0E*No}Nh%>!E6FB8Dh?jd3`UP5nV=)j1wvAzj5LH<&#{2L)NRt&M-*K6V0Z>b~pj=Bdp9g#L?nt-MsGY|9K zlkg=o(?4dmhSOL#;p9jDtVv9{m-xL&#Rr!_m08j{5UR{Sm)<_hHRJBH`511f4Sril z1*hgvZwr4dU+mHs?|oryhxj{9>2~%^qJ>rq37v{8b|n3Vj@!dpm$C&;vvRp*&WlVl|sHs;~jc|6)H1LN=7C#n`A$m+I7rsRfFJ9JF)N*$nN3 z;`H6lBk-t&J6SZ-4sm}Jn5mTIxi@439sP$tLm33h+r7byks=p^9WDp#G{!hj&`^#p z20NY0-f3(*a8~Rj_Jh;=gF8YKZ$WeDavE}FMiIjBh7A$S9$HB zj_?*42rAp5c9;0m_U?JcX$*z}R1YO+#Jn&*iWQ?J0RkMH6cIt3KEU{dy5nL)4Pni1 zF=#5J-O4X6gY9kjsK2g6V9%qs<>3Y*fot(WcfLJ9nzwdFJ-ZMdIYv4D7uvSp*fzTB z%X>o0aKHR3@@go+_kG^tP_0ip=pS~o3}&f{jRZR^M&ee@oJ~azy>$5oZTviBTj6R| zHAH)odyVz2R^HnQTDpBXNXY&;tXFysp#K|(Pus064(%ouEZS+zRHwh^2odg14ceaX zMEH8M#hcMZW%`Zb$6Kc{8p?%tBoHUiuY!?B1&^M_hDCwrCoxY7ei~a!eMv!%;TfA3 z{8)y^vg7zsXXc+v?|`9!r0FQ?1n;Mw{Ztwcj$?Ab7+d75c$h`MOTZ#ia$PCznTP{0 zzGU28x7S%AId|7Iz2SSFv+Myw*xhd3df#fx=eT+K`FB?{?qgv6k+&i`w6waiTm5z zf!mw=Kd8PZKe)yD-X7Xh<&XW<>LhLi7>5U_{Kw)p29CO+){-!vs=F2rj%7uah;}D& zqcZm-cD1?mj;R9&>jcj5Q{}uXzAhz_#^YUmsreW~Hdt5friW9YJ8BH|v+AJj zkX$)SG)D0LzQX-M9eocKj*z;cXR!(j9u{2%l8qweP}YKqSLBNCw-R3%_L0BN zO*7X~3xGXM2I>}ndeDCUjQCIe(4Yf&w1v7z~`5K4~m=x5p0O~e+ z9ix(fZRr+!l>Y(fr{`m@%UpClWofoJ6jlF0tF`q#_a%N9(ypYQPRo;?%qt}5e z>>3vY=ZW7-8uH3`6{~9^AK|g!uNCM46{k&p>?=r8654_D(yw7qx4#dlBVVcTB(1|p z&xSaWD1p;X>}0U5xo9Y`z7mP7O5f(k#IAIv&FCWa1cFPJN^7_Q_(6JO{=Lw(kqKJ^ zp#eR4ygJ0fXm^>9F^BUqA9MWW3Y(UEMTccCsG%!HjVyxLFqnwV^47VDE#v+vur3bN zG4ecCsS{*BjSHvn6%(WTuLwC*_i$EjCh8P+eI=D^?Za*;uv^s>qBiRTc%jO}=D6mZ za;)@?!aG9wM+*NFiD{ytJ_&MQgV##g;I%?fqaQ)Rn%bZUnIf`OJ^gpu@#=wg0GWIg zSu{CbwQw~bdk0Jp_DGI(2}k6A^!ZmRZ^bh&`$ z#W_2hH0N<2r0)Hf@W!iocAeg^cLgBYNCUtd>7Fvn;bzL)?DLf8bFb~QcNuT9kILC( z%G+!?2LI9tZ?l*3_Ip{)Te$i2lz0BoW`9O9ngBhVPo$epITwG&cy}y+O`yit5W4e= zEO$KyPu672+r~J4mV4TFLiS>Ad&%Y%8BgW@p>thh}KYO!g$p6{oczIfz82zcFTjF_#%p} z%zYVMSb}9#K5MnS<#+{%Y#3m8&}t=M4V;0e$7hLfPzn?EyF&EU&KdLb6o+)D+itU; z%2q3aQ6M9Xl@PPcSmqN!a`1L;vcx5P2t`E$`?EY~`^s0N?HjGzF=Xy!c0Ee*rtW>r z(|Mj2x7=hqj(E~~nlzL_*S9-CZRr1^4<8yBF$B5j#cDGd@;tQECxQ}iFCVvSM=T$E50X13}pjD-M~;aFfXPWy!fUBDIF76=8RJ~@VV&KTxZt;83w&2Vsm?`E3asAXF#-_p4U zc8hct&&%RXluf2F|JL^AQ_D$0bVkdu>kU0TaC!()ihBob>>t6w2F({9T@Vilxj>$F zdhHiUPw7YYJ5Rq90JjzL&WjfV@QeW4=ir|eF3|xf;rM@rYmqYvAf6$<5^}J4oxS!y zlYVEf9UL6N)xl9a=(ORY=>c1s+XT;w_zrf2=AFm%L!gJa*R26sLRicMfoJu={4hez8P)2p*C=g1DRSRBQ^E_S}ne36iI;htpQ6D|< z9}~uBsUX^V?}eTZgi_`_>`3oL{d27ZLlv59yQ)Ahj5*aeG8&6`sflM~6yZX>7By

^`I3Yh^ym0JA2 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%0D+9MnY)GHb;H^U_AKNxYlb+{a58Ml9h33FbTH+2 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\EOI%n@J) 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

;&OKi_9e7f;nRg(gO@6TLndvC*CQu)x;{F*C6? z)o|N*J2+ZfoqRry9ya5cOx(0f@1#LWtiS5_`JNs9sS~LRQyatN4c>~+u~i)nI~RI> zDTHkmGt4cGt{p~h+S|=mrJak+?BxSEzQ1xFUBm506^TzC(Mv|7o|7Ny2knB?=9!MB z+*`RP-gB*f)$erMRpcfm$*%T>bQOuNZjQy*B8_Dyv%QdL7JM@~*CsQ$##3A9s^rYN zxkfF(6>mHjId5N+Ob&~E+rYB*3}owAC&*H zvz?iCZqzY5U47p+Z;UjkNL-l2L!bB8uhTz4<>n*u|yvC5@6w5B0xKC4rC`WUL3 zwySzu#Wt)a(Hj_C5|_K&EHJn80_th52b6X_0-><-?#5Z{-tw3l4tk+OP~j3Xp(t`y z3RdxCFUO}qzdV3PPhc53;S&5rN#A&LW%N(NUvE{gGnp0t% z%HVBva=W-cPonek*==`l0R=G7B~Y__%iQ8W?}pD1lR9|lToA68mrsD}6L`*^qyurA zJHWPw*4?5)OY8vT+_0K~UqXIjO5PzqWd_1eHaTVkYPv!bAvfX1UI-2yLknpD&A79E zx{|0mpXL!_wwNa2Y;tcCxe(yN!C`v#qInzYWXU@bGpYFKd9FKNIl{d@VTF}iX}36B z5=^FW-==S@ba`hA)%gOgl5+ayU`G7@G!pI|^ya*m;en0@E3`)T7T-;<0etJGmH5@^KtfYV-1luh3j0!6!C9wBI;$` za<<=dfa{6)Zb3;5`5uuH`UY`S#0t|cln@?vN_3*;$yh_fU($&~NGS(LTk8^oM$Er+ zQj2Bq@!}+cLPd6?_7UimHxv9Uf)F$25kZ#P?}Whhqxv;pqpt|+;zQd2Z+0vbYz7ba zODK;3;!*R0CcyW{9EX7U@&EDo$32sf(6vA8J4MLs1b1h9a40n(eoZ6pI|8}qX18>l z8e`7d8IA0hynT|P#>%-a9YA|I3{Xye^}<{C!@piA!B9k1MbH}3o65sQ$^f^{iiDMc zYk@$Wiss@1;zFPqjBO({Z?4;4?tN~1_~X*sAo0}|DumTnYtqZOQKb^)Dpk>C=zmBW9>i? zmWnm9OBmV=FnvYWf)J38!i7=UhA45n*oVKBiAC=bv$CZZa|lbw@6{>W8gUzXj&5PM zau2#DnTXnR+#%J~_peH!v-ikx!YO_aZ>A52yN=izF}q8i%d}R^Ba=sQ5WQjyMRSA_ zb01$v1BJS!x}VCZ@YfV+P{xztYIiQ&2adHp#I+_3YtYmHKuL+oYH&q+)rtD#I;`Q| ziOR?TBTmUlS3l>-2~x%nXOYi$>@x0!a|`d7Y~n?_m^i#7%dwR6b%0d%6geC2?8BV~ zy#lY0w%%-w76JKF*~K;-&Cp$Ib>nkU%stytK47FW9XpGc%cyYaGZ9tF4Y>$;BE!pX zPn}GU!ZG;aoN4sp1waFSu-*!-Gmzy=b&N#KIwK6}#KGN~XBaG}IlkvZA&tO+1wSEe z1{->bTje&>xkZSw@o@@ZeY_re2*s+#-M-nlg~M+f-a%p)lXDR4CvL`f8exeL?P#eU zEXaFduQI-r=R)#E+Oh{Sbo*;tqItFg@3MzGz6zFx*c!x; zdF|&d;^UFUyM>`W5}!U=1U-I$jz3dT&3rq9oMuzeyLo0vtqlVcS)=fWH zsNh1*1z^$%2)->2GZyjW@bi0U9qhqQ7xm;FC5IsK&dU?^YRBZe>I8(@rIv`-KBi9v z&%{G1L-z=?07N5F3jwoTz|cWQ9DTQ>Hk zn|i8bV>Z_3bc()};ILLFptb^~-Vmq#D~oamMvmXs&H{sET(zlnsSHUr@iDwB?EX=9 z)jvEnlnQedD@a+0wybz6UOgrFOqF9caTW@64%6tV0r8%1-?V&eM9thmxZ$+kirf?= zUQKyO+(nFW$E`44*U;8&SyG3t7 z2D+WtiJYL|Em@-sOv!Q9?d)DcSPX@Ii92z@G}tqUHMw)KznWI{Iyc$UfcE`MAADeW z%`p>bP!FNK!*AhCPqN;!y!E#76HfgYz&ZC}+}2>;hAKxzO=^`)MjMR>Ka7yM$A3}c zgZZWj*5f2f$*8Z@mAz8N6_={b<0;0aCkcBlnGz`+$c3p>m_eSnPD zq^z&p71l2gnAThDnjvN*dUC-S#R3KqNA-FOeDn|_=F}JE99)yF+Pf(dDwzFZD*7$& zJLD3)FZ!`f%xXr=BQ0uah6% z=WU^PL=ts_#%|cf1&V=~w$FUmtZ_}aaiNN@U9y181|lK_9-%2g|mti>;% z<+j61x;xuEJdaid{JJ>rynLF(3C>ZNtFsWn|BBK$jM4dKft5dwnCH#Q(ZeMrjAd4| zctG0m49;Eh%IFc2FeX|HefLvCN6Dx3-vml>4-dys7abhIJz~8t2ot~)l-Wo% zxczcGu+^fQFYp6ngK(R`lp2sFkhoqzt*GyiX%|uq`?*kEDQP8jBR2>toqBF`MxTR3 zz(xSfe{R)H9gl2u%J!2ppt<-vlrt>_$Os+BJTPwTdgw zVD{t`mzClV3i$&7Q(^g;qN-#Xo)C8;CB z1w;h}1w0odg`k{c8A&3`iJsuyKSF_2?8d^`szP2;=i%KukxuCXhY`xbQ{pY>CrtFl z!Q+H}@ccFvjO>wfNS@>HH`j9LjTlJX$Wa`#a)Y|@r{MMp{2;gz@ayfa^sG69EiRxD3sgMBJzKxT@Xa2tfDzH3RYnb9k8A zCzLiYvn83I3`*!FAoNR)czEpgL9Z28NHYC~b?FszN*MttsbR7<=%(#ipcFtV9Kuv_ z=xO;aGHzS7{Dp^Oi(Yc?{5WM^NnhHsch}HtG-lp-P^EC;LQi3^5ZD_s5s> z1S%3{aa3Tt^s-D-n2Fbi(v{tja{@>)E^+IZpdsXbPgezhoKj@m-q)pehJvag3}{PY zu8~)PkU24JtY+W_B!t;94T?$TUpHfFveFhHaoGb7xYxO6rzV^!AmsX$YR%j4`5cwy zaQ?02|I;B*J(2K03PlcR4-tiHqDd8$9g@(>Dnz)%vuJVX8iWk=D?|aG-J^YxFh(YH zB08LEj=>Vj`F-tsN=y>xCz{yz1U>qIUkDK1v&DJ51OV^51p3unlJ>#y68;6}c_!~S zvmQs{)Cqj!pI^}K;1#z3%I(a%oZWAn-3mffkToYVqlAgs4q6Sm?1m&#Pdj1}v8`tv zhToNX7Ik1TaKN~-DAHPH%8vOnAIg4)PVftsTPh_j3!o*^l# z|5!?jSynR}P&t`QN!^DFrqLoLp^C8qfu-)u%DzqNWa)(A8elERG8~?9^SzOeK&P4K znOPu2Y+=4(Y$RWzhbxEeKm|%^;O(#N;Yr?$w@bR`K?#@!-m<>Cr#4p&LJI*R3&O)yK8fUa-HtT?n?d#6ntNC>HDwEM)Ptzm|WPn%dHfF|&+-CFn&=iC>posJ!N=5-*R9J~Grh z$G#Mwa-i>zoK-*eznfy=FTPbi9VY#KbH96ee7{uU6q0=(esr4V*zA~2epx;_xgEUR zV@-r9u;AdNjX-|AJ`ZVNflPBFv4Hh%A5VYlNf4gIP7qp&40uLog~>iRaPnd3`3w18 z4H>^vU4($QMgYzN1V&>L{Gv4i7hynDDeVQei4&cGpl8+nl`!ac?~5X}MxUO2iA{1c6SQ*W zKUMv95HWDWmv}G}Eqr+LbswQ91k4zObS69vM7q1%xp@1%a+p(i8qDx1UwD>+F0*3m zW_SuJYLstF0%-gD3{wE7#05JFIu(km^igC7zqrB|>gtoogu*uIYpQScguM?Gi3KED z&k90FUP<0cs43c8(pDWo>hhX{;+#}eTSnB>z-?ppehc-t=iT?+ zDL6&HaM zmRHy~vc9UZVk6|>H#55*9WN{BH#Nqt{CIZn$6{uCTXLelV*zXy5CK!RLXxJ>$&9q+ z!7hC&1R}jQELbRM?K7Pr0J*Pp+Z2&*{#uIaMD=58D<5}$OvI@D+mR>E8X8|m_5V;c6qlHU zafb&0^Z=nh5Hv(h64s9;yL5Z?J64#R+09cT*zhCS@NEkfi>M%OgkZP0c$G5q_i@U! zY_7QFcYtAgGyuT_1(223rgwV0y}cxW9srVO+J}1wX!nb$9)QAaLNeM@Jm~;=S8q;~av};n&;(N&*J{Ya3u!qr)<|bdAlamoO;d z|M;>s7cG$AZS~mY z2oy{xdt^&kFK)O$L&9-3iytKPr&A<_%7HZp<+PC6$2;LZiUbo=!Xzt07C|An8%x#* z3GpMP7#ir5Wma{b1%Xv2(91%F)KxHB*eq>YRIrr;`%azWl92ufQ%~yj=~tg#cQzA< z;_;ZCK%P&HaL9~@KjiR^GgNx;$|(sbn;Wm$3nMOZ#QD|0()5+Zg?Jn1=QKS^$hd5V zf$T8{!$qw4Wlv6U zj<^6Q5OQB9j2u$G9R?fhap5bc9KuWaElpkrN7{(oXeGqL|PYe47L4VDmC5UVi&1jQP>&f$&gIIDT{X&Rn=dG7ZxN< zim(U;g3y87XhBaP5{o|MLfy_z-{=djo-Vb{a2EmJABq41LdMHmvxSAwKip5eo6G`A zVpJH}6^0w}E{GduEYrK<_6e5iM0>xTGd4U;uk983yAv8yR~nbmkV#X>jvzPC(gK9X zCd>VbA6u)^Z|W4KiWFYU=u(s)4{8_?JK5{p`jd%m+Nk5q^d((OlcHVg>rEHejMxuW z<%lqzIi zw5%#l#>qUcktO9(?+wcl?wy){eDzX5mPU7eT(6R1)}eZ}&7(=IA|;E3+a+S_4t>WeRG{X|(nhJ;=p+hEPFd0yWu|2c8EZQ@man;Q;@FR5uJYAq-h=*?eXD=b z@-)BhrZ~(*@7bf?c3{h`5G%*RFEbeDXAQ@3q@B>3Vb*1>r_9VBvxg+k+l(MZCo4qB z3t;ktqU5Kh168Nrb1x^V#G;BpSMKf315$-Rt>r7tV{;F78l(Pas558HNdAQ}q8tTz`b zOoGY_Po?*{ARq-DwYH-aLgpDtLqoZDx*$Lm4Yj_mG%i>~Buzy*NZ~gqD+dYu1|{Vn z#^0c*97OmV6qJJyMMN^>m4iIIMJQI(dh-ebL{U&#a{PKw>s?AACW4^Wc$7!?^97&b z{+sZt5+a2%MP;PZ-1N>J0M=3-a-_tWJsjPmxa~{Tm2=Gejz*D0xDqAgEQm-rR^rveL~l-8KB$!m^~P9;%G4IiyMN z?n+kQ=RZ{}zDYL+sk&v%JK?Qz!ba(R+23ope<+{}_^ADlVw+loom`gS0X{ z(p6#VO;MpJ$GjFr=tYxYHS2U+)bv$!f;CptDf^q&X+7_Rq6z@r{&R+J2l!`(FkD55 zoT*Da|525_W!wGs=go!T=lJI^^C!{vTkgO7|C9Jm{fy}|cE$vSlgYAYloqQ z2tq36T--C4#!*!Ao`OE2NuQ|&t?G*sWh8(L3_Z$<2q@@DV!qRuxjs04y&Lwlw~rj~ zW_v!~Jkw(Aat-1qW>hA)nK1>M6U1!20j3+FLAH1&(DQ@fZm<*R8K@=po_=_D4~34l zSjs@tF4V-+AhOp;`8XY6=tt=w9En51iQC*NGu$3;E~%JuVE#!7;;08RIzjLQ?!!Il z6|M{Bz^;mLaHDtl6>TuF8~u=-1P4ur$)S2Wn=N9QR=;aS!d^Cepa6`D zYo&3r&MSk;F5TuCVRrGV~=v^u{ zUQEF>BPTUdmoO!3EM>x2vvxr;++YUAnF zHfz;ML$KdPAYyLepzc=R+rQ+l1J3MJ%R3Tk79!WnpQy3C_bgqK6;y&qDGxfy-*oe$ zHce9+vh~zMd9Hnm>vX=z?9wS*xR|OWCwO$}xrZw)u{5{M9b3LUfvKp$Bl<26HB%p>7|@kWGsKv! zUPq7j3?pRD^1M^4!OL2;^6+k_33>=s=b=uY2khCjbZRMJi`oR0POEBOMsRFUfqhk( z+oE0=n@wgfPx)w1=-`?ci7oJ*lmbP|wa#IuV+EdQV%q`xT2*xt`oz0d!n1a%$8yTY zT8fKc?YHA6w%$4udGPI+Jl(hKR5?ksvE}G8iWbEVN4KpFnP{e=-g#H^a#I}(ZGK%0 zO~kfR&Ldd$@khSMq@?|q6D;GZyK1L%eliyJ74QGpCo5MynacUl@;A8;nyU7MHXfA6 z{9-frZJuJ&B)wPlSHvaVlG9nwWm2NL zbg{|GZOt%#Gk_TfLII>@t?x$#irR*}dVT3Tpb;>$_s zO3BT%ZH#OU9b7fMuhm(engQt=e+zp>;Fv;(X+I0DmacA2w-0>B-QC*V-V^t|LteXB zXe2}RhIz(I{Yo-(X*_t|Ggr0OQMa#~vvc8_+A09XQ6M1u<4^XT#PCTv^SA-u*tN;p z7DY#@-S5;GS>hygJ;f9edE{~WMCckr^A^lEu#2e#n?ybSAJc>1VRL9~b12Qk z9&y|YiGqO5^}4rv|G4|KW)Ij58n<|{75Gm7OCOWb<+)sZu{q!6);F(nyv5Kj6h34l z8}Y{$0^aEFIJ*jA=xdqRO*aI0bz5Bm0*8jTKP(KN%xk09Vsv*)aR&E?!p#ar5>=}M z=75OUco3w~N7Yw{r}{KCfKuYnhc6;vq?B+=B+SVeo68RseLB!=_w6~Vm0d7yYwc0CA2>HeeQjieMk#^Ka zH#(`7;|%FydC;6M%6lZCzT7E&(okmNaZdXvEn}yae7f>36vR)b{;e!g@qs6z$yq~- zq0@pBA6Vj9pna}(jKo+mAJk0{_^1djZ`hnBl0A9Vh)cvG;1}lT&iibRw9=EPzrFt4 zjyqgUs$_)nk*!Rpl&)$2mX^05ixI*woa@E7cR$0k)|O`GWhMIN9mkTRY(D{rH_hM; z0?Qgd9|l+kaNm1XoOL-!(LxG5Pek8qUotejxmr4+t= z7xd;PC>$i8^T`BUl|$4E9m!$*tr&qm%N-DCO*n7O#TgXStw84^_AX>!(CdKfuFyo| zDtDGOIq6Fz!&3kG&vMJyNET8!*Wq&OKMx3SGPMUg|6|BB1Y(~DNcR;2UB<%^CRxQd z%@K%|b6T9mBDST)7v!@*70O^3LGUjA16y31^WbXC?m&V$;+Ked;K0|uvwV>RLnsXS zLk%Du`Pg8KNc2s}m2i^RX2ef~D>Y|y-TUqLLwHqpcRMRxAjMIQg?OsS8F7@oGI{G9 z`Olmd5Q#VJut^ntueok>Nj;@X!5DfZH>e;7ly|z=i||`rAcxm>q`?gv-WQ2d;qJOe zJE;!{Cdt;DL6U^xP%pM#TVdYNvUgBkXotIifL+#A_lQ-_JWz=5zo3d+2D6rf5_c`K z;10p!d~%?X{56dkp>?pH#<;PM?`&ZG*F?gL%hV}__{ID6l>4X3+RF9CD`JhsIC%e@ zCGZtY(`yk@5xP7nb19;axwc5>p)YlvTWOGZ$!COJcBA@R=^nYRdNaipi*qhwR@o-b z=GzKW0=DDT?qv>^B>RdANrv31BKAZIm9SFYRj&*4O~^UY{M$_&mze z&)9d?-t#U(PlDPI$5j{JJdD_hJGXgPzlJPIY2Od(wndIiFFEZ3uyFV8}fY6|T9>lTRy$#L(j zPO;Yn2QMWvH%H}5`2wG?T+RAg>yzJ?x}-WjFs8dyp1Wc%gg!$D(e?xHdDFhdmQWe~ zo#PILp_&W{NitD=z3r`BO!+sZqERztGeK*s2{H}LpClX!VitfR9_^Ghmi1?*=Rw(2 zL|8{aKBeO2lJz7iHFaoGoFHEOko14FomEpE(YA$gcX!v|?(Po3-GaNjI|L^{kR2en z`vx}dF2UX1-QjZUoWF3Yx>oh-TC@A5pXL~IeC*7|(=^ofqDhqw14*Qa)9~`m5m4Z8 zSFMPE$s4#cp`Wh&yI13aa048%HfZ_Fkd`|t?W_6N4kPBK%Jtf5@#@SNI|Z4|;|GcX zzTnamUOZ1Ww|^OmZ=t;!r%`|IC5EMAQSq)6-Wawf6$P*0RLl$!9(EzNWa-X(Dgd1E9EvN-$Q>)6(I1($n=Ua3Zrqr-7)(~ZEKxUtw9h_l z6y#NPuMqDfOeEUw7ik;o^^ZyfE8h=Ph11j%bSR5a$WZw$eR9Y)$wL$_!*_L*!rYrCDF z>$6QHRr`D0*$c={%O+5`;8DLcK*jgy3WLG#NslnT3RPpKdWRa@{sp+R?RtNQY5jPS zEx`solzjzlx^mseSS#gFRXjIV#f-1aGA4@jP$Y5UgdH)Vv~m#uuD44j_9xSf(scE! zLSqME>nQe?tJ*^yS>19_v1i$Dp;gv2K2URwE*VM7dw&zMzxjZEP zMO$RC)iQ{6BlP+Ew!#+l3mnMZ@@aEeDY2z3I$E;)(hlU6Dw7U`6iPjI6-;WXoXci{ z<~us0Lg>HR`>A9%2G(?T($ekTus1WXs+xo*Gl>KnbSBgKfrc1S95e-)6O31LXc$ zR!Z-KP8o-3#YZ?})R&ul(;rjBFgmEBLvi1BVj%4>g3fbE< zq2|&Avl!Pk)F#h-B;bd3h%PnrxcrwEP}HN84J#a4IE^Tlg-S0QdktmND@jxMfF;_2 zS*GofXuhwS_h?0f<&kEcTC1`Dw}q}1EJ^+8T5|71v+4F{90PU@btJ_R9Hha|1}XZ2 zEmiqy0*V@fLHHfWnD!%Hro3Nsl4Zc9^2*-bUj~fa9y%$#t@6K(Pkv)hp{>HvBTy`o z)Y&*=j&aYGO1qs{NMoKvj4`>h3n#YV3#yC^;rVptWpdV~$(HMULW$8oB8gYkuVBy( z`*+7y;x$sJRBQ=u`KH5fa__lFQ;w*|OQ*`5^Fh7a#?3@-FZI`G;qGa0G0L=h`m2wX zQN!I6t|-g-)Tw+=xJ)s)UY0ga?L|tW85nkTmXCG$kf>SacZx|zIr^peO+`<{b+B(3 zB1}*VulnRZZ6QWQerr8?WDNK3uRRUczg*35kR%li!dZM$lSGs(um+I764Qz?*bHnf z%;2(q@S$Z7$D@`Z%QqyUDy7o3O%(oP-RI<5Ruu0*%qliASF7?N#H^F9@sikWv}azu zp=zK#ach$1ekqU*YbBEBuUcyVc{!a^NMB%^=2`nQ4u(CW9L?v8A>Lk~h?B#lO;x9h zHES~IGs-QhkEM<f$v^4r5@yVSl zLDV8W{;er~_C$#RhQ;0ljeL2tSr+slWQd1?h00afui-3OH46F!nA?{YiBK$g^+_}= z@|Yc~lw48_xY3@i3fsGv3g>2-VrczxxEtbuxioI%WrKbV8(8rKD^9t>Rjgp6{r%z! z*&8;|nEMs$+qnmt_-|N`{Bp-fTqlCCD&zH@=f%uKh^AXiUD; zuK&Q2-*?pZpC=F zxg{jJ>8-7e7fQ7T7#v($pslJ+AE=oq z6Za3S(P7!IX57|Wk^oZZN0-2pO@LL)`<#gQ3VI;2<4UqHCbDty>@i(S;sS+AIUQZt z14SZnA44I&kxc$8%S}Iq7eQYbN$onk_0`68Hme#E5c6aVc?cnb%QX0k$eq|#kznn8 zFWX3C^sxpsAR|{GqdE|Cz^Lb6m#g0y42O8RV}WRSNwLM)dh5d zfz>p(Q6hEU6`(wl->sFIk}`+tw80DUl`K_JvMX&B4-sm+h?2|v_L0s^i%KHYMg!YH zFTluL!sz6&NlK*S=fJY!)?q!ha{KV(W-IU1bJGuWHTC@mg*Qk*b;S|bRNx6(-#F&y z3U(ryX`(l)vhIgJV}He&izZZFJb$n^9L&C=a#bz z>yY5BgpwemOZQV_xXB;VqBD;hM%o}_FHz_v_1%9D=?pv!0fp6bA~*Wyl(fE#+5ARB zX$+4%ru^=+)`G1r;|VTFR9iE^Ohs&(AqX}ynq^OGP3R#p-Y}xhWV6KCn*O0A07bl- zeTz!ePZ)KHKyq(I1Xx*{*stcT#Sr__sLr5X%^qj!Sy8)AweEimf)Li?%^UuD?sqEoPCBQxM zTE^16h;!62s%L7OwB*_&GLRv9zhe+g=)Jf)h8ukrcWHh{%yXQh8&3xvz+L*iXll^J1j}ERiCi z-w@A&)>p=5946^+bf4Q zF%Dr7=H6$k&>WyK||Yee6UY}b-e2CsdL4SF>!fmxv&I?WS!I)29NI`w2blhh_{t^p#g7XSKg z70YwYq|dthnDfyc_tvou*6VZT!FB0A{UvS60MD>6W=W~id|m^%3!y<0T6>ujAi zZe8}mntguj$$HdwUa@p~B3rw=-oy_IfHnE?)|8FcbkkGW`9P;oVJ}#1Vz13xUxCd~ z&MDD#U4YJXxWP(=95qj?0*IESNMbizuoLCMD1!U0&zvGEeNxMCI_SWbc7xIPX~4zj ziOJ)J$m78$T*_DZ*9aJR_2;n-4Aopa?6LXsY{k%P{!|#hJ!t1r__!?+x|g*A!YfT$$Q{8KBA3u-t5+ zX?kgpb?FEIBI(3d^DLzb6(c{|dG+NIV+#y?SV z_j{uDZNNr{*1HYGHr@6FVE&UL>IpU;b#s;w_Q7LZf)zd3nQzt;@QT`A0as;)^B3on zaXfje?|JgLL)ZoQC)K>0HsE;R&n*^I9>(W%{#^&UxR~eOST>~TR4h!cXFH#R(diA$ z2AovzEcy3Huh05J$n0)w{{RYv?P0Mr5(4C#;uyxu1M~QU;a4jmSnz%teQ(5TxhiwX zqaZ}*&;4M!6_2Ap_Fx%;H*>@68aH(}X*nzt<`k+3fhWG(uLhKZJ>iU#< z{e1o-STLL5WXZ-|eLmRXemUQezJ78k0(|@@^m=c4p)$ub7Hq)aCS`fK4Ej0 z6{XztIN5#TlnK zvB%#LYAt6=OTh$j*7;+WDwaXZsq4~x3deI>X- zHP&__yNqq`>;P4|8wGOrPLovgpR2CJ6Di)T&XlhiA~9!jdLNpFn*;abY8c}OjQ^Me zUvQcJ+6LgBN?n?D{9Gv|d1eQ+$9eQp2Qr2-y}%+?)1%TCYU}^Ilx+ijvaJ+8CgHgq+;y<*x#hPw z0z;>~$M2zsc*H3F(GtlS?6HV?kaOhGg3nQjwHOpx)MB+(%p0V)gLv}`FFPZwuq*q^ z=_S>AMk~Arhu;u8)SAS{E6gV034W3#_Tu8!m>PWdCnG4oC1Y8#n`|>Z2;bcbJ|73g zVG1$zR3>R^;SM*th@r!{VPM}BUVen0stD_jx9l^?FyU5`DenAq9@yubt zpab_UOGRkf>MVX~3$`l^fKyc>zGD&(Ht*F*Cs3*&ND35gz5I&MMX?||jHPuf2J<#{ zZXLU2?jE4&xNxK9y>6d$?mE8=Ir{qwp{NX1GUuGUl-rgq#qzCPh`IVks-FK3#}#rL z0?q4{?`7tP-kmhO0`0y#sxg(B!s8*pyQGKqv&4JtrFHRidFs5pH{4FZ>rw}nLhAs` z2uE4JfMdbC2l4gwQon5B_n!r2&3Px6KzTAO!QIgIjGKI7$*{_ei16YRKDN-pwG9U6z&8`@kim8G?PY@B5@Gh1EfadL&uGMiqZ2 zE*GnR4Dk2P&ux6}6F~hCPoK@G&uK;5mn0j}y|<_Lo`%>By)*H;TKq%=x-X4(eFrp9 zh>aU$9E{ub=D>y1WJ6?Nr#!D4_){{p$knFTta9SV_fTXm=@` zld4;vcN>2b{LVoGX6~b30ks`D)ZH7THi-yvJ3#}f;{0EZ^k#uc*hr%or@KI zTL)Yb7a1oqd$+Gj5_2}7Q;(kU!ug;*kKBvCgf-8KP4z?Tp$%7F?=AYZ4qEXxwj0Iw z@5BdQ6<~SQjj@k;@1@cX0)MxE=as~r(vQ(o4v+`>N2%8AjJNLY`j=`uX0I)yU-=1 zs|^%&mn=E8`!m*}ieSB9jKgoUL-1iKdTfGc%@q`=8GC-=wcg~n{PcTY2KpYFl?rdJ z)0FRQ%U&kW#X}UYej!>8IgaR*J3P%rMsZoQt=U|_0LE?1*URkZ@iu)_B{b>fIfuvA zHU?Z52jW2$`f0~gts9S-9SQMA*lx>pWE*Cfsv`|IenQu3+KpfohBA|`Sa=9bGG*2b4oC!v4H6@w z&Q>Cl+&_lIfE>dM+HoO%q4stnBcd+hPF`UF{tXdxJ1$DnKG79?l7g^^o_xa(*SDLi zv%_?qrdWDHawMh!-c6wT9gG^~!Ia&QA^Rf(U-+yN2{?ryf*--Zfm!Tpzz6=>yRS)9 ztp;0_iKsz0CMrvH0t>SXqlWVZxUQvCfKk3b=A<+VKC^*cvS=e19@U4vB@X$?(7^T7 z(5FAhrco;~COKV6jM<(~{PLHZ6A^y4#o6kT99rl%T|Pz?8=z>o6QKV!v0v1snb|zZUbpc5*pV`6BmmUp7sLsA z0uVc#Kdl^|cXv4kWMJ+)i+_dH59Whsi5L|0L<^2_RTovOfxIj{oPPU_tR=PLD(e4$ zsY-BKS^Kn&#s$JO2Tzo#BX9Tt&i9>*SDMOfUL*fZ&Q7ALESe#oS>cK#D$~*OHp;RYGaixiv34XP^sS^h#qyzGvD~PPC@;tLt~}$&T}il#yKT zysbzx9X(sSWp=3l^DX zpEkHIox_Z?l1Z-DGB*nm44aVy5d*G0^5mG{a&3 zW=c9X*p-FdKX7{Pbe40(YB?K+>k3;Fqz3u5ve0wFun%G~#_eYz3s#xWj%v<4iW=`9#(EhMp}%4>=ysN#HRW^(W)8-2dGA+|Wi4}a$* z7^$RzPiIUx2HDx4Nc}VSQxpx*3X)?@JMLctA*MQDGvHM-qyMxt5U03spn6Ait*==f z3p16~VfLZDYjm8ycT4pZ9Cc13D|EZpg(jKJd{gPqs7TSxFp>R1tQ5A!FQ;(IsX&XP zov&BgS#OjdlYDQ7BeNjjUBeLqqSGQXcxNRoL_*xHa4nX%u zrkG7JZOgwEI}aP8#Ic|Wqswh+p9#h3Q6)oG{6vy7 zj)9WpynStf>=5*96_cVsj7=gv{V8m^o)zz5?p66J3=i%r;Hh}q)H9j)443j^%hWoi z@(t>f->-}JhxC6@U5CEw(u-amQ$JQqD$B@#0nSfL5unz>8vlvm8pmaw12M)TwfN1k zl8+WDpO?t%&HHBS8XPT$+sDnv3lo!h;y+X>li2X-?A7foZ>&~%STfYhXg&5eKchN4 zfj{$Mr%;H zGA=6?$MFd73~dj6L7%k?Kf!`tarAHX?I%9_m$E+J{&O#ap?@pVIk52dX=6XprEWhF zWcGES*l@kF0hL6853h>9S*^K>&0Gf^nku01>kCm?HmbKk$N88=GXqu}__zjT&kDhN#XmsQuUh9YXcBGBNQAJsGbSU4_d>ZO^Rw}+& z_T1YJO}U+LA^I8vW(lR-zrZr8OcJ{zT0+%5p!MOj5T*0(%wW2=w@N@wPT82cK6giM zhJUs^MEm?gu|k}ziUVw7z^|?LIT16!4x*Q9o1C0%#_xU4jqbSXR80!JNG^jeeZp`% zGhd%VZ*<{FFTD)iOKN=XY*15Ckd8Yi^yX~?V5ep50Zw!PIZ-Ce)#?@C*mCaU#`9AQ(zubd!-K|O8 zT3Xkz%?c2a{H`o(7P|#3Z$T=_0U#FMxhS#Afz*pz928dvOw}Wn)*hl|0MF66??!hd zo&exbVi2eqeS`7J>ktg?+5osPT62VaSu=ts9cl8icSqHVcpwR`u-;gza~gznvz-}I z!Il1*;!{t@0ofzPELXjb}@-N98+8Z&vHCP19Cs`WK9X!Mu41!Xbi8GY8 znhhvBVJbJxn64Ms_!Bcu=9?-Rdf%U_?d#>5g{#HgxUtk*4m(~+;Y9)zbx($rZbbb) zQ#>m8Jste5>rDcbv7g?gcD#x@w#ZSb(*!7CboG&aW^ADqxXvnAo2o(!&b(8O`Rr?j zRol+Vla<>^0pZ`|D~AeLMR8ak85wECgds{3;E%)IQFLrPOO!n*|YI!HQQs5g%LZ zltWSq53sTol~M>WrVA+m2vs^(&MMZi1}XSx3O)uL4og#37{tmZ+z9AHG=_2fmXm`x zth5pwX^UVl!*Qq3A3ePJCi|RY)f38@&IL2wp}#oA!Tv^s;3xPe!!zu<=ZG2238QPP z=)k9cKzEl$lO%E=I_xmsY1XnPRdXrh45YCd)=Tjjr_F(H&6;3a^xqH#?#zj2h{!@B zj1oD~S-HKb<|#F#*qcp+7Ga0$nkwO9T2iCyPgeQZgBKzFD}#olGs7GPbFsyC;cvPj zi?7H3q{oY^bV2coWK?Ek-5IG8jIK1%&>0wN5AR`Z4y918!hf5hutN$;vA?;4WuObY z!#AlAUC(S_2Q!ROSpJ37ZB$#6r%l$vl~Y=kGf_`yY03}v%-Bv^iKjJr6~(060ya*V zAj&cIo2XV!u-8~xHyu|C&X(h9nPdnPaTeN~HRnk*Ot(1`(jQ5&dxTe+GV>FM2JL1P z;$botr=gXL96}^T56uAqCq-9P53`hR#1TCz5*7c+fESZC31&hRP1*cOnBD5y2Pw+% zt87^@=nA-D6(5twjJ275!*b`F

)G~1$c9Ujk?*%iYYFS7$Kd72CI=<4{*J>0#tz_J0lIN8X#LToauU zxs?l8hfOb2GK&;wp%W3s z_u!6hq6YIP8i0(i4*Zngi>a5%Gl<}u;VDPgMT5)w;fn{U@USQhsqmTDc7oQ+^R1Q9 z*K!#D4>h;r1NQy*`^Ia!$76}dzE9CEXI|op9$!rhw8LuI?w&(;csvd~%vy?}^*c`x zkZWn(?p1T_wm@j9gb0DE_ONv6%+KRGA7}EQgQuGe!Vl23xgK}`g8e=beA9wEFd&GO znpy>RrB=(7t;2+cqbs>MGtKtE50(i2WPnUw44d20dFU55>9~0dnjpvOm#Wf2glfPJ z*Q4q>x5ep~`_1>NS2~AVUSLd$~!gr5yW%vxfZ6P~f6m zI!hI;%)%+DEjh^v>EL2Cw`DQVDrf&ol5;S;Gg>pG>*o1|b!&N?hZRJBgO_4(G5pN+ zo6=T*eWk#aorm5BRevcPoatUbr zY_29j{b-$&5H-c+75NP|y1dXJN{o-N-yYSaB@;D2b9!?0#nUe2=dViG(2%j3pV7QO zaGK8s&SzJ2X*yLaS2T>B+#FT5z3Jay6ut~?mIsmW0lYv_!Fh%odyvLW0dNcfOCURh zQ!du9rRVCs{_olmZ8-T{7SVFGy4~LCWX7VE_V~Riq7y$fCZ)b<{9_+&{At3c54S{u zv}-fCzqg&69j1qQ@y)ksDvQD;r3ETJddU^gPfoBPY98^fCXu9UlLCE%fdY$;1r4k< z7o##EZ)w^RV}jsCn6W6F;#7b{dVzDnF$S>6$3FSo+^F_4z_I?-CvoGtrkUCI7|cA)oAi+hdF2;qHQ4xK1S@xl)`^=Ysg!~mw0a8x@*R9t$zB3FAEKi;&^S8~fuBO+tNcdZinCh7y)UiBh0 z_~lV4Jt%W-gTfV1VLexwtzz3U4pqK-L1wi0F6GXKt6NvY*mlM4Sn8iCl$r!%WR*$f zYGo7^m5<%0(9w-t;tyYMSA;fg3In3g_w|v1>;0>nb$yqaf$Mot+*jqu^78e-)%o+t z@-I4mK1gD?B0H`Q{y;w$f2hQwx9epPPa1y^;<|_2@3Ekq_Rbaiq3!*B5YJFw!)-%@ zS4l}<#*oOL9IkYtKOGoV{sFF@Z?;b_Z=v7jPela$-R$?KY64q%KVhAY1<+{KUNZU` zv`co*6Q+#tpN&yfHi^}poO_=~7yw1ut8AX#d~ZHpzP5v< zuu-y^Wqpju%e8xx1+vdACUFEYL-^^>dCI|h_L~vpbt1L9jdM9%Vl8rEY=CJzjTm~R z`cijgd7^KqJane zT5(b@Y^CqAM{^TKI(^9l4{RH>=RzQ|J8F((JYj=65buK)#oxq|ky}paj<o5 zmVm6GUsop`YxumLGi#56zyqq7pFNfR*WkRuzN1CG$usg48Dj6>A7Ms_K|7(LRxIYR z@QKy;x3#xq1xg%xgUO~;fLw(p`hk&#;M+S6aE8Irq`-bV6IXHO=_JK4eCq9e zX@+jY`P&@KLmyqKlw@c&I#8wyq2;_`eFjZs4u`WWF7>UP@L`$Yq$_*YfPt2!FLo%| zS299M`JY8)>eQ6KJB}kVQC96h{+9 zQ;CG^X^({B2WxnP!>Jh^`dx5#O7;Vx7wscVs>2VuC*D)hKH(U}5i+aDpL&w%u~h?i zGJw=0({gx|j#mnkX-}~065EunHW13Cx@`FmE* z@cgWljJjDCR}%9n5+nrQEf8H{cTrq-qFECUp-lN`QJJ=rsRL&w6e3<5#K0g?^oGs+ z(@Gl~|16Vkx7@nKs1`3B}{ns})dtTf8`UzbXVIO$!lA22i4Q%MR`%&{>s;7&8OHY+s(tqJWjNrhAbJtqq^ zg+P*Lm2i#a^YV>^LhmO7JB7S^$wwW7ZSFo{7?qMd>ZN?qCzE%s%erPUsLY$fl)rY- zt3;T&(j@QfFQ-G_YSqEsF_a&CcS#8s{*IqY2{Wq}vy1PGl)i^w2NpxZ&l3J5qqqa@ zMIaLiAM{+@D(j;#@)nWlwsB|@+5hB3!RC(pHd5NaIQ$I$JOC4Kz$b~al+zl5}?l!dc%JK-Pae3+H{JHIn>=6-DSnmI+U3(6P1ig+D; zE+g^MM(qYUfvoU676YK!%pawYzJ@OZK=0LlE3zHV=2qv-KKeNuaUvQ#b2}vWFv+Wh z^9!LPU6(#Uv}Z1ZG()dhw7~P0_zVG>j0UpD2O1aEf*Qh+$1)9aWJ$As? zJPkB89lMj-)_-T-MvJ#?^9#fEEw{1L<}I&UIZb83bq+r{;vV7pbRBU<*LDDE3hTMaL)4rxs&}Jkat~Dlg^D55n3R?*{t)MBLnG{agg0J z@rU7RLfsD`eUZxZ^@YlpOaYQ=BPC}`sXTR>TKv-W`*m%JU+`5;1$=KJ^1_>$m{Rn?ZHcQab?v>8cKzK8(B5|W!{EF)^4UF&@6|A z{R$5hs33%&K>LH%8N5`9QDiLaiYU}4Rp_J($b@-xj?OxEol*`+d^EAGGSKL&%$T@kj2Oz7<0e(L@*s%%Sx3$x$lH2Ozvn|`Aj_Tz3nzN$=rgvOx zy8I{gNpc?c610D6o2Z_g06bj@L#;M?Q=EF`Y04^Mq#CapYt1ermz6Q824)sstLuvNAFTOD!ILkb7^FG%ddY2#;3AxF zxPyV)`$T&ln^5p}(VLK{H0wBY93(kW6TNl%v$@g8uTa<{91&ENa!2reBFL6qLuM*m}$)Z3_E*S}3~Z1GYo&=ZQr&zbs-AMF+t=AL`R`#ySWN#v* z)ZY}?xhdYqJJgCXi2c`w;fPxGPoY#-So$%i+tOI&%``E%1m^V}Xf)tiNkSG`y3sV+ zi8`53tv0n{H?H{v8U?P>^{)6T)Zcj;I4NAXsKe8U8)Xf|ne7F22;>lP9F-};_wi;? zskeWG<{=SKAvqXQ0Vs1&hi&2SQo|dmQs&Jd<*|La5AbWh;WLCd=+(o^{L!!-YuO@8 z&4VJ5W0ewbMJ%CH`8}ZUZ=*r~O(EY<1B@AAjdEPjodMNmFJHGMcpk*;g{2VAo{Vlu zDriuk1Ve$CU?x`om(VbPfj=8DP<43=RMHU=fD|j}AJfMN=b<7WJBSqSAG$Fv6CCe9 zZvKntz=bcjj{Qq7Mb#Q~@TpB<1E9=UFin1Uc^)J4oxo4}OD30)krzU7o1Gzc2lIQx zw+Fptu@Li|+!@;2u0uKqs^crSW;Z;h#B}x9$}fU!Sht$zK@*9WMEAw@o|JK_->`-~ zx}q4kg*OQDBsH=z$SX1)f~Tba>p3K?5Tsn6oGv6c1m-)6gaK2Az9|+I-Xafr!TJUJ zB2@xrTxguEw4>U!H9r)_d%Lo$PZkFaZPCMMq08=(R;-P$oP?faR*kzjHyGsZ} z9${#V+X&6>IC_i!#)1dtIK)#a{O?E4!P9hXGZL1M)NE~1#Htf0aY4fqeB495M{{y~ z)OImM*4xs3nA&`iwYaH*`4Aq4(KvVTm@7`%CZa8emK8_kpG&c;tF2k!NP$G>y}@Lv zG2XXC=EIR}lQN4P4U40XG4?UJt}rSM`m4zHeZAKNViR%ghcy&MFjQhQ04Q>(!)YV zM~J!#>w`c@2TO}z{C?x=}Lx$-_W-U(5D?O!L#2eq?+4|_NDv; z3>TY;hu-I}{^Y4|=4IEfRx?b+DlBd^5Nl^l3)ioQHz^ZWFI=^&SqP9p5roWf-x`|r zUjl41$%D!VxTF_RiW3UiHc%~ZjSy}5%#|F}X_wvutj$v_7Qw^&?0eXVDjuZ2^!>G@ z5lcaJnN^fPhJKl(e~;h`QX$!(cpf=F^Yh~IcL@g{ThFl9UEGyop}~z!;HBSqvlU(w zSLbO!{J)KLW01l^srA3kf(=nWQrLv$ov%-veVH4)fX98Ny@s;Mirt(e(Q1KItXEeFEJq(m>qbX&8a#NCX%zX9ZMheg zJM-qi$nhb?xJ`AWAHEgd|1o6HUXpub6Ss{uoZ@!^^MOVV5zBISS=(cWIS7$*5XF*@ zKd2#(^)-wx#X%|ixdCpBJm-gVL7kxA3b7ju6XQGMu{-!~zAFA);a{Hua;jt?;1;$0 zeFbKi6tU=lf-Si)=>_1qI`<>%+X934Oo@ky`F;T@PuH;e0|W$v5$xx390S{*-Fb*Z zq&{ZuAI=--V&+nJlJA9`;aLaozLb5oQ<^c6D+?Z&T0iLwXq!PZmit+;g6MeZ#r#&w znLn^FwdK_OJv3pNaH2NopZ==Pju)_7#{PM)T_j#;$;KKYmL!X0gB4b$DzDUeZ7dgI zzxPeoENg8M@~PvOuzAP}QeWWPIg1k$wxY%CUq3hGpo@F`+vD~VzJNNXUEBOk{y&r1 zSOSeCHz6o?6ktdH`nPO%k}X#aSsG=sR&;TM4c2PtQxt844q zv}Hqio9J%pzH3~|4)51D24qCp3mc^2LrJ2zh^hUO*4NOa2Q@J-?RoP#fnTh>UHqY~ ziOi@Ksf_9zCUucJB=D?&cIL*@H;~tc*Mi5~GeLJoWS}-+a@Qu3aOI~_H^)jy$w`fq z&sb~J!!$|Rs;8;Oavl8{RiJhau=-1f<|=(dF8(@oa*R6qEme`ZPS*#`?NpMPm#Qw0 z6FhFFQ3LK%ystg(a(v_5h>OS<=+~E@pj_@#ixf4dffeFL=}Ll?*?!y0OB2#WQx)kb zNfqRt$?zM^Q=+XDzGg(6$X73`_9pjF2?oi85V_}i!cOfRMbKsvIDg-khPyBia$S?P z&3C}KL)q;a=C1f0yr`t<`&~X=!uKAVSuh8U62{*Qm?p89oQHv-SY)!%IdVzucydn6 zw&K0tsZ|CO_302dOkzCS8yJnjgQ+5T)S6r6+wFA@3g|D02Kq+FwfIpGlD2au+${dZ z!ZZrL5W&i4)Ubrk1;5k86*7ti5;;c3xFWggdYrqm(T3a9A9dsptNqz&-B#ivqR_)l zDBPurIfTOe$YSuHlr?lo|3zyi(tl{23==INM7&cg@E!61!#3in zO5$4WPt3AB1f9`kU`A?i4Qwd@dS|4BVbHk(%{m*6+P&3$h@TF1){&k3*E#?72RK}* zod{nP_;q}T*_=OBgp) zb5$g2)4AT+PW*-@>hn$02|4PK_WYCI=4Xh|i|7+W`MIfynefq-1LrRXR!wcVY-hgRc^ZFFYsng*44@g;Q&kHkTjXMcsIUVaGj{`6Ba+}18FR%Al)2=Kw zZ!&DxCuq~@-cP_w#_lletP0hgE8SM36#3kHUSCt>tSR!HG{?{?DaWx)aS3V5P$j_1 z>1)%)DsVXextdXJ@S)BbzKXEs*Wqibd9lbAzrSoG>&FQ`XWsvP?UFwmCEgU$oP}9i z;;K$3NM>W~f~J7D@t|N4D!e2>r%HqA%sT6fQp<(2nFcLkdD9`)lPib3k zLH5&9dK0q~)(}&L(0^&TdqTP!-tsvuH3SwqUh?t;b!-Sfy5;S&B?r??2nxm!bvg*r z5J_A->TRFaBMcCO=r8#UgU%g0hKx5i$tHO|28QFph~iW!I)BmQdl&6rlDJc6y_lD< zPwz~wA$pksb_QSQl}YKy6XGpZ3B2vC09G8lPe-CVhKMBAqH&AyG|#pAHH5rrk1R&* zU}2(Tuughhxf_@zMcBVt*w!7lT2K#Uh;Hj|_`?#wy4`9mETvQFa zI(m`!c=Q|>(53D3OIvd@$oTy7^0DIZ{N(x8b3X98z_zQj{X~k(`tsa&{o`-$WySkp z2QKWT$m=iQ>AB}j%J=q_y!|Ibpg;@c*=IG6=-=(0?pwA~kM-(R4@I7LL=Zf`su=hZ zLIS4RZ}<-U>qtHt4&PizPY#i4c`R!%wc1G(CNSMvG?yNJxuFGJXUkk-l-7yKTHhDQ zA3g5Ug%+&(a(R8bXj4-N&o_5Z2xq%Yv0ZvP4U9}Bxh9-D^!?>ILkqv|3B+8{LwH2} z4JBEWwXZ(UruoNdwN%~VW?PPi56vS1$a3{%p;!t|JAw+PVPT9xxU!*ROj}5>Qm~Rt z#E$7wK1gjyBZ4i|c^hCMf#~r(qEsflAYF{wLeX(0(OqIONt1Ma@_aK0C|2*=RR3E# zg&-MLQ-2^U1DL)y8|0knQ;ho4??YXvt^qSkscWjt2?&N*av_Q5zY*!CSBzlrmScR9 z)jiPA$&qZ+x2CZ;!Z_C-BsO#;lpo2usY={ zy}T>=1=ER1vWZc2=i6G2lAe)^_e>%Z3yyXm2O`$SSdpho>Rzl}W`09kknHx&27gTA zy_*$XDII5YS{S$=aiY>+WngLc;zp91GC<&WBNr@^Z}Bp~3s)&Okon%bBF&64-B2`R zoETNg=gCkOxEY9IFJv>;AEg$F3DZ~JVeXJy!Rx~5=&pzv9QtUvk0QNHW*y>x>hK~> zvn+}yhkEp&8S+`d6$+ViY%_+sLRXlOMuBg|n;@Y5Mtnf$pM%iAc*9IYS0{*aMK8I{ z+$t3d#DMncpE|<<kOA*^FdzhJ6rO(ok(%b^q@%@ef-0S;$ht1Cfr^>|@o( z-ys#%RmXDOv_J_#UCArak2%NSu#QEJl$G3XB&T8SYOh;9oehuRoP-|8zd`5s`*!a0 zTq*hJ200~$`+rs2Lfk5T%Zg}JyZou+&fz-O@>`tYbs1hUwC|U2)cBrV)2?P3C;T)> zi>wrIb455&95@hfseV1Eqyn^L!B>h=b5jGYx^ipzvqaO6OrHD}RI4$xIYzHgdmN|$ zZ6a?39bN`5R&8=c4FvS;)^n|8;_-0K3wpCW_f1aMZ0u4t`UTEq(Ok;&m23uV94K~i zN6cm09~ZO%j5~9Mzy8kEMohWRt>2|rKKvfSzMT`ugj|`y=R&h(_T4|M7JW-Jt|(7QL}; z+qP}nwr$(CZQHheV>`LAope@DdiCJFUr;rxZ=E`4Zx5hwgGD#%pefKd&|1VTnDJew ze7LOft)H=5mdNee+r8^TE%~599FT>~DgP62dv90gZ%AWtp-s1}2Fws2oH0vfP+Y*5 z*uT<8Z3i2G*Va*n59 zR-9)ByDqZQzD%xaK48>(ExdLVx(bEWJ#@h*B7Zn6g$6O)r_A`8dye}U`c#8XTL%A~ zeN(;fm>}VfJ)8zToAvz^>$M4mEMrT<{p{nfeAK1|8V8dBAos03<$4k^D=vc`y4HeO zAvZEe`WYZ6jQ~|5{~L6Zr?jTTjQ#enwCtz<~vE}-T5WB&qMA4uu02&tj!YApPH2%D3F@;b4Ypykq)+!za!(s zL}DCfaKH?)@l+JuTmEMCq6VMJCgCwbjiKHS{nmDx%o@^3(_L9OGmM~ihPoEY{vxL} z(lM$?g*ShYWhJ6j<=&tA&nksk9d;8t z+WHseprGmI&f|C!bqaI_$(8#8S7s?t$;o~;^v}L4EPxU82F~^UsM<~t@hR{1X)opp zL#gFG&NFtyzBfN>v9FL}6q(T!=o#E00c)Nxu)|uF0z5f}jsaDX2;_P-%XU#`){VeA z0GGbxL#Ni}N4fHu=%Z_kUbkk~#xITUpd=1+651JC;kxQpJ%P(@TB%X@J}FXi{$rVE ziE&HwyDfJy9-nf$G*ZNMvknH6u%a?yK>L!%>$dQwum0r{axvHKV{P}L8T`Ymm{bz7Ds1iqUjs02FX<469^O`D$G)x+Z|4)IJ zdbDaMEtA-=C@YY<4Rc7Odu8^b1_j>v8hQw;Gd_3-!y>I8hp&hGv(rT^cKyp0Hg2oy zk=y%BLIIBPKQ*4uHR~!!N4>+NK0E;(9U)~IIFHO@;)WQS38RP@At3K4Le2PneX~QTfvfC%c?>P>k#f_Q7 zn>sD#cnuW4k+u~iDL@Oqf(mAwg6|?<`*Zn@d31okQsB(JoiJ>>743{>JSV>AY;NV~ zB}Fw|4G}EI-do!iSm10xXfJAfC-OZd_U>0HZRIF{3+7Fil9f~uy9OvZ~ELwHU22MIiptlJTX3yP| zOPz;PE>|342juz@BQO4AB(BnudkUw24)dLFV3x=$xVg&=i|25(C$^ZWQWBcKq} zIF=`ZNfjhZh@T8p&lv}Pbf4f~oeWWletJZ&NBjud?Nq)k>IVQpj0ME?P1XHxsjq(* z58yB7_f%f|{bikTK~w`hYP`mt3RJgcfEvwNB}kuTw1^QkVV7ELBHiAd!#by0>;(vn zG>5&fNr4Vjns);^bk%G38Y;EMT|wMC>v~^p@$m1Awo+VT=H$Z0|3yn+zVB$0Bv9OM zA=vEAt7X}? zg4OMi690bl3*-ZKb_=+3Q-S%qB4Ji36uvob|0Div8R%n$Flb`%%X`efECILd$V1gj ztFaC`oQ~E_y!AM|CoB2{EkVt%0`~I1FNIGKR3Z-p@usch1m5~TP;^CI&Qn6Gnm5VR zX+4CMaZA@eE|o)@c`QsUHL~gbdJD_{sA(z9pI#D-%KeWk!n4ZbdCK(zKtgBV&~W9s zXxT)f@MA@3*t``gVL*lGNaCOQ|Kz@2usDn+nZ!NmHebu`bo2DJb8>fWu<7W&>BNn{ z1RFzy{_K9E#`WvP{&+b1dipl#i7g`DU#UvLVLlgqkkQYun9r@iEWOsXmMIGOr-z_Y2h`=YzAUULO9QiCDrz+N-ah(Ky^9!97 zO-b>%PNc>f;P}Es^7K}%RU1xGW~*{!sj#&z&op;tj99oZL8Yp&SD7|Z%2s)3%nVuf zRui&Tkb1zY+~PTiMp>#V_jy;=`n@TOJhVri>{mygJdk9=NMnqX03UU*2c!##?qcdJ z+D?VnKvvp=6ELs(d$k2GfqIh1$m1Z3a9Gs)k3c72!9pHv1&JU7ad8a3qH4I$94@aH zK?975MKumzaYHX=`ER8R!{Q-Uvc^TBh%BN}2hPi#O(X3G5DhK~1dE`58IT6@#`n#z z=ay@Z-3gPwFkV+C8#u?FE4>17k3WjN0(p-=&fT8UorMmk=q*X)(#$hdWbdzo&T(=8 zY>hQV?3V=#K!_q#u86KZ2g`)J$r>7Wh}WU(Z$)58q2&WY*+Rn=2d@d9tQ)!y+CT0CHj>kHf*dnLOX))_F^j~ zCnVxGfrIJlcNke03-23`AWT{B_5=hB5oO4{S{daz%Dc_R2w>Sli_;E_tr3HHo)WAZ1|$zMXJ|84Tw6DaDxu6%@hK+2J^nvD-Zt#%$P=Q78~XlXFS4(51And}lVI(!Tb5X$XzOfA6>UKzN{Ic|uq5OIX$m$Qtb z4^G4>6ThUUD?e~WkX?_)Fs{#`l8i}iG6#ssH8I>+g`}UyD?|=4HkCJ?5S;#q zH{}qeENy5_7bD(A@L`TpTGwmRUtc+IG|Trl`-F9;YR!gyv9sp5X7ROQCO^*01T#V> z0r(D80(F;<*F3_OlMoV8PQ}=oL*7nF;17fg2`7gX<_G_@30q=M`0L7Q>ohRyok`-fqB%39j#2286~D{&AGu+xp3~MFgL%apD2$nHqxw&;YW~B#0)kk zzqK1T37)ibBQw?ewG43Qv}v;^g)LFrJ*0CBV9pII{?f$a?Xp}r-9zi7Ap^^8wA;qn zsBp$42vZG3L?$5p&H{C%QkOT^MwhjPYZQzbNUf4t?;u?$DMg_<>1hk&oC&=NLVgUv z9yp*JuN`$aBZm7erO@2-{}e*h(4#k`D3J}~X`AdxBL*wok1d@O>AMTpS^N_GtdMyn znG^K^nH5vVj8BUfn&r0nZRpzOXI3qenj$0)8+jN&HwlU1u2UMBrz~pa1#OExReN$| zi*K~ZYYx)XNIK@<$IEP$fI zv$8cptFBuIJ*C1mtt8V)B>1UI3(so&uY-S{!sLI1*#1f#kuNu1St}rpS<5e@FI51F z4iHBc#R}B)#27C`dw->{FQeN;wtoHdjI$((xhjui&*?m-h%uTa-+V4E<+5CL3>BVQ z)(U9W)Df>*R{l9Md|7RJ>WomY$_{VY07#E$*AnPwv%?H2?8_WAxKeO#R?P7H@c+xc znxF4cC@^uN^sla{(Q$=tv%TQKd3Z4TCPOeL%Gib~^fP^4Tey*i7@XgKPUqG+RV=@c zW%4|Fh>5!plQ_x(p5PnezcBXR=?w&C=Tbk*X5wnoXVI`LMfvCt_APTs0uRme{};0N zz>PIlS?fCc2PAE$)Ri5o$(TWD3t}#oVug54MqaX?sWO3Zbp?~!!Vv$A`R<$}Ca>FL zmKs@Kf>`i?!u(aD=d&34bg2ZsMMhi+As3G{+Q$V2x2!BALG)9A&i(Gt$Ub+14pk3-wk{~6A{mPx~$JEB!6HUBeV zw#X)^OlY7e6Vp2z|0ZjIGlVWggIAV$nmD_TT}=!C;8|bP4i}NX8-FoLyClj&_Ecng z`-Hd)QC=Eih8{d>3S^h&>$YhsLeX!6%%4jLm!1W6h!MC6WUC@$7@aXV{_1)0E zmOdBBXj!H#H}{680&F*i0^HU=VV5gY0)`7^{)Ua8R$2D=-Fky-9MXbBnxFh1Vb2${ z7>PX`vyxZFydzUiBk~Cx&n767KOc~qiWo;>QLsA9X){z@>2||X3K?0Z6@4z9Jv9)? z4SJB0fQ|to(T#yEHN9wHzwWg+8G($SW{gX_ES#4t)A;zQ+CeR5A{J_du|Ga$j7p}J zkX*2n@Ls#OFqMO#rASSs+I;Z%!*OIJ49XXV=^o3n!&SjBU(cQOMlAQRYC|wI=tt$2eY?4x(^R#6$PFHGz$)@`TNJhCq+MA52J*oRZBF>Xr8j)C^=CA$W4awYn-?bM5VlcbbOefwA=cBkWqq-n@6o z+APAlEYV2AV2B7J$|&BAShl@U%f5}U=W zF}H>rVOS~`vOO~vf<5;gp?pH_U&#ww(#wvFqPg|tr8CtfiB+oo0`rr-KnqkgY#@-0 zdG$q9p*0iARP1r>d8UHxuM@fE^^*UKy+gJ zom)P)jJbXmMF?}^NPgaI_`ujJUcU#8RlXF3@EqDm=d-=*`PN#2ieQu{A%mU4RG-(AdyW$_eizbb5&hlI;%32#l+u<2cgA^6Ui;+aZClk?COQa^k@Lj z6ebX-ukbb?F7!l_SW%D8f{q>)6&U33nzZ^70;c#=a+$3~rYM_^AFf@&h#xjgA+nAI z|6;$|kl5m(jKEVyrD1m%KFn{}(h0KQz#H!emK&FG#a zcaQx5_oU_o$|BTdZy#haVSq zws`CXEmL=twz$BhwDCjx)MPUp%c|u~6Z-|~bz!7P#LX^UsLFkUdHiF}=t|4U^k_S` zB8r|8z$eINg1$KK`M};B*~aeX@62_+t|`2HQ%rS|$~V#%`F z!mhQ7w>B_GRU~ypk)#DzWgtMgz(i%>#AZTTHDtovRB_-?^7!Zi@V9KKiO2!P_mXbJ zaN{Jwtho13rAMxeeoXaiK!YF#pfmU>2NmL!$~t)jAFXA%q;r zeJ*9nl{gbEP7v~%+3$~iniGI-FG@X96o^~?T2lvPlIq{}s_t}U@pKijU0M-jt`Hug z(x;GOCa-a#i9DpBIy;=&D`Yzsz`qqk#uDhDUV%6IDJphT<<;nc2!aZBHsukM_+bN) zF*EgX4@KDONZB_OTVIqM<5xJGe9CJ9^%07U6V-d&4U=Z>81}#F7Rt5wi{y`~k^xFG zhvbG9APt(7;gDJ~_t2g8&<%D}qd;-WjYSZ&t&#JvjerK2Gg34YSY-&}&9zGU`h_4s z@I#X5&}v(y?UCx}L;C(pKv9+SbCHIa!yY88s^a0S33uKgn2C_nG#a`g1K521WU2|` zAbo$(28ks`$acu7%9g=tc<#yyW5HO(|8Z3zNHuOsmd8`U52y+_VpT^%>ITgf=?7P$ zh&rXtY0EQZMJc-VQ4P-55Wwcd^5xgXjy@lU+O8waYQk))Cq-EVO)0G>;2PVmuiGyx z<_10sKou*XtYU^uTL{EdeE4&*!Cw2`8#o2>=n0lFD{mfKhetLf zw>y6A_MuSqnsC7=kTT&Ii|y}9!OK;4F5g^nf#Sw(=<7dt+K1WxkhkZtJT?IKq1%Q6 zc4apbH_$@3YP@)X*3u9GplU1LQsDx#)bYz-``Y_y!*%BMXx)ZBY0V03?&5U6+MfO{ zFaGFm^Ot~WBZl+tqjYh}(u{6`3v$=MpidXksN-gCI(N+s8IShReNeJ>5jdqClF7B} zIjsEpq=;0t?KZ(dGp!A|s24AglM#Eh{GE^r4Cb6rM?qG{18}-XdOG@Zw*#3b$rh#f zd9{)wkBHL8z+-(#M&1eAsudDr+L^eCitz7aS5tZkbcS%a34u)`)XAawUn|Qqf^Wq& zfqQ0@I6xjHJ-#UFm|=>E{28(Th`S>e4$cGm23R7;>fc49kZ=@j19Q~fk&df5^Zz2@ zzI}tU5QLFgX^Dx*Dsp1f5&n@AZM_6R>CpS41z6msTNspv$V&Am1YVAGE19560804pPs(!BL&aqp^JyRYg_QlMn4?;p5FtOu;T~ zbudn2*pbttnX9rAUNmB0iT<9599(yQ>7gg_CrB|vYy zI%^x-G+}Mffnxf}N^?<=9u1yWH(0RE-sIQr?xgtljMCR@#@Q68rHr-4nj0WuobhQ|7Pl(C5*cd$T(oQf)C+g2b$+gevXXXn~6}-%C3jK2|ki)Rq z!?92eD37&NNwaHONH84VR&Z+b;pmpO@+EA183OPNsuQSCed!vV$)6!o3VHw^?x751 zuU|D~yIv0idD%^an_4EJPdUix&P?K|d36z`+u8O5u>e6hewKL|s0)!}83J_7|kX#i(8;@@-JQStQToU}B0T-L#-4p^)l0t=Jla$)*5pdh=8Qf&?Wu^Amk> zC(J}3RtUX;7J&@CeIkVw^l*uBiL**_r2Dz6oVW#k%|WJ*WJE}c*&*;ik5m$%6s3Y; zAi&&xW}%+cISinl%rXsxqv$yqR>0wiW8YY|_GzsGSsueEE5l z^k>1C33vJ}mmB@D^DAn<-7PO3wK>^yZ1}kYU^CRa5qM`%Uva6597IURGBBtlcj}H>1X|RC@eJ4o-1K#$&uCSJ#!MOTpQv+pJBe$Uw_5t#SkonsZk2|>%-Kc50uJMD zQWSE(GR+|Ohv8QxM`Ep}+d0K;Im{ceL#foFB3>b>O`5eO zsm0_QV8o(sGZ!>?NLm=&G%}B)!k3lmH5Q(4+;374>Ig75Ty7Z@02Fh zawMCV#E6ut8R`S$kf)7u#D;B7{McH>P950Il*}|U-x5j;2^!CGbFkZP`5Nzd^wW~C z{`#Gh7TrLcL{h6xf1r+gsSU1=c0Pr)h}P0#Sw*(8&u8A2aM($!?&ds#{SBNH0>GF-G;J#@{N$PQA^m>YxTN zk|uiW>O8AnBNW2V00fiYb2-1;kW{}MEL08wXhf;r{~*4ctlMB|^_~5=A;VwJ`>PXD zaL^csi@}tTH<*Ye(vT1n1qdeuf&f6vHZ{eE}t zNKgX=pRQ`RKUrOLZhh;IT4o*_K+``CUO*Y9;yz9M6bS*?zpdYQ1N!DPYhr8#H%CC* zO&m9J`&ManQM_!s)-JB!`ibkpSLb{N3~L8PsmNqvM2$`mBOrP(v3zUk0nJP*o>+8+ zq(Z#=HS>I=vET-V-}Y{N%#D#-+;Cv6%wIe`wq13|{pOuPGWQz#MsK#PPJ1KUYO4_C z$x4lD%iFg;`1f9)LYp5?ON>AA6#T?VFyFv_gcO`Vg#X%!e)V8*H}2;wU83~Ve|Mjw zj)3vhGyQ8d`^#1I>ipr&TV%4(`DFT+rphppPuEXF33$5+wXXkbni4?CZvKkr8M8E; zB7c@3!zfF?H-Lz$`>DrMqZ5*w^#ndv2<9Iqf5(d4ta8aziPE zG)WOOcGK{#SKlFVEtRmXY2;L8dl?m%wUyTXLX;)rZkoP(3+5p#-Jcky8SmXwePf$2 z)_aKbLv~KQ#w)}VPp2Y0*(OPrft0`?6bpZacjh9S&F9Njvo4pNKyWSi3RH0r6y2K_ zw?EatD)GX?;&m_Y9c%hbrm#*Ma9}=enY3(x)VVHd6ACfo&R~RVBZ!+DZN&a{kZc+V zvs%6@p~@iGMX@3G z-J@@(m6*pYP@5ddsVnbyd}`$_T14w93xEAH#AaTUZXsLu zm^h+-C~HBadb)i8Po;XiEb$5wfoiBUg203&%r}L=4UcU$9nD1*0TGw zl0&&be}3c*a0Uf_8W0Gj3DkKZza~MZ{p3fw`TsG6kXXOhBc&bjdIYiSdeH8*M;~MQ z97tbxnR|;hO?BZjv^Uus!3zXpOmy)1IKpD^3VmIyCLG=KDhW248RQ0%!m8e8sPn!? zC4FGX2;SlEP31yhLx1w{B+7~I+)~!#=V4U;m~rDVFVl2A#j^j8ZJvM+V=5kN?D)@1!@v4OsaS z#oq54=dM~$RheHC+ylV#9 z4&I-YU%1QuWJJ;+yNcMF-i_B_;}#)wWsn9rgW6)y?mYo*#nuwKx>0DW_k#%YA4e+r z&z%N^N4Va;6g@H^Y=P+;+3UeFd*j5Ew`=j=dPRSjMhgFMf#_B6sSGK@LCucyqF0XH zDS@>MdINo652PHu#rkD(%-Am7*etWL_Ib6aQGI{cx%Nq9ZtpZNZ|v?2=H)q$)4jg% zgJB=+#zL~2@9)~++!B5B^!JV3zMPT0dQm%VTiE=xhwyO%d!G%&!Fo&x>AEV9zigu4 z4@sfi55aK@kF0-#DD`mjrV{Wq(;t=P`Nk9Qeckf}W1q3(;FdikL3^zKPAKWLYSK85 z%%ImTD&o^>e3wXm^z(Rk_iOwjG+K1O$(uHKIfLV`h;+0s!r5d(upc0?-84Ck!@@4H zg)o{D_+;{<{anL)EV_==7~&U;{4sO#?rwO$c?SE~0l~P~>%sW;cJp4RdT|?ta2Esm z)OS@cz{Bp&%)B{9(~Ry2t=2bAYPLB-1$DoJVZQFlj9x#OocEsRYKT6)qIK-^IYZdo zKi1BYR{&fgiPtQyE+5Y42Po{L>2}-ftNX(G`0jB(707-f!mx3NsP_&#zL>hb=MH`0 zT(;iM$+A88z6wv~3F5qh^SJm9qiR>CR4=@E5qt*+PMZu*(Zllkx`)$l2=*7`JjMO? zg*+ec!M}ay^zvQD#KyeM+xANy68pS=dNAK^{08F>W$iq@r=2)>c>^utTlD|>Z4=Ds zu4!l6rBtY9m`E*IVD>w|yM!6j@aD*d!Oshqxyhisqt3|!iw^Vrk|hN!fZ0^S=OpCT ztOVpfnVnvBDF8qNuv_-u|FP=OKEgG^yD}eh3(seT31CA#hk|lM((V9D(1+Fr%?2vZ%PjFfhmV8#x_fne z#$f%?F$vfkh5)4Po6yKyxD_332OwluTdWGQAf}fah)76w;Mcnwdnub*&LPFbT!Tl> z=cLPaDO;>W3J=b*0E|S!zl8~LGwhO+HAob;qswpG$>dpNpoM}PfH&H^d1nvf=iolB zes3lHCelu(SG#K_#r+6Q*fW!X=C%09G;mbzz@fUy?oX+xkE8sTp!Y(F^kzk^o5*V} zNU4?uqb(I9dI$~B6V#w}XWyW7*MTqsBP5>dG7S*GTHVE)$@G(1~;*ZmjevXrJtr} z-T8vmgGM*R4-VJ;^Tz#5#UwCn$LYA>#d|`CE)@Kxn^VE+ggdWKbwc;SILS>0Q&lXR>c?JT+VVyDn*d3l9WlFR z8Rv;@=N3QboTWUHjsjlm)C1tR_}9WE&zVvw*;|w)Z{ynL!lMvxar&X8;d1q&g;ymG zFd!W5?s`bMjk)Y+QKN^qPhyH~E!~XMdP&K9@swiz_l)H)pCZp^QP-20vu&six(O1N zmsu^@=B>d*jxsA~iQ`D09jJ?$MB>Y+J6o@w)45+eNcC>2@%ZO83CU?PakU(1E1QZf!;>;G~WU;`XHv1 z0gIFDBiWJ?b}toioh^x1GKW(48N2jQD68UitgYKauMjTVg?#|%tFO#i?eze&!c*h6 zbKIa_LZTHtd(XO&aQo@BBY(?{4FJqOe$c*qJhx1aG{I&F90sh8pI9gUqEZH;muUK{ z`mQK2xrZ*(KH}Bs{97>DO{MH7z-x#4#EovrEc@YZ$MLr%3?u8Vl z7in-DyY71#rv(*Fza}>G=Mjm96@mk}DsCRvUis%T{EtxYsl?BuGhe6R2SJJ^3i?&S zh{g6Wp=9z(42o2vrn$JcsFY(BZme2ePKLuO(*;kI?!h|geB(V%yK{(?e_WgO!`2^A zT+i3!GuXXDzQ(GYji${660mAZf_ND_X<`b9oCYU1AsRpuy1Oqd3m4bE;+T!O-@=zW zWDstyEsjuELWsxGxCc4JdO%F@T+E{&jQN$-{TP}Tb2&hgwHO8%=f+2Q!Q67=b<)YN zT^qF}(n|2=P#)CnR9~q?fUP{|`iz!ut?8e0cJKCH3UpblZ|y;V^c0{XA+*WZ4jk3V zB?Zo`zKVowwJ~<#S@OKq#i4nMz~9LCG&F-JjsxWT`flQAhJb^aY(iD9BoX4eC>Tdf1jBwrYxKBIw3fl;27r7EV13~8AnabT% zc}ospETS(VgF6iB2t8XB-QTZ0-aImEbN6pP&99E=U~ov7mY+o^} z3TPhiF$96IdzzqI0lO$L*Kb_hcl6P2^f(S*!BJiKNGgg3ALbny53rED!t7*zUG7jg z-?UPAgxE<)ndB2)o~)fdcqf5(zOrJ1CEq%!v%*giEhqh>%7Q_d-aroo-#))Tllh(}P?A%WTq|wz9Vcmvz$Txv7wCfS z5O$x;1_)G_Fs}XvQ>getKOm;SIq|BH38XF=83c#Yl?@VMgVXQk!I)(}|+oPq!A zKoqblh#KR4Lwd=x=JtU{Pri%=I)^X;w85%->=|-qM={h;uI$#g7)2oqelCTTR}~w) zuaT>D`?S?#1gmo$55sY6G}_7aFx8|rq*`$_&pEwxcl&T)%XH2gyq6`TNwcx_;o@h)A;BagJoBx z2PPww|L7$1O(&+P9d<0|1wtBkKV^-{*OMa;f29X%G&i7Cwobi6SX-+y78>j>|A#XW5Ylar-m;W80%=OuoX7?`R<^xlh(3GA}`|RQ?Qn!pNEabCmS2I^m4L~n- zS3u;__P~2hZu@Y35w>{AhDD&&hUH(tTsQVSKRb2x>mI0UCqI#&_{ShK)$)c^N?o?*`m)omURA{S?!=b#3Pl1GEZ$g4ct;nF#%FVE z=U~BC6AgxUc_i&SP54hBMAahi&C|)`n3siokWf(KMG!N8>Z*B=-+@-bcrCxvS{tHR zNmB66ZxWUfkFQ;>?>3EV*lvi8DFXBG*;iCd;FjTQn#}xt+E*eIZuSN_c^OM+JYh3(V>e*txpwqN^Y4gmQ^9gO@ztj1c4fDh8hk!4 z?7viTr4r4?@qonr7GeTLIN0XUMl*2h*6R3|-&IMicAd zBvVbnT0$HadLUUy-*XV}6(Z)qIhar0pY$dmY&Aj}$}CtQPLQ&8TXJ2!6OrZxxz+yL zmbY?;Avr>(TfN(s4A3r$-%(kuXK_pbO_$jNpiP7f1Q8?i?jpu#huSm$D}iW72cm$#0R~>8d8a9r#L#o7yn>GuPiiy zUj!epRIJN`1Idyjcc&#$y+D@ z*#`HpMu~K6B%FnC(7UT}eD)Er!EKG{^S^hl9^U*@>oHzDXKOAJ!|O$}OJ4x;B{&z~ z%}10ME;A-WeJX-ems2cHEUC{+mv-noMEgBb9sSKM+7=kWkIe6fCbxQ#{T-GUC-n#8 zD5xAKQAv}Ua(BN_db>_;0*JG{&x&3V=xuVYcVjnqwV(c8bbJozxKm$p+H~`A{ma(F z?&Z1J%Ele2aM=;?U-VwuZ4%J0U?WHWIZ*l|o><+OFc`Y`fCu)bP@mLRH55<3x)&zZ zy6pEC3hx~%zPk@3FA%DrtFGaU*HO#hZ|mskzL@+WV=T;o(Cx|1^W4j>_SWwcy0-Xu zx^4|6VfAkGw70U|V!2LpnucQCM5THN1<<#Be4F~7I`jvz=>qX@bBnN@lH6 z>P4tU1&AXtIuij?ibobx9FBwaq+|h+lFwMu>;P2&UlDggC1}6%2(;nJ1j`xdjc8nhiT)&bA14T7 zIf8n3DK{v4iwh-#Xqy8^EH@6bKzY>uF;yXyiqJs5pl0dfvTgFL~9&4PlX7tFetxR|2_qTdK~_X z);Vicb&pI$huUV@62TyFS-r=|Q+19TysZ%^0**45n==v1e^oSZwQr*rB2-vjMH^>jkyj5w7+VcmECnrn-<5? zZjxIx(rtWz$OC~&4qrR=Kx}vZ;@gNX$@}m!i|M`rM29)&l{WopY4DJ^l_X;612VG> z>XN>={UzzLGN<7vXX;}fYp96+l!6^hhM0tX7?TrhJ}HhQQ~Rpi@o$2cU3(i$GQIZM zgrtexx?JS2ZG4a&UVtkw+cLxT=pIX!>);{&xO_eL4CZz_6ULrLtImR}Rmb_qmegmJ zR~V%5ENX#8xqih%B9n?17?6$qDXYi6SH^Wx_jv!K5yBANdjk>gh%Q_|QGLJurhm}i}%;&sBR%h4a1x^j_4!eWoq-A0x(GEEH<;| z6%^i2whz^L&-LB=G*ovYBqtS6=2{*5b-{KJ!+`lK;p{xJ;gqfRmvt@)OaS>gY}zWo z*ms?diT!N2uh_A%ESQ}<^ltaC`)s>KUAwjPT8&nIZCr(XXpPB_rxo^qF!Zky;y7z< zRvkW~v1w{sfJ(m@Z3lUU8DK1W-yMh~`EQJUYM~F!sP&j?oqrNoJ?)IcMA%JRqnx!0 z_!eDz+_ib_cmyfOMR};yh2s@^V-Bwf#ES`4IjnRrt9_IK2DsG}MDpqQ@|BfH+~O;Qvot;f&0+R_qGPKEmdfy3|43of zDF(uiVruNov5b?4jWrY#MzCa`Q2W#mFW5lLAVDQd*1ytw))Rx*pp=#?TR23kLm_KZ z+xFNj5I666x0!>I6aln_)S}REM(x32J0ReO=1Tz`b+7>XX%>KNkfv@BjU{Vn>)XUA zrD~QdnB84Z1Wc|nhmEX@bfA!==9lbiBr5q68}IK7E=~ikAn$=`;OoQ`1)!9j4}0dX z2nCltFqf_Xxwr3O>^J>Z-@?f36ZLtx?`D;Oi&KCBs{!G@gJ;pP-w5IGh4)m9gX+%5 zCB=xK{KJEH3PunRs3D^D3A{-UkVh=wPgF@d$`x$)eNYf8sfDMZ4f|c^ES@3wcM{Z_ zi2EiKnX^V9IH{ltv+wT`kTX*h(66Ecix4<)2E4BWG!NX5M(_PojUD<-IX+F9oA(w? z9YhGBx`nm&WakdpqAW-)WT^6Bsnf^x0W2E!ay9p;M*+nJ27vS{MjFYa+OHZ*{}`JV ztR#TIv!WhgtA9?ufZKP!g2Z3!!?~SU1c*^Y+93XukJJn<0o~DFOaQUX4@;BJve znLLQc)DM7df-g6C&EXmL>@M1hbX0b4EW{4y>W9csgsQhRK;8cZ%8GZ)L;*;f7j@)F#p4V zH)3opWAaEbng$~I5Bq75dPhP6vOU;H%W3e^wCU{WM5Im)75r5`ddZuUd^lEzdy$y> z`}!$Y>%@hF00Ckmm^*<1zT7I@!$9dV+DcP$mkQ+3Z-A{bkd&Jo0_wNWV1O5Cu59cK zy#)|Fjj$0;K1fZm5-bB+MhRLABw+gG-=E1&xVf%^~W6L7cIW< zI=^MbuI^Zh* z??RauxkjT6P0|Dte6^0Sh-EkKozci5O=DsW#3fH4Ir^3j02`@EAqY52E(UcJBr$5oBaaqO-K944FgX2 z>`xKv72v!W6niqfsQOC9Ds~0+wkv?{j;9RzZ(`hGZ%#d)E}gQzyp!)4hf>^IK6phW z{a}&PI>uHA=#v1cg&tqv<4{2rWT}2cEEeBu0)dcSCG-H!sXJ6UuXbc>$LOcC^O&VH zh?!`gGN5m=xc1M^bEZNHbr7HY-X&jtBYRNQ%#j6{NNtCsBeCCB!7EhK`IY$sREy|) zg_^~y4FZ#0k6{9lA+M!ti<5Niy?Z7{U3Hz*zG%j0raVq9Q_BAr+~fF=cH~Hf&PuZP zCp{u{%*3TK0#4F|V~?ta{=)N#rqn`vh3pub>M5h$`uRdb;#o;W#PaRAXE8*@QoK&} zeVCD`f5EixR_|(iP+~YlVEO6!;y7z{xYPGxqq{t)l7Kx0r4IvB2zX28vwU*;%p)XMhlz|#>Hs)({mQ!2A}qhF#L29@g4V~92)*jW62`DFb^g2Qx$ z!f>eUT%cH%aWtn(}#@{?WONB~DB}EOZ=X!tP`?y!3OxLe~fF*tFFV) zw)cQ@PhP(iF}}=th}(M9@PxuJSrh zf9AGTZA`&ju$on}Iig{CssPuW9vv7DCdA^r^-WFI))qx8{H2;J@d8p3oisp^t3O43 zsqYNW-}5)Nsnw>&NK3_SsHuNf*FMMQEOwJ}%x#Ivdzxgu+gDGxc~`8PJAIbEUmO;n zt0z!nSI?e4x6Rrq0JmS>9tJL6aalkA4)vy-wseai${5QlHF;L(a=SpK{_0|^{|^9A zK(D`E6Z^%=*e|NFxer5gVCcgHKt;Fo6=MZwd~PVG_DZAB?@X;#?(=ZfQDhFqH#%ID zxCy`?X-Gqz1(W;ytA%~()H68t7qDr4Sw}lXiLRy&^3@FORgID#Uo5I2lP^^Y4p%ZS zyD+;XTYc4CO>0wtLv+}I=iisk7Cv$F29yHXb=&D)GOO2Pef_QNcxJ?%(rrUTa3qdK z9Q?J5soYKHucEtEUz@y*vAH3`%;$Rcgwr8a(rAtRomH3ep}$f!T6gSBYggL6-r~(x z+X3`?U8R#=@#p^K437M6w3e-9|Gl-f1v)0r?S-TE3-$orUa#2eJ7|2;hMTP0?pmP3 zk~mh~?fz}`!3%1_Lwda({#NhxlD4~PXwJO)uKS(8)o)8zx8H5`+u!ZkRo$L!3f>&Q zti!Zc0l%WtztQVG);H{W@})Sh?0QnS_r7Es@U<+KzgK#^wpK&vx&4J?0CV=O2?x^{ zO?E}nE!;c%XmC*JD%$uJwuXw~z=GllGiV3Ng=J;Az$vXRVgs(7D?SYt$_2H-nB;(? zg-|dG{QSHzNhgj=&N=iFb8RVw&e(G9&Rc@Uj_s2<|C>40{ngXZK5i4MJVMkX|iy?90@cM~t45qoks*^;N7?M-K75`#wyI%D2&MkY_}E={}; zBH|WoM}){5Q#%p7+fjhuY!ic#*2 zcJr~nt)o!qN@;#yS=x-6d5q4?CoRnPDsjNrR2_)+Zd%; zCm7y2hg4|mQ4Qx)%!y7NQY05-et`=ASFwQ4m-2F**CfUPip6QMjL%F$l)6iqine`C9> zSaHr*Mrs)(YGRJF_PbGQj)`3h9wxiCt3zL5Xv`{sdl)#b2HF_-&or$Dzrf&Uvz?!I zO&<)Aa|I?Hhl*IfrczUhyNy9vziYs1?1SqV>&m^R-F?>gui&pz>!E5q)x6nf?p&v4 zAVIeF86;;(-`{8OQ@Z4uiajX>TjzWdBzrcA{VRWOW8;deQ<29Ksp*Z zR}Fqc0eZwyZZSREb(ebA_^KUfZrP|_cBS2j*bUn?I^+r!#~22Srgm?i&kt$&e11(E z`CT+(j$7VBPhNAc5zam%EOF7WVxN`I=k|@=;DAXEOX}NhdF%EKH}pJLndwz|TkZ;d zf`#cyuBn(?14JnBZJW} zXK6_Bdo*%3Vt5i=xvTmlhc&{7MUKc~HA;6EgJ3Xm5u&qal{e;Ft2vcAq;82$pB!!c zqCc0I(^9=}UqLw6zwmABLVNF4o^he?T){e4+sh%K$K6G7n9&3*X659qYM~uca^;dk zD#u|`83$2=EKM1-#}6H`Pvk5Z-uvCk*M14Q77WhvN~17tS3hd^Czt?|FQkw;!Wim) zVCkeG8^lS4rEyfl7COQZ0hSLR9?0vOn)TtmHHK51L)wt*<(j%4EG*H}{FG3=3_WOkRr}yR0Mi;u>{ zDsOIrFua%!n8U2ty{5IAv(JRa?yWi?U~4aLMZKX)`^+s_3e0akSAiHB z;uNj4&uxfJtVA`e==0)!wy-!zg)kVKgn{(bbY)D+EAMKxr>1)&<(cr)bhY58X|@>0 z<8e04NQY}8warLp07GfgFmUj}Oc~>hUg7cS2(neX@KyI}t;eTBYPx(nq-%UWT}hSh ztBTL3Lt1tEbY7_``h0?_EW3Q-ZGbg9hVfqX`D8d&yQ<6qj*R47HCW2gk{q`VsT$zC z9r{33&yfB(SERBxU)5??Ji#GVn$j>muMNDAQW=LgdtH#9|J?&#C4ysY_WDK7>9yMh zn9^)Z9?m9WZ#4A{Bc?z{LDPU_!lPgg+IrX2Z|zn_6MABPP3!)))R0O1Yl^@rS>j_K zkpRGXkwDzd5_vAPb`|%Pfvq|=D@%~j+F;C`2dwUA$u6RHmHfrPU1<>}@N8U?CDm{8 zOPw(d9^(>x>$duEE9muLFJay7ejBoe_qrGt4sYe)N4L%r*K;5WrsjD-296EAUaw2S z%nDfPsvfy@kf?KS#r%N1NI=W^pecON1WR{YIL7GrdXJknScBWjRR#~5QK;IW*9+^w zor7PuZIeHJ+u3RZe6;{9;W`f}hbf$D0#L$`NjWt3R=wZmIk`62CUbC<0RUJ7M8pmC z?Tuo?FE)I?_^$ZQFKR`tR@D5W*V}}D@KA?;enE<@V#_a@e$gzvVz+qps(AIvFW~>e z_x%F?FZTBK;E!M6&t3ul7rh=-t1A@HoTAtJ8~#Dw1^mMYc>XUNK!TSkwC3N>Hjs_h zZ0Z@w^>Fd7io6y740iQq1CSPp{0s*0jZH9Bj+`nGF6YM_Ql)cdGL;Q$JLeh?X`K0d zs%`jwt5(}*RiK`-Bv-C!>1_9Uyhq zAMp1wK#t5f{CfB1WGeSPhEt`M<)Yy9RH@ljm8tDZYH zK$->8OI)5J3ZV4mjW}ss^$vZ4Fm$qNlcoZ2>AvVYVetuUfr~gUSdkZ~zoH{-2@D7$ z5CZ@yqNxs?<&NV$b>=j?79>XWjf6D2jefi9_1jLj(FcZV*8+=c+nv8GkrA}d5X*W% z9lP1IiT&Jm$!Gp*c&Ts^?F(SPd5j0WPO5y=8Lcj;gEjH~tVSENHSsR!GPv>rR=EOQ zUyZlk9Y+t-r~YQMvd;b;y!T6l{6?T<6ZBM;JY1;a*_wD~3-L6xv5jX#zG>GN;vjGG zn)y|3-TdYT0Tpg;xPA4af{k}h$)XU=yQJjc^lbn9Ptz-@H)ac==N;&B!Cm(Tl&nJP z@jjCkNIl+rh;8P6Kn$k3_b2I`9o<~)zv33&DGoUqYEBo$jFk? z6WHz>X8zs?UQKiX?}id#{O3JVq7A3Ln2{B77np=buo3@^l?L?T^F)xnR|4VhiXX9C z+emmdIJIBxHkJ5SrV=Z8%Z9An>0j&K#4C`8x48hm9~P*!@t zFsyWqmUd)I5#6*A<@gIsPfjtom{`2{{KBNZ8TtGp#}7HCDB2g#SU;#gO~Pd(UHod* zP-h=3pulJ&pH4uHoQB-61T(YUUD@j*d))*0YFz6+>gn*+&e&EYdgAj`oO!$frH$ld zlWb0dtGucyD!w%g5@^YQTGL#%gQrv00h*((ZGW#^X?%Q7pDJ|?G7FvQ&kuHaJ4$v@x zV>=6fWk|1Nl7n#C9k|a3RJ5BVeW+}fxSST!?O>3M1dMMwPQd(t;nk7> ztB^HV`WigH9tJseKwTqg$;ynm%=r+?{~9=d`=vEBNQ*Z{n9mY zBIH_D;+wX(9s>jAj|jS=XeKeljA&>Dalw+CM+@EEI)^7+}$?EP=zfKaa z>^;fhUfp-{YqjTO=yJcwFJJ04KnCJ{CS&s+qe;m73nQ%Stw*G{1sPVWshSEn49(FM zK^we|n$)@w^c$Bfs*@jI4Jzac%fZsfimBuqqLOOP^BXWH@yxK&$U^sBB?A?#lFJZK zcz_u~aGvN2{)rXT{B-IBjKHqF%rqW50dtA{VAq|i#-bii+m39{wq5vUD#N$!sR(DR zZIAKU71Ee%x=L1w#1mqx&>VItE*FEmXzq9WL`T|Z{x*M|q&a%A_FEvXIiJSVVT@4b z&MDI$D^crpvQ%8x%)9SXRw-N{m_R7&yOnyt9>|zm-!5TcM6r_e$fSHj^^rZtC56Cf z_8r&XE#}CC_T_nxUseecv-cVzj7qAL8TB3S!kTYzX-zt%_4I^94 z#fVc)va8SSY66)NvdAfuf>mgTNb`aDlo=Q~&Sgeu)Lje9>zeLXWam&_0iMs8rsbUO2WV^`x{)>HG{-Pdn+I-~n0jPo zp)j2(E75>IO2!w%AlYXZ!2^9KR>YzVU$uHeigTinX8UnmncT8p7S^576uxXQypI)y zT@3EfoTVXzsW=4nx}K)h>1TF(wQP5nvh|Y~C>uT<&1oyLSl<)1+J^Ii)oLG@l4w;k zR%$nL{u&i*xw~nywo3JF@`3qjqADasH&EVUk*8(q?e*0`!$&L(kBr)qKr}gFNQYPsT7+VkaLXIkcLs{}$0HfJMlz^RKCka8m zrIIgxBy*k|m{ldF6*u|CR3cc$7q5_pG2Of@k*AlMJOP98h8*%kzCJ=%?JT?9Um5rz zx=P50q_5hXCjMS3vjUnztgKA=LC)934cG$z1lf~a?(yg&>wh7guAslslJgcf)#@cN zVEUGA5GqD+Lt2#Ltxd;Xy4@QeVWRk}@{qL6s&AO+11pLqx*ay6ER=kanXhD-eBe8n zi13c*&QG`xj2~x=XDOIB>d|lZ4vOBOiRm$fCzEe3*$5a=LA9EAFw6mXmOwG8Tx4X( zfF_~J45?_`yv+IQkL9Xz4ah;f@cQYGJf>X5 zyq~m(uYTpLf!YoprH#c8WQV%Kr->#8GnltPa{{VFJ769hzST09c>tIJ{J_D$S2^eO z)M~h3#TzUH=wLx;_zX^W2r2RIvb+Y1Vr4Kk^GekRNO)B@tvJbXF_w8|o%3_glJTuu zh;|FQ!&Nq5fDkpHDz_EWPc(*mdtgbGoQ7pxP-;ofJcxXtH8M>OufT-zBWF3VC_t$< zODg30VOG((xmuWSMF9~cL(tnWSRzR!rSdgbt8Kt)9Ny9Jg9>sMgM6K!Iynrc3~1hPq=HjS#*zOMd5U~f*rQYkR`3PMYVBrFH1GEDY+wnT5n4NMu zS}*413u1*)Xg#G<0NUbeo)+LPG{urIrmq0MYTL*l60kP=Q=%q=?Jfeix! zHrW-q_O4(j&AD{sz3^`pLT7@z6I^slp-K8{G`@?Y@f|y-Uh{7!Nw?Z}GRS@2jEJn^ z5mp3Z^-yolX?qatwzr&a?{TYN2XVas%;hS+o_!a8%(rYX4!J;hmNWzSb-+IZB#`Qr_4Dvv@lttQsoAtIY!WH?gLK%-7#VQG1Y6lZd>;5gw-LCbC*HG zu3dR+7^XV580yc+MP2L%PD)NVZTne~KL^a;&z#Tv?kH+~z>328BXhDu>zdC?oA6jJ z`6F}e;~6RJ?j#~;~ZLkb1L}T+6^k14d$COMMfi^)e9)JoLxlcfmOOQhorm3JdWOq!-XXa0& z4$LV(7;{K9(Ou_y&OLSP?N;NbMhlFfWpy2hL2z0S3(m!CoV(UtkXr*v6Dw5g+J+5I zkaZTf?_vs=aDb$%bL06)bxX8np+VUAA9svRaO{+%x;g6`SDuKggm3(zW4QCnM5#*$iSlFyQ|ttE3w2yYi<)c! z+~9KNuZo6CF-TkzYIVb$?Yi@j)&0QK55xutyTg{I@7tZhcz>zVgRWt>(N->i+B0 zC9|YrxpHH>F0=-#unQnxV$`AttG__VbZ1GwC}zp-d*<+3N0D2Wh?AzXIida+d!2lx zzsnW<>ym224gPPyXGMVItS!ZA{)9Zx#mzh(I zOoD`f8FH|c$%-)lgf?ziI^lhHLj6yX6C|V>OYj=o)liQwpg*XVkOC_Xhxo(@#4cOX zNr!U9iAYW~mbTHM0kGSuMQ&g}wxO#%ScN2jecOOOP;2-^s@20pHMHq-RvAGtpjw;W zC_jm0W-x{!Q;NW+%+Hz9YUb-PWUu^FSd%b*vTfav^>LNfcO@FCAnxL1<+MJbkfdJ} z{DI68n93pR@5V{{J#%IWiBWAg@n;FqJpk*kUN_;DvgOUJDwvP~CcFPK(MATVtH;w| z1%+S&22TqVYBi_w-aw&2+j$SOmaNHhF*?tFF;q6yTlj`dNpN}@Rf~q!izF`jW0Ckh z0oyGu=%1tP-TQ-PYqFkrOA#4#R1- zYesN#1_MdrWWh|bR&!37zp?F>B4?ajyvSTK08S)Hx9grzU%#oLE=#P?!c9&xsjyih zjcA=AJ58aoa@PDo<=wf;A#Ams09QF|z1yzm++`rSZ5bJz@{D*#*aw zIdFW$iQf$u7+oY}U9G0p?;D1gvjnckapFcJX9hf}Spq|K%3N~F7P?fKLcUF5^~+ug z8Oko((2ksWPRJ^fVBq867ni_3L^eWZN``B-ja3OCzDtfXCu9V+mTIDQ%TxP?K}`f} zI%>iyCy%rVIA#8O*z(DVnt~grYHV<{^2%H$rpXflQVhzg)i$ap zhB%M@sGLWCAYmX@4dVPdf53Th%0!@=C8wIPbeuWr4F}h3((0i-N*y_{C*aXgDMldS zv756E-%qpM9M2O`a?WHEPiSMBa06Qz2)l^lhULuPGk0w0B&0X92$e7t+N(OpgjFaM zSF3Rv2?-Wh$uQ%%&|I?aVJun@A&ZveE4dcAz=l?7=57e?>)I(N( zVdE7S@4EJjx+AA@QP{7h32;BcJ=?9nuwNKWg4jNi;+#IKRt0+Ar~wOPbx&bp{Y6zf zkl(qo4RVC!m?w4r_J7=xZOEk)?QPQ^YPC+ZCx>bCPtQjw#>c(oCy!EV3GqS7405d+w4) z@t-{C@?*+-muG$z_+f^r0KKi133aZ!WU;bV&re z#2aPE(FA-JwGWQ6t?d@fn)-IDo*PLPpf zN;bA#clUs)bNI93Xx%6N0c+%G#vF+Io(Y}mAk&1#hVQ>;2Hhd)ZzF8WjK9m%$BJ}$ zZ!j0R9-jH#ZJ>N1r|j*>$D-61dC2YZMCPYzA~QRlXlq+8Qh?>`4j5rk-@i}DW8e?e z9pf=*)yt7y8V0CF}Zil%rVQL3X#8%jK~e^GS%-^Fb+V6bQEPdv!)5)3Ei$J;+Av5CBG*c zImZS@fwVXVEf2|^u1G-))!@e3k z1(rJK<0mVp8MM&K>2R7w?8(Za{2tiX)zbbQmh@wEA2nruOF3QMfd>TMzo;Hst*5t` z04V|xdM^ovObKn4{rf!v%{WEK)iF3e=gY7dT zRZ#+38+e~0kXG!P`TO??2UJ)y1%3O8<~HF=?lY997c?Z{r-(l{*!7y>p5d$7e~gXW z3@#y4z1nLvn1aUYujH-6&0>sfjR?8~cNJrQaYYKD!F@vT5Ita}u@n5p4=2X_cM&Lz z9V@%^C_|md`5D}2gmmRc6wm;%s-$fQTwuy#EbF}~c0sDjO47%M?HZS>0dRf4p7q=0 zH6YS|a{;Jjp8^G`At!(xsu_G#lnYyeR10VT9NE(a3mB65AdKZq<^8lM9-|~oA7MxB zfCn4cUTH!z$3A-dM$A^IBluk8Cm(?dNKk}QmGRG%W=~S!36*B7VTeGrcHu#0jL(}? zp4!l~&tkI%@)#v+ppn3dwgb*i1D$PohXukdO*?dNzP~nBD57Z z1D3cqC2|0P`o&U#Wi8DE1A>`0E_Sg)c5^kTB|8z zBnUGQKT>DW?o(1jIugHF$!N#acaGsIYP(gLkm!b@IHcWcd^8Fgp)9r9#tADGZqIR5 zm;9LekO6K>a*llFARFD!3${Ofe^OcAj|;S?xECt2u~yrdu*Q;NfnmPG<>tqk$E+_6%(=c=Mvwhq0bT>&PryMLxSL~9M&l;{?)$X8 z(`YRS=?zeQy64DzCktUi~#K|tgds-$~wQUacW7D5LR0gJ`gO1b4cC1a}Iz5Pt(B)t=k z5(2ISxn@a}Cf*~|4N<4PcM%D~@LfCwi~T`Nc*l$P`v}c%LOPg^-vB4f1msKrb`p#k zgArZzu>~JL(F_#$IR1_Q8%1l*F`a=L186CFXGEd3d-sGx$b08Rx*PEhNsv5o!@#$r z%jkjT-mEls>0|I~W?eH^B91XUH4G(M>hLgkca16jH3NW7@>}LVMb2D#h_rso8VP+o z6gtyKJRo8x<`2f5s2-J@=KWsU_&RjAb18?j1 znJ?6sG@&*d)uXjq3@){edAvA{7pF?9riK?+XNi{+eS~{MgT6`}bjc>` zGxnc~Vmc=G5*>Bi;0TO{nX3%)exGs3rG_y#Sk$XqM}%HS_d+5-&x!zZy5HTbs;> z!8E5{CA(6)E}m&_3*f<#Gyf3p7;=oy6b8%3pIK=z(+nDo zH7d)*1bv8kKWe>^&`=cta=*GeV{FbvhVFgBUd6*Jbj7xF7vygrVNpG~wc3gto=Dhz z>YH|r`M1?U?DjI!#8{9M55T=A{RL7HX5#9)Mk8mrx_UZ64R_a;JT|uiEP1?G@)HJ|>2P!7h%(rzIQ!A@os4PT}}89AyW(_owae>_84Ww{zkwXYx}g?(5>#YlQ${0g!v ziNII6s7^Oo{IPUu|dVGwd~0-QA=et*$$jJO&nwg^Pnpkk~|cwT-~JveudHCV(U+2Q)2R zZ!z0Oqmdf;vxgF_;p8F zVq+Tz-w+2ppOM&S4aCNW1w?XqJU*w{zS&^{Aubu5j`~O<2{*?LtO3m4KZGz z(uT_AMX_;M6oa2-}g7Ri(=!fR@;b*;;dGSYqeO* z#m*GVylVe{-_Y~LKo%;BHDAzrX7wjs7??Y)i6ezCp{tJhH#^QfnLpk|jQdPRy?eXl zRK+>6mCpUM_QasO&d8BM>&{EpGrj?_>KI=MpA_D(luW7Da;T5}*VuQpT62+TYzl3C zDfV;S`B*+X_8|w$G5G&E5SeFn`<7S{`(OX_|5~Cn$s7&^@Enj-WIPvLsOL*%ORal8|M3k6*p)oH3FJ`gFA6lU^@EmD}N zFOQ{e(#N%t!ueORI4BAcrh`QG8{4}ZQLUD$h5mz!%-0|pZvopY^5v%=T$fa%{-UDt z?yE%qMa#=0u{93IezW_m(Qg`VHU648lo$sMvhfJ2071i3zXdKXMRSd&oCAPiEonf_7Hij-d_DfKrG;KU_c*ii{ni9WBnB5KmCO zQG|Uj_d}A_{ZN714xtc#2ug9OMx|YMqUA-wioy<~PnBaWsvKofzvRxJmx9EU&N+;J z-GP2J>5imUV;v_kYz9&X{2ewLjiFEyh6~LEwdRE~)qJv+94vR$@v%EpyWEqjRDCA? zUo$5r%q0`KtNZF{flmw5>aGD!o1I8U2V^syHtMS9zDxd?Il1fVg7ekXc<#!4bG$SB z2Gea~tVZ%ga=bE#1s1*y5SNDvo=kNnD@PC;Eklu?iZfWX`5wUKBSKU?%!=Yk?W-( zoqh<+54ri_ZFaFDAx6=@OkCK$#!gC7xj>#sv^5)Y+r>2AFqzseWSw{WRWc{lF6yTfkW_ro&xhag0(Rzhvc_TqRmV@KB& z$ajIT*4w*i-Ow#rSLfXKbK``M@A%1O9^y>Q20a;=9zC^8nK41=+RLcAYzjt$wbX^o zbytuDyk1BP$Ye&jinGhTy@9!^t5qv;V`}pp^uq8&C94uh(?)zYp+hhOPtdpz{^rC= zGmE#JSmTrdy~yhJt?5-D9LqyWS29^JC!!7BRka$Ztyk8PfV@jwr6jLHU@#oo5bLQZ zXe0eZvlu1B2Rsl?7jEoS6v@;{T-;5eQ}r$)&HN2%Ovj|_gza&H(-$2iQFY+JW&unp zj`ore+D-b>agYbAO<4(wz+KDi8&)YukV81n)R-$+I+t}J_eCKjgsDOV)sS@jt{uee zBz~IQ0pg>0Jfb7x?Ud06goBJ80!9zh7!e@F>zfq)cB%KvEJ*TEnn8+T98KN@400aP zgP3wWNuI--fMwB4ygy9RgeHuq1#D*-nn#R^x8zeAf1*aRqi8gm=Jd4?|A??0FBEVH zzX>KXj0K=1fCiQjkfoE0yC6&-@%1=PQ(m#-X)@ebPY3GhL_MA3(@8MR^C(CT;wi7| z=>uL+>=AuKGxO;T&8Oil%_etgoQ|LH^(}g*$H#YRWLEBCLWk2h$STdcn50IO%P8iV zUQV;YG^WXra-2>YjT3%6+r%Ej(4FHz#!*6p>?8}qhy!)PQxF>gc^XHd99h_R_A?rY zM;yUE$vXaDJIrWQ=UwB~qT3TmnD6x-$gu6js6tvMf{lI<5$2V<#zM#a#{0@V&pOUR5&+zXL&9XI+n=KiOu-6T3Vst+f>r;9(b~&z+&HLEQu0jn-$&mcEgI6b$B;8r;1RP8BLqsBZ5~W7z)$6jLuK(C^l5X0E`4bz`q)2f< z)tw#A_oKIO-UV4s4NTQ=VK7EGnWZTNTriD^SUJO#4i-0J6siD@?r7sg)Eb0HiSX_h zvW!twm1S@;onwm88O=na6ni&gl@LHTGT(U`W=2nR%t-q7%7R34^5uTg-THr^Cv7 zlG52ESZFqbLD4e=E{X=%q||IjtHMHMx(JcUMC z9TbFzG=s9>@eSukieU7F5c&4+!6m)6CNNJeloWfGU1uZ(#u0Emuustrs#X&t{L07C zbpf6S$bUW(9M^s~^+hZa^JoP21IZR>M|Ix@yd%IvhwB-n@hsbu;j%rJU3b#@wp#~k z59=EGL&cDa4G*8)zx&|h^Lg$6{eNtiOm@?~?H}3`-~M0!^Z&N%D#_ON4m65$1v4;+^x1Mh=svDN%spHS> zn(YZUu*BYjXYlh%>{svzeqhN9`-LYRy%PHcgmd?swK z+v>X>^K^<)nlM{^cA+aDtDOhcNqh>oRYi!YNGgKc#jt>-4|YlJt68H` zh5M!3XtIS`uGV16@D8e+i815)Rg&4NDmVY`_GYctR&Tb`>Tf#WuC4j3-QR4xj#t#4 zwKjkFxu`vxwKiV{MGbl`ahs9Au+&X$C*7SsNV7Z;do}--uEoS}YwMSKZ>!PYd@ckq z37`&%qoTXLh;d@yWHb%{0>vk~qK%G6zlgme@$Z_*)L;olo{$lcTAjwS)4-navb zZU;e*=dMSeNR%Jm1z9j;G&@LV-eZU0DjTNpah5*3&th-ZDap+U5w9k3@C15lo}k?% zql$#Wtu|=J+2=F~X$BUOcc==%)1lQUu^#WD;hi;^vK+y<79%0w$a3=3>h+=o%o0PZ z*UP65=yW0uvN0v7KTT)B!z89I!6-wTFq#=z!qxeXS`*N`23;POTPWv>656oIFpfNX zDub}WfyCgCFCrQ7luT>w5?!=U`Gh;epTj2gH z8bvg;STN4rhFy{o#QOKMAH~!B&Vo!K6I^$1IR@N{y!hQ@qa~WjpqWX!g{ijEWQ+3i zWEe+BE6T;Mx#dKBG;w3H#?dF5Sc4~Pi>KbgV1*&YJ2*=p0jevo^r;1~?R3I5vF~VN z(FEaPX@(IKUKlh9AMj2r8zlX;$@bXKhQn5?)smw(B-P4TukdGYxncXF5j;oH7STL0 z{4cWc;03VFUS!#LJQ%#NoFuiLxx$Qzt58^Bb(Zm5ftSy_EW-|@A@mb`-(n&mpK-1z8Nr5$ zw`CXrV%_$7`9B%E1>{Q=HV=S3Ti#lqK*lr#TY44y4jym$V;JPd>lDUKzaqbqzXbxn zaFAvp>~-k~B8&#F*sJC-i2GEo zHXkeE3kEL}ppTzhBN~8*TLc|oD;zHko_HCmy%*44UVdf4fTB6ernzeGw=@Uh>lzV@ zCcyw95Q8{ILqc6Ya1{yqAidr+i&bqdp*C2o4I9ktBKl017a_0VcC%G2{&a-2+h>}k z1WTOeG~3F>G7T-5o;k5-W88q%+3Uglo&V5k(T7s}5M>Q93?^Xx$WlvG16FgxdJD?( zk5NvEw9L$L0U=u{2lr5rILHPO%YrP5pEwQj4J#_=Tjp#Fs%gDSRxYH|gkisQ@MgZY zXXwjn&%BNvB0exYDy$5?<*NNPho(Xd-CsN|fe&Ea3oA$Toq)XHSpe`w-mp$bR?hKI zPx<#JBIp@a4jj?gzbt!#h@&Z()$&g;7otQ>&aZYCmE9$hFLxOA_wW`Vt7Esfn=RFi z4mcPZ$LRpr+v#+&v=>1!8{4J9WbSmN1YMdOCtm@`zc{>D)nwA^jJc!2eFkXL$VtW9Ak65S5y*9KMhiMOAb*^5R@BW1ByNytH|hHzgH~%v&u|cSU3YA-F&n1iB>GH4 z>xErU>o!)PT7Fqhb9#Z9902tbX}0w@kE#o5p?X}oYUezaLnrlJ7KXaLvF)uG==Mg- zGe*Pt|8_XQJlk{re;yNpFoii%Iy97)35{tM*J>NAA$cK^8`RN3f<3|`a}DbX_80&s zsmOj(^1VUoVCdb-7~HlF{@>)iYm;TSks$W{{tC>0(7 zqmiehV!C))WR+E2)l*eXicNLI`my%U-|*j)?(ql5 z&wg^z4gbBq8U8!zKK|hN+0AYDz0+FF-}~VB+4oKnSgH9#d?%u)TNOF!o?^{&1ajk( zzbDpMCEfyYcgn@%zo~N%zs?KlsT{>DTG2@@sr{eS7kz zyFEXC_BE%~M~mmxzT?a$N6(&V=R23+q8>|#hKCvUo3_VCrs#pUJ2VNx8FwjJnM zvD2FuXIB@e(^kRg*n!n%QtXqP)AJXz#pvWMr{500;&sgv)2 z|Lk{;uhC>ZNW9qBHj`c(C)z1&l?zmg{?a|P)Ar;7P0rlvQFOQ?@e!qS^w11jhw}14&YyIf%(bdC8 z&vyr@`_QRQh8{vkKO~smbuu2L>tiQfZ#tRq38?bL?hdMxx>E=rNUh?zv^G?mfYQYvUiR*||>YgQc#;K6LaB-GSQOLNJ{PvCE$a zMTHD?Ge8H*c2a{m_()^1x&uRf(9v~T(d(>EyMs>%wpfF}5c<#o7tk7Zm(L&F{kHB^ zaF6yv;s*PCcgWbF-bk>WR)mfx7Oki1i|3CXSoP@c;iKnIqIJCv+U{or>0M_-#~-hEPoF<} z5RJv&>{(1W&%NB2UhdB&KYG1?)BU7HG};@Y8U>kZGR`4(CiS6nx&uhNgRxye)cDwg z4;{Ej2-Usow222}d&31B^bxDzSA>FASR1KO;n*E!a=-z5MWr=;55tT^JDCweR=^oS z1YlTN2p>aW8#rTA_D-R zp=n%2x;LHmSlgIBc7c}$QdWS2v}IPY3plabbm5lfGEXV&ZY8MHN$s%d{OuqEFG(Ni zA+0cn#gQ7c(+5eoibz)-@cV72J$0#rK)t}#qkV?lO8h$hyA8gRE_M7tzr5=BgNX11}&6VVX40}WcN7uOCa)AVpFqv>%_IDT(?=%Q5z z2{er^Xq@2C#o!5VF?9*dd@=$}hV8klkj!g9^M_)j2P&+= zb~0GIJ5c|z1JG%QbI_S|D~;|<>i7efHFH-Wo{F8N38C_etEt^V^9wYuH0cdZPJ&zd zrTC$`)hc#D>n?xp4$gNHf+Jo<2rvoBLE}2{-X9|2Kog$?heRuFj6JqM{L;JFyWPPt z0*Ig^b4u^~*d@(OHTCX0kjaNFGO^ksv(YBSagUkKTs?N+Xs`~~wZjcCbZLNjq8QvncDK?Y;kYgwq|Jm9 zX$RsB6#w1k&*68V26UG{Zv&Aaboq04t5xbyUdo@`Wu7MEkpi`|IE0W6;1h3nG^LKo zS%pA_uzeNt4rY6;$0fG8!gdRGX?wrBl@VWI0&S-{=-zh#-s37m+6n}gnixAk)V$Pi zONb7+P)EJ#5-qc|JII(<8BZv!k=J5PK+kvQ%XL4apw~?b3bbA60A`>dV+dUk5^Xw} zkp`u3uc2>R5Vl;eQ=Bj)!;@;53~+lvj6sDbA;LnBd?X>!*?>GL_+EEl3%Wv=Vq|2w z4lD^t5%{}%M_eIQ(0Xv0h$Rwc(g&2MaEekUecYO*=U-Y;b)|N*>MSDp&ZxYPXqMsd zuhqhykr|Gj*L;_TUk-RwTF1-`hi4Va#+@tPfRQSp# zBenf#PHm%!>q0s!ujJkE5+o&T11WExTi8!_u3+^S&mUbsdVVRbu=wvFd+$RZgwz6h zC#}%EyOkDY4FP>LM*802L+N@a0EKV?yK@QpQtBw9JxK7_hICpc`X;1Kwl~H|ZIui< zTuKdENN!KOTT8E7^0HybT z_IJiM3?zD=8jBi8*pWJ5Xk&r_?F|++c7kwka3<=2p^bkq=|{BGWo5_LMT`BY14;hS zMsi^6LwEl9@zR_xiUU=OH8G?vjf;PhR zMn>V#I$`j`3x#_aN;5J_tz^V~dM6YLX~-+VBAe`;)V&cPZ6Ag0oecO?A)8IT5hxO) z@YM%FA{Ckega$8l+zGJKh29A5WQ>B?a1a`|f73@~lnz@L&!YCW zy90rR?{NT5a2?^JK*3Fbj=dH(^iiPB;zWYp35OlFrVk>SK8oafEkN7e?GQ;=sy8AE zaMS|+i2}^IKY*4vjwmhu0VR~w5_=b{Iqpl=CNhb^z1TTW_jWje=6{NQ~!I54S zHNNWg?nM;p3!7iB=-CS;Alb#k=N*&H4O+ho-Eg0UN&0e!;{|n)#tP#l5)bZL(F@Q9 zw>c3d;=ece;e`^2KAg}fv=UKZCl%sTOTskL3edJ|BnaC_iS!ikDb5s9k4!v?K!e3u z(Ga8tFLab(1rm?cPQnoZOt`Vv66uF@UMG=$B+`#W`jJRKC=h5#^dpIU(0nB$DmjMC5fZRDb1qRx)dI&7 zg~dNeL4pZ52q(Y^q#$9va9TuMnTXs=Lj03q79-k2=HvrPMABms)kr+T8UYZ5PiXKG zT6%%~1tpwB+7aN<@?iwh4o+NH2Q*RN-29H^P~6nk)ip3r_&lrIBnXM4SZy zK%LNPC%`zVl}0>RT)$Eq{Nsc|E+c~kkQ(rBM2=&6-4jY#Oru4KOQhGx3wA8G5mQ3^ zAsx_4!FdvZuM`%0VUS5BEqx?jp+53Rq*_N_02*^|L zE0Q;I7aNF7orvxuNM2Zr9nmW8giY#zQy}n(6I!HO=ryejs&JsO7=cXB2rc}rMxNC> zVrZ^+hXJ}nX;pXv9%g|qQedg;HA#$9>|aByCNvN)wg>@;!{r8YXR&`5J1 zcG99?oTQ@{xDdVotx!5R;Bqn|$OrkB#N^asSYtxFNm~)77kHk zonqAJgt&$S@fRN>?!?APG*%$X0|_1;d)50G1fYdg7~P|!f?5PJ75kwQ7JgRnL9rX- zGL35Y#2WY5TM?B2A89qD-U+36;eC-1+L|pMSw?Tj|p_ zS4T31(Gbukhzx|5`wr_GVThL@HzMxlB}C~nXQK_l35^PApgk-K@CRwNNRfCp(RHvm z<;YvKjwC2q0wM=O{)R#Z&Ynb$$ot^y7oe2XzPg|@W?o*ty8RZ|nIUKQn__2i2)BJON~g#C?FAfzyObbK6)HGk36)7{Up48k&IBg zHPx(l&O$WnwRe5}iwQGCEP^t(61O_!c^>dg$$f-_&0@2+w_pi`!h!DH4v%Ks95L=TjwB6@oQ%Y8Nt-d^UVEXHw2CAP6o~?=JS5T^5*2Z^I-zM- zcfyjeikM3%@E~3_a!8yS+@5I{wJ5V_*oi=*J*ui68-@c&3!o6`al|{658w}$xISuH{2!&V6 ziE|O@OiZFsDSeUw6-v02fpxv49J6S58D!iYG>N)eI8BPA;NrAcNJT~A-#AtROb|-q zLd2Iz?83R!`Z4!cqj+Ipi6DhFa-yZ5c0tRB-3XzM+NJPt?ye z*mFQxBpx78Z%}9x2FPH58=qB1Y6SxKxkR;(2Eb&vzlAZ91Iu$g^mlGrw0gZu3xw`|)-z1qKB89a=qnM~j zwl%_PdLx=q$XtzxM4TOvjau4hk*OeRcfyf`qD3Zf*UQxZNU;!|p!q*pxEub+3<7Z+D-9zS~i)R8P3p!Wwl z)5F!HRi2$#z6WI7N+1(QD+4Mwq4zskz@hgaK{7p11w0(U@7kt59+V8wTVXv4%G8j7 zgyI-}f4zHQ&`pG2aZrePE4}KI)Zluw|HU54cjbGF!nJ2}OUmB}ipnpl*jN|I0z03f z^j!rS0=EY`iPEy|;}j_x1pr5uIHh_x7(90sN>~TjO%r;bziWd#O(I^09YggzqV7mQ z{2@(58d1_Z+Og69D1RroP%`P>B3)UD&1INDNzN$*X`>E`j<_{$`xYG;dMyda-)|+F zi@|&Pq({30a&jdi{`P{O`&+IA9-nY^&m*7EgO4~_L=RTQ9?jyGERswQ`TLX}uxz1+ z0!Dh!N)PnF-)Hm?RG|T3N$W54;56x@Q+kNLkC_G#8uE8*0(MY3ZD}E;{4LYN4(S0o zV$3v9pkx6yJUDI->7led(8GivKxvd`oH=-9Xpsa(B!UiX`8#1=5aQ9y&}*Rs*?bBZ zt$ALdxjK+$LY4D(f<86?LIVBM3B*;_c9Pp>HA08 z#vTP893_7@M)g3Hfx;<~pTWu^plcC-zvU(%@pEp@_sBJ7_SUHs853#}xYB6vk5&ZI zqwpO&N#dQs0pd=93>6gtJS)O=gGjsTP}xf3QyvU>zW=j84-U=O`QF%^;wXw~vk zi$r^Ek^r~T$b`Ev4w@xS9JJd>OPI^GZlyzJAJAM}8YdSM36{2eO=eq=mIW!=Sb8#s zMI6D7JWOOB7n*=2Sq)wJf_zW|8A~;=?N6gxg8bOC7>#=(4&DbmFQAhRlY~~TF7VR? z7eOUUHO`_z-3xy%Ason03MIe98$bl4OHI2P+^R z=Ez))_Gq*_9V9ibC7B;^6J+zK3|?B|4_dk`uaH#^F1>)=0ccf6p^X!sjOYdgcn}7+ zOheO;8!b^eo_IsNL{xlX+-%fEvLIW673$Ip|Aldv(hHny)asO#WIPmPJe1ntTQ!{x z?F31)Xv?<9*OGARi8N~HZ%pBU#zPrI1k_Ui45~IP1)`FS#zUEKUqN*?SXvrRc$Du3 z6N4bSL4^p;A(R0Wa~WF7vSI090ucp?eqhm7W&zKGP>Us78H#C&|7f&{VY}H_c0i#y>fW3%CKiI}P#E|C8YN#kHlxD~vIOzzB6;VaqU3gb#!NdCoyYa; z*MsMVx6IoWpCP#?HLimTrcRl7N^z9p)%A$5YP9hwiA^d_d%s&$od%9b*=BC&Bb zcsrha3ajYVbjC( z#t_;Sa7*%d^5XGuN$ptnp=}fyGX6Cd{`U_-qs@ zoGdJ8fW+O5WCA)#^+}*TL&0UpC)C;Sb&31_fsYuC-r;crIZtqDX07CwfsHzLnn0Tu zT8T;F7TO3n*XE$DBo~7~O20-z#$AaVs)%FSur~Ud3NyI-@)~beoSup^V#pM@yU!N* ztxSQtnJo~syG$a`!HY2D#p1|`Kp6qJzWhN+oBbU~4n$c%mqt<6mY$Aayi6XAVsxAq zz_Z&*w3kVy1Cl)A+oIlu>Ias_<99YMqRf?c61hL9LiUm6+GhUAvlS8r8VJ0EfT6% z0_QvA13PK&C7qm_-5l;gAASXQVQIc<2zz<9OU5g~# zCAN?bAn5%9{Wnm=7QT1r)3T%AQj5@g^f5xQF2+klI+$L$18%S0^a}le!S~4ofsrK& z6*(hUiI{!yu*a;&OiYw|8VsB-73}`1rD>vFlB62k2 zqEH90teoIt)T~NseQUtVL^cwMY8=`cN!b?R5*3vm$PA50wd4VV`zRVCBA*#r^b1VA z*Itshk4L7ZHM{M3tsh5+rdJGuxdMRX>L7yk`5XIz1(aeyi$FFJEyxZ;8X$;tNv0VU+yO-F zmG`pu32hg?cgabQztCOMCUkd)UO7!pFb6UNCp>2d>!nwT#-KIgS%wfNKX*bJl!2sG zc%b5Y7tl&$%lCpsTd)`zi;=MydP@#0qEcb#AQyjG5J+zPh}(i)b}Yc- z6~vv#Qz~-J!4O&YLO^*o(I!D9EeB6te_e4{uMgTl2VrLFdksF#fINCQ=ej&$$Kpqj=@y?CIC?iz)T@DtJ*5O~5UO(@? zy!iC&{Pd2_i*yp|++8}{62KkUgTe6}Db(Q5G9U~FwP5g}1mSQW!9%WeF7=1bXyHjr z0EZ6_5`8HXA8Vyc=~#Rr_Xp6(v(4B8vc*FLq0aRs;8qC1A3QGtM`Qw*Xp_K&Cp;>6 zs0QJ@pG)`DRWYx5o7AHU1{?fU)cyS?Ao zZ~gwm`PtzYnFczXJfZ@OFmnft#l&zmhkrmFa)>&IT6Pl2q2r0|b`m2oF|HlM=p@p> zrNr3oM4uRBshKV?<}G!W${}TR+<@;iM%2b`pbY9+p^Xlwma&6@e*S<#^BCOcIM@*p z)bS`gioB&zyB&3g&~%BS4TgXk`bM#9hLM%S@3~8au8te>o$csRH%FHlIu*xG5zTzJ zPVq9QPHFhAohnq+ArTCnO5eRxVeC}+mYw?K^yc)F>o3kKzS$m^DEs_g8j&5e#l%Bf zpo=!T^9u43K3I{Rv;}!-3k=d$g4}H-76yT5C3JLy`vG}t3-n7G9JVP92DxmD;|(O`UbFMI$llw6-M0^G_wB>VeS24$ zxJ7}5WMom^bx@oB+iK~+y=!}LZ#Zy^?7@wQ#N$M%=|4sXBONVGX{5#2md zml9{QcysT_XyNtB{983)ZrL@7e2ADnIlcK7hm_@va`zWzR;(6Jw9N3rfX${C~n530kc zXACz^xS8N7B8Jb?Q&&>VkVj|dYzNMFU{nXmcUnh^1*a%!Y!p2@yVOD09W=G*I@}52 zfSI!#|0C~C=BGqRuDA;r1zveI z9!DYAP(rR*#Yv6Edoj)aJOm${_`*duyaT@<$U1<6b>c6s)6juK|5#p&_!PA$oOa|b z)WY*elA54j2adTYDc<-it zd)lZn&@lC4Ormh}?OvF8&B*WkzRSbe#pSnW6xb#%z1@Axp%g5`o4@YeSi|_TY58*; z^ybShU!LN9-}!CNpGI%GloMNN($g^$5bvB2%3t>1qhE=n0mEdoJIEpjkQT=Y^c-&S zQd9OHOd*3iHhR~0KI%?dhl%^VK5&j8@McIbXDseX#&^yIl>VM$dgN$1T_9#QQXOsA zUL7==kx01c45uBkoplydjbTPWG&oj4cUs6v-FU~<#!;HcoG46D7BTPL0dp%#?Q(iTOa``- z&T{rG$_*wX28U9jF-w9AnMd$5rX7kdgqEZUEeNHwZqz5htb>SRd(bK;+v+^+_h=pi zojMt`IbhHW?*3>>ahwDyp>U=Hns8h?khqZX%K`S1S%JEzkb3>Vqk~8j*1l=J~PB9WxAm~1J#!#j-jp^DPx_=%VjuMi?#Bs5+ zc)HVZ3ODaDx5WX7q9{=pAnj3Bs6d3FI?Q2WaK}IR?b_ZUil9ws3 zQi+cII7muU=7A?of~O+9T8VrO8unZqX%Z~0RhAVQ9Vk(ADo$;gFe%!olek8S03|Qd zoy27-X`PaQON?ktoX8zMa27NA!y+xopAud_A5z7vZoT`%t6yB}2-3*_$danYI7*n>XjDw~w)<$<2o!@GY`UU-`U(ekA|k>~p-de1G({(MQj4ed7On?M^!H@ByYdh>4#Dt+hVs zyk7#m_dc9-KD27Y79cg63Tg!a066IateOfT#FH-Q7Qie42EU$k!5%&90pB-+x|1%r zR$Hy1ht<%NwHBLd4Lzjl+w+TJYy1&5tLetu;tC1QIpH47dGAj;ZB^qHI<3&*tkOsl zz;zBj|3io|x0YF6^m=3TI?u$oE(l@TRUaEQp}V0C1J$RNX&C3j(Z`HydE@SZ zBZ2{0>Z~6Ym{7b)+iJdb8qe$Fh`iLJx2aywsqK0Wngr-{ z8?-^~&Thb58|DckhW97>7(t;8N_DzLSm2fJEmBn|^vvT9wh0T$&G;-4ZBR|_71So5 zjRC@fvU{r&AbAA6!Hj~Q(EeoZhIX~zey=ghnb?Qp5yaM}#hL z+$4ML@UDqISRjRtc9q;K3)T9C1qE7+>-vN&w;EB|41x^ff7v?r8yc zZJc7S9Zs>yt8-ESr`aeSY}bcmqFKT{H2^*$jYI=_Ss-rHL8OK3mDjV)e1w~O;M+Vl zM1K!FY{QG-R-w~`6rpu;5y=cc7Vycd6ZqxOBW=CfxoA*~b4%PtlngiFaYAt}XupJ~ zZ8+#^`;K5Z?^?OwyFSpzqOQ9K?lD>N4--DTUa--|ZMch@3o^R24fk*l zTn{?b0$^GI+XA=-plIzArk>^A7))yii(w_G#=N=2iiSQk7}}twni@lDf|w(>Cx|)n z2Hb8h5aQTd@VL|g2CX5ciNrV&S&Fn1i6yTk$^j!uZ^Dy;wN}a9O3G|*WJ$Su;Qk(X zXl*p9h<7zms>^6Y0a$8OeelYXsRE!4+NOa7<{r3RHeIBe1g;Hgib)BWYb5A;hkqBZ zOIuK_YMq5*iikU zcMsg(0}uDWaJL0dmZX`AeNC}#&&HaGA=wzKj}z|> z6M>x{``Tj{r+pjQb>141BLO$VC%7+gZ|eJ9^2Rg(Zp|{X5tB6X7RYX~gyem@Ro`ya z-_t5vKJkAwzL7}HtjugSV}nv^wI65m172F=o3KD)T=T`CqMgpmC|&2R1{7`F?M06T z;yne3G@1$m7V!5K2wTD&7Kry1prz|+TU#p`pm@vPEP$A_5pTTe6MZZT=!_b%sh0fK)A0!yr+Oo+tZz#x~~9@BH9QwMv4XeRsk0by`pJm z!2+9h6fB^(1SKqBwvGm{fZv)dED-K1fT*^R9H8osAIk!pJFW}HtNRMTJ+JWhjl$nI z3Loz)knSlE)YkIH0(WX6_~jbU=M%OzCuZYUD1b$W8h%SD2Tnh&%XYFF=pXoK#C zlhk~?>t?M0p;n>Fgc3g_H#q?=_|M3VDd@>D@C*vQRw_--g1HAa7(d`OYGo6j3a?OK zkd{2@UUR%gk|lF1KCybY!mAn)md`Zwyr-obmd*wj*mUDK)%?_$3TS7^{|?dZ?d0fq zI`gH6+C?)tM4k+S_I%A2!S)bS%-Zi9m)@G8lL3t36Xqpx&5`9J9k9;v8JLuFOWFog zIbeR%?SFi8`ir|)H(P6Uu-t=xRa>z-?CZt!iPj+6pBayz(ahC?WW9vl*YqXwt+FXasoB&W;<)q=o?($L(ZN z!|Sq%lo8F^14yGY(4=S4;r0~xti&iihiYZUy<&oOXKgGFL93TJrwxpo!?cglPPT+8 zz^ln_FaV%eHsKB%Du~daNB%znXrB^u{X!8lXu$TE;hPYlT34?djVg?Meg^O`^7q+T zsi`#*tV3dmzB09lwpc>~p(n1H9i-wLR2!?&$uPgJk%S_CnCcuavzlZ!p{r5bl#o%T zu;wVrdUVcNkrEid8Y|{xV!|4r)RO61jG;mZEbCaMaCSlIDng9*nwo6!CPU5IYGtQ^ zE3al$2byY7t0~n{#W?ZAnslX%F0NZkJcboUg7-){0Be4&$sG$|jS;kpBV>XRr%m#+ zX#uEX#G<_x!L~9x$WS2LT&H!c=DzslycuJV;sDmv0fAnV?emlV0U-X0OV0=hsP3I~ zpjEZwdBX->-@$B(5sfXnzJ-~jko&IPxwj?f0lE~~0>k#9s?Zk=<)a%*%^BS{b$58ejCB$`&u;>~0A&-1)haacv z<17`f9z*@Hu0J;Q$F~01)gSx%<4}JbSJ+~txQWl(8tU1)L=@xVfY3ZaSrk;HWNEwCvA@|3cQy1l(f%hhWW&^P909!owt*E=h@l1r zyt^?@_5CFY#Wbs@Bk_m=O>0b`QKiU<6PA+KP0}@1!*XM#^oruSIC6P1cNs#p!r~(| zELXI12?gS`V&xgnMVg${D2F4eQDu-OCv|jCF-wy}ogR(;hW9P9>}6?k%2&p@qW*)j z&6m2yoWYN0>VEL7WDM&2q%H1fK6h*gIl%5aL4hrO zD;P;}&BrbAam^BLt4)%}du5|Xd#^zg^$e`nTW=zw(PlNddD^wz9ED~tGd7btI~*dh z*r{AY_%LQYMDQ83T9^4s0PiHpr2J+YdwMY0&opkVDRyoZ28RIl3s0U8No@fcIv1|2qMRt#YV{VpL9*M zNCp}LSTd&dc4M1$e6vnV(2IJ;s~3A{)Szon=)oqod4X@t-bA%sgS2XBZc%G!gKTwo z%lsf}?Y7}r#c~tP#}a;`%{ybzS(~!t*^#ke*No8n;7By{D{3#8wSG1JykDW9R$ZdO zDjf*!Tdg{^!cUg9O0?EW-xz1hB~!;xm;`if)_0rr{k`?8DrR&k*4mv`Oxp##Quh^r zdkUEQdhc-+ZI`g>-V$(M33qQlT&T`Mp#zV~>^&`{?H2sKYdThsp(39SRa3)g6Nim!#lmBNx{95da-_X#3(ls#)~+6dHuu1*LRgMQsy!zP z%LmdZsOmX5GT57xnaLcSHo=Cio_PGQKvUjq*0MwlW+`-!G_V;MmFi+?j$5h>-I^tH z9%dmQg;qhX4f1W!Y60~?ILGona)-R#wBE$vV_n%QBW1q}MTg-|4Rblv4|M*k$x|f` zuoA`8E8dHoUQbHgZaJ#^;JlHtQ$`y6&qlc0hC|itHBv_8aNCUnIUKKH`-)MAZFmlK zZNuF?@VGs~9O~MHw}~s-d#dIr(>5HMO*`ENZF8dN>^*RI58U4a58H6>TVhLG%Sj`s zWpdW#FE?8Y|XU?p6`rxqlrCIniLERL~{3|c{#n=tu_ zZ6+A|1~=)g9fw_^H|zV&`m{H1NL?wiOs|tSwYfz1+I!&s9(dS>XU%AF7?Yx@ zGxrgmw%~ZvuCJf-ASkpzajmG5-7ZIDw3r4K*kowv8Cf+As@c)oPwq}HFAnz}z~L1& z?22aC;5|EtL+37&z(;%ejBZ^m)CN;JH9e~9!LXTWfTk_z?BH$?)W z(65J3dX?y?(9D47NzJQ~59jQBK#pD1h{enf0Vjh^7I&H2Nni+JaS}N626`1p{+JyH zt~#6Q7<9HclC7sE#GtF^gX{Wwe%^+mUIb+kWsWG&-m;Sz%LTSRKh*8$>SKy(<}l1q zJeZu&+x+mbK%obhrTXghmCAFPO6;Fnph;CHFeo~foE{_gkk1~CqrGQ(Xo!gBg;jv_ zh2?`vlV!I$KunRjaDj&zXGm60xow*7Ng?l8&ah-OKP7V6^*Tf6CyK~B{Pe~1V@2HW zW_9&yKh==6S6e??1T}AA!EfdR8_ySw_DEhPh6%e{95QklU(lY5ggLtdfZ6+Fb@V#% zS&>Rryk}Wpe(pGeGxfv5pdA*dU7tZ#%G`^=*;(XdfC?zw4(7XijvDH1%twgRQ^{T> z&+?LCr@K1UWnpS@I=Mpa{B&{v2Tu%demdEM=9sJA`FwZ@&4GJj!t(>lta_01S#Dr{ zytvxwYNw2GxiwA&t;)e62C~Nb$zVo8inaZVv=+od<@|5LfO*r^+N`D4gs~)K{ddd5 zz_Lj5{#rTk!>M#}GPL=*-#F8G5zP<(CZhmLj)wCSz{UG3hk)o1%)~%+Ha`bk@y7Xa zAjWhAn1RcwU?vitoe^xS0{Z}7pAlw=Ua*F_*gZciT#5RX6T?g_^Ap1rSq8HypUuw? z$1OFB5w$}^n~w@rT}p`gys&bTn9mF6JF!z)g5Y&LKTceVCi7#(QGUy`F+W@ELFK)p zbZU0M*emCap4Il-wL?`X<;tt$#>I}iI&jQzbWqY7RtJtN3Rs*vR^WQR^ZLLuo!RT+ z{Bfzv7G?RJ6=hu%WkvB|3q{$dyzj8qS5=ffuu=&$@he5yVnN1 zRRA~hgUvCPHmg!IC7EmL680VFP;DNU3&yY*^YP?fIqjB#x8qnnZ;^h9K%X`GQ0-1+X?+oHyXY6wcM; zdIR&AWfMJ*NYB+|ZXU93=zLDHTb-di^YiH1<*?>~wGjCXVSt7zG^M$Z?R@@9-8og| zNc{qxN6`*5=z*bCHJMl6Oic!rD;D5lTk>|g?ngCQ^SUnfsR9o(z7Twt6rrXjdrryN zQ(RY?GZgPk0j(6|A_u};K`!rfV8^O8{Wxy`dBAfWIX8k1)MFzHllFX2gNp1NMwf$v zG;4jTA?G62`YmlM&Q~U|qE9R7H3e0S5heIUhc2h;!7H2`M9+>Bp@y_hGN7 z#|#?>r&)=F`JNs#J!NTPP>;c3N<@{iGnOeTZiC)T4rhz?cl(KUynuPnmIXb-9B5@T ztXU6&9T;iPF4MwaFAkk z-@-HZwQkJH--7GbbYoC?3Fc|gMpaj6X0LPoIOo1db17|9fag6;kxZn6{#$>;O23^m zwL!l{-y@>I5zCW3=(oN~ zR!jYME?AA~?Lt`L{eM(%$76lSYN*=U-beLz6e$v0NA-LIbvjKK;;7zMci&OJofAf$ z`BA^k`~F}9%L=TW=Vsw7USn;)T|3mpNpN$2T2tLCM+J8dA5PTQ3hrDiaI4I0ov>*(%q8nywk7nNylogEZ?Qnx)3dS0tweT8C)nZmmKz zbJC}ki&}ZU2+iBjoS8Jtv3NWRb}#}1`N^HDWWvDO`{7x;_-jxvp_kuNXsSl?LOUGWTO_O+uG&d!1e85}!7K7ISw~)0;x0?s8rxoJgM;JjLK7S+ ztmA$dr!)0$dRt8;-m=_5q@Y0+BUQn9?alSIS^sOQ+OqMPsy3sgb*yDA(z49i+R1;d=nc=`CCW1Rg!wYS zhlY$%^tD56VA2LS$4|Vk?dsoFuSP5WiHj!@oCXc zr~R!(WY%@jdNk%z{hW@tqIt5Uper<33&UJ$nWHRFQ!n$SY+5z;{i?Ww{-o5_>s-bdAnxahGl*=Ca%? z*NV9u;F)efmvur(n`*I``M$goi3vFpv*Z}P=Ptc<9OiJB-XgxBr06Wyj?IHH^ST^T zX&Y~SJtA`u0M`+j<^F~eky*RLs~L+qiNvhea~t*iM!kym*o?f~h`HQ|w%mxbq&xN~ zXophHmPiG999EBe%9<8EU$amJnf6dipk@`8Lp19!*tm{Om#(nAxjf$JMk7wMP)CW= ztk+H3b^XRLRNcTqdn6oewQg=AyL;gN9(dS>ucI-CE2-Ae zm?NlVVXsAF&MqIrY_Jo9J>Q{}!!)bRu>@(ZfaCpFy3LdmEghvCdStsHjxHw4I}WO% zLw0Pwv4<~d#Q+|dORC9okR|#s7Ko0z8VFjX-gO}8012uIffgi7gI1#>fpL6j%}cg~ zfL34$_=*p{h-bKKmk#v!ZV!gIDWnlFI$q!7+IwLuT6C=JH!8P6MK^*(i)Pgd5*^|G z9(dS>FM>p~S*sZ&I>OTyycQ%n0fi<=>-xMR$kZnmL1`^Zd&MmpRe>2!V`pFui!RsG zoTz{t%$9AM3aqqg*Rbd^%s2ZIp=xa(;$z$Q0_FJFt(!x(;$!d5?}?AKv6}JDrs`v- z>W`tC6=+D6+Ju=6SUYKIvr0R2YOBh-r5;72p2-1a-Y!EFl}{nNGE><{`eZoY|s|dw{z-Z>amva;a&AMJIg()Yl zpW{hc&BzbhEEAdbs#tJ*(g9Y{iNn+w@69Sav5Y7xPK-69CUS>kf6*|z&t%pzCU>R0 zx%2SEVfqrs-p|7mCrw*qOY`u=VfsSQF4R(udZY15oyyUdrZ~%5s!?NgJ=Lh9OK)na zMst$Oio+v7_FZ#6D&NRAYJ#%)LYY)gILcYh<^h2@XTFW~P(bC`m)Qmy>B7%ZL1d36 zpVQ{gy+c*xLpvM6)pCzQuZ*_U+@k^a?|SZ0KI?8~A5|*pdeGklLmJE~>~Bn#N3&f? zL+W_-*V2%J)3Kh0G=kFWG^9gUazf2T8q#7jjs|FEDrrbv!h1QYX-J306PZ&NQGU3- zO}6&%!PN2)YZ)LltZGNB{9UswPMDNu*Ryv_wb-kWW9yN?4(N@$V>b}dspm2QKu5I1gqLO(1Xk6U1Js~lt& z9dHq{%KMx7QgSP!f0-fY>j@TBAinJ8F}6M?-pYfIe937A-Aco3w5h>ol2_G*>!Y@) z&G@>M=SdPs?2E+5kwbWL4ym%7Q9XInc!8r}c|VU$HYJuZZ#~}CYv&}QzJa-%_@AQ@3+8x0GkT?~WSRfhqQ6RpgnY&GJo+n7 z{%|`b=Rr-4<_QnWixj6T!ADKv!rI+Rlf`DOk64``tX%O59a*D;Un?a8CGu^WOQ*b{ zws+n%)Dw!lDec&pTx$5}8HZ;tLw-4*Lfu&}c$hltx#aYa;+gJzn#W`z7%7C+OAB=4 z-%?jWQ9AFO>!>UR$&aM2(HL0w-wToNuUav1uaq`x|GfcyHMM0ZlWA5N)=S!$cgdikn|~Lv|5f`udf3AgU`4fAi@rBc6NxX`f)i>|Lt3{*A8z zXBz&0`CWN53r(k7-fU8w60maH>Q0TNv1Ye)YbwNE^=+y%&ZU>raF1@y)d>Tj{Md_t z!s05Drn(<3!f6)UVo1@iV`}n^pnEF4YjeHq!ZugD7G3su_w!QwT42U&=Tl1sqZbyRHogdC(8CtP@|y0WUFu;2 z_7ZUB)QU1TmZ9sX2bFB$*BEuAU2CqC)n{o`&6b3qP-d8@XA7D%nl_xJj<$Gw><&6ZG(X;TUPhI*^K zcC%@zTptL@R<92XERj?^XfwdK0M*3ZadHFo2w;(A?Iz+ag_Q)=@Hz?5czMu`cZBsi z%3?mSu4*-yST@{k&Us2WIQ2Fuf5sis@iOv`_#HSw`E{5W?B zg_19(I4ahlctXQhcEr}}(n5Z56JT1?LD1UNZW3f`%=*s2{JgqaIe3jSphV6XleYsm ziC!C*n$z|8HCAqF#JO(lxbtN~TqA(ZFVcCA z&XFawt$tmgj`^Kye#I-P7Qj}TTp=aq@S~ytPljGp#x+t_5p0!OW*clLjgGi7Atw=8 zZA_S)B#ip4i%F;9uoJ>WwXM7?R$t~O%IpFZN~qZyD@*mY(rD3IC%s34Y2EMV?oYfq z77Q(R53#zl)dII%wwS@V5YoUEY$3ZI%oCtab|gDjD~82I5qB@%MnB*I zZ`KK|{Z7x8`Ht6n%)K$V~;meH$$PXwAN1@D^hQMtgj55uCx zBH^PlobIl1D}qxov~ysf{^oo=5e6D7IWb}_8wTMqmNU5Jt>tKi=5AH;Vo!i0mmAinicu*8oV#25S^~#$^hF1Z)zJ@cSll9>`xiydPsu!emH_;8bIw}Hu zK+mFfT8-tU0R?%PuIhRJOPRbWEixmHjAE7a-x|G0IpI}4>kPqH^G;0o^SdRVm~e)P zc9yXf0%yD2NJGIG8&tHgnv+HH!)gEKs@i08XELwoYs=%?<$kuvPqDJX&6PI1=nQ-< zNkx4Vo~v);-m%PBQAVor#Z8N}72~m+spYO{)ehB7dX>e(t~QxfTK^2IB=leEBFlV- zYxpAHp&e&;mF#d-zh=taw@PVPQ|$f{QyNzEx4-<9hVP)Jsc);HshV=8YI>Qfsbs3A zjj5Uvv$sg??*TH2Fp zDNd@TGpUxkq*|JiYAH$TTkA)vt{SP9R-{@Ak=oFOR7(v~Ee%Mulpod7dsIv18FHdk zb)ErQQ+iZW-^u9-Yue6shQhUuqgv{XYN^?I+;vF;Et+tVORUFiJ&>2)yT~JL;K{b^G)zlAEQ#DXctw3!l1l6>5bJ$-_ zT00c}4>uPt@3tiWEHwr6z)$%aR6Mj8#3ocvZMJ(S72GH{1xmYK_Ei|=CNd+LkhLmn zN5KiJ#NjeV@T24u_>wQ1FVRKcyDT~(Bp98;Y18E9pg?zN=J+R{U<_WzItlUxJ}ObH zJmoc|aOf!*dgZ{4xt#;5KANwg#nd8pkfLU7219}LBO)AI6ajTvGsdiAbDaC3PYOl{ z8S?m5*%)RhS}&?41hZ{w#8DhDp~|HNF>-d60TbvNl`qd71gTkh^GD!WO#=e7RfbOp zHD&c!a(<-ji`QqcMcAYw8mG|ZHWueURx3$MY=FWVrh3W!jlR zN^6uGunGyld4~u&MSL#Q6|~v{!U_m%l^9ah&5;fzy`02EODW;7=l2+Jj=42>$Qj5q zr95a_9UVy%Zlb@%K-qbX^6diYo&w~5zxk4w{2DPO8(++6GaJCT1x#%qducDpKX-`J zN40=KZ2_SPOe7VqXtaocIT=yCZplZ~f(EB6td}g~KcG!Z23M@`E+a;{bg5IcS+Vz+xE`eq8h$*&!ZLT=1j`Cbhqo;EO4fCD2<)v6_KPj6N=8&!#d*3g*kmqznUdB+Eu^&WYB9(YEp32<+6Kc0IFVrz&G?xiy2+_RBHQFlk}uE0R;9QF zO!XFND{fVyjd%qtHYT!2w&cc?1(SAVyA5`mZTs!YgNl^qnMOg^w#N}l%mY1&3xy7# zY#21l$IyC{(OYk#B$)L#(LpOFoYH7eS*To@4Yk)7v!W*41!FBMUzU}x#S5^2+b-Z^ zxx1lQ0{AIZpX%yUvwZrd+kgDk%d;!ajTdnSk#tUlCOA8M=*HP(k3>qCw8p~m`9V|}QpKGd|qu#(<@nGINd z&~$pQk{gd5`Eh;FwX{Z)_{?SLR4qN6ZWheXb)!6)w8#=%sbm|KT;sVP8(RZI zqf%@*F~HwLl3 z9xy-OpmUaXn?Sb(tP?%SxV7gq1&bdw_+mcYPvs7UL6}kX>EM(723pDqzVky4_58eC zN#|yA$8d_j+BO=zT{qaZX>32OZK<^{HIS4V{TWX3m(O*Bdur2o-fE}8z6>;;H`;H= z#ly+{>Um=e(TxF*hwm$Z)s3NXP9x4bqajTR{>_{2{loFsx0k0^ciG>I|DANVFHa9= znYd57+q;{yyTkeT`~2qO>KDV$Up_gz`1~B3u!fQc@t>3KPhXvWdh`tF9uNFWE;MJq zyt_I5Xx9GKs~4pGhJeO8)Wxt5SFc{s(PiQsG59CYQ(XM)@)Gcd0zB*e^z7=I+lb`C zt0`ZL%K&P|azHkU<@%(%ef1KHTlDU9%H(ElU%jNVcnJj$BR?fhi-L#7_I0ACpAc&C zI1588sL@aOT8NMfa^?4Lu3uuSk<&k69wx4z0eB*&a43NNy}ZDI=-wn$DLd#fWfMIn zGZI-%!65*Xm7o6d;&wp)bOt{?`|R}9<=r2=x;*>%{NnJ7tFzl%y3-R~CKCNQ={~vm z{P$ntTwGjzp6R3;{>;JTIEJ~T%AYyd@I6|Z@Gu3C>46B7{>*{otDW%&=!$Xsr#Fo* zcW?hS{`l9A_CMZtZ~qO3{hLSo5BA;Lzj3tx z$M@aaf9q&(_TAfm`)L1r`|j<(!yo@H!~Q+~^*4|9Pxsy1fB$IzWZ%90TSxof-*<2S zHpBjdqy10!-P`~0X#aTMz5P2!`;YhC+rN9X|7zd8{g1fh-#gm>eBZtOkB|0$xbNQn zCrA79efRc1J=*`#zI*%k`QsmOKmRi>`JeNz|AKq=U-HBM>S+H5`|j;Oq(Q&^uaEYh z?7O%B4gdOYkM=kF?(Kiaul?_j_GkO&Pe2p}`|g{6 zjw}50{PEY0_FwM1Z~g`T_!p_4-~3DTqHq3X{`Id=&%XIHe)!jM3~%21?A6ub?&A7N z{OS3Fv+l0DdieFlXAges$EVNkP9EN!-&}twuFk#`AKctr-#pm=`1XrxHvxR59g;hkFP&H`{CUK^{~4> zriPzgoVt{pPs$EJ3qR9rcSzZ<{Q_~;H0~t;QFKMXUN8W zarWiW^)qwQeMu|l`k6g>^9K9>__O1$rx^O+!P&#F5pajSKl{P4``x=^b#(TFWAnRr z$8dCath?WO{25}7id`MkkK?Zox3?d>`03fr(^p6DA9~y;p52}NHpDmYeRh5GfKVka zuEhI?hwmTy^V8ek|MKdmH`g!EZpz@Uo?V$7oQ(L>&e24 zK0y&}lE|1f9jhSY*0Ix=62H^v;Cs@2{`qmi+XEu1+~uqO_Tu%~@95vXJ9_fLvpWeV z&-jsqlQ-`jE>CZ7#g9(EK3rej-rc-9++E*1xO@2Z-TB3Be|z`U<=OEU*B74()zOo~ z_2u==>ld?UNWQBFKR$hNarxEi@gET-tsZ}Le){rk)t#rW zF7Ga0US6Edd-~$^m#cogxVW0_1~cHF;47Z;(wo18@N&nWQ^efy=L9o%^zo}-{phs+ z(GNfR;G>`X@dpbu-3?!V^{b)Y9BaSzTX*IA1a)`x@vC3$_bc?>O@7P^WJKOge#{Fn zO7F(+BY1(^7oR^H9!ofxBl)g;YvB2A^{9#SH)p@RJG=T6sgjrY*M#?@aVk3O!qEhI z8KFlrOm{RlN8@yL8K*~6WOu|>2Xu5JB99hW?nV?IE%4h7*gKjdw#!&Knj))PqT;BE zvjywAdwADoTzAO0-zyy8>`U>Z(+5`%-<+R*adGweM~E{-XNFH``uO?val$7CE#sa-F&|-igfZ3hV?tDjnNuucZ5!>=3mgPrm%km?( z?~R>@lbmDao|ALF@5KLu{(zkOC)`_I-HmPlvm_P8xnCS{2VK?G)$i)+>MGNctOc)@ zIfL=!IN9Q&K5@?EH7^11O^Xi^WoQt6INLCsVM!FMJn5!Xwp8Y1Vs zvf)+sqcZzSCJub)PKb0igI9y7Z;G8VJq|K&ptf@0TPL2I(%QPs{%qKpv)0~EsC(FE z37eRH-p-sBPv`QzojIE`wLTBm&@*dx9AtxSm}kWf6%_b<gr+oGhE$`Dn8e^;0=;Ku~nYW;g)48R{wU-y9rLY2A0&wE^Q(>3^JITyUudqaTxd4Q$g^9k#P{vi>e_{s z795^E&u*<>*x1Cc$hS8yY^-dquad~KTWjZ=E3M{vl8)@w$|gkkBBP0*HY2a>I45*s zFEj~-0Z)cw81^KZDgs_!)#-@F2eoX$G14r7o>^QpVS^t>L1vK*wuH z3FLx0%ffhwfrm(}UFj`0@2suZiL`Ab(iR@ej-80)#nA~A7Z-}-s-z0`=&%YOP7a8i zpUm!3(|9I2a>Kx{L2kRY1oI4j){P~@YR3y~y*Gn%PF!f0QbWn31w@g7J>Se4(RjE| zlXC%ygot3x$P2Wh`|DXFi?0R~>YM9U9qKS6J8|VWX&eM$MiVn~E=5-3l{kn@qh?q$ zl1#N>Kmv9i#d(6u0&IR=F5tOYmIV9bjHb@X43qGf=WyYeo&TI%=4LA&Y z%wWuwx|wfon||{h&37np`XyG5z?ri4ccM7Zbc1uG@_Be4KPzf>xR8X z7VpMBHLYBtoRQ~toR#jK)L6Q-;@p`uo6C15t%KeQajV+gxMO?V%=J#W0vAOo#P9vjf2A|cdjHFPD+#!YKCd8E{syjvv zzLs?Uien+{F@|S=e<^Rf)M>WU>S2+>u&6uwSV&5?&VesNYTBTz55RRtO<~HVq6$DRN96-OPf4Z?&kaM? zh9qN56P@V@mcyAg{n-9lZ1t??M6-dLGU-ZLi+4az5M^!&Wqm-Cy0yj{(G18G6 z8Gs}@L7=%+Xfy1Ic>3Sn6OZ2RQMuKFd=t`|-WVkGz<{><@8}WtA-coO`{MRaxi5sa zE%EeD2(v$8>&qe|BDu-*g1g2rPJE-M?c*Q0HQ8Bp-fnCJ!@gm)Gh~DFLo&vo;FM&_ zevPcjg)MsMO(B9!fvfVmk+w@mxe6sy`xrT2x)==mHQ=wj@}`N$*4w(dR0EbP*5)w7 zErdksX7;GkMPV}wN}E~0H#4zTLuKdeX%S~At2@Th$|ZwjsFQzc$2s}n7q;=QzxrRF zHpmBm!+yPKkPm*&etpUyAN-8{dd(1P|BFG@ibFz@5|8+Nyo1>O=z|&W5%h67c=f&AtS#xjAi7s^j$E|uSc1y5Pt7zaKRk;`H<6M;s~-cGKE z(=TtV_NYpT9@UMP58N=^cfCWyA}iewe(}NIeDL!Re%4z-@k5fcghb6M{?txae)O!5 zcfNyagu(N&N#sQ1Fl;N0d8r9weePO;yB!fHiJ_bHgJ_R+(+iw3(h=GNT?XaUqtnv| z7BK&O@X-$l4^{BILxh;tTV_Fow@75!6|2@l3l^MW+ckvYap#8DFCi1&}|B@+qCr`Di!YSoU$PO}|XA5Y>3oLb|` zQ)|U0o*wmUlVKR8XSUc_|VMs6I|dl+d*{`1@*d>6;E(M z)d?=c(R?@D4a8LM{YJ?YhXcgqzOzv{n}TcW<{*%V;rwgilJY+$bz;C0}c#n zbPUU`KpF76O;LfKMWPBZzfjiFMZmB5)$$%MuD)cfTw1cLam(c*y6BW?zw)Af&bpx_ zXCLz#5e5`AQ&yQ}T&$J`E=PSZZ~@bnS`ej~8+oA2e=*?3G&R~T z83gT2M%2rwUrVRM{WydUt?iGqT0hQeM!m!C08DBzo1na)7j~)&I&MBxK_fT1_;fZ5 zuf#(r?$Z47pt)b#aZdJw$ZioYj8kg2NDxIdv0Ee_QAi#EQ+A6aG_+eY^5TwjVz{11 zqii{g4{2n;{fnCo;>5RG#E3_Ea*Aesc8gu)GK3lFN6rc0+aNB}NoJqS6dR&_G_t}2 zh;`DBy0q7gdk()PB>f~FkL-vfbQFTkXfPw;;v$F&h#K@9kq7J70a+#+800$TCQ;-v zBn6Q{9&-$Lm>Og|a`Y;ZapoBNfO0c&4Aw9P@l(fOZDWw_45`8?mOK|Zd9BGXfG_xU z*mMlmcm{dJF%lXY%VEg!j!3xlCRm#)tR5XAtAg9eQ^h92sPxX{oS( zV6ag_y%Ojj87LilCD5C{Lr^d*Lf-lz(xb`9P}AT48(9v$Tg>$SFJ(z(;Jwd?vdXYG zf52eFz%S)`pFzT~1o$Zf^!p{iUoe21PKTpXIlNYG;)Wp&wVK_3lfm}m<1C=XjGspa z(_s*nU~hdHVRzH8Z$$!F< zuG4ZFM_Xh`iyE4m#?e0f?B8OChjgUX2Vif$hOHMvhZljL{UQSn_T8kE4+krq1ZkF* zfNx;4yZfPAgnjepSYYU8rQ*JVG|P;9^B0_8Hcs3!6#K*r$NT9xD3kpL10Rn{`EaVH z12-wda18i?JB%a0lI*t`#vUzY#Z_oP-6X5bh|}SjVJYKxk)M(4(~6A0|1kr1M6&2| znXcmghNays;fi#%+}FO#$8=vCN)Jkh1=x4{eVXXhu=;*E+XDbOJ%2x6d2S}e`0xwA zVi?IV9;cb>4YW2N27rMpYgmcFXuONPov>Z7l>c2EVPOe6&R{^}$Q+g-Z@rCkei%gK zv<&?MgN{dG74R#3)$`nn62HzD>CDhGeN|+tVDsx(#r>e~1&LRt`Ar0m!;oersM0-Z zmonHrTqTZ^Qm*&@1^FDhVPDIG3(@7s*Y=QiaVZMps2|dU%uSN`xVVhIfs6gMdGL4t z4&i6fc=tE59Hxe;E(o`sy}1bQ{=F<|K9$$8M}U?2NbmkutM?f^eN|Te3~K+NwZIv? z{RqdcJ4(yj+`GS%JXIsSj$<&Q)wF+t%Um2E&h3WR-xQ1I*y}p zNosimhbJpyF4F5b`qSg;V*aUEj9(#7yz!}0K~-q4(2r7t<9Qbn%yix(Yk2598lE8&o4Ff}O)|tETe%f19r^W$GWk|C_uQs|tTx z)_%WGdzA71FO(XiaNrjpf6F1sKwpzy|CZP*N;@$}z$S~TwqeA011C##Z61j?aPmfb zb4k4Zi=2xy3i?7`(0r`7|4%%GyNMV}vcl@oG!3D9RLI-7lZ#wze^%jNe~XJfuhOWm z6a5MZap_`dAUAsto6|T+YJ7v{p@AqlSZ6 zPyRJaz8XYFMPi@BrRgbmSSsf=96fL=K1zb2UiY_=j_@D6XQzB?ScMc^;R zEI)KdBUkdm&g5U^Qs+4I;)Lmr^Stax|5YvpkCQS2Qur#DTjx^X8&Oz6f$g?jw5?d= ze~Xa=p2;Xl0hYfd0dt0aNXN$4Cw0EZ0%^*xg975Cqk1pK(LOMipw zj7!`9z2C@8W%2F9``?mKdba}p{(S{rg>di7xgNL3)V;6pV^JDJeLv393Rw>i>|ok6 z7w64?l8anLtKR<$61Rn*XS^htF0yXu^*I`G~5 z7fGXP82p`t&Y6=XLAQLY;&OlSRHdQd!LstW!fy|&wHZImVU;Jwdp{E*!7 z$_@M`7mcasj?+>R`F;s=rh2AkN#Ur*clXi}4!gT}fV=l;vDTEYn)$`+vvE*Z6LH{Q ziL;9B|IM$8tyaH$5a73!wU}mjeW5Q;xY=&2mlFbnTlMz14Eo7;c(LF~Xx~kaso$q1 zthe6fSILvYy@`N-N5CtYzyAgoDUSl5#!(gwX$2D3JkEil^pwnj-j~|oY>-eo2TM`p zo`v?sdEt$;;-?(1C7yEAzGH)13m(YeH4 z{|9BP%*Vo`*|qX^^2VF|R&zY6ZoSw4g(Gk_D{J%_K4gxgN-S<}f%S=#pdTNUfG7+F zL$^;=DBloq;~m2L9RqLfB&-DW=}%OU#clP zkn%M(<P(awplYEhhNi zIdLe7;%op0r6T8cMvQ;|6*rd~4Yb~2uwRSAP#MIP0mZS+V0eb{i-Q|rf54*$Esrgh z6F0zDs|x%rS7w(Xe99agnjT^aV#uCevefh4NF;2r&TzYh@xN~N93Ayc+NqH*fZyVZrz9^2O&#A8 z3>0>J2IaaUX6d8n!IwhDn;lr01PQ&ScU_)j;##KufYr7|clH90EM7NsUysjm>j zG2lNX!8YJO&1(Ej<%XnWQqISiW=6q5Kjdm*qcXK*f&TiJI3!Ee9GAGVwPYs#CKsv- zfdAljwNI!UA3Mo>TDg=c9fCfiXh%!H*R|`668H^GvsyYqy(uhN_N(Fd1iad6pI;OV zW1ogv%ZL`6Yd3iBuQ}YPOf8mlk!yNN9rKrkL)09E!olF)uebqIg_`@9!oor0;VG9G zzsKII85N1l2YeMEikS<-9L~h{5;;A!R*5;EMyU|a1Ux=h;8h?u4C7-R3NIJ%e`-qG zAnf6>s`lXq19O#t|0tHO!utY*qGmO&+5_Ig{Wq>QtHvcgF0JWoQT()c-;xFTLjuf; zn@fyVB_)QxrRvy*b1gn2VdpDMLy6FF)lOs zHylug{8B(lp!Z&v#&~z^K||<9~8nEN`4q9e@jJKXH$A!0+Fa zY-s6x>5(grBy>**Q+hHAEc*#9(Ep!rXTHwYTu&$SO>v8?Cx1(J zUs6<`{l{mqg`Wt9=&eEly@@CECtlG&&l2NbAThwAD{dr{#{yvzccM=DRk%ZaW#O1ZuvbKM=sSuXhI7|`rX<&59dGv<)_&kU-&4xbx^OP+m_?Lv)^Za>@H{Kt%JOZ$9;0#N6#CF8tsKA&Y9M- zQ#ac7)=Goq#q2^cy9XB!Wih+5m`UF`l*Q~GD6KK+lL;>;ZaT*0C%3QcTz%^4XP$lT z+V$NVH~(y}bL;urFTD8DpS$~>PY?Qo;FZI07{#NzNt%t1jwjPsbC)xhfrZNl7vrX2 z;j(1mn&-q#!NTPOWh=Pmk!zksBun@`lfAKRfKmCUwO&xuINH-J=`S=iHI1X~vZSwR zXlfcqyUCKisiCQ99PQ6o(zi4;HI1X~v7~o2G&PN*{W(keYYk0J6MN@?rF}tJDYZms z?(3QAVDm=eG}|{4rDJX+vST8pV{Rl?`+DY}f1AcZ5)Zezk41B1V{QF$vaz|g+N|G5 zpua@_MdW&>_8)#fh|KxbkAuwm>iWk)X5+%gQmM@g9}73<*ET;EG8Zm<9Aqx6e=KeD z`1-@O&5h*Z>gM92`Jkp=`*_CB`G;z1YX%eQ|9R(Y-!_zacxV7j*;;sln08}uKtB#I zw%}he-;QEu95%9;`;dCjd^^AT_#y++skCi{)pS)6Yl1+K)pYot^!E3%m9q z%lydLOmOlNUOfKlcu6qImiK6X3|2^hW)SxO^M3-JgTy`Lg!s>^iF=rh6OGiPVeapX zHijRUuXjEQMjZM|iOT2PQXe@-D#il)(Q%`+LzCd(Bjd4-J5b6m;OhhNQILa7q6S4S z3IpRIQRk0{EaTbPk6Y6bJx+p*mYeUvh&{5?f0&6`;NZWcy&s0#Ki{beF63mTIHOuh z%Oas;2Fn{8tB-G5=UUCx^|~1^Gg-^3W2mImVZlh5vSh1iw;)(htM&MW=7oz+xVRWz zY^^reFRWvUp2OnmFx9!CxQhYRRYoPYyIXkgdNXu_h!LS&ptvlR1(JA&*-81i&+QT%Ff&xp)< zaxu{&Cr55LhNxvcNUeQ$z)8+#wn+?&ATz*G=g4VV#CM=YUJT5Pc-(nA@z7~I84-_pXD1$d zWhbG9UC)DRfveRxq!*2`vAD=T8pm!DnZ|CMx2g=!Yt&5x0`o4hU?@xAc9c1phJ*+b z+{mxN#XlqjEP{*1U{n4tw4mOxb>eHj-;2?tNL-Gdvo;huArxjO$6$3`w8FvfH(q z_Vt<`Vok$oIULmDV!x4wfk#b0XP?V1pMl>LANWtU><$~PZU3rtX>g?JMn{D>%V64q@pi3i2Jebz_# zTN$AXt(oS0obq51tcrQ~{ek4NH zV1P+?Vu}4xCgltwqkc6f;Rh zOS5K~jOar$5zB{Uy3{ozFC`U{5Jm}snReWisbcm%JupLygfo&(9pQo8axQUfkwB7p z+xJU}2_vA}Bax&Tm%1`IJuL=Q<#C(!*y>R!nz$up$Nf0*Y4T*8W%2L@7M$n>YR0l@ zW34S(B%YC=b7pJA)A_A2t_lwcnfAwKrlLm>ae=s_p5N;)jygcf4gY>ZZ#ro{Vi@SCeo=w?ikadnCYZ{)DaP z#vx521LJP{GfM!W5HTN5L~ZPVFhX{WvAss^%BErFKe9QdPL6TK&0NxVn(cnYyzPq$ zAFA`V-)m2oox?`Pi8FS$4%t!0KGZ6FsMK{fa;CF9OmC6JeKuYVYve5J+~r|}Cn^`X zrA!zXAi_gIhE?1wm#zj$n$=jY+Hjm^wSjwt=fN6gX)IaQZI{19EZecHX~tizVR_oHGrJB197H8r%5o5 zXizcmgKo+i-jm&r4bPP*9;;$I%vZFKXh&Y+i-l-53+v7*4}J#o-55a}lnk^|J*zzu z8#EPxzry_bVG81M--*eg6O)M(lWnKj-p(1`77Xt?L3f)mysM8_Yf^W1*^tf0*A-`% zu}}7#-NrFEw4n(Pq|V|rUCWbMz-kuH?JDrTN4g_&rAK(MmTOk~s)%JBkAU~(aCx$P zMQmfcJf<1=23%Y;uWEtLAkk4Va(w2Ku#^EKqiHx6nc|{x)gqI+b4AQY&cUqj$mrC4 zGJzA3?5{&I!FvOjVy_&9K?k zQ(EpLsa+L+IfWctp<;aa+I_?7S?!QIT?L0}JzYw6A*@d^-J?B=9~!H(^{gH%ccPUG zoQApV9@1RCU0qz9(1KEiXIeEZGLe-!gx@HFEceNT&PbX|<+v}g5{LL^fe8nhMFM9p zVpuXHPIVx>fbFPHdUFI0!)T|+;IIZZOwUazKTX-O1DX?~%^p0o8HAsa00jDp5-dGn zFsVK+A!HdtP|mg-gG(=V>||_Ig|brOaJheAEH28UW{??Mp<^gY6<5ru0B7Cv~HAIc2v1<=mwU5hSs{uMj{7D9bEr)uEbMRmfpJ zPh&P^7jbHiZ8r@1i8~quULhykPbpas@SaM|TfDmBmGzP{ODtRliWaJDpX!Fuvu0}3 z4&x}s$*kn8xKEkQh(C2sj;LpM4X{QfjrH>_(m3B*?-6Fd40~nE?i%@rK^l*5oF|R- z#~)X4R#lu;gR~m!=T}K%a|4ldN;#=kW39QK)6$8l)E>Wp#AamNDPI6}nJ%^G_)`$o zQzrP2LX+J9!0%3McGDg?VcK{bjv*Go#nEOPI$;Z&Z6MsJBgRockDrVuw$ZFLYev0A z*UrUtgZ~Q2D4{7$j_BnSv>T@NB-1{(NuYIcqIh$f*sWt)I{>Jk!& z1ENV;$dHN0^6X?0e?|@{hM2nUj%;sAK-bb?N=*By00+@@X#d#`0!D6Rzm(wbqdxmg zG0(LiLU7Vy-4nH}QCjl{Pp{(K6qY|;)% zGdByo&QaeUcSw5F2N~7&rzA_J+cBtKC>SiHcGQ`X>ydL3jfeX*vDe5r3Sj(>jT!Mm znZB;3-*jdAhKAp9PC%1mpA6%XeLW&jj_rkH2m!%vx@3s)!mdX%0vL!4cpSX~4JaTU z(1}O<4@J6&=!G-Pi-Mur%~>|uDtxMp+NWfUO+DZ($z0lyS7 z__IW&Sg<5lL1ae!LL*l;rD!hulv@)v>SE(UeEE` zAoPduUlStU!@9Y+Xr}BVwUnrUMv*W)5v9nW^_u{b4mwWP01NVA49?|HTTP51#_KbNEJh!E z!oL{0uSW)uiCK<|TpW#u1b zTBSNI-X61;)$orJ{WpX|J8BlP3e5tI%nXEui0NZIT_Kq37lh)X9pcfe(P;Sm8i=QO z7Tkgz&_-d?gS~x0M&b;)<{?7uPx1C*>SUl|n#$pm2CsrS{np5d8Uyzzi25KSnNy}i zuxte}n=-?DX0RY}L8356o$eHc3%HnO*P_lVuGx*d&EDy0KJK`hm>hCw3!wP`6X1!% zj!j7%XNC}NI(;)F<~G?CXG~CPieKW_N*;6C%>(+_vYj{ z=#VRLTd`fvW6j7(6#LZf&j_d&NClJrz}&US9{k<5$TjE6;^N-cc0&fImu3%Jey4k- z*WK&cp7_DS%LfPMHPN?xMuSjfUL&JY`QeOo`f?Q4sA?7v!$QNxQJfFm`JG8< zO;22RQ`65?aX^<%hR|w5TLsaWqNdha@YL!FzXid8ITAxKGC?&AtfOfM>?bKrvdae< zO}4Zzb86XU))+@jZD~#|0!&)7(H0VLJUd)mR7;HLF={3mVTJ>vO&Nt2=$@4_9JB9S zI&?0bWa6f%UvH5nIb?;+EHkxc*nIKGg!O+~xgzT``}9;xh^K{w<0eqd*`^UJRO~t4 zR>r!1M*5vXXA0}I!4xhb;3`{aMS^?*0fQXgqwGe3X%zSaAaU(w#@$$6=k#NAmoBmQ8{wa1njp&3?(rCVg!>1N6d>YbiK6)j%TcwA|O*EIm_(+~s; znixHCy__}n-IR9N(#18IO8oR!Tr(1w0a(h=sH95@4$Otj$}^y)L$izfYELw4p2GNI zP0r#z=SurgDPp}->Dn63N#%Bf%!wGtE(+Tt?noD-55HEidcP_%bkyf+8) zxu@c+#g9ZTX$YuTzn z=}Z~P`=9*smHl8d53#`w00jKF90vV}sY3-aV9SdcF~6DaPcr&)UuBdnhl;+kwYW&( za!YJbnaegOxRQocw@)bk1gQu+A#iBI?lf_8u}ItwGzDnTZS|B%2_!AH^9MNjOS^s- ztdyE#1bfHe;Qh7L!4YDJQF5T=L5<-&trW#V)sid9SXq zFBad$#f1_~E|YD`tJld{>`D(aV1?(vyF35%)Z|jhRnJUGW?8H)gxyLZzp^5y*p4KX zwpJkiSCJy2!jjciGZgSq;%P@)=E#AuotP2H;C&#Nbn!LE>9Wr3392K@vSUdp7FLIB zNQ#o<^ zb0>~Kmc|Rye5Q=1a6l3&XuPJT){IrYHV96@C=}G1S)7O!kcEL~bBEvV6ym~b$)Y}b zB5ztXjS@WSMkiu7Pa2s3l4e>vv%R1guRiNJ(X6kb$H&Kwqhu>(`9Dj`>0mF$)~M zTpzX6w-k-rUK6Q;w!HDjwGhJvu3*3c?g<=Aa0@MQ6IH#r=Si$ znbjT85=ZqV$5Z%=oy!c zhaEmyy{gkiv&p8cJI2KorS0nA{RkQuyHK0YvY4SeGBf8=CVSdyyb=eIX@FG9*E&~U z>%=-oCz-xZK|+=<4nl{nuMSWOLy&nabqw%Kh3=5dRo4cn2yUmHN^Vg@udlz{hF?oX zyo_X*oJMnFV`F1+F}sLAH@6D;j1OOX%di2nwYj;8h^@`d^A&ja5N~yLbrtbeS6A06 z@IJ@!&YwTe@y?&WP=zOoUPjg!GXCDEV)MgK{eYtbgB%;UuHrRE1}-@=uwF*~)Vm7u z`STY9^7-@UE4gOKdOAC<$U&1Yl^kw8%rMHa+aJf4lpnFBYEYL|*eEf`3%q#tX;~zz z7|A++TgJs9jMhs=T?f>Siz^&rFI~j)Yd9ELNPj?7c>T2?pA0Ni zSi@)5;v%!>R9+w~E~;PLRDPXoGE4ak9s?m<;FU2fOT1%>^mk0Kon51id`ww0^2(rE zN380UL7mL=iWY?<2lxg963-Qn@}LS(>LAP#GN~6(ZiU-(kkbRHL{Ln?6$=OPk^}9; zRf7oiIv*?=#GSrfO=zp)`rn>Qn-Ns*!?nxtyfP2Xt!NRI(fMQqb_wxJx&}YNM)F<4 zLU4L2A4PCO4%ysrSXLj{wAB|B)l3A%M=Yhg2JvVDThOpe6_zEGnAd>&5~$l;XjotX zU_hV0-XZbIy{qA}SHA*R*i`7$yu?tN%gftJ7*iAquP9nash$a_8^E_rfUfG2yBO~T zR%7sY#eTsFQ|q*fhbZ~O#?UDy;wF;9Z4bZ22Z>8qX^1`H?!XL5N@8nE#}gJFY+uVY zM0*EtoP;4(d=()^!Z0x4ML|IV%z!Q`RZzS#aw_IWNeIG?}DaR*1o-uoUV1M8>02+k>l; z|1^~XPkRSuYFT*>r`u>Wa+*XV$5dRPW0N-AD!Ft#GEPsmgna{FC9kzol9pI-HTv4}n^LOpb2io*f&>7-Q$ChA&p%gS3|HscyfAGD&r(ENon@^U;+ zuzh7GLW|<@bkAvY= zfmZ5d7(#fthdDr6gw0hwKR4z8&op7oe30^2`CF(RH*BsYN9z}PO|RITnB8fQbVofj z2sr9golu}kPrBv_noDL4UhMVQr(3xli8LV@x)U%?u-UUW_UfYeS`0viq?t7%`<<%8 zjZ#{E5e*Z z{l#wlgGM~gMq}wHVwel#+kKWRh8K@H|I8a=AtSrM5bqOThHNps%hI}t_hyf7)E8jty!w~Y_K_%2eD-`~M+w#32rcXCG0_lhZ^JRW!tGXIW~X2*DMX3XlIh)X5C;26 zFdnL06_W4s5J^gK6I%u}@sx<9whXu8`I09Cn3|DEXU-c{eV2$UwyHxg$KWSObLA6v z?yL|4o*?zq$2t1xDobeQ4W{{ZXEY-_9p|Jl$GY5P5ZUjM#)S(P$j0g_F(%jD2{UEy z6=rl7jdQAUaO3x0Y0^GaF@;6qVal1DQAVq=zWI2mkWxPuv#ph~Oy=^W6(N}_j)_91 zwNi!~r9MGDOGT4yHg(qa9+a)s*jU{x=ewp>3A5=HQ*uc@iwhR782_BxNBV;H=$Y7B zqGw})TIOUet(BsOtBcIrq_CKNlx%|4V%pry`N9Pilq&{DUt3$R7+LwcQpmGb%1~ZO zyIrFcM|n@!@w6mSyudj(Yi@C)-Uu_ z89>d-l9l}8J12rEMM@uu`^h8ZYBkPp@LbnQxr(!rR8Mc9u-WWYZL{S$gF&3M;mMLX zq4TZHUe&g&6RIF0X={XZ0i&uR0E6XeiqYtI88Be7lv2D&;+d2rkylMp zI}N-0KSd%JFL_=x^XIwnL(G(QQDixTHa3+MHLDQEcs~3pH;))vTpHrox8kcwJQUdc zOAf^gy|TR21%t!H-H(rG^+;x*eK!$g9&fgK74nrrCmqCzI#vtADaTQ$=7Y09R3J(Y zbD|7XqFf+4Bc0BpJ=)-^4ZAfXFPB^!2=z!{3hV53xe}WynK+I0RdVR~bz|LN4$RhCs|>i_1mM~_Idlxhz`9}O{tC98Zi}?YDp`dMsMnqL z+7Bw%bGqP&Y;%>clI1_W?lw47=r+mf+T&!c*(7V5O|rh)WPk|(8msH1v4;P@NgC^` z3EvU*{YtTi{uT5DCMyGa@VVU(Njcb${QIve$E z)Q#+l_oasxxgy_}?#lP2MyuKUQ$u-RIw`#+_1HVoe)SvDD2}Kx6O#Q&3a>Q9!5trQ zGM@%l*yD>~5HaUEc2g8MndORsJ%{;=*y(ir9_d~sE+rxDIoHT-C!{Max(03$uJX}L zb}5;#i${;XVaS@&q&s7b}Qk=yfisMBnB=tYmVJ5=1x zyiCQQy4vl4|A=EMN7lP;f{sw%Vyd)EO(q*I#^eW`*KwBl>kXV*Te z%Pj_Rd`npeMozcaUin0Kf70_n10Oyn`2l4zI(DMRwQ1ixnY3)9X^<)YnXHQSY$|^N zyYV4iMoT5zXf~Sbn{;T*EQ_psVzTupMIc4Jl;)X5aMd=S9izFcu4m1xcIs5DoKt9E zq3#sU-W-plr2*nuB%P7xT;~Me`{0xL?GAfIdi@%E%{5^!+!^5Ij&eJ4H^bKu>{=dt z8FCj)u};!e?M3sEdIO-mKiwE8%#nXhU>xJ0U9wUz$An?5s94_c1((HZ!D1< zST-k6kypGHq7fK>^JkXZi8~xoA75Lt2NFReNSQmhDZBRy(rsZp_hdW)r*v>_4-12s z>^m7ua`4*)_Jx2kf-?MhWwbr#sBexe<~ehQQzSrv6CE6T2I)J~tx&92A+A@p^uQz_ zBrACSn>@{3_8sDtMUZy*a%CMl&$$gg`pp1dBOQtf$6Q31C#u6RyWotBNbg@=?sASf z@gnfA9nMHO@sQ~LuOdkbhBRIgaJcd5B0)&|cFJrfp)+H#G#_gFpWS#^m0 zn)|o1dGgFgo84J&2F{Oiw{K*-t+gmPOxZFgP+{rs!bCSJnMJl)I=a4S98s^^0;j+e z(L6U2-#h_BFFQbo%Ixtqr$2)yPtxNpnLyW0EHV+kGMi-EnQ-6Y@F25acP8?g)?s09 z!6Ca0#}>Hjne@1SD}8vV;osW3i;L!A!L<}8b1)7=!yTz!#qrv^r>EwXWoLV3 z)gp&{DFu-Y7Sb#5hI3AFtgzfonbBBfwlDt$BT4aSxZJNCU)bq0l%4f<#CPpt1?Z9P zVNY?66>pibYGmN-k+NIOJu$^pH<+b&%HUaiZ$^gGf|D+)%)G7V+(y0!nH1aBva7EX zt_1>vP&V2ucr{ja_izLvb=Qx?VhKK6wKs+Ovnp&0dBqUS$gK_|yGQ#wlM%C^!#JIJ zU``o{GmpI~f^Fu}HS=(qB7mj{m?P7T~l!az-YpT9-R_Zp=rjNETWsj-=_c@{GC0L}4OVd>34Cw4^Hz zTOXq1CNqMA!L@L!gYqA3z|IfWjS!Xtj9~K=TnutWK@|jBry7QBDo)CJFSEs!Hb!oe z(u6y$hbds^gh)Q2?0|?J+Kvf~eH)z6sJ=s<8Wfy|45zcRhu0DhCW^sBF<2-D2gP8Z z82l4Mbz;a*4DpF!Ix(nWt4u z(p(R$pcSU6RQo;DL_EP>u_Gc{f;riNpg6fHY*n3DJ4WhU39zN&LQ54kCUv_ARFROS z#12)reqNWYMr+juU)^Wz^58I-sE%%J>16z@9X~izOsoZHOz$5O*;s!x($}^PFp7)rScsvJ|3mdtXtuF1^-QI&9 zC>ix;W0Og0*<2&$#u_5blvy;nj6*-4KofoPObQbuzpKX2y#lymP8Dv`FipFS%9Dy{ z@-{_qqF&>cQu(YcURReA1zzcru26?Uvb@}7pXIApHMvkXy!9!RiZ?n+qH>jzb5cw! zm`sQyy+HkHx?-Cu`Yg*AFEk^y)U_+f*RGg32vZj=F@)6f6RuY=VLr9k4z^Fj_}B(v zTwlFZClx%d0)Yr(s*9wkk-|eeSiBBsLv?{@;%XQBQ^F3s%vCkju6CMa)xx!IVr&^; zeChc{JJt_WVcl3po%qNV5x3JeZ7{A`xPdZ9`>0H)<_PjhmeMl|6ZW#jmD&fV=lbE_ zodhYK|Lcv7b28M`=q$`-1#`L4YPH%XcaL(ZvAO}0oU$F11{@2qwd};gH9ga1D7umU znM?|Gp2}^V@i0Aerzv{vKXZSH33Gp9kE(VJj|2TGV9J4ge$ZqW5r2Hnw0&)=o?EMb zw|WI_K)#(?q_8id)49pAxQ7OHYiUnZ=V0}Q*e+VM4TA`_YJ-T$#siRII3t*8aG^_w zhHb1h*!viKfrk&Fm{S>Ux%<3l`f?Iy7-Wb~AYsNXQP`|vIP>;rerAqHNMh+xW&YVZ zQm_ierjJrABbDX_KJS@lp6MeJD1w8K33fZGmLpeQ_or$PL4WbqVwTIC%5KN((#DXD zj2?-gmnDIzN`M6HU4UqCsiNk2@$m-p>$er1A(;f0tz}_P8)-qAx@AUAz#d|u8W^61 zSaucJfKfCbOdy^^AO-?NV+lM3ZJCkcWz|*rnChhW_L2MPyWc_L3*fE{*N#1EHfW|ekx}YQ;p3&ePp`a2?oq=Bd!L7~E zW;0D4P-Z{PT<=f}Ls)lHn&pRj_;{p>RgA4x4Xf#F1tvhrLbp<<(==ntP95BZ zxs=D*WxiOUMPe>6!}v~7U3BbD)2A65o$;tM-iOqYo6snGCKV|yg13R}*LVch1t}=t znN(sInNh|vcopV6@C!NQBSb!!g24llcEB|RqP4c*uFnohI^HkCLjDT+VY@y>mcSC` zf!*yt+~mr~!f3d!4g~mo2u0na3~E-w!;R=>&zgVYDeUDW(62f4{k-T*5Y%s-f$PV| zY)xOK!& z28(db%Lil+yOqBW<}i?*3XcKfh=(~?&QcGJzD#y(+?>oTZ|`XHb0m%{!)uHcrE zJ5xLfbdc*O20R2S2qu*jjJzvE((-qY76J~|7Vg=#xBM{5-rUJsm%?8IKyI4 zVROlmtZ;t@!`NCQz!75odd32j7llHH0AX=LTWPQg+%cDg}NhR;-^X67EKGnf^gbE|J!JX(P8 zR@e5?9pS=m-%R0|v*n>!$y%AEpfyDx9HbM!?zFfA^xGT-ql=<_*X1N}r{*fU^n?rY zhnQWx8JTul4~x2B8qR6MXatc@CpW<7^`+&O1+_3PUb=j{2oTMHkqTEaGNDL3bQZu) z+ON0Tle|$TfD#;-*E?p~o%G1avQ7@2g%6%+J>LX@P zDq_QDam|Z|qmX8_=GL~a;9k=(2qV*;cKbc8@h3gzj{flDD8Lt52aVQ}9CvZVY{FOz zLhIICaNAvbVhQuM(P(_HV~)s_P>bw3)f?mX**jyKkE30SkH=Z~r>ihWw&Vb_0}PJI zR3k9JxsO_FcILFs)3|X7I0(W}UJf#C7-4^G!!yAAw(pMY#_9&#U}gMw zZr9DT0o97Z850KKhM^!k`u?*qyWLIVtb-YF~jr9rUOpHHX_*3^IT~ zKk1Y7AWrBWsKfJ`@M_dsydto8D~E5-XKFT8tj)JuZ3jH#TJk}M8oe=Ok*b`V229D% zJ+4_?(Vsm)t*@%iMUZ8#(hsT?=x84kp#nV@Ky|&R=Pxt7Ww^8k&cLoo7~ewVP%w6C zTv(RzjYTYE2v5v|@HNjAlIQriz&k+XF;n0Do}n*e?nR?Hw|7mpGeQ-l19|2tz4|6^ zxrO=4^p4_#13cz78%*m&qWO}2B}aTh3)%j_4O3cC5W4*e=@C0$x7dqj?F`08kC2@7 zVarn=X{gQ{pP~eHlpY8#hG!4V%8@7X>O(Io4?S=)&GqW+J$J<*I@3=KA4N)eFy+-Y zlyaJ)lYu?qBb;VMcqXMa2{WT*>Wh41hC8+ZkA=RHp>coCdwel3JXFUq`U5}=@&OvUai`|O>0pcEl1-aO#-jx^3YB2f&$%SU2LA7 z`j?zmtF_*0wdRmH4zfWl;6ZcQBau-Y2r9zK=tXC9V`FV&YviDPbOY{Zx4Gj=)3f@Wl^cP#r)itZWvAMPi&eMxss18pic8_M_NPJYXEzFPR z4X6yhE};10zyd!a1uFsRicLzV#5bKdZ`w39dIHc8FjUxQ6nqR%l0aj%?!u*3&0A^Kl-4qjWB7lE8Y% zR^*ld;iI--qVF8#wriFQ8JcG=g+6@jDVZmgaR}n=GUwjJ#Vnc{yh5(nX*1S!1o@7?=K7(P8fa`1zQA6g0(DHD-0 zDW!xo)9LfO5FGDCD5e@Say->9tGE(nm zc@%YP@Vq*S!&*x3j%ftKEL9#Qk!LzuaePjW;t^Zg6c6}vdOGa(s|uIoNVU00%#}Ae z#2u6Q6XV6lPEn=Rr&#IMa8F&-3)crMp7q_q*Dl24h%$0^%#rk>1YN@T1S$acr; zOMt9LxYmQUXl<0xg8;5a3i5VUlWNmW&Ney89-=|#U0$Eny37QwJfvZxdZ;-VKhhiw z)W}Rt=C-!m?e*GO<*o>Kizi0gV(y%)xD4dP`xAqE=$*H_o`8Q>rvxV+IBCYssxiOEaMb$rAc&YLnqjr`2I4%jXV`r4 z@n?B6@kx3)>F3L53NC9!)UebdQrQh7T24tezAVpB(MwBKZ6JpQ_`|QD!RqSf&F85zILyxCs#b~tJ#kSWL z$k=(NW9DMh;nd97EB4|#NR^irAGJC1&7G7t_dj~Oz`3hp@`hEZh2{y1&BN=Uj5(MK zm^rLWjUS>lnTL&Zj)&2H#0(>O&B^Qz3C3iZ@Qn4xStB@i|5?z zVR_As{2G|i)&5Rh= z-5^@tqy2FRuN6ZQ!~NU~1Jh%EVN=yD{bXwTumD)ZpOI^wif%4Ed69)cGqa(Rmjw7T zvNJuC+iNVasKS+gz+-L1LmTrWVjVnTcs)MCn8=sI;tfTkA(}E zd<9pn=s{~Sa2n0#1@f4*u2Y|ux6Ta)Gx92gV?V`{(Gi*j-MN#0;Lizl26nd${tIX9)e&#QS~dzdjSt`a0eHhOurm&wwY4=J^`?UQLxzg37e$7RjZMy17YtvK!4N!Ap?5Rm!!LXf zx%$HQ8CM^E;RgocU64;vAk1@-LuYgIJSW=Ai6$D+zve`L$cg@F4$-87=$$*^K^Vu0 zp#9zht7rb8=R=6^t49wJDljdoalGwFSL-e%yEON0(nR3^=8b7a%O15>%#fbj0})|D9go&`={ZOsFFEmi z=@}yPy>!kgN!)GjI&VT(R+nEQFH^7%3=Yh`jM{>=I0lsE-Q}y`*iMlmCiGm3u32P{ zI*;v`eN~bn~!9ZP0>46O7Vb(}oK8@RrDZZK#Iyk`!~5qXNlmJ*g?NF5V#mtAVDtXAY0 zQplo}rZD4IFjJ9zHYYnyBJ}3-q!X9Ud-CMa&(3^-iIzPDM+6<3Kg4{Q&d8He%zVJ< zW;hO+`=EZ-BTwpwn;E%s;9O{uYX=VaHh%SBzUx8f>JHb?6HkoVjHJ+6V(@uqxQ&bo zviEuu{;y`#gR=!~={K_I6hVwu%||F0FNfBQJX!RSD?%eGJ;IuYDV%qwa4VdSnYr+} zqC$Y&ni6(UF9A|@F^WooWtNL)_VjL&X&4sqz@(LooFOan@XBfCL- zG9?f?TAn|o7fPeqxUc~(6iDA`Tv%IM2`xM4C3KTMWxT){sea|aI`?ea#g(%M<>g;k zu&*a^#&UM>aF6h_xN5Nn7r;~tI09`gqee#XgG{j>m_)`-Z&^LHpq28HZb2)aUGekl zqKrm!V-s-rsy3=Py!jSEhoByD{UdNciB3WLBpHYNxB0;Sucy{IIElYJb-IR$Co(Qx zfvdP&Mk7WSppJ}VkuVL=mMtZpcp^q@3 zjp#xc(FG~O#4*AosUF#eZn2t5wjz^y9JB7UxLcU|6L8oDXQ?F^BRJ}kP=rp)nl zW0kZT7szU3ovii9^VJ?+;T8#|*+oT`&T@hCJ!30#ayGaecqvEjE66`FFg$S1t3}lF z=F9LT>hx4i+GbDFMac3g;|!b_G3JV{!>@J}?^z!52<_c&%)|C^ND3)JH)_Vs)lkTg=ESXWzigKgFIa z9$$&?Jl<@Pk+ZQ<%r(kx(qv~Sq$ZGFqh*f-bq~C(%CzaqMzeX&C#&bC%OhF;%fND< zfE^I$`L64nfMCPi*V|8a*d+I_z}&E($FE!Qb(j0}wVzFiH%_y7*vZi@PYFB+U~aZB z<(1BiT<$Y-v;CkS8up3wUx1Dl#9D-J0p}sCGKBr0KNn+7keG|HE@&hw0{8HsvoRMV z=VLBP&d6L8$;nW~U~k`bKIXu4F6JQQJj_9m9B6F?$0nVDYH(hDH9RlA8ooZ8k>@)9 z8%W9(A|otjn&1cvmM$#*cgVO^0&GG4KGmggRqB6!?g`+^1I`2Lcf;uA&%s}Ass^yq zcYLG=?|rUAxGA9wQ!KXYt)gk1lsI9N#$2#Tqpcjq8 z$oD3b=OMz@nLDZ`N{)izer~qg?X`LK1y&?`BMmx0=J#6AWqz;4EA2{WPT=kRAw4D) z4Ym)^tdaZNwC926zHKW;>*SWLFHn;=ld@@dv5n@({*<25f^tbicap=v0!hyG>kzO3 zqg9}{w35XAIyrbp#4cu;UB?jFE1C- zNdU&0)MM?=83s%|Ufl)T){-f8v90DcrT(^rzmNtfUx*09vO_-G*%y0sX7i{ya~v46 zK`%{_i{5caSIC}X;xpIgV090ki@^~Rd#o6#j};?0qy_2q!1qJC6*>z|2p^IQ_Wkzzai^22XIVUR~BjR!zKUFbbf-KqsuDYHRkIhV0pl88J%5CU^J)(d(6p&g`_>^}Rls;|5>_t^7x#;nW zn?6>J^(fZO>dU%`PRXNm96B7A_5POr{4fVtcGm7!Hb{a!Lt=8Mw1_BZCYM~c!SqYs zFNHt3=nOy5IOxhgk@8N&eN5hyoDtLkx=+S*Xa{F*OG%=bs$++Z#W ziWo^5Lt1ASqD-CP4;o!B2L*4?Ei^+ftmGkV9mI3WzUR2~#gv0gvlWjs!wTm{j6($Q zdnGQ!itdrQM<(sAYb7SB1CE;KM0=86i5L%~0eFrQv8nbV^8}xu*o{pxj)KfKMwtOV zg~>>Ru5EBIogjEBU2~|HzU|nFSEf}PTi+25|LYOAjrQxKws^}4o-Tr@e~m{O>aVQU zeeAZw;w5DNTnv$vZtg(X&h6YngIl>`4avkhPa5S*&2NJ@E|5+VW0MOP(Vb3cCJAKZ>CCfJ00n#8cD{5vd5-k0-g8@?ED% z{$J+a{JV|g${+ptJAVaO_Rwge2mz$1rJ)urk)o}brahD`I{^`=+1&u!Y;;5DhC~>| z97}fMHT%BrUb5Orl-SPVbF!SwnaT6~4dUx{*rqZWY(cqo4+d;7?zG|n5>poV_g=+REbH$Re(l5TlTj%)OdUD44hlh$DaNzT} z(8>q*%o%)Jv-sfJ$H^gWKFykl*=#jF#G%{a@2Hc$9`64+qSytxkZm01u__>Jk4*)_CQu*!>7Qy{LTgC3yQmL;r_ zNxFR0Ny{i~@ogCbs8V3a3%E*FU}9#M{V+-pE(;86_gvrZ0Hgz)?{__+0xB>Qw~vqp zT%%4;g{?Bv(tr?=d@<7^<2pYr?oQPApMgu+3Av*+*=Y$Nv-LPQ+f0jNJITQA`=|}A z=O)`vAbO?_h;}$(%Fpdc#0!}}$qo&vEX;)!*n;GDb^=LZdML3&oa8S-u0#OMghg6Y zafZ61Rj@G$?UqfMW{FfHkT5ObLQx_WVP-Wmr)sURcL#mHG`S;>CDcW3r6_{yNduAm z;*vq{k%KyeUITo+L--y%WVCL>%nS{t!3c?EoV3l(XM2{L?%f#*WSFp+2mew9=E`#BBz zdI36>%xugNd*#(_rQ#Y751Vj7+p?Snz{>=+X40|(gT`Q39zSAk5Ld6~MaIz0Vbg0_ zih1wNj)vgu6=D+PaFT&vT;rbMHluk-36e~6$`9Du*;Oc z5#~Z2C9f1f2sL(e`x+UWn9SI^3e}alMjXKlwijMykKW^wV~3?}uQZ4eN|%|zRFSvf zSuJgbkL~bhJ1^ZidoBT^Nb_|=F4xj;j(epIwh^gw{!YB>_ZVL6xzIfa@A9TE&}Sot zHXG>Rv~dCWtV8WV5lI_sIyAnp`?$}D$ znXm}>y9ZZ_N5%f0;nG@rDYy~?6nPk8o%eP`4Z6b3^6_V&%LS`ICO-$A$D{=Spxc#lO^a&7Ng z$%%qNH;hYgt?9RY&qceuJ6>so{d>#>(mK8WdTeb!p1x0Oqt}(6zEL72toC!8IO^ z@-LTxBY~dN0&H^LndLf=SpcweZ-~`FAe67t;?*PzO1@dRfFyP&HrM5vkWOI#hD)BT zlQ6nj#|gtF%Mv1~ugEhNe=5cC*sJ z5O7my9~J1M8K^%MPPpvYwU*{OOguiv8<20xIcDX@_oRBARCZ)a21fRsW!I`MoIH7I zuDo|Fi+sa2ek<05{8m=Uvhv)ss6O_DhFM>j>(C8rajrvGt)!}UnYk6ZX;n|otoBKl6aPZ|xgy|13-bYZa@yuw>94*L3YgvAIV5c-4+~ zJlA|6Y`Xo{m@Oi+43b19_Bs@+IE*b z43D^KY@nk@1ztNg4@DwENZ=rxaZws?QP*#aGI*a>+wOh6l(seC6@m>FOYz;88XFz+aW&ryi;LO|RT%-@A`r6XCc``|D`vLw0@VLjjG>9UF33f1e`b*ASQ@a_h zRKgUC9W=79d7zcPzdst&^VUqQ(N$JmHo&7kY2X&){QiD<)64JzM=>;zhqwPNP^r)2 z=49KKfv3RicggD+^f9iYy$MTR7d9h2UnV24zn^t8`JC2CtbFig{%~dz7e_py?IcrX zkVNnuJD5*v$Q!HCPI3>eYX+6BMXzSVVt@9E*GW=OhBRyucpiSjE6)#)EpTbL#9Etw z%4-BLz+`Yy%5(6r1R2c-iIH-vofK{c#A!oT4aK72w4t)fXoN|nLUZk32Qi?Ta&*>m z494S)L=1*$@lZka6WTVniqT5Jw=Eub=q1EH3gr^hhN+^2A6%cn~dxqr;{YiZw>GQOoPR52gIoyMZ5^n6? zVNbcxhn@o5brR*|V`Q)w^fy-*=QTW5hIg2+gFRGSa$U~CvBR0ZMVpraa9RpLN_nWJ zOD~5lV@xk!vPOego%%nF}<4ImuD=J<%Pi#ml?Dp-K0O?2?i*Y z8%zz@4d&$!{S`suhgbQR{=ibX=Oc}74o z2`n{ek=5LJaP%+U#+2kfro?!WXE?iV;r7P%s!8AP0@m%ZX6&}O^u~rUJ6jwLCeN7A z4H0cze8fy^osJ4y+nR&K5}}u^dgJmLTW&coS1Lx}RjkYZy08pp!l61~m6c4Wh3q+S z`NK=ZHaSzuWTT#Oae$7U?0_BlL$c#0%%`5C4^IQn&C?Qs1M=aipv0+pSU9wgF7BiV z0r0KdMMYz`Vr_V-iMq43Wj^PcfDDPA8(z+^Bn0CVvPp;>4|{+Uw&$HuVl?)=O2xo4 zq1W8=RLhjhd=Qw-r&(()%bskC&dt{pwXZr}L1*np*LY8LWXGVpaM=c9xM+S$WrBt+ zgAON3JM4<&@RX~}buc@r-)HI*auT-8it@=BDKqGBOdlC$*0@Bx_Y}O@%+9XV0IpkE z0}F!N2^WhJBSKmr4AS7(mwSPqfK{!HNZ2yy(-B_O`HE3N@mdosv)#Y>v7NF^$H+e0 z%+v~Q>>~9oCs};qm52;-- zIdKhPxG_yy_+4)%-FDE?J~i9$J)TlE;t3cmNUm7@%F44w-K|1 z+fo05?d+6gi*KeSS-0wq^)upjy0Kod77Q+HcqJ)sg1nr(`-Tf*a9tA@;Hu5EhRyE9 zJ^ zY#&5PF>gTrCmf~N`Mty1{EUSfk@!=Q!}(KScZ`Ax<&kP zabUP?Q=x}TcOq1hCfO%x4D(1aOft^k2|XU}hS9Z9z63!@&>CWiR9wKNK&#w1=|qKZ z0y8yr@({-Vq{(S`q84*kK;iyhPECd`TQamWG89+su`#)^yLQqCyDX$9sclJ}m(*2B zU6vFh=F+%xY2>*y_FNi$E{#7|U<@H^?x2)dBNm#O{^Hq~3~|9AExIjTnh34XqUWWH zKvo!&7QHH6_YqN`MK3GiGEmdwrev-#H2_irl)yDaXn|>4-zpRnn5nY|pk`6O499HB zP7{Y0%5#b0AT}BJjx#5PDW!(0-)2??G|`MmdpTv0%y@elDY70>fkcNMk?P|tUeb@wPBhx_L3&Q>*kkSTsTiVo)%3bsk5aNzu zFCvJ(bm7z;^m~9moIFpHK$&xCLy0py!;WU&rd*A zl<*l5KG#eM39F$=s-$2lx~pd5Okuxsf`F$ee*Bu!O6DWOyUCi}cVJfh>O&BRZZT8{ zpJq|)w8ijD%7v8@J_MT+4BwAi%CWM*D!s@^oH#$Gc8!9ACObZQ6ONBXJH$jeQ{H{M z!g)bZO555~jfvl7t9n-kLODZ_hc>6yLPuq8tbQmv@cRFsY+qSDtgbwFtTKJ%k}SiK z^1TQ$hGE2nR-~mxA$B;bjfo6{(u->7tgUoaMx8%QX~M)uF?l8(VE2~SCeYR&Pl3lO zv4>w=dH{g{j_JV2k{4d}`w_0e#1K;Ik94euhnkRm8b}4l0x?Ktbux4hk+?6=965^i z0B!~ZdS<$DDSp;gidlkEqJ8KTv{SJcuZ!};Mo>Y6@$w-jz0Q$4AD;>Su{tyCqenW` z9Xo#HTKH%`>UsSHWW6#)+lWf>z}ZoY23ws#Sgv-gM>=Q=$p((O0I7hy>y3p;YhlPS zE{ohpq!Lufm{13F0pCFZKmon8YlZ0nh3?@s zS00E*>oX|-Tm^Q69m-7gANJ#}jRMVj*-Pl^xuxwPlR+Gj3QGhlwkx+popDC#Lg|QV z#Y0wW_(8!$&?DiU`C`s~JxZLQ4O18jU=gmIzF?*h4L)G(-(F-_i+qv6V4mOJ#$5+0 zxotD`n<#KoH)gQ4-M4q88-8HOF1kSkW|5DmdT>w{4cNp^cKQrQ4oE+dB+mrMFzR=? z8D98|+iI|FNjgdxSsaYOW#?IBNhU0n^J*1ky{1`}7d?Cu>#lIMHpLBM3pg1?KR+HD%cx^8b}wjR^V54EAR~PO`8|f#^OylZS^mzDYvl;$F-;c z_9JW9UKByC8^`6lR0C6mY=1nR4@50CM)1cis^`py)#MJyJ0I^Byi4%D$GaKytJ^X3 zd{|eYD4_jFh;tT3M#V!mF9u^PMA(9y(0>iA1v(Z(T(0=C6X={(coi@PUFipPgl-(hxpVh@H}MXoXeZJ!?t%+^X*`GZdh*0odQG7cV`!e(s|tM#Ci+ z?Ztz=OUp|A(PcTbI9fOh&JViGnI*4!aBqOhP2oswPX1)ZcXPNE5zHP1GV3GEn$c}N%#-xx|+HAxyKJXOLiamT9B-6KH& zv1;wn6}r)w)S*Dviue5`tII}W43vwPS^X0s! zVbFEJOzO;+d%|k#28*(RQ3`yyILw+Qe2vEHhX)tZ<6>qTMQ|ZQ?zvXv8FSD1J&qkB z9|$)srRGXa8k>SS)up-e%KWB5H&Pm8U;e+TR<7jP0ULtSjW8FSvoM^4;#w8vgbxkc zU}7*6N6Rvb$YlFv;CJh$8bzIFm3R}hH42hjFehcSz-~!BdReYEh+((NAlOioFz|BN zkbwt~aaknzvJ#it9spwI7@Y@=RHpIe%NbF4!{ktZYI!c_;2h1%6N;0@J-j>;u(L=^ za*}as5V&pzUN#QQz##It+A`>6hH2yVGHYXAPy}Ofj2gDoB?fiVMFb&h7~EjGgcw=G zUYPh3F=vCkP!B*_gzlPLUj$fWX3c3FlH3!pCNrtQs9RWoomqex;peMloX-b8V7b z6tVZ1fI`SzVNWVhi$wJFwRCF>pG%>6o#{}89AM4C(({i{B4_4G+T*wi#!DSBYoXChoQtq}NMgkUHP)SN|ZP`iGlfk#P&=5f8dzTN$ z$*3@QegMT2T7W<=GzQ~(u&ZK*l)-c-+^iA-H04W(DOP8JbfkT-x|=a*+i2K4N>#zP zuKRLEiB$A2&M=GyC!R7|Vl_xMgOqtPC_a_A%&u!u@LfH469czIP`;5gbKu~Qhkeh9 zIw4HgCEh7YPSow%pzk|Agkhqxy>y$Ymo3p*ng+)ckp@nb?U?E*PA*LxDFY!ma5gpr znoh!IOy#gP9hwd%L^F8CGkcUzu_&66ITU^*i*Mrfv;%g*kZ~q-=sWMbjoV^IZ5lK1 z5k_zW$AQ8S{6?P0mdo%)tGgezL3$>wd32Ru!aF+=%5M@jEZ7VojeszNAq95~n4o@Z zu3bVWDU(8qNJN}jVho3}OJY&X$Pxos?}5C0%%AnY3{)DFnt3ZDI|Cz!6%v8c(U}jm ztA*NCLmh1lB4Y|hqSh~XbExu_e7ShSPj<{ma!lO3u6C?u+R*$BMBFn_{a&F(*E^ae zF}_g(lk@^WMR|J%NH`i=AxAKWU}gyS5YvZ_aLV=oxL4h^$vMc!v<>=&1zE~*Z3%n za)4Iq@DB6Co6S^ED#kyorj#jSeTR1sk;C|~l}t^r2$?Q7`uMQR47A%??{+VgCFC5d zvLP+^;W%)tKz8mU_Z_ho#uNLFBl}Kpv=tJ^(~-In44`LnSIDVhyN05+J?O=QZL(Yj zG|C=$cuLADEmY_lLVf{_SE$=Ku2qUUk(G7OV>>8|{|=Y{a( z3UQJmd)xd7h{B2w+0~dsU`LRl!w#E%{K!?Wzg%{vUMIEvew;wk>|S&#`mel1+V%Rv zj$E}~c(ufCl&Dh`34$nCAzg1}FtSrjV8DuYZr`GKz;T$X^@_Zwo>s5;==BPYUa#7; zdQo4TLyLfcW!sT1+e(q{Aav0j1{fnxKsuI(_|O{HEo8z%5fgmI1oIA>#uZJoQ1JyG zz0Z}%rdg)vZ!nt%u{2kK=E@h^ShwLiME)TDV3dV9O-I~K-o{)n;TE>BGP|)vH zmH}lR$n5OX4Lqj9KJNm7QlGrle2dU0S!K*)A7_P;(AE^{!9g6gx%ipvbKV1&wDoSM z@3l3NANVf1hDcYrK_Bj?qQ2kpLwqH@y+={8y{xy`gv^#^NYtnf`hjKwj0tG@@nii# zoOo_|#5et>C@CHE12Y;M%UX3*&VdU+uEJyI;~|)dF#*h@-?fv+LvC%?b62`#}uPE+)hiRn9C7$FZp4d0N!cTF75dH`(<`Dx#O2f z7mXUiePsRyk=35%&W)i>ZfW57^qm_EaVM=?(5!GPd}y0u*McVX$EoGTiLHf+OVOza zGz$Z()(E6s<3=EK;bO~g2CW8Ky!&@}9**H83R`bGc6>j9mO=dm75zZ$*jaz#$0+z~ z#$$HDERamOUtU^)5)bFT1N_WcH_s39F9R!y$f|P+ML~uh5Fn5in(0 z5pt3QkB97ts82wuy#MsEBjFap?1*7$Oqk&LfKaVYWh^T}X*8B4-C%`@qVTVat|TvU zgmU%;OXVT6Vc))XH?v{!nMVbrh761s z-*l_KTNoP}$9D_kvBomFb?m~}ygeCYWlmLJ)&S3%fr)+Qk~Ak-JYTUV)u-sl{QXP6KKI}ljC=VmS{i#6=#Q0z!#{5K$e4qCA1h-*22W|()YB@>m7DhbGp*6W*f>`8 z_B^M|M8Rgl3F6>*fI>UbU^NxIIy1X{wbI>U>FR#^e~ zl4}PEF&%4HUB;Nv7&EdSZI^d7i#6O*j2Yy;k|?nQ;U8=M`6WZ`L%ZG(yAYIZN(UN` zIf}&O1D<1X>=Vb@qmJdsSN&rjug*2MwvM%q!P`E1#e;3e_HvCn)xeIEi$W8wN(_UW zx0!ab$aP*gW$dK~$DF@vx5ExVqLvxai-h^SfGSJ`5w5;t?u|`<;&CN6tf$S3DD=Xw z%o2v~>Q$8t<>l|}Y?+J5D84i?=0mZ#K};;W8Yg0L&>gnSLKii)4H#B@W88=^bdX}@ zMZj(Dn8$bY4IvH-9p~}|xRdQWu;>K|O>b$WENdv`R(%>zKPcxn{+(dh+aYNAGkX$- zfx>bXlV^sZz!sF1nZVPikf(m`$bFS73qs{1qv%Y|%{75oQYAuUdA%_>La*K)xe9U9 zP)~TEy)&L*COz&uQ0utwd8EO4 zID5(wtn!=n7TT@{U8#t@=iritjswyNmdi0%jhuWWf}VC6jU_xD`UxBb*X_r=C+~|( zq~cddi4WeGDWi1MWX=Sgw~Pz;V^T5lU06h_W(c1o)BiL9h4-XfY9hznxNLB z+ezjKst}VsmfJnDTn=-f&7NjMkY>>?g+*^rMNbUFoanEo!zWTbY#Wg(09I8$MKzVO zLQd3YMqu+sf6>%$3gD5&E{??OL?nR2BZ(&-OvD)$ff15~KW8ZTli9)&&^2W@X#iZF z6pGkVa#am-yQ>v9_L#Hqh^vs~70eshONI1nrp>WCFO&H?G0A+bx|EkQ6_)?}3STrP zE*HYwAj;on7Yu3nBOOk#)4lgj6o89fLlhY%eJ9WMTwpp7cfk)c?!iEJimT<@2|>6aq@A#)HEtc{4cY{nXbz(hiQUExd!YWPN@XN|Zn4{R+=3Gn1+v_H1}&Lh1`3@o%xr}-|< z5BYSDxZR;Rd3$KVI#-ZwUJ#cTq;neuS(sXohZZbdh`8p5@G{$ubrBbskU>`=C=!VanMfREqH){orBDd9 zMLl@LM#S!bOSFL#zmgHcb`EG}#1qt*K%STB*U!$*sDMi6hcrO&3j^=$X1GkPi+E%_ z3S(-|a+V1Q5iZPcdYwUFgV+sx*X1`I^1IeDOOx&BA|DvCzn^gfM+2dYnMVqRzymVT zV+;pdLL~6gk42@aa2J-6=Sh1)CYoywvgQ)t0?slC?0(0a2N`$V3#jz9vGP85(YNtG`V7*DD>@1T7Kn^D$iP&&IJjK$~G(^GB+U1_kaqEX3uW8)0(4gAV|12FEnVHx%$6c4++shb-u8n7K4 z+;tY`wE}su`Jx7R{e0h4c1v089*r291^<9hP0(wDn{?GM%d2RBfz4K;H(3OXhQbDzP~n$EJ($5(4THMIm|h#` zQx7|h^1-YK9f3;Tx(`~PFmRYkDqJmOCJ0YV5V=Dsj3gXkOgmCj_k^ezpym-7-<)NjGvNN-qXbgC>! zpSWa=$ia)B#aX7;kKl6P;Kk43rxQts&!a;;06oBiSDs}UIezDw=XN}Fx-Oiqdd%U5 zaB%RV>fn{ApAt^-6-Zt^Z$&-b zY(1}&Qdq4jTEa>Nl%m4}h|q$PsWIN@Mb+w}R#hn~Raa1oO~G1#v7ND-ahS1{@scr+ zF^%zwafUHt8m8fquKpyvPozzR<;Z&CQZq_1exl5MAlo6JOqSLuK{%g{Mbu|w=IZs+ zV>`|q0j~|T%ZVs=AsQ84dfwJqnWO&bN9IYDs!yp@U6so`O2yD1ARBx?WlKD7|DW*% zpMU;bS^wet7x*2C&tLLS@%@(g28YSR!0tOS$C9)AjuXX#Ol;|zbfmu|J6s)*{qSf` z6nl=KgjXVdJA&XoF%K#{xV!7IZ`Wtz$lGIMV~6V=?{ZbdfCUR!F@uPGiUNpA#eT?= z<>e98N^I`Va|gYaLs43b)D?60EK$Z3!qGZS$P&Aok>Gla)g8y>a}$Gq3VZ=fw#R-s zYaZ?M`KtHNu6pgCU3J#!arW~lO zP@gOf0~$EvD_)5Ver?ZGY`M%&*XJMs-B1v*B=EL^f8gHMRD^uG5iz;+d!VXAHPSC_ zu*I2T3Gj{Om^EX3+s$bD5(GkuqJk4YPjYLWz62=2jy<%_4y#G@7~;hl)u$srEE8fh zLMw*~;ux**Boq;!fW^NoEC{saRlD!oIHz%tNdbpe3`J6KdXVoF*+WFJaC+0Fy_R9F zg9YY+oo1GOG=&GqHukMM}Cm#IklKQgEtT(gJq zgP0SahdCncgn~|+zcbVIT2_!iM&qh95s_jgPLgQ= zBeY#V_Pf2nTh6}8WTci2v(Tia7OG}U5{F11Zq(5F>m#Uvar>c~o?0BLV-Vas_v*eHj*AJ1@>f#p;&@ zVIy|Q)|jI8NR;*gSmmk0Fh_$&A_vd@31_C9NEkDbFqBA0%KbKg@m5$mme2QGT5vC)b3GeJXp#V`HC{h z1R+!|>XY?G2Bp4wFT7gN3$Omud*Rg&r56^8vgJA>ohZ~cbr$b4`9UGu_P?a5b)l|I zTlQ@~_A(lz(rvn)BL_9%`lh!b>6_6A)-YJ20${JSjGExhP-w+QN7{1$gP9!ZFuxiX z4*ZzCwQ29%^ZrpLfZJNVCx`*!^?^I&QsEV(K_0g;L3ZzI)NaRchvnxa_k6HU4!Wpn zBYT0pcUyqw*&CYzBp#8Cavzfsjq48rZDWex1^ui*Ip{E(A_aX@{m}ugXlNAZ422A9 zC(|`)Y)R-HE{m@BPpp$BB8YFS(d;Z(=g9PMrZf`pFQF_lS#G*$5)<cvqTUm!28iMb!XaEF zBIHUUpd`Up;;0hHwS6AQuDu6$D)1<7MRWCPePL-X2VWc>CL1nmU7*%6q1I?b*a7=k zU=_LJFV}GA)2Y^jS<0ACe9zz0(3vLm%ZD$uwieQ-}0D#d+3LBx3_f@q*3@KnY zd9sL=3ID8BTXrU=7a>^BRDbFeZvdnci!*7q5%JL;E?2QEJw6m;EZws4aR-XKaD>ai zP>0zjpN`ugB^0FnGlp>tEpw)}jHVu|y?&HLFho%XplbJe!LY2xrbz}GIW!DY4bY4$ zOs}Nx#a=Rx@YD3RGg$)Lm!hx|Eaub1#i zZEK6ml8VoE6eVGlc&R@#;fS`K;8sg|;M+S=>nU|^^MMQOrD(vN9t5IAKXxex(ZvNQ z{bxK5rY!p+v^-nGP_k4NA7>53=l(}KcWO!_XEsAaOyKi5hfIiyB*4SW^eqa86L`cY za5%U>+L7JMH!A#PG7E(Iu}f2Tc}2XUzH$znu(9Ky(Eh|-9g4GHgFbd6a{Iiv zYr_*>y6`fGqp9UiZI?;GSwLvJn zl#zV&9dN-Qz)W*vAfPx!9`OuTeDB+keHJBg(=MF7=-p$y<@#&a`gSk9c%xFUHxmmL zh$dVSM-8D5Jr%z1X!o9z3yv)f*`T*lTpo=2J$Ls&ZWE%nQHyPznnQKwCHU5`ydV zy@uGILm&3T4hU7lCVj{aT1)}Bx*+_Y}{ZeVpPZ#MYl;CkjT*N-9? zzRk@;ZkPBlZ?4n5mVER+N`$>>4+hqnZ$EJxE8j94-&M4v!q+q-6 zPrvq>o;Hn?9kCBr6%%*F5pY6wpeCt_2d5V6Ld=E96t_f2YLa@+QF<+;UV!)#%YrH@ z$dk>oILwgaRMRdFssaXL1pM121&oLT*7P8`1!X>OuG^_4n-2o z2`2#nWc6tbR$gg5*ajny9z`>OJ^~km-ehj~GPG*k-ko2hZRs=fMMD2VA6Qb^7ga4A z4kA~h1_j;S-!BiP;lTO5%w{JZ^j7;(Z*K1}b75%ICn#Qg)9gXPvf)DZ0b6t-`;M?o zSXs&CzKyxB9G*L>u8Cco)&rL}tRB>(Zi;d^Y}+Y37EMkpaGkK+wc{pik*Z6_dcx%5 zu~k^UMc?D6(lv|8_5t)8{Ho(ty1`(Yoh>V0y0%D>2da!T%5hfPWDQiG))Cbp7CIn| z6E;pC4yu<9Evdgcq#M+c@Xkwfy>uttNkergaATWqBm>Xt6>pm_TgT@D%xF082pf8G z*V!@7TsB4>>+*c+ZB&FeyVvxr>Z!C4YQTo$A=u8aVmTh|%v+Af+t{^+6%e@D$DMKEF8iY`+KjUg_k6-{(WdRSj6>vdX6oE%LE&VeEKjKaF*C!2 zgd@x1^9Ns=&`8Wo4WIuMXT*tODVOu}jGRD<7x6TXE>kCUHUmooKL;$$7#8?|8%dL< z6tEcapqKUPNyxC6t$(rQ=MdHv6|Z=(ZE&I|F85gWjo$2RPoG13a@SKd(eLkPVkk8S zkHU@1goMO)WjVHZp;-;!6Cme6CrTO-bw!EY*;!XFv77GGigR*{c4zzhnUu7exWzRQ zS?%u^<)qX^)imQ-GNvncWTm|O{RZ!cZN5&Imr(znggQncG zp-G|XXjDuultGLL@djF>8DiKun^0(qz$sU#_peNx*-+kPlfeIDB3n@9AB0(YLR z>?D6Vs7Wjf{dP6o9-J=7a!&Hk>)F^EQby0zii4(_U?$00Un)@FRHO)n{-#uh@KwOrSQ5YxW5m*?uiG^zsuQ-c{2ahH+P6$oG_#Fv;M~Cn`l6OpPYlP39 zc=1A@qcIA#@8I%AcqkuZx(3lo#2k$w94G#rm?M1T#oHR05(eSg7A!pX5pG3sw8JC= zsVL|Te!INZ&O%3X){ACeYd4t-e}RUK_V*crLZ*eq3^TEJr2@U0Rh$q+c&A)4a#XRf zMVphSQA1u;Lbc9Mtk%>l&dbUQeI5-4>%Pas-7vbw6rD;@yM)n7QD&Z1UqS2cmHn>##S9q>c zyKZ8`4dc-#+XO5Lr2JBSK)`&hQ#R;?@~L3wErT8!G_gAvvZXxCO+vY=*RX1mVUKrk z)?ivwS0mpo)x>>qzf0Ks-S4J%$ZhTxx20Q>aJM9pZhQuo@yGPuG^1^i$ab1Y*X3?q zmyGF0F3G^YNZn6UAN05z?271>PDWP4!>bjxC5JBgcn4-yX_*r4bfNpgz3v*W`aA^0 zxOZ~cC-5Z5LtyG`!uPtp9g;?Yyf5w8JvkZq30c-tLhrJufniSc^%J7Md8GP{1yMe7 zshKh0lm+GEHZW!TD$T02W~LEo+H6W|(X@S(W}$)~w`Yt+v*URe@VWUX+`LH|MNtc_ z(@fFcxuU|*Nf947KTdms;+6AhIBgGeB?n66jb(>Ph+mSs#f>|3Sw;a>* zhP9@M9p|)~WXd11T2mf^ESzX%Pt#C3sxH$6y{GU9Do$!M{qNCn(oMe|Rmq9RnxN@) z6@q}jq8`DWrcVWvZ3fkEr{Bu_@2=NQ0UwI2>e8HixS#jug-B2ZWLNJ{v_86H$@+$ z*TV}Dub(jqz^a>Sr$5*!qc~v`4Ko)$z9dX(n#_B3b5PMpZ~^sp?+B$Ha0OGx3e{S+k~fc?`F9g%+}X8kx`IMf%% zS~iPrwU-&}0%@0b1NLTj1b){qhtDb_g^fdGH~xDaGWq)hiG{^b*NBBN4) z1&xYdAtf*ME|9ms0JdkmFgcf800j~9uO;qK+OgwO7?l#Q-}OTqVgt`$acGp# zL__IXGzi>M+xCOfw&&P`7;gc1dOy-v{9<#w0JykIHEQ=2sculZIV-Vp~oI-SB?KbGc3zas;wg-NY_@O@VU=P;5 zl-SO$K1g}|FcUS&#cH<3+g`^H9{^$WG9O^6KR5h2HpX7)iZG&gDZwOON-fvlx9tF) z?cEY?DDck4^%!TsSVqZC60h4!N=a1eMZHodh_>w@4csX80?)<+FB;^4oJ)3GvP;{8 z4&T%Afv*-j>XlPtbznHQlo(0&A}WM8K^SOk+%CIb;3Zy3WnnXHnVD}Z!Be$hNL*%{ zkw!63&ej?R`lJjT@7S=AiyfPqe71yed#yELKESx+B}YzeS*uIJ>n0L!CM}q8%ZPrC z?d+=^6o6^aGPo|}UR-aKbXOUghG<5uX40C-FKClYgyNv{^%gDxM*5T&SVxZ92oQ)g z$0Cq>hGa9GGREPQUXo;b39d{ivk^RHZ4Mb8OBi{3J+LK7rR19@RxW@i?V)I7S-Fh# z;|mxAt`5ryyEetANRbr0ktfxp@7c+@coVc);We9%aCVB#X40Z5>X^WVVNvZi9*>S% z6c*``(DBNL=WsttOGoYGT2!0^Opb%D2hqw4srV*K6V*-&5{*443f((TwO*L2-wwUK z1Qz4N6I}#^RPKP-RdLy9$UDYCGU$6L&!8F_kQ6we?K<`}6e6)ap?qfQzA&NOu#pzH zKB5k#xsk^H(LMF?nD98T{ePtYFoHWDnSZ&rvI)&(PG&Tu|4_#o)yx{Ln{~QiF3?4D zksddX(o-j|)ljcc!$~;9+o2RL5)@$?}{Mk0^b$TBDIA(o;uD~DHtS{14_~XG= z@dEs5oAo8SX4aR+tfrHjGws_j$#J;tL_XKuM~u)qMKhy7h-}Dk@YWDo^%I8%B%dH4 z;*rUjc>~NdUKkStE*cO;3<|yyx!$>?TuhSFDJtEaF=*=-g2D5nAUO6W*DUo;1=SZuujv|3X&S8&NPc zH9%a?@hrLOJtqmqJ17+8@Q${@X3_2X5q?T4OQ4wy#Y z?CeZ3C9@H!1QjwCyC2-XMy0;zVk%%yEvS%22{yR^Q;V6ScHB_(gqj}wuVni1E(#$Gaky;O(vjg;w)G)cNsa6zpRgqzqhvf=F| zV#qM{MKJKxLP;g@1wFlCxD}z_SR5Nz;a2g^sC?|>Tk#ye)K|9RxqFXIGWg2CB;c4J zS~@mMq~d~bFy1F#43o0UwB`%yEKUbtSQ!LGuy5d*ryR(2F_JT&Gd3t8d|p!6OFips z(kpv(rcP&Sh>FI-Xsw-ws$oDGs@IRM`mR?P4*rX9T`!Jp&}H`cK*>(@bt8QvDS<~6 zc-0{4lmXK4s@IQU+yVe$Xq{zCRti3dH50pve*ez$@=&7jHgk)206|dAN1fRDv{zUw zDq9RT&LLbs!BM*t;_E#pae4;ni!{e=j(4@&pXY3>)L`xi9#b?N?V&HZ8N{!Pt&Q@a0Ly0`oG?r24NysCSoC3-{m_?Tqv z`R#2copXMBd$h})|NJ`!ZS6)$PxdF(U?Y5t#0##r-|J_MJQfFYvgRL)gJIRtFd)8t0|&=?<6<2fHrLX#~*GW2GsMaZ9oF?qFP4fEQm9 z1vq%|B|c|B9=rr!o06HuOw^9%>t1)9f>e!a)#F}wJi1pMZ(CdKesnFox3~~5eN7hP zrLPy{7{h6qMF8ZDtu3@^FdkWlruL1aq;}PtoYptew7xk#Ew!?68k(5oH`64)eU#!c zY~zvZwZ{|F{C1k=cWxui?&K7|lcxCH!&6+In9g@)I^Vs)3`=-@K6e~E`v+yHN3l1W z;l_^VYt>WT!Hn#guZo@-`rPT&Z?TabI8h()xlngm#WcTU%G{K7KL8u~Ds;j7RmQo?P4yUSUjUQAB*Z|A5`? z+OpgDusJ}du@Yw03zAG2bW+1Sw&P{PppzPA-R^F?nLx}<4fUk2hj`LgeIL#EKC1a% z@;lkuppzQr@m}l)QK*OFj#^GT*{pW-lEhj6So43R>vb|^K_?jo^eqwu;({$G+|-Za z!L|+1PUDd?zNfym<%MqQmhSgN@%es~FG>sD0m}=;<40rFSm;R11dH9lSpR^3=9s5( z0@7g6d17xI?eVQ(8&;!xb%k?S`tOw`^V>{pZ1s`HE}h@nYHV$-M`0)M+6j(+yWfwl zZEZDV@Ght!#syKP1b4TG6Y|K0cU@*gXT;#4V-K1@F01pkYTer#k5ureQngwgkG1WL zduORA$-p7zG6+OcG`Rxf&k^&lblE19RJ1Qk`#Ph2oz=ePwXZqt%hbL&*D`M0)RFGU zjUMG3nfarfGc$yga|V-0dB;K4u^@jila!0e4JPH?i*rXKN;y|%PDyt@7iRMhv|gC; zT%YC{sNJz3;v~NyH&iA>o*1BO_u?cfNVd>pCyI6_CgnzncO{p6vI81DdDp%dWL*1R zu#H9#RmaUD$GwSV*qg*D=)@PLn=dSFWn7}XlV9Xi=vLr}WX>7N@}zXz6PH13Va{Jt zbFYZdP~Lf+gV&lh^%_+QcEjW5<<4?qT?Rp96W|CCA)`i*8|;1=CXxMp49KrJP>Wug zsB5AU76rR_M7;^A;su9+PfnKPu0a!i4IB2X5itk|>5>-v+1l!F_hG%_Ut`VLlV3J; zQ~Bk1ejq>EK@|1n7rSE-U)^W`%i&HM6?csMW83fa6*~Pm?`t&wxEEa-%%jSFDEuhx zGvTGFUDOf@FgWaiAV$EpS!_1P4|$Ko=l0u8b#@kSMJYKXd1q3uI=s;LJ8H7*ODp!a zyor#zL!i6G&aCgx6!|DXpsElyyQ>~vkankFi_g_1HnC2l%f0j*jkn-qwcOZkCdXmR6$%Tc5 z1trO@=cXx|!nL8tTw*a#p3D@+*-hihZOx1tcfPnHq1VytGNbrtMUv?hmY$`f7DI-Y zWmbZFN{-Md)g`Z6QapEkZmSI_@XWN)m4WT10qS{wJ-|XP04naN)=(0=bAJHRn|8oH zP(NG=&K)Sx!j8(Ydo#vrK<>qErkNI6de;oSzkNSspM9C&a2xOdgWe7K`qgp0wuq+P zq{(aPF1Hz}@8iV3a;jj;xA>G=d_tev&aE<9QprC4|-#z9%si@kF^aK54 zY%t98L8_h}s!MQqxG7M8s3ljG52-jnj|@Zb=TP}b}wdD!+tDTUl>o;u!Y)?4${ zlXC^0CzimI7Y~K(CKnKdP1i*c7EfqJB$Wq;6*3-aKw_nHV-RbVrN)sAWgcNp>FMdA z!!v$JrgHLbGJZ(Ucqg5RxXuK zD9-D0_DA9T^c1h(jYqvq%=9R_9q>p~uGiDFwS*bJPUDP_1{oJzFfA;eOfQ%)ly~LI z9cNju!l<$eGg>;HX0&pYj06L2FPp`a;)TJ@RqQV7mAcQ53-VsHWg+Sdxw_s}RS(Ho zskNTBcjd}qeaM=e=OI03X(`R8giF?m?bm4{~kY;>Ay$F`|v(IF=ws+s(E9AF<7j<%Sy+7cY2K%olK1n z%k}W;7U!weHO=+lMfNx>XMOJaF4MccqB_3xC4P~|CsFSDWgb)u`{r-Zbwvvc>u%yl z?1dm*om8f$>y=(2neD(1;(}tR(Um~i{FzspiC${WKMiyt69_-LemKwyk}pRZWJM2x z9%>=9L4M20o%LDenp@u+!Wq08Rn2r5ZyR(4G>* z58LVENcglcwOts)51-!J0_&jZDXSk%j{*TQajx3^!zzoeAO51H!(o zg^dF{OeTd#&rF?-s@pp5xKMi$BW50eGz-@Pf$^ zMF@!fni6}k9ec^7YDwSm=-}lS)mXi$v3hB&m(+g5(km7sx?lB&m@gN`JTxlA{pl-u z+}kO< z)Rb??FeNvYeT^5&DfYXsDFSQ#>8Ub_m6n!lOD4;FWxB7YQZTP^VHA-%cYd9n)cczA z)>gm}DyLLzYio3rs=fA{QnhJ`7S(HOYdoQ5uRSko_S$o-W*qXFxjoOSrMU5JNu)l} zWv*F9nv|e+L531%wQBwNlE?O@6CG;xj7#n00=jH%fkfz797K6NZl?9P$%@8GDef}t zexE-yUJKb9pYS=yeO9wRtM(+Hzz#dy@Dsj0$vrK1?rY8ikfD*>KYHbd5?2JZzmNh>32uxQVCO40H@!T z;VMQC)e&3Dj14SX5J2?yO+t;mXuv=V`J@V#QsRlC#S zmuIfaXwlrh-Hk$*B`Q9Y96^I(D4>RtVVoBKLPn0K-<6WYTU!@&UObpSQGiASOAjdd zcC{lKIrG9UyhYzwFZ6!Up6b2h+5Lo7k&#LT{jSZ;kzMSjTg5h)OZCHcG8E1iBfVA^ z(}f_G;nSGCC$72C{tZQ2vP`X0yG+VoVXxOm#w zoZ__;sr7g?J@YY%CH6Wi9X*FRUXm_7+vU<%j8u9hngQT4YM$!qDbDG+IUe+cM^E#3 z%+?y>G39mBOKdU4UA6o8Ej+JzK1j8K*EJ~^|FO*crp%%JPM7!p!efKo?`&<+t{-YK z?7c%{*n3Lf&<`f^4o8hR>fwQeoetBvWxKD)0fKqvkyxqVy>DOUAvQ;8xP1s9)~~UW zUOuRrWG=>eUIG}QA|Sq3K=0g_QwC2ILhVa$W%-2XsHcYj|B@&M0E=|T{0Z*S1ovQq zdu%1zGwVJvsFQKq+JYKLHx=`s!4%Xw*4bU_>Brj8*@ zNOe#ntphNv99)E3h1gB?gIA=A+&;nF6xAiv-yZ9l%X`a_>8l#GX+1;%-7;u~DTPe( zg>=iP6~@GQg`iq+J||xk={LFFG*qB=(>T2FgeNA7M<*>^;OyNFDZG%N*<%FEfZoj zvS~Fku9s6+Q)ZHG{o`EvBVHanLi6IL;h}UPlO_eSluk+8!5}r?gl2n3_uO;h_~|9j zMN!i9RnZPR`H=0ly;Q4dA$xwfTM({Rv)fuYq3WdubKAArqMlr*?+HN(CE&s-+dH|P z31|;9;W{YOtd?!i?*;i`gptDUdjc`S7zaa=eqfT`O4JlZr!Qp z00>*Jk@fyS-fyvY>73_QI)pK4iW=CyzVrqTCBwr)_U9 z9nXg>Xdd_U!lK?YI#J-BD;P3v%|4wAc)lRu_V&qoF5pT*z|+oRKE-@(yxK{(Udsi{ zSH?cMWY?Cm!@8g@j(s{)m%dk6l~c!0Eo8$L)a3MuQ%i0(TtP)n9d{RV`R41f?JS(A z>-l!=eiVg8&9d!!wSu5UwK=`uoG1vIuaM_1we6yy`8qlF;^IlCAZWf?r@h+Zaj#$o z%vZ~G-IJLKiv`VB%Q>-qy6qGM%~#8|PZg({uhz*^OULc)f}r_oEgfInK6y&#fFC9W zZMD=s?d1cWFJOOr!ENUP7PM2%TXLM-x>Jz#iT26%$y~sKPEu>v+Y7mX1z9h8OWuiG zz&t126YeS3&IK&!_4c;skJ`Q`SoG4R75-)TC7hO#pPJd0(0tjFL1uCb3K^ziHv`&bWA{=KLK?BkB zt3l+5c2IZ|88oco8Kvw~LX2^yt_)DGp}~5}2J`S!JFN;6XJ^A^n2unDi)e@yI{*!<2(1k>K&aeBh|V4I&do+d zpmvg&L3K)4tT2U+N-Eiwd2GikF>he9gsYAbUMajUVNlixOR7N*#h_>*kdb_5ZJt3X z`YL#$3TUW6i~(3zGiuFP7UOuf^%*QGWXjrFFN~kWCB&FQ$Z_mcV^NeCMh5h2=SOG1TpkH7f`kQ(CH(Ds7$WJa{yx+DXyWMAhP4x=U9C-vO)>H zxD4|xLw$Uz<0*CK)@TKWS^{^0gV2*ej*KOP{V8F-=N0f?19ab7m)OnuCoQfs5SL^M+_RP`p0%Tblz~lgvH=?9uml)WX1e0S^02FLI9v8Mz%vKD>tZ{+fr?yE^I&NlfFwViG ziS<+)i#)Dn0j#UK(yD8zyzW&oMiGJ(`I)NU(PW%4Qp$_*Ff>XQpqB6X7!dBVQYLZl zEKsnGmcgwMjkN%o#XP&Y!`_$WE}G2B1U%~(a%HBb@+HdiCCV}+QZQNTG|FJI*5#%k zGPK6ej772DfI%jOedl7(Wz0-aI(wx$Fj(XR05#t_>t_Je#`;91C#SrYB*K~z%ujNA z$u?do+@Cbro^HDpWOiJq1kfYcu&Xcfl*XK;!yedj4lRoaWmU4wHt~kZGGiek%K}>_ zI9>BKkwFql5OWyQGq`n1m$E1|J8;iE$2zdfY{Y5|Kv=9BEMCK?R03tj;-{l1b2_3f zbhn=6u=7PD2Uf_MxMwI~+;jti)9la^+Ynbijs#=TdPC7UqH($eOdC7<`@2yQXf#*i zp5TR;paotJ4GZw4br9kyeMWQ?*6Pbj1M}wF-!E$P{r#CxTOiG%D$UN$>_*L`RRwd3 ze&S#C7{2lY9qZV~n+G>uKDhD9!HriBZhZRS#%B(0JbQ5C`oWDG2REKOxbghKjZYrj z_|(CT7Y=T`cyQyTgBzbaxbgXe8(+S4^9KiS|KZ@qR}OA`_29*njXZoYBr=9{-}{-kw`UU95Pwx9N#q}uL# z-ZNf#L=JAeOiWTClpNf6g_vX>saJ_fETle7Oj1VbGoa^%)U(7SHKeW+lhl#AK}@oM z)N{lni%30BOmZBlPZE{Pk?*@61e`JVEgso3$|bXgJAphKMJ;A|C3<*^|v_N|NJiJ`k#Nrnf~Wr z3!Y#9jo|t9n}X-pe=B%?{da=r*WVF5zy2=g`K{mljF{vcQokT3Igb=%x{B1>#3UDx zg4`ZJ3UYf8Dah?2Qjpt6kb>MELJD$QM+$O#7%5=D22xP%N05TbK8n=)#3Y-@Gw5xP zAqBndacp&9&t-Ije)j}Y&+#5}>n8Lpkn*_oTWCWE-Jp-TNWH}S)2-irkC>#5ZqUm+ zg#PDStb-j~f17o%|NIr}UAJz2mi4ax`abJgw{Cupb*+Qz@3W3|>!#>fw{Cugb*%sV zHTJ6i`T^@ww{Ct_cB!w)F7-{;rT+7GCb>rFfBg`<)qlQYk|CB6I>$2@@Y`uW`%c== zz6<1Uko;cS&%Q7E*{$CKBR_bD0GmK$zl;s~I2cL&$8}8id=fH{pVO~+f zJcur@D=rQhkLeQ~YxI}zo5cRdbwdC0Js_SX^e;aG;zdIL{#_*g@jRh_`5}P2Ga6(4 zl+n)-`XA{00-=A$GQNNX!DufN`uE=>f$`sY&LrCq@UJhJ#9>Y^0rfi2fBiI&uM+xK zbh|<5Uta;@1w#MwI))hp zBT&GYF9PvA#QQ2ztQcQr^s|Ki6-i*&JKqNCb)f(HO(20WKLG+6^FC4-{rA@y4UGBy zCm9WSVGb`4`X5-b*CEaCnxu`qx@nRQ%lrF4K~sGfh))sv_t${{PJ9~(-~@&N&ixPw zOzCx#>_FZA0Hc121a{AxKt2a4d>Sd1_h%UmVSmoZ=L!8AhJYUP?iZ0_VL#94X9@iq zMgtCg0SMsGZ-4-P{2qhxUh+joV=wtCqha{`5=iJJZzF+uVzgHvpD&xF$8!8CP*B$| zo1_m;fBQNR$Oojr@2fz(PUzphX_A=5`!Q1J`+XoW!s|$(8|2X*wfWS527f3M{yv1l_!fzN2Yrv<01eRhf zEbotyVzFLhG{*V~qoJ1Q4D;Iekidd`5=dAB-a~@Tb~j9N9%r&onPi1Iy$BRr16~CZ zrUrC_neSyFpz<$ZC_?}G8I!ECHQ;5SaGLuZP|y`$GRXyG(ThL;i(UZ&8}1K40b{-Z z1g-&JL5daQON@p!07+Z}z6BIp1HJ(yFy>_-kTHKkiuHkK8I7a+c}7ECm;;RNH!vkg z^E)P4Ltg#HBoDB>zXudF)pvk^p8XmSz=>}G0i3`vz_}j)fhoOak_U0R`VJ5f`bR+E zO#B0&kU4Jv1Z;xJAA0tlE( z-vR;|_Xm?)W;6c{lRUvDuxEk7>Far*Akp6dfdl$eK;g{%s!5(?)5gm{!3^|mlYEr5 z;;(>$W`73=obQo>rbItzzuy9ZseT41;M=<<`54yik3iro|2d$b_`e6@1wudgnMpo) z8}s?&TS!7-|MWJJz>YsL*H01p!Out zzeVy{LjU_^q+TTSgU>Mv1HAtQ{sH;E|9Sj?eBWn*K1Jw%ziN^X-e;-3gCwN(X_Nf- zCz<1WNP^=lNI@2FF^XmJ1O9=nBi|-)`S^U2P>c3xNsr>;-sKsYY^1+W;3O_*- z9Dj-wG{XCDB8e%zfg~{LvnKiAO%~}rB%dWhD(11;1S_FAVU-T*g&l4;R4Vwaf-Pjt zD-RNtwvXczW+eJ{rMjG4Or_{lo~laZiDtbn4=kc``4h&&jMiUNR~(l{P$ zGY0AR;*#YJy$fi3&dbb!XL3sln%>8iSjZ+DshA(7wv}ZZZ;vKJcJL-4W z{f-TftY~o?U75-Ai%>K$pbZ}5oSSB^e7+9CUd(i+D(?X=Ud^bbl)LTkvDff$ra&+# z3WH%OLgVRef3GBT%t}44U*eXDSbEUxMkBN$cqs)J{xbH2pX`if>LB97p4VuM>Qe$m zID~gE@d-AF8;)l5%R!@GywFkKWqB_L7I>I}#jVOq9}3JhC7UU{*PG6mx>~AkajLNe z9%g*BRNXOCcaoOOnV7}amc1Qa_1b;gA|h7MngGr9X)~Z`fjMr`=KsUqyDdj< zWQ$_&`igAq9tseFBva*tXFT=7c4ko2S@OuQW=*FqKX|yjeWVshldi^Y4g2+SKF z;ay9%as@T~BIp#OZ~Zn#r)k9K#ll*drn5?|8gFYP(XsNWS5XLxbScP1oj$vT1!_Hb zg(&5;!jnTA758vrZMRohEI&LnUsi_8?AU`Yzd8deuKvy^1I-*Km_1E$Il)1E8*K6~ z8X!1%qE^;}on~v-R6!c5N)79H;{!bpTELvax6(ii=V-|~(25N2{L7`c6sH1b%Q99PqMWdT^S2q_sI{Em$ zX2VPp2G3Z1B1&}$Xvaab6HdUgsM_4Hp~O}t~DUK zN8;>i#eSSmW1cefp1H05X~9ghxap(30a^uSxnX1BlvJZ)Z#vwncroeCiz3k<=hMaP z;i2qk0aVJ06CE48PMBqB-Or-m1+`1K<~Bnmfw+;5S10Mn5^(N^&i{JrM~^Djpkhke zC3<*BPk3GMvIhtK?ivR<0Snmm%8%rHec`8DKVj&xy4ff>*q}Dct16u^iy}Fm09i(D ze4fND`}2~8~}mAuq#cuO(QXr@XN{yzH<)#loqJ84uShBJrq7hw^4D0lG=1R z7Y@bbM1WNA!eQbI0%Rs1#@y{rzv4!c=S`5g4tIIWg%b%{dg^MayZF9?RN~8=cQTF!NI&V{jG1= z{KpL7klW42)ZmvI*Bu;)^NCPZ7ApVzHgWRRC5%86Dr?drErk+-JTHx1rMNUet4vx~ z%os~b+h00cv5w=0Prxds*3uaPT95)2oU#C2tifQqxwdJwwDES^8!dOSV)6tqsGkQp z;S`g`bZH&ze)*mydDtA zwD{FUdMEhzUGlqIoKuPwVa+Y!N{n1=VlaAOC^>E1dDC-OZmo{o!CYLujyYxYPz=r*rEXZAB)V1KKOD)JTj3+-9^Bv;>M=VCv9p*fPyp&FI zIX;}EgQKKASCfe#jO6#GS?PVs>DI#8`gla#^9*jkZ5Qb%-V-$M%YK)HmjpbNUTDcm$Ect0Gb;0aYT*9yJjM_BBXqxBl))((r4Ct5`facJ$j zEIujPLf)SD;=ORvTA#dlG{W#y-WGFOav7eu?VyVe6^26IyMP?BEAg|#S@>6 z=!A~!5MHyP>09Zjzr*Rs4#V(9HaMQ#GxrhyP)w)V>@c0`Gf7@2QQ@akW45IYCmS&y z%Xv?WLgO)p$F>Bhyr1a$bl~77h}XoA7kI{>#%p9Q>#A z@9(!W3498kYC>lX=@>gpxX$8g+1i)TV~~C^iu4=Q2=r5FoEi$8q`eBguvhVzIzeVy zljAW(N>5wD@BDo%ew@yI>J`igpW5?bVDPCV=i4Uzu$L|6j(31p9v)IArlNCZgK5j^ zsxk8#C&HE{J|hVq`|-}Dn~yFXbrfld{+g?pkFB5_KWgjp?|!_AzZaD)ya4QmJu`%F$~Y0b9rjk7G(^C_tf1qr--` zF}xC^L+#UqebSqsPQ;>g7>r~?-X$Dw?Pn^prX()RQxpYE%@bv!OMbIW{e9ci8g23> zAzB=xqCN%@G(5ZmFYfk4smA%2=r}%%%YI9WfreHEhenkrld6=W zb#B&oY*;ABbCOXZ#$^!2Bt(kx5gPbko2kCN3JUI)KM&S9_$dRMeX(A=tLfBwh_a$p zL>u(lUU-TFBI?u*1lxCu?zsdHb8w(qB-09)%%<>mR+G>ha=J5Mq|P;6*7q zy`I49>4K>S{&G3Jo=L;vm4G4z^f3|+ubK5!8A6rTYC!G71ASAgXzsdlDb^Hi2(4=x z0d|GkYC%JX0++8B(s8v)Y#6%u(F)a#3T>!#496j%@fV_w+17lWWh5!4 zb&AtjDVf0Bf{aS2_txf*|H|YnGx-rUc*$;&ZpKx*d9INlvFqPbVmZJJ%@ zY;~dp@zMw~OTk8fx;vdr%Oe&n25#b1E`o(0)vCWTm_cJSGif`kUA>R_riSU9@_e5P zYf!K9Ul^iZ1O<#3L?)+i-e{-v4PZ4^5l(3u6IPG^z_&q`h{AV4mVmSuv8^wo!N4?O zfqOBaZ>wuO3c-$7R@bK_NYytL!2Wa3N-@} zW-?v$zeZvr%^HD(a#B1iiY&TV7eo|_sDSvg1ujx{YD5}Cxm}3LPhCu>-gS`vBt2Iyot0_7Y~zHw#!8J>$V`?8h)wwT;!1acaE z!-wh5&$q|aY!_XfPwuz!>YVDqOLf}v9MXQX0>y+pJY1cZU0&AQUL@T=zY-H!ATe1| zBzRe?4db$YK6#d9!3IY;{Z~x!iqQuV$uYGd2CboVGW_0Ooy+qH#9f%jYp{e9AaL_K zSP+HY%fKl&zrss}A36cTDD*x?3C*x89mk|Vn@LD-g!#e2lkni+$%@NI=*Pt*p4Opf zX7cqUWnm+VU;$$T;sEYhI5GzZi-UtjrLHSigubgwuQEadc25>^t8slMZ>Ul6lSMfI zws?1wm%4Z@-``$E1)<4decH&D4gZva#_8m53*6pd@lL*nU~zH-TlpKgc|0JpVF@?S z%guT{c`lz#USlxk!9{wO-jeJzVAvNgNuCD_P(-KeI7FbeVZAcag(}#2F5Y`Ma(R(v zxz8eir!$%IDgJAjO2hmVuhN{xkdh(O?U$i{Cg%^g@!Bm&vltE#F3 zbp_bM=VN~^ZRPn@6o(l}{AtUijY&-JwzKVQyX6S_w7#wn4#d+*_(D9DaM^&w!R6It zQN63Ui0cYnG(K{c{FSUhK%!Gg&h#xr@+vXF;=HmXzX#qc^Y3AkKabN}pUCCo=OAi% zNs7QP=(|#}Pwt|kQ6X(t@S}kSlIq>Jbo%qU!Mu8W9u$E;-)?J6MZ~a#-HOBLZznya zqubfWC~_Nz%$nOY+j2=9tVn6K$Z9R=B-U}vw@(n{5Jr1{#fAW%8F*hYa#ge;@j-xZSwFolOF2Fr!2q@0&0_%T>aHf*rfdV_Y0VQ0BQ$a3R2bgfX!L%7=Rm^&AWR@0AR`hECd7tTux zCBv}6!1LGH&mKL7<_F<~n=%D(&P-D8UiPX(EpSNp{YH$M>G zzJ1#1YIT(bIg5JHsk^hAp!g#gUjdUj)FbU^JCnH$Rn8E%pU5@fg7)dSfsUw!zubVP zm_fqBgCNM8$s9wx#DaW7)8b_SDvOEmQ~)eMfc8mn_lG-C|;-+L0MQJNZ@@cIes9Sya(K|_A9UO@DtJNXAl;rx&LXxi`GfNZq(iLP- z8n#w%HPM*W?Zdj;gD`wxtc5KP!Qq6!&6C+c;rFp zSc2+oeKyU-UrEPD)9=yS>}^tt!b8yQAALXVy*%Qts(^;l!^6?{Z=XKAeOkYQ$|2aO z9EOJwPM6cp3Y*9A;o;)bIc7(x6!(-H2m8&wloFq7%%QdNwW%oKIpt%cn0y@+;E)4^ z4I_eSKc|yBCdY-j(}jICIb}r9afo4SzfK`+d?CI9QNE^v{c-EHqR|h=!NDs&@}a@T#FG>>aa!#i z1IPU9jDWY$2^a>jX}%#@6vWX_gjx*9PgIFF;;VGs!R)cL)I4tB^s|ZyCH=!J_uf$w zaP-3)uFnHTPdsbf9bu!Nv&m#)*e4>Xq>X2ioF5*_q2%YE>L-bKCix;^_tt3p-xVT} zSF%v^T7o2=NsT^Noj#e7=4~OKNhgc4kAX=rWK_>^ezi`n86P0XuyqAVif_1y9}8q5SkpG&RXyKXgEmaGB(bras@=ki^<`dwXJj8EvsoytuxmLW8wf7-5fI`R6F)Jj z&*yiAcqV__ULh`5&2Z(uor7!>By}{>Qn!%ct`5lj~(%| zeMfvwpq&PRNSf{55q{2Na(F18Rcm%fpr+)<8jNkk7`lZP2E-g9y74FCI58ki6MmzvzJ&@6M z-Zda&A--xMzq+MY9RAX3tzSv<{P0j-NdEj&{ovq9a*~U$BwtJ$fYE9GT6`t7Fk!oW zy3w?evbWV_*J#6uDxX4=th^4RV3DgqkaTTF|i7WE!=Kw%7W;)l&8G>mZ~($*uAAKPQJ1T`rV~Ugl}w{VSSW93Ik9 zObRg7E@Nw)K$z#^;Gj9GC+*o$BjiZ(sh>^(bB)Fpf~`|JFhaIn&{=w@H%gHtoRDdx zXyq@Nl!DUqP?sYmRdfkvM4#jcs)Lab8+|2aB{c-Rpb${Lf5PCK$xs-5-gvG_^yY*r zj{QYG4^~8|+kVq%`~DK-toMfP-<)rmQXYO#RJ|?vk8@D<)Hw3ArR1TELjt;<^K+V5 z6+|rDHj<_@UIy9qi@SobYzYq!;^6xUIJ3u-2w!ID5)^lkdc9L^_!F&}gC%A$ANpH@JF9+gtaqlNtHeAc}G8$xg<%A$ZQ zG>-VQx=5`WBhvjhY~?{~_e!0JWb&CvrUZZexAQMwee>e=*RNlE^WybHolS)HD?uib zB)(GVwOa4h-xp%ZC-_8;@;{LTyq`gpS8U5oOeTcjbxvNAWh#o&hv*-ou-XW1=*mSQjBbFhtwh+*Gx45EffZ_^g7PAoUvE&6u9T@mmNT@xP;|7+ z6dheDD$Bvf^)E`2CPeU`h@?yf(AbWx)X>c^K>T*o>{z%6!UaJWMWQUDBogHE4CPx% z4i64ko!93(>Y!z;=&gz~fa7mBlje!6s}~eZDR@p3Ihyf(ds74jX-3&$T?_0WwN|T; z)8sUc=GQ*m=Vvw?;s`QIY~?h0nXYqkMuHncKS$7J<5Zmpr|Bvp;S<3Z{_B7FpZ^DR znyxkijQI8W{t@3(|Ayoy$f>3+Vdttn2COMYd+yv^UfnSFBd?%lhGchm3R0e*M~ZYg3Ur_$szu_!Z+$nQS=^z^Ie zFV6pX_SNa1&!67cHt^feK6@vX`ez99Qc*#z?%qCq`?Ty2o*&-6eLJmQynQ=^7b2$5 z5{x05d?s==QbhYdd-lzXzn(w6PdZ)8t&ZM4rK0dd>Fv{cB1hl9%|EFftq!G=xA`Zf z06UdVBL4%sI+?r;sUHu><2#?rX28Qs`s}lMG|80m+g~Qo_pDc|vCh4!MX%~}dc~8; z8T+>(IcjY`-|shX^K!rOCnxVDx(j0Ye)|2}w==2S3)l<^cH?MKZD}>mLKaK^|H)_3 z$%$BcD!+UB^yz)NefspBAJ?z$V99X ztMBmGX!oac@tzr45N2@kW#|_)_xu(NmdXwZS5duShfx&rn}s0rgd9PhM~g(fzgxyh z?h98%vGR|OZf|e#t%1{QaipuNdPHknMse&5^pcWqB69o3^v)Mlq$1r!x=CH7(`)iw z6c$&$hAsZv7r1Kal!vJcvM5llqA(;0q$QweMF0w1$>X$u{0DPD5E;4jBVL+Xl*S~y z*a&{Hg&`jIP>4v(M4?}9MODl9Ywx#u3NCZ^94t?RJ zhaC$USX0d#3p<(_=vcQ9{R69@DcH6=q+!d`&Mc&v*lJXnD_FNQtm=k>Emgy+rC`Ux zs;e)tV=3?u=q5H)4e@_yo5;i#QkN=HS)X$iVas!{Za7H8n$ze~^RSCF3mY#r6UM~4 zEqmpi@;+Zyg=0m-mV*t?c;;c%wh;TvI@ffhSwZ)`s@NE&VS5Ij=TbAV3k_mZ)!E;< zhIIp;bwkHCjKD?AOqW)_RMs#p?Zk_Q+23ob4ACFV<1(ru<2v1V8b zwp~Zju%o#O);&YfG5yc+Sj!5u%*P~brIPCY`Wz^e%QU+UvhX#z6n{Ez@Ed>p{S^J0 zr^v;&ZXrz%u;EznAKQ314M;_em++dt{5ydE7cSPVrHM5-ZSPxG(?780l>)C{>HwK@ z6%M0iD<)PA1jA80`cL3t$2JlB%P@hCEz44{VK~n$>^VAOe_8VuHZ`QH*mD94d$xzz zUyege$5iN1GqLHiKlIQc>^ZKYV^z22SoIWaT8@G>!%(oNLOmN!hOXPE2KEf3*;sR2 zWWZU_Tn`@fxvJ0^AeeyyLq{I{C->k?dM08M`g`N-eBM1fe{7zezx;l7e$BI^0scms zhb_8KNYi5nTZ+@dc2B!I_Lt_4{rLNi{faxbq}v2{xWoQa_`i+)`l7pEKQ{O4hu`<> z*QN0+&qN0HOon7FQ^%IAV9x|{OM{0i9b29;#}>Uqu&QIjbLm&?nK9Ni1E?NXn`6~B zu;G~4&4AeC-9YRw>qkXcx2(B>Rn^6Y1JsxUv?Q&d#n7rrTg4`juNJlp6ML3b_6!~Co;x~1 z4I8!x)E+I!=Q~%h0oN$K>P zv1@y=(%2sbs~)yYC}v~NRQMKN!R_qIxq(go0>v5ovp&~rnALTVB6`cI?BkZBCOjA z+jqJ_3fm#wgZ@lx8jb?nj$sKrPYZ1988BM-%eP&j+m2P$QLy2{R=BVg6lS23&LE04 zJq&qt1o7^H0vIcF`(fTT-F$3VHf%j~2Ro1I<)MIpRTB=84ZM@h*VV;_0S~T$EmwyY zExr}D2S?MSn+EjFFM2BjIcp$;)08$+5&H$dZKO8osXuqI{SQrS|LyPC{#T`^bY#qR z>`+v0VH5C`p(B^#W!rJFWf*`YJk0^R8U6(*^z0iApl^o&AO_ym0J`5a^iDaoQSL^^ zp6>J-(y(rtNXM#XoKYEquH7g$wrqE>Erm${4BD=PP1SqWX%QL7!mj3iYhuSS=PKN6 z*lxliWcygl&!GG#P@V89}{_b}O{#7AZ#VRE*9V-Aq4xm+wbGNEu zV9i46jj@CW#kc`D=@g@|!HQ|vTJkCgs1M*vb!%x*O2o0grM&=GJle#!n)TAg0D?Qm z<6_OR0vq7k#=Hp?RllzQ?%luw;I%41M+SB@xc)7}jWz5T@a!0RuN*C*(9$swJCtWO z18mza{8wI$n&$$ut)c!fb*$?y`-==XHT*9-aBy!S9VAipT))-yrHyq50kP*kGqLF* z`iCDO8ygnVtR+@eok|r{Rc{=rzjcq)cg-X9*WZuSuX&_6JlU23XwtPx?8vBm+jbP} zxpu5+*fNogjX{D2z|eDmI@(oCsoVRO_SnR;fA0dtUzQHDm@-hz6|fcXE5|5 zIZYrAE4ADrFImt4i1eMj2&1C>9fMuS6@b+X#pJ>DYi}f&qnA2nR%g^m5%D1c)7Cu{^RwZVVd^ahk$)PrrPvHT4wkpG&S8{Qc zt`}E@|6GppZ?2-`8rJLewr3v(*1eclt4ys4&eE9L)WR`^$S74_n%Xv~thJ?XUS|-2 z`E&RakjWEGj=^4mm!Q_Mg(!Slz(76|WL=`pcxQ)`n1Ii9Os3lGNon7EEX8C(UsV;4 z>YDQBycX?9mD_a>4#cYeb`y;j%6_Yus^y%{s%87UxoiR1Zd>+|;mMc{o515OQ2_5+ zoef&N%>iV=lnovfYBMMJ^#-hS0?3Pgga}Uj)1>^=w1e7dSVvp9SYJSBoh3Jr73z-J z7X`vgDTb={hR`yi+dL_qHF%eU)?VeT!K5$9NFd1fVU+nour5-eVOdrcK;?sSk!B&u zNQf>LY)G1_(y#0n-!HTb?vz_azl+hWGMxwUT=dkNTg4?yX@;&8xEz>2`KCf6{@LWS zg?NUGAX|`vdDMc1U}>6`3G#j8XWvpyxF`~8_P4l7^8zgkZj&gqEZ7zt#nd)xrx5ET z7WTIdEw&rGuTE06?qbNpJm z9V7m)5~f97{aA+7CePp3a0Rzb7^%khyc)j{k|K!Wygh_D_!O-mPYnkcT~$%}QVB8$ z=d`>~OhHapB=KJ#9ISADmEL~C&ij`Tjc@@0$@+&jUoV$Iwi)hE;g^3^YkqL>y21|S zQuUf-?}ZyBx&*?bVZhuv7~O@ zbIs8RC4yt1;*XS}3xvMT(mBaXl2e3|1nzZ%UKT&MMyzz>A+pF%i1AQg`63ojs$`o9f}v$TQ8)<@GMjwlXU$`E{rC z>s`V7>~*=f(XISBBb52B_u=DJ4?boT_^zw7OEZ>!O|mzXrfPskcV)vYUBP{a$_M2t zy&+lsvq)DQ?{*fgYOM$^z_<0zS7m^b+8VdHf$JpaAa)+XVEOUj%NY2nA zfX!dtDJCajE)<<%MJTIe>8+BH8A^uRo_2|6@oC%1<4Q5ntztHAy`ft@In-nU z9U-vkXG<~LN#?!p*zY=Hzk{*g^~V0i_}JOK+S6W6P)HE-HqHoI+}+G z{vi)Z9NlC%A;r;ZlZH`9j&4+}J6J!uT*qALWd2%=L7O+IV2$NXdHCz%x{S@x*H+j4k8 zoWTg*kOCG2P0(c!=j8aKk8%=U;xys$MbQKW`6ihok@`i`#`*YqvqR|U2ra9q!zEi4 z6ljNtsjWG;nS8c#H;j{E&&P>2+cje4i+Rw zw*)1Ggfhz3keLlwsF27gNJ5m8B&4q(5MW%O3yAsm5o)gzrhvj*`#ejRUsABmMYcpz zYa0UeHGPYK5Q1!e*@gv%gx2cjhNVPXzR*WU=*1nGuM0wl&E`p$ zjiz&jL>s&tTAX8WwuJR0vUS4NLM&nFz8ZVk)4;G;J2D+!3*=dyEuztDkw}BgO5@X` z-+lH^8M+r*E!zQjZG+iVouLU*k3ZTTfAo&Ze&;H8?E5aC{AqIn!RY=HC56i(Inw~u zT`UKQHJC{IyUm1N#B=rGL7b~Jp7nQW1_1&8^7@SHP}uJM<@FhD?T>MKAx@*ySu;<} z(GS5*z_UPaB}tOD$IApjiCyA%y1GNcTnMd&@FgjyPV#c)oVsSl~Lg1bOBl5__ruoV2mMD6aQRf;14Ltjn&d2<4>gpkGpJhA1uD4g-jhToxdS$JH6Cajz`7WUP45}b;6GFxC#c+DVzt>{Ah(?;4# z$1AG8c~yex^9jSor^j>gIqhD9vQIRrf>bv47nhfi9*ik}_O9CXz7n7q87VN68T-wuRTz^>SMRd7Q zE=X}pNYZ9unOu2H$lK9#DDi>`hCnFP6ch3bkscw2qiP97cG~79YGF>Bn<>PuL~U3_ z6+!;nC^w#?g+10b~BbLeA|*Bzdy8cFb#w3 zTH$GT8Jy-a5Yk^I@rEWrXo%l9Hy)o(NEOASkdpx$gK^wjhI>ePkQSN?NfaR`AmxbK zn-;?wErTSa`Q>s_ut;N7@(fn#n6e2pYGj%Jx@>@_JeKn^KuV7JRo{4Qs9MSp9F?HI zj%`wwrqY|sbiU3-XSvH7r^$MMR@_duqbfC2T~-{n~fLD2t+>~FUvIV z^6mvp@ihTWr@+Hs9USo1R{=;E+5`_@Nnaqe@YkUBBcZUBg---&|2(eAhU(5AGml2u ztqhT??x`N!AC7HP!D#TX=PAZsdly8>7-52G{lAJ6lVBRPtrkAUA zLBcmsMR6ZuLaup|~dnkf)#tNY|{rFXmz_$*LqLKuAjd$Y+3t zNG@h2^_KFHo(6FY+_e}_KD&p)<*2@)HzWh1(rSfasVd4-Tt#_m%%+D%*d5ElIF-1< zkE?~q8w&xXdd?>r4@@-YGodJejiagzVWIeAg(A3VU7CCe2`M3kB=@?#oRmtxDuV@~ zd>}A<9QNXLPSrLTE|40n;+zE8{Oao<3zl3EuoR?|lc5hk3gx`7AT!Myl7w||pq<^d z8@mc}+SrzzUQxRL(iW$}Qjmoog_+c3YUZbuqpZRNEfahh#RbX!xT!7VXslP7QeZNj z$tj)r%V0%Kr1-9&^b!$?ri>DE9EEaTLQXsZ&XR>WP3b&yW?XeVhZtN{>Iw$CPbL%f zSSm|4J_iM)9z8ixs?by7ybU^YU^t<`wmYyYOl>s+j&@mdG;vZlPJ1}1J3r2=5RO@z zg7`n;i6OwGFds5045=nOmb#XOVU^AXRtawEDj68>H=cZDi?HGoSFO)~GO4nlEl9yF zHvhQ!GK8?6QKB%!B(TXO?c_@|6>I}>Ddo>^(v_0nc^r|X;5brzLLMHXPc2nCIOrUx zx)ubuUis}tA;E~Wm0h)I$G+fcZNEM48$kl&oP?zrWj9EkoEPb;@gkB}%%qZ6$bn?7 zx$aozfpz%jXGzE_LoPzbkSX4<=+z2*rVuu^Q5LxA1s3@QV~0MeWR&h&=CF_k^NnxxZHzzMT~o8g-F83HFQ zYk+xAXEn1ur-UClIJg$)gq4E8YpB*lNyz}g46ASD=^SU|vfA~SOkN!v zh~l?ntNm@c*dX7)QFtPU_klE+Mpr8^R1w8EOG=g{$90@3Klou_%BrJ)r-xya|7IYw} zCGlbMfuBvaQ;j-2L}{0W>ky#oLmO$xDX}zwFp>_ zLVmtbXpVP5ZrIL(Y|q!Xz=^O+<>V1I%?Vi-Sr88hks{to)6N(KLk+vp9qq2N2uvnB z?Y?d{2FC5Bgk{u3l0!i+GVB#M|JGFX=1TFv{<{HmV%+6|s1$lKAcZb%OVU#?x?t@2Lo=Hdz%*^*u9%;%vh*Ujh~lW&@HfR(MsfgOVJ2TeyDVALc^u@$c_PT=?-fac znAUTvFkUDcVV_UU#{aKTE!9dH-Hy#eEDM#$LTEz&l$18U-If@?=$(| zLlRBuG4=?Dfj_roqyHX*6q1pfF_lAJMkIzClnJO*o-|u{ z_Vt(O&txOW*JR@h!773uTdpG1%2IDOc|n%wWqIgtqc}zv1eLN{(9Xx?vOtjGWh3#{ za$1X561ITd!&8dfA!K)ZAcR&STfnID<7fS+fmy!^mMh4$wrkpD8T8|tfJ+-2Z&{HJ z_3{@U>fZ*2`ZWcHh_uFfwZG%{>G$)2eqWOyPeD62uts{hMlbGG0X1P@w(Kir%Z@HK zC}j8)-CmIdEh>hnycF_sJ%?NcD&T7LLv!KuI-;%TjJ8Ac_~k_ocMQO+_?m!35^~mt z=rYaFb3#^c2)R~XYbE><)-WH!SIKMgqp*FiJ^QzTwR;xcfKy61uyh9NcfQVx6f82! zpzeM{Xhs^$PRT}7id|%M`z0i>7loscEK@K<25V9#RQVx?wC@uASCl|c&!nef0+dKY zz7SFQLdD=o%LE52U{zn{3tAWitNUYR!#z}AI}KYeK@7>odLbcZtb$;us5w;7F7&qf z%@xqt6v3kv$q+N)ZGuYMGQEd|cJ7yON*5jd+ncXmA?C@5#Lv?VEz=AvOD~CMY4$Y6TdHjKEl^%)uH__6t`uM-|QY;5_;w52n;A8q4i=NWI<98 z62d8_N$%%qmXUc8Z}6xkdT9;*Rrx?bUr>je_&2Z^cu7&QThB2CbrSZC<#m;^aNL7b;3 zUy*rqxk19PrTs0rSVu>sxr?;jG~uRXv~3C^)X0qI5kvVrBP7YM(jwo#l5f%_sdr}? zY$$e(GE&>Mf&K+d(*U`GP1))5S2D^|7{rEJ0CGT$zq~Q~rUWFYX_62sTf+j=^L0-C zW4s;PtHA7xN^7@hNV(sh9N3pH1JJ|wEC*T|)hT#y<>lPbI)}Sz7rd1AW@)x)?mK@C z!}(YqS}csdNuhaW(8l|dQIKELeLOpR2}hu0KFgVMD>z7ii~>|9WMQu_;>E(cjWF zqSRMTpbS{K2#6u?5=iReGD=90(U$_vRlrN)k2%LcvB7|a7hs}UEi+x6iuZt_A&E$G z8mBp_GozGwLJ~O-ZpdjnX-MCENFA~s0;J6nrLjk*J&GGe#KUrqj8JwKoPseA^xH! z`|B-QuJZy&YS#a|$~cW#r$v|I^Rn;Ple>nU8kdO5XOma!rudLCuh}IPT7RMeawU|(ljPP(w$Lh<3{cH#CLy5t`q8O z#z{-SAhfM(vZ3w0leQ6L`-P0b@@BG_e0ELkyddU4E>9OT|9ab_YQiXp(?w6fwoF5s z{Zba_lLCh4LOVOgs7!~|xJd8Nt)gj1n$87t#@&z=(3P>rmLtyPj{%K&7drU^^N9e$unFb9#5;6tjj>yFP)EM80U zkZbe;(>ru4UrW1ObC;pd7p5)B<9=Xm6SkeM)}?Qu@JP>Cwjf}pREmEUt+le#bjIgU z4S(Ia|CS_Kqn%ET)B%Kq6r6ujrrHeMDwf{xaQu(l%wKd1XIp8v^1)=Qo79X4S)%(I3!4MOt30`$K8e?G(*G96S`Yom$r}3z}{264x)eST>x(m1;`nu z?HzUQzIdcL^hkJwQ80TVj-xW@qQ@c_8DAb#^Ru*IYFw7X2)yGt;?BJ=Bu^sXJBDP1gBOcOG{CgJ#r<^`l( z#^TGkwI2)yS_^V>Dz+yoUfKQ7B73GDX2C5)%31jAiE&0kIrX}&22QZ(+CWBp*aWKshsldfucE^9!bzD3qL zAsDF9dGQk5W4pj}!_~&p@ux@37x6Rdc=;(cV@4T?fz;c?B)=l05YRkJ^Bl6-M#*PK zpFBapZh>%Up6BSs#2VJn1A6)8H|Q*ylO!kT0hRK+Mp2*>(I-d$8V4IfWn@co@5AV2 zANZDgMPZ?6f+Y9X5&c)mNfuqoOs}b|Bf0TXc(z)_1W~tq^kSL*5DBvIhAdKo{_%Ec$F4utJX2^7#wz>WB8Y58JFLD{xVHc~!5HZd-_3m2(-n#59zpH)hSgjX|0tA)9jMjZ-b8v(mODc=xOCKWLHY(-I zp-Nb{j-X&wF<$sIym6yuycn$MSVy#ERTZYA;bu+!E*_|=A8DA@qPud-tyL)p>zj1V znjgx@MZVqpL|;4fbryutI)~Ah1K{Mj(l9~`*K8YotXcVR5f;``DRG-WUtdIX<%0Ya zkxay>|!6H_=SrTlwvbe%FXgK6Hv4TSQgFt)3WeyOUJYLSDLauqGEVtNKB z#_=fxGmF&iRd&x;6#U`gYm{7(EGqb(LX#gfJc7csC`fp`ufX<7ldp97%8;*2`O1>7?0a@PVEfBqHI8)oZX4XUhdwr<^83j9 z?FEg+k}U3mFbEKky!T9LP0B^z-1ZZfFPa)w`yV z<(8@j8$0Q$f7s^h3prn}s^E`GK%+kbHUofYwBT5OXdQg@xJnqEk(k;mLTmTThSP@x zM$qSaMI90p48ID{s@>CF2Um*(TH)Y52=ir7L%)33`V=iuduxz+-KXmU2IT`CxLtAE znz7kzxrq6mCw}+A+L!Xe+ccKfu?!62J$=byVghrvjg|{JzgfsPQAkS1202)VQ7T85 zS+FEBSzeG(PHC8lZr?17=5g60YV#`aYU7uDZVN_JegD*L- ztYc*rrbJP0GZ8!z{t;)(Hc%7z3PYyHtxmT6L4y=R>;*t}%U%#<0gP(sJ1d4KGc@Oqb0!ud}*bx-NEf#mXh%?wKT2ClOZo2@7-=Bt?mMsSrbw=|4WW-O|O!RKiheL}HRnxsNi8 zVCI)XNO?+=d(guC8^dZ!K8JTceOJp4xcJFWujBa@coO^pQesH$0(w=zbBDeg^>=IN zdl^K5mC?07AV?yIbl1YJYt@Ch;)$0ttv?_P!4n+^64LjIb(-}IXx4!8I(A&QF3%25 z-LTCX){p@??bM-?-L_3=8?t+ukR_y1Bbd+YVvh3%gf&Y?nyXKyWDzvHDNH=tB+giI!cf&k7 zP8;baBxG|M>$RSPsdw3?4Q)CO(rn05YxK%>=MT%J((*3$%)0n(kkKGute6Yaft2K~ ziA~+>73;KW0(fbfj!X-CYNJ&aaf}a@7J?+b1~zrKQ>Z(Cx~(c??Zhe@Cl>&fXsHqd z@%I$j)-pK$_9DHj3R1B}U0rX!?$qY85p8ux1w1RDxsMekNg;xky8YKB1iV1vike5~ zO6#;kd>4s{Melnb#;|~HVS^qffDcQ@rap=fbOY-)Eovg&GO#v^8FUS67A>hG-7>N2 z?L-ougI$%vhwdTWvaxGAV~E0nbEF#v#T1(6?8Ovp#4g1YhGzbbDSpQk|2<%e?e8ST z?EgPF@h%Or{5`#-zkpY5y|g}WG^C_uUGTnnvCF*^6PsL9i9W% zHHS3IhRnL-^oM~xmqDe2Yz>>HH%^Oa*m7-7Ygh(0&D~^)fh`Km0HB6u0Hlne6c-M@ zX1Mfxs*bh~rI-|7Ixan+dh>vGQHslsh=vT)z`CLBM=6v{(p-n8F}Fq#il@>6*vL__ z?Kyk!iOJB9gA4~7O~`Mf6AI3Zkh8IB{37VYb}2gXkPdw}kN(fVC$>lN3DRsGo9;er z!fq@}Lz<&w%hJcti9=g;O$4)VUO&U=M0fdME!Zey7@gQAy-{q)Mr|72&qgQO05;Kk zxJ3I){SiD&w~rzG;CaZ?uxHqN(E~jgo`oz2 zJL(S3#bIaNK$e9)!+ZpCfOD_u1~Oc%Ir<28=uT!3DfHL1jSbi(tRdUMR+F&Vi3<#5 zy4Y#bWFJUc7!(zFNH7PeZ!izA}bT0iC{PYDl-R!>08ZRDi8t4j24P zvVtrjdQLck3Cgd(C>}6&;{l)@_Td4;!j?us&(M)>>)2}w9@Z&@r1HG7P+r6WN0zcCOY4 zqHwWkGi0G5-E^>PxWm{&$EsZ(8AHSNPJGcFXop}hF{MK+q}l2|9MNs6gBncCc?1u+ z26p$-3Ek$}+yCBfN?Rg)4Zxah(;Ls zy0?`kgTN>n8|k`MUUj3Vd|<`e=UgwjchkdqOVl%X)cfsq4*MA0_W?)!eXjrUgWeS# z><}pE)<5X9=bNOsx(#l|PJ8|R@j^-_O!ScMYFKaHGF=I!x~p76KDo2K_HH=zTx%B6 z9YFrZC_$j{+uATa?AUvy2$X}=R1X>0Q=J_$1Pav}T!Sh$v`2^~#~JB1H89403?c)@ zM>`%eY^+<}7)}^f^9&;gMh@9*an&Y^{2wip9F@tAh!Gr)i#1QjmOjcmP|=L$>d13p z)AsTXW4vMuc^H_ER@V@$z+ORufi0D4kY;Jv(8p99T+pW@$HMMjTr#=}9b7`?x0;3=qYd>V zxWwlA5Rf|C_8=-5C(;IR2~!2M}he}49ZDSH9Jk)h$YFN|u zQXiwOelQs_AZ_{?^vFMo9GPz}NVZxhW9riS`}?316VqMS91m%#*%E(u*${0{(FQWH z_7vSsZ+6HL6YETV;2|3udxaC4iCuQ!Os!L)N0AszWen1CT{Ur&CmQ8UKwLsW)UbP% z+GL4_=}Fc#2N{}*O=BOMVq$~iYok}AqvJ5JYL*m-?ct_IW<+4IW2b)?S9};3qYmH< zwTCg(e-OgB31R}NgU0xm`ulrnMY-JsC;~NaoP!xRDd-}LQPtuAs<0>~091}WYgD8; zZUFJ25)8_b>$Zgq)xh2(3@WN+QeCWj-Ux~qXNiUlD#o-49dd)-cb0*4Y&MVi2(>Y~ z{tdK15t*htNLL-u81KXioYbPjbi6U_;L=j2fi&C1p0ii~$&}R|AQKyVP4=~;{~Y56 zNA#a#>|jg(X;51o2T>yMWISarIWe{)F-`~SHt2C~( zKq+mEVhwHzWFioJS)({Z-7oQUP3&3LZpy;JCN;uRO=PRs*7xEG58KS16BHkwjUC4u z#~HvA(B@4S8LEX82) zMd6y*WtJ&GnRTi(Srrr8RPLpN?8(-#yBmFYD)w}PlR@3`T|p^!REwKtFk$Il-KnNy zi}G!%Vf5>CSQi^x3{P1OvfMU`9>yn{fep>(lJ;(u7ES>cmyLSR(QM|%Gz7H{?V~;Vdst(vzYnl*sg&{UJsZ4LQY>i$V4|~jbQPqaa_ILu% z*6Q-csBQ%;edtkeTri9>egWl*>0;Bf*o|vg7F>~!!ZWrde%f`AxkD~?R z784uZ&s4YQCf2x0$V0A&n?mC;vy2@Z{X6&a-=wk?VhH79E+qWpdk`QhcG+F!0swiM zHco@M*wRa5&cU)ZrqFDxtH!RfopWbk$8KPjR{0L9aIwu)E3Sn!(;Z}Z_Ca))jq$L< zY>mLy!*;QuKSmjAFj5Muy3?=KmU*bY)s8ek^s@=H*2 zG;G-BerYP!7~@2@s8i>6>G61j>RL1~U9c@c3*#DF3YGvm zwu3!moOfZUWwcN^8FO`THP4jjA`=-E?s1d>Y2+J`kh)5~bg#T7pNs@CD=ev!y- zJ&Oh^OnbPm?nn;8}Y4tK9;RCBP+1U$OatZV~WN+d3@*81P zh;1N4wXvh_^?5hFN?W2~Z<8m!ItL!gFVYWM5YlWMUZdC zgc|(oKb`UTdw8`Q4(6Vp9x`+bt9z9yu7gcR2|B$RJwtK>(?bOYT44BO*pFaARO~R( zkI}Exu_NUQ8|Luq?DHzotV&taE#GB9b}irt8)9LL%apBto!`Y4|NJt~58xA1a%mFP7yYAL>hi|92ne2{ysG|ujrrNp2F zVN4R#KEmT>5+g>OW2931I5XdS!$BrUy!V=eGc2ux4X0z;!-twp-f<8xcHSOaa2AQd z1~YeT80KTGvHrO{N@$jiF{g6+?eT)iJ!cyH8F!s&{Sn^eE{FuZo#)!Hej$NDub~eV z67<^nFsE_r=Sv7o3l7R35H^5dwN0#A`py#$noyHNd9QreQX6~B&dITnX6m2;-ha@s zK?QUw=zh9&I?f+9b{Hw7X-ETMuf3Pt*F0=kl#ny^ew~)(gN_|K65Vo;?m-ZwJt6}L zc;WHz7j=c-mN{m;zFTKwq(A@o9*$%t#7(IJmq6U49l8k>>&(GfwDNy0ATCfa0q-O zTXL-~-m$T(awXkx*#_D%vBR7wsRC)Ja4*)LV>+c?U$wDij>hbCENrr4;Tp&=ZGic` zGz%C->D+qE_`>D* z!s%D(&^oX{?xWZ#7uLnv5n}_ig)HEKiFCO6U2``kF|f@Rfnt(Qg^t|B#vYYJgKXIV z{k3ZE!z8X(MO7K7({W4Dux>CdsfR4R9aCTgk(gL#HyoIfcdB$4DwV2@b=3u(s-ro3 z87foNOH5K#_>G~GU|p=2W7g#S3W zbZKs{Mn@BCV#9Vg0s>)(y4S1=m?o#R)a_PjA{h_s%qq@fI@w1c8SZZkgsZv}$=E6c zE1+x~(j2fMvmasFr7=r=&F7K9>W>YgX3uZDm{^l!R#4z-Gp$xy7ee|3m5B}y*h2C2y(ShBQ_Ihx{f_t-_H|S z77JaY_p9`HB17Y*R1l2Ob|1kS>CB=}w|Z4tVF;O1sSdanSO#k!KH>DDY4yr?BrV)s zRkv-VS#F!O9Fw!~#=)4iQ>7zj(J)n&=^ChxRBY|VBrX@XF=bP$Mmumh6R_zZd-AYh zdV3iokNIbTroF207`jFK=dnvC%QOkXF(Z=d^Lrr^X3Yccm%7n1b?S!+a?1;3sAMbT z7-OCx1pZLb9>e6AWvKpc`ECSLZYJh=NHa{l-^*63Y{YssdT7VNO!W$ZvNWxg5@rhf)M%84V(wJv`OY!dImbep>SFsbj&t09r&pt8 zz>2vv70A1`0s63XSLeRfUax!yEC;*RBT!D=c(+Pl*;F;I>O-b4I~(s*Y1yeSqOCiaS|+ZhoK83L*k-<;ld4fU5AC_ zqWRbc%l58a%_@Zky$U@YlffcvflE_2!sob-$thW*Zj~M*GVGsYKQ7e*$Uxam zNh3eoLlIJIOHwAGbZlgRCAjJC7ulFBVwqv}tMoW2j~n`eZ=Ko-Z8B~H>w4Alx2tpn z!_3+ogbjv+bxZphRix+3CmkkquJ`r|a;fFiWgmZe*%9oY!NJbB!8#xN|bIeR6?8YG9|=4`zx z9sJ{Q=`J7%n5%6)1_ALn0W{%gr%v0dhS|!gu7z~XYzG1#v8rMEIL+x-=rCR?Hd*{m zNHGOTP4}my(rm193}^N0bTE(yahSQ-$|P4U zW@-j7XR9jw#xPJAEyoP}qUHMpJAt_G4yS)~>P+tK2zUaNe5nP3!tOX4(rs**RRUXE z2fvTqoR^M07W*IA77(Xe<7qE#9=jeQ$7=?7=I@s@JEe9+cl&h)Ma?WG2k<$d!+WH# z*{Zcntx9di3rui4ZbW4K|Lncjj^o&tDEKRyY9u063Q6>oB5oFry!T#Jg$6w-(TPSD z(a-m39tH!<%Y4YZ&!5~Mm|qxd8i|xBml=8bRCm?Ei4-^2Hr!^py$lR+@ zTvoX-HzrX}d*?V7Wba$|-JJfg_Q%yf!5BC|M0gim(f_zvP=NCLyuzgd$i3MET3%qo zh++?^fc)6Q7j-UmKm_WwpT)q9<3may#B2V%N=ONWq%aq=WStacAyzvQ6%i>cgZiSv zvBFeKYY@hMVIuSwK2$#dbK`3Z&7xZ8dH`Heu&nul} z`A%WP(Gdw)%M#i9p3s;V?I5Dcd14(8**SLgU^4FqufM%wXVyEeMh#f;IU2PGtao5< zWP-ISeB7JUF6L0-IR@}f%UA`J3w z)R7n%5(eMB2ZIscE#y?;A!PKg6sEm-b#hp&LScb_XR>MD|Yhu4`}s%~0kR z+?iqs1QS0-5W|3T0&yc{hHKLUG{qImzP~2l#Gq4oy zo=b4(Z|2NEvTl|vVEK^^+oN6Mgb+OAnF(MTI3YkWU`hSRt-I^c1(d+&buJJN?rNNl< z@p+XH{{x)uU_ZY+0h9`Nufbqf_vVD3@GJb)l+hFj&mhZ`bv;XH5adaN9(UT&6p_Jh z8umE)2@(f}pf|lAfWR9AL0j)cxW1aOJB)as&k7&sg~hgP>Gs=7Hc45ySk9*bouT{`Jy~BR?5! zAdx0J@WXb0^zN#evHR|s>vPw@9D%NLC@_8vCcvFsZRf#Vau!6+OQD0tVB~IWS~t?y z1#mH)P3cB4)hSD=rClE`LmN0Nw|#A_Z3SLX3&XAsSL+0{U1MDqSs zx64EkAi5k9nPDej-{sm#ApkQFckh|7>lMO@GaMkmZUMd7ogAX%1@M1vtjX`N=QAbw zn#-i~>gn`dfC(qa6q&ihLqHigM!+cyxx+(TgNxuHqF}>#0`bo$f`PooSn94jLe|d^ zh=VI1ed~yvu z#Ax6tH!y%>P>@3Jcut~G;Qt!T2K4a{-OzN-uy!%GA4=8@O)xmqJb+~7)b=g*%m2_h z18hV};C}n%JtnClXGoU$7PAbS1J9BrQF7A3JZ~}R%e#xE4kiO|5=|NIncoReMFR%XwK@b#o{swSeO3_$KPHH-*zPi7E2fzRH9^Nd<5IDrQRg53BHD~a$ws{jJmgQ7; zKtW{s=Ygh}rC?~b%6cEUri`!2Bmhj(!mIlf#;fu8dl2*z`Nh5YOD6fPw@|hrfBgmY z`z9%rz@^Q#kk~5n>ld_Ou7%iEkyZ2Ci)dN;TROejY*HIEr5QpRfglI~zkESUU(f_XL{qewu6H3tIXm{*hut3QVLznad>jePbpW zFq8gJ(7-Uzmxm^p`+_n$Wr<+C^0yZ!I@?Q({r1v=VlbS-AqXo#z-A6|0x(_vs=`PW zM#mtmF@zE*l5GO#tr%2r{{f9;9rYQM#etm3q>y$ewDwC{aG6rXHujhz8T-U=t zu@rnNd)j z91ot)shPK@-oS8JL(>m_(_l8ew~uYe^JS%MOA9Wm^Hb*Dy;*yMqo;s)V9}mmmX9~d zKUj}_O+4no(c1QK8nQDWnXCDp`^bU4y(&7{y zOk~o~Hs+hb=^SN!gD~M(PUdu??4;c#_I`o3*1`Avfv5hWp3-f zh&g`)sD)jN4;-_L;}lr2BgO?lGPOG}wqa_+(we0I`9^af z2jsz(h&`#=m)8Pvcl_PrwpNmoB|-HG@kW#^E@|qNvzrWsk^`Ix;sgn}l zydpL_lN*1J!uLJ{0fcvJb5t=exW=6 zo(h83RLfB=yrnXvQ{pU+k1) zD3*y~FP=yUI(T_lSa)PeM|=cwnd3oPKvQ@Ojyd8Y1jn!#?*A%~F)T(nZ?oWU0fu70 zA2HMxjg(PqRLeUJDgfcP6l`CVX9_BA0@iiS1sJ}qDU;Lc}OvAxW@HT<3 zZ}Kp-Gl$0|OM*iVy+;;?YPi(>P1U?#@6n~9IfKYZ&#%3qDuInPO;17Nj{>T;c-qNFKmn|S9N0zXYvAQ;ini2v{Pk`dUfthJTX8P@&H>`jv2(7d=M;eTf1@cGNC-!Y zVw-^Xb}m+2cHpAG5vjl#If|s7Bnrx21N>FoJxM{1>r^+e-QS&&9T~clTXr%fLID9b2Drd?x1F~njN&XO zyr1^qn}g|MU@;JVduN2oOyX{7NgKykeGU-3=9$jL%fIkUQ?`Of*T6tdo z&gT*X{JndA%I=9DZtoXu30CIe4fAn_+Wft+|Gb6$0mA*gUwChXuE6?Z)9_Fq@t=wn zAIEx^WZI#V?z967hF8DT(e(Tq@B9a$PhrdddW-i@#YzA5rte2iKBwr`F8-Y&xv%Wj zxBjiXBZtM{2!T3&h}LPivYlv1>hcW=iFf`rUr>i}U(pbcrD%#3xI-jAe*t}5gS8^!d;d0g3A)tH^r|h_rr>&5SXJRa-?(T-pPe`%l6TJBI@@E7`@GrLp&z-2h#1}cO{xwGGuR(y6LXNZ>*r|@qZv0nN-^OD} z@Gf%0UmSK%vi0z9qzTE>+yZh=etv+IpAYbPVt6qcZw^vNMW)L&ZX`>T)L5ka|G2Dw zY}N1o;OUMXEo)Hu=007k<|~H7s#HdkWlA@>BxM-d=C{+cv(+BZ^nj=_Bp$8p0V9M{ zSujLT#S>ESTvhK-vi!qJz|-Byy$i9hR-04VH#mhIhZeron0<8&Oycf3eRb9;9%M+5 z8Y6%D4}O11%HSxEXizF6YDRMX>Z-@%p;GbH)G0OTSkuKHwoCB)b1}wICFShIPtTR{xXj~ir?RSf!otgggjh775N;0A(M^d4mHijE>0DnYu z7}%`0s`|E{o_U(rvt;_GAs+LI{Non_cfbDG4~-n7OL>pGB`65JK`|)eC>_Ek)n{gM zC*rSaR_tpS!Fm`qVwZY!^JoQk_BuQVE-&Z3bFJAw4N(LvpD%<8hxGtv?w}RtPdbIh zKcZR*?@VXmK4-wRrJk#LE)CPxoMA}}C3~fc#Io{2Q!ViL>Rs`lWU%x8+{??Wtm0L% z5!C%uaS=4=$&22_bktqG_sXUB4n6jZE(Yh-a8~{(BBXGA8w*FqNMDK!AlpEQEAlEn zTA%n5kH;LYEbwt|Q*qDR@GVg5NQ^{ z=1WZ;!n|fw;azh(C}`uNCIW(Ww*M z#K9gc$7pW%Ne6+4I{ThUKgVhA|AJ0@X$L(;mWK>A0LgfM z37?y==NI+%jD6=OaYingU*CM?)a&p5uRk4a-%)E7KSZ052L|N&_62cv0EQQyRlm73 z;F%$wCLeHN?n^<`OzYlV)RQ-d0Y2ktqlkaT=RAA0_RKDbUQIW|!6VCg0}VeoD=w~# z+Ko>xvTv4)T;2>{+11~@iGS7(ap&UM-Eil_e_(NsTgeI8^Scvd!SVN^we6p;fkMFG zXn)3k$j|NB&dzkpjz1A)NL12s7W0mQ%VRi|eNQ#_9C`sITx;G#0LzBBcP|Fd72f_V zLQni%GBw#{liXk2M@rTxAbUn`aLUv<1~876q`kpcBx0AipGzx#2$iG2LPSW4!5Agc zdf*6ul*jyr5bWePgg9|D3~k9BV@HJih!89WKpyoT5@P3Shi@+~zv}@olEKJajM;vB zfsvP(6WarMi5cHsvMD_5vE&Xb=?xk^7Jw;WDE-@uGhJT0uKJQ29{nl6mXc`O;@XtL zeS0|$>%|K<;wtf9V!WX#;8Q`oVdN!dY2RK@;`qqg#K zG@S3MS@!4JJt1d5g%|C5- z9-Zi1_el5*TX?TSNaFQD6yi?6Lxw%4&po{cwI8zziZ+kIPu4LA;+V&L-0ek|ZS$V# z(f|6N|Hm&;Ejc5+vD%M+x!cn96Y)I@{$ulXzLeMJDe8Lw^ruXW)6mbGmn%ygG;KJX zh;cN4Z~Jh#V(WFXle$&=G0TbD1Mm%=&dlq41BuJ%Splj9y$A8yIh%q+hnDg%i4$ur z#ErP&*gg}r1V`_eeWd*Bj3`!5mQ2gFNoOSxCeyiNa=nl5`O$-_zSXAl0Hy+{dYs?> zR2;pap;vHq9*243{WjMef8S^Zo1_hnTE01dlc3;=k92e}Ft^R{K;q7I9(=(Z-e#w- zeWx3h(RpMvIVm_u?qtvuF%J%Z_IP8eCAv+0MdFXl>i4yc-f#PpdcvOV>67}!f2`k6 z8U^v0qj-2sF_$VF2L&#};}^l;TvIau$<%QhAKQAp0uT$#z=bigchEg1DrD*6 z+O`BOdm|7*$n@ojs|5T^QGaPt?1#X7-b44(=IQ#!-MNs$FRa_WD0to#%;h}CLYnHJ zsN*mQZYS~gGn=v>66>!h+ke>B>>@yVQlYj%_5IoFcq|cn@X*ht@X2_{HRpN{?TDw2-0@oL{WQq8 z6zs7MSB%1>S5 zxU^%4+1JRnLV7w+>vV;`cie()8*d+FteQluP52NNg7tcSzq4fd%J91lj z4x6umP{4@!dKsC_!I78O7m*>%0`_K)ol1Xqg-`Wye}sxJl)Fyop|Exr*0)Dn9Nmyq z>sm+0CIE8s5r9kGypXxa18}Cz4j!oQh-z_c_89fweg56C+3*U#fy69-hWh#~WW4c+ z6Flq^`5+0pt~ZY+wH}!TcVB+E%TE~l_1JpB19Rao^%DjVjMwgg0}5+#h9aqy#T}xj zC53zQ0)8B8o;+b);;d@G)kD@c9D9mGfL?%yqZ;3p3Zkj?N6Ps^ziVJF{C>Sb&-m+8 znTF`?cSXFojN|BWlQN~~U%{QaEO>u*3hEj3DsbUq zVZfg)CIqhfgACoHUv?taC+pz2|JhfphvQKMH-bK#ISf2N!W^)taWVFp zhV`c%`h9Z~|BkpE*hO59A0EZqo1>`_HJNo(&;QK0B|m@g&&N5rF`V;)h~4eiKV7o| z?vzql;D^S!c^nS`S7Xor+pFf{9Mx86$A{W)LsC^h`E^P4GmCifQQQEFY<`SxU8|dP+D=-ct8VHohbyP`R;#VrMx!@cXaHJ zO9|%-7k`9*IXB5Xr9bjFqSr1f8E;A0+n!;?qNh9yyt(jGysaK^YaUOLDND|D+Nuih zLDDiPW_dMhskd|DkLl+w`L)n;oz38{DLj5ptMl04j~TMhzZslouit3MYt!Ql(~ZI< z?SbC;c%`}hsT=ano(qN!h}e-q0p0JR^*81HhU_y{Wgm({s?p06PJa_nN7{eFUX zRLArC3des1Sl-E6b-b_&y}q(;X(S$ZdiAql8JrS=1(-d4PaS-zQ3X-HaNn{#(!TA+ zLHW#XFLoCHJ~w}fbK`HtN7b+(nRJr2X ztQb8*^_0hN`&sI;VGjxS_4jxd~Xg1pQm_9=P6 zz!jwpuMDNiyp26F5x7x|F zR8pPPo%aF{gJFL9)q0@OrxanQdKb)b#6^$;?yJpsNw5trY{Pk7Be*vvuKeXeEbLlQ%@p6ThUh-a8) z$fY9Z&(E7K2CtK&ZkRvcUMFnbcr=l_u#k(|V}XEV(H1$+-AVrVu6+2?66m}A?tI?z zam%oiT^l1ydJ^Q+ebY60Cur(d1o{#K^ZyEdWS}pv_}RZ?;9qy4u3S-ub|m`b_5N*v z<#fdipC?{Uk$A{h)&D>zDLb&uI+{wt?z3+$>AenTaZkbLdD_BJ(2r{n$#~tm!wU(P zQOsz`yQN zg)$g2C-#*aM`yKn(`$XZ{`S^Ke*grI!M~t=IwjV{XtU+x!;}DSx zIuNM^ya*nZdmhNX(lILUh7Wa!sApOdv)rBDxX;Jj@Sb1h^^El%z$YZGPoCufNkF#0 zlMm&qKP8tBX0G?WM!z$G{jo5;D6zc?R2p993X8Bv>LY))_b&zlbBys^6zHc~F<3aC_bQV_9N4Q~}!c#d5 z;ZE$#pV@#>gU6;tv>w0QL4Grijt)RNon4uGXOT|+d47sK%CLf!qvk*O;_3<@5v^QX z12_Wqauq`A(x`Pnt~PUHC6dAP?dP)?wGNl9-&hHMK~K3Wz+pJ0KYDZ0AAxulVUVN$ z`FYln_~F6~E9}w}YUcC+x(N0Qp5IT&ncQ($ntrQ(R6Ze1cQ(?=3H(ZZMfK%|y z2%HK}4#6!t1bT5xEgka+MJ-Mh)dx0mBb=7XBJb(;w-^ZTbEDvs~q|rRhn? z`Q#w?4Tz>H#D4|n9zgu@JIN`3{OQ1vz(mh&BMBY6#;#W8wid`NbNIP_DW7nYd&6_( zp4-Vy1GRwm*+C2cVm>NA?s^h-$9Ujw`kEKUlit?;&iW)53%|YCso|gNI1$mMZ}5NR z#n17C_|8#0=>>7E@&A%;4abjj?za4=koEZy^eaQlnCHy_GA2}7soArL6QPX)MB@W=1)AAg>J zK2nOtQgYI{BYaA82e?GQ(ubKaw>3+Cy)cdnRdhJ<$ePBDnjQ~&tyfyUU-xRqbY#b; zYe`_7VKRm$%cm@)VEa>&`b>c2ESw?;g8ULN_(Kuj0Pv)wU5h7+h4aL}Z{hpEV^l&X zC1JQI5QF8UNW~!~e9auFakO1Y?p)E~nCCD|ff10H4u?RZG#HRihoV9d2KhR-qj2(2 z@QRZ;B=nJTfPo~394kALUCawfgM6fvB+eSPdkA(_ezo&)Zih!~|kF7k^Kydbs zYUt3QE;vsLvw$+BsvwiYY2U$lx-3VFID6=#o`Vq*k)(Y?#^>EyBs2- zC|o7bp{qLLoPoQOQZLef+Zn@Y*5eo9sa=4h@8xg5zNXw;yx)F}M~yw`ao~uo$ymzG z8F~^AeM7p40Y^)gXQ5DU3@Mc6*jwnpX^INV@wj(hco99dV9fWMyg97XAwL_Hiy}XB zT;8yb{+v$e1u)5;!q7c8LCf2C$Vc=T1}Kb-+|s~4cSrjQ>s#PT5cfF^$}xGquv>Hx zHK($HSPowMj>0SzvCfK>L=FLO>FP!i- z>ZBN_p#LWrhq7WQ{w0P&UtT>W;x!E-9zUv0JZF%QFUX~$6Y&%2eyCWv=8FcRq%8GNJpw-yZl**iVD)P20^x*bkdKMHn|dnIZY{h)3T3 zasT@I<-^4n1!f^MN1lQ^YVN}=16PnwX*QgY-SsdDcV%k4b+}yJ=kv~ASI9inVCKuU z4f9x_>Bo8jJl?f#BA4YkJ=OWV{#TnM&qd935DEu&cFOfv_(C=byyneU?{LMhIP`&1 zSC4W!nU`)jPXGROy&iXU7EZ)^&#K|zsY{$jLjElNts8=$=T7)YIj;_9#(tpfLwE=P z`po~zRZ5)Y@o*8xS@EfB&1 zL2fpKxb0+a4kzP|=a1jP%Rjzmp|zNVfeP=B_#c0UDuP$BWXyRPs^cj5lG%tV&YM^= zmi1~lzHuSnFEME{2FIy~ptA5I;q&7(` z0z9}5nR08o$}P+dPikfWZ-W2)EiH+;##hxJhQb#R${_<*{Te z<1EF-o!j69Zv2%v7OpoRDMzoHM7Hwbq~Z0kkE1Q-4DdGYL!vh!(EucY1pu#pmkayH z?^y`aw}1S32s)NSx^vvM%^8YuR60pdrE{U-F*vXt4(>m|wnTJshLbe|+$ZqHzeBw7 z$DcPW^gv|Ul&{S-lW0`-JXd!4ioPBbYQVe^kGnVvv=*Hi$9sSLs?&Qz+nin|4Gw7V zxdFSMJiW3!#sh~lkfqMl55%l0D)YEKs*TSDg@YumSL+52(9bHCp&7p zIa!u;Q!=As!(O<}9`7O?ZOiest7|!3RD@r97Z>0f!B$z0O`g2puKMi*>n0ZX@=m%kk5!yR7>uL@@vnh^o(l*d0(K)Yf%Hv$eg%Q2c`N})PS^LBjwk@76-k_dDNI%oUE zSfCg?6%&DC;v?l67Pxa1as)vg_x$5_ao+`_%RmrJ#XWa?#J5Pe2Ol(MIKsMqlWwUW zrS@2CIPCBFJEzp88dqLklzIjJCp(BF{MqN$w>LiqgZ`C1=JH#>XE+~}#2;7}FCGKz zd_3_NSx9gJBZ!*mnxqEo|6kukptpSW{Ifh)sq=huAzy`GetADS4fqk!oJZGWBUt2^ zJ^0u0KQsi_Brw8tRUnalr3Ay>(%1%V4JM%;@(qZ ze#!L)eTcZXLrvi242XzpHsWUr2Cwwf;{z$qGG2pTfXzd|i6trkr|*n&W=9+ZYr_Ze!;~wCw?S<+v{;vCJXh#}p~90p#FUc=S#iz`NJa zNiZ1yD*80A^Xq8%&UG{luA`lbl%C97y~y;(dhf3BBWPFk^{cP@6nDDFsirf|csxd_ zZ0xJ5S+TFa;kY3wo*4~rdeMy7*RPJNxn=+(UH?^}qPu?$f&L1#E-`~+V@6Df(eZdZ ze)xw>?KmR_c=^MxuUdp1iwn-{ys_ZBs3t@2&l`4Fu!u?l)-1ZeYZWh;!Sm{dt3d&dQckd>%YDu$TzX`V!o?^4=zIbIixe*NQF(Z&J=W>0 z6mU=Bq5uPR^+nWD1Ye)8d+?p-Jml2;`1lYlMLxI`iKdLCU|WF2^jtM4V+n$AM^aU&KjAbwn=Jg(h(d2$(8*YPPr>qoI^V<=w4hRK$G>j3m5w}ke}W$Y`4^; zBB|23HBxjRKD1kKCSiiWeZ-@3|Eue{0O}->zlM0}hpci*^M$=vAj;Iq^uxs-Lh{6# zIVG;K&av#lY$*5iNp8eC_l?PjoWgyR0p9u(Z2lOdv0O@&7v@oQ4PRt3ITBpgn)XJE zm#qQ)5Uy`;)N$cGe2nlYijsj(fBQF{0ROw!K+?2n(+W3pw+^Ez%1I^nZv;+ok)JxrqJ+D^3TIJIw$EzJBQ2Y*v~w2@T)X%)0l_$tMLr&>;@s5u^)e8O zl9{{pR7&CQjtAUx-34+JY(Bme(*0>&*_!ph=zPZ3q6GizX%fdF_~YThFfwJDPfodM z0d#bCcm^kMTmAmL>=as)?}DvC_)uDYVpblmAxrA=@#PEdQ5++)5c~1S!Fs#{-Q;Xm zdvZ-^TavARm+l`iC!fXxQ(|#Iar4}+qHS5`tk?S}k3F7N9K|UD`gj60xx4Sl6<|4; zbDWO7Y7B(12zMX3u&flUhVTTBVRx%>iY`*7lvgh(|Ioq}{4W?&ko?^F(xX`bir!Jm=n zY&LtZ#trfr8ps{$9E5$0I0tK7r_JFpTqVsxuprjUWGIf|J|3tMBFqe)r5X5MwQF=a z2y=}rhuXPHl_OU`x;vd$X>w>}5hR(1GAwp?%S2P;$ENx^K@LJ)r^lhTu9D**)GgW? zIUkQ!xJHX3rz*H9X`E(>%*O+#=;7wWg!r+gxJ8FU6LXCWhbJRMg&*5U*NJc#r=4gp z!!RF@W1leneQes#$uG;1FiG6SAZOH0qEWV#JLMKawg-!I(;>OU&n2CF?v_JawHE*v!S|IX=f1X zI_(U#b(MAop>C1F$oY7*!Zq3%IaQB|vFE4g;pQI|VuO`$(azAsT%(=g$#_tL4Uga& z?F^%}N95Nl2_h6kWYqpD(%Irq!UozY?i_T)MqV zr>{u2H;D8V>Gr=5g}%<`-=xsjrQ8476#BYQa-Tv!Hr0Pq=v!jeCsF9fmf~kp=*KqF z^A!4ubo&r_er(zwmu_#7=j+n#PbJSEF3Abd87Kz*Z;}FRnW$6Dwzm|{DW~F()RM9s zLq>-(`k|Nu6+iy5%Ol1=X2vx`YOu4}Hz*Lh2U-EqC4^Gcp$#-kk{ZJMIn@i@XKdv~pZj^zw6Sf?eVX>w0QfhZ#-GOJwBR%8Omo(%l8c9!i?s}2Xivz zdvZ2{W`3uokvUbc#CyvE-D>g9oSZe~aQZh|`>c5a7Ko3}&A&Y%gZBU<<$7g?94j#hdN&Qm2@Bvv1pqJ88;$3Ycc6D5uvZq!R$4+Xp9B9@ z5HpvegoMJY5n$$6vbT!-C)k~HsA(e4K-70I@$_Lc;O zF3jb;C=yeP9L-v&wpI3YS)qm~JSEq2xWkKVR$SKjM83Bqa#p31rV@R{DrL9Ylx7Fz zezx4%=F{V;(p(lZXmM4-%BAh3y<$l$-EYnFN`-2)ddyt5YH0#r+A9l_$8ajY4lZqjsfyPAm>e zwOMUaTGqIYT&qcqLQdLko8|mwCNDH~Y7r9Iv9%R!P%ul$YkH#C)ij-j(-y}}R*SU0 zqL>6cD`O1hQ(O!c40Pvks+Xkqj@+^7$< zR(+ALFA73wkVvFE!)lu-=JPf;F4bm3q%zs{*<97yRjrXpakc)M9UwM|^Ry&t$|zT% z@x*RYqb5`bt+VEctkiZi)TL2f8yI>+n&tOAnQLSR@_1WJXL1RalG%dNHJJLI%4{=6 zx~W$LX{!wDMp>BRm2^hTu}!kDE@wJ;A}vkUwPFFqNwN+plqS+MXj1Oy3feBS>TPn| zCR11UiDhwQBr;nbE|U|2QiqBqC{Vj65FBCg>6Ibc+hubyZr92MsWoiKnUSy<@@=L~ z3gf}Vn(t(6B+AVUGt1i)nKcL7bvMlu8Fpw$D;b)JNWwC*O#%{x5`%He^xEp8|N#~0ZpT(?(fZ9qdqc(^GwDU+tjE8#QjQX8xYO)`6yykdHyR1#(!*BUcwmSjX36``KC+z;nsjbi!@ z$mAP(exyT0dt1(p+f$3<@igC@FA`XjFV7`q(2(-2U5yhHoeI&#rrV{a)rv-U*_~yq z291~a@|MzP`I<#9XF0tKL-oNbhqkqb(3n;vyVB!k6>VV&#dOoa(_~G^K>Bo*8?;92 zCP(x2Zg)SMHZsJrUm9?^dI7V|T&HMcOIULO5Bp?#N|Wt=rB$Yzg#_6h7E^wwg$U7E#JVrn6Hj+pP}15)88`$l3|SnTD3EMs(C zZ%M66pUCa(LCu=>Th00=U!TpE1sj!FBLaizoJWhsu|9 zeOlfLyKH&5s*Ws9rV-MR2F0ORZo+y3&k*XEoz$~BiPMRRn4Yi9v2CGMBfEm}9o(Ia zyONsTPAD2rD^R;cWlfuHuL*O;H+ZhJ;nKB4nqv^e;H)Z4z^pmlZ=p&)Jx#CcP@UiR zD4t#E11X&s`KDkLM6882abmL>mGaWs$Rb&0-LVy6%~2FZt?GKM(#Q|@r8K)Qs=ZB4 zZ}l-dFAj^;s#sce335|F+WpbAvPQND)*q=krI0U@x$ z7xG*>x9w|1IX_R}EQD#9+Hz*?N;|pFmfN-U2FlAyz0g>Xmem?U>lM4Xq-3i~N>i$4 z&C@i2iyfx6s#!yVVP~b$U|yRqC~QixW2sitYL$F%Q!7g)QQMLetyfyZx;RT)G(ij` za>GJqNtt5cK5%xcOi zt3hctpI1yFQP^lYwdgE!GSb6VOI<>TlibXzOOvXwu4f=gL;DjET1cx!uY+j>R9Q6J zy#`Vq@`;9CrLy{LEiux-fLc_aof>*)SS(fSXyjd@HyfJe>RLbDAGC-;vD08F zq1r<>D`TtY8U7E*l2DqP*^*0FgqGEnX7%YD zh0;A{3#HNeOdB<3Eon2T=~a5rB*&EnrRKUQZI&ARLM7OBr*50+Rkb2)$tDVoXlx}6 zmQ^X&ZBOh~sXJ(DtcYYvNMfkkIy0&lY#3$#JtwnjppS=v1SfnyR}(r8on7Wi=!s2Q_x@{*V1*VgGzO(YR~twVD_O# zZKM~=O1n}{_mE;sG5T{3hVYtJ7K*msgQS98PH3HVqEna_tX^}L&QBXdZE1BzMr}A7 zS4)K~S08BKPAQlIx{N-J+nX1$UyvGw`{RW}VmRtq@Vs?cPoNJxcYtGb8sJ629~cT~R3 zVSS@cZfxCD?3O*C`n6@Hip^TWwwxCm#d4!LLbBM6Oca^0@%NYwxEQVTrR2PUs&sJ%2ZE|vzZOQ|doXzn8 zKGrA7lG+wZmf5POYx(`uY~_)8sWe+O=7_i~VnsqP&0&5b!E?2Q;-#9Fx3cx_rqHjI zXr$9us>mii)Tg$Z7D`xRyy7*jTpE-X@^X?dlIp%K8SAQm;sZgfHf4iG(ZP7d5FE6Zm!K9Q$th8s#E zg20_vJG?X5DmKR{S)$a_7d4`{Yxh_?JD614WpX`HwaS3b z4`gaGg)PXgboQ*3E;P4IVJNB-YdZw7%XG zf?OdPO&`EyvoeCR-L0LjFVtRn(M#Y)-{cz9VmgFZ9m$lN`fSo-`}QnXrQ5PK>MXi4 zH(eLEn=G@YbK73qN@Vv!eo-TfV||@dTGF7jF|3k8vt6=aY|F|DmPKhplxxOdmsT?Z z0q3clKBx?9xHQfV7TbEhUs>!-0;SuigkpLRsc+i!dSR_Li_5&lKhzY&#mrvkjq52hy^DHTjZ| zt=20o3-1@!8f-~Ydoa+cc5d5L#NCqIbo#~o5|;WkW3tJwa=RREnoE0V<%FfwUk~Sn zbQ9_|;8jkX^k#T%mD?5?{bg~kS7b%Ng{|7o&2x>)0I8QGcA6_|#a?YdWP};ns6Z12 z$%uIbT~xV&K&49@W93kIQ)<`>3276!Lg&myrd7eno>_)QBvIQH8|_-NT{FeZLR?Y( z!J;`TC&Wp!VvmhRz1B8sD2Lb0Ty|5a=2}cc6Y!0=lh{1l!|U|2YWMnhUd>PC^0La6 z&=I4jiw&Mevb70<=~I51uC;Nzg+tO9oV;jU04huzH#63A_f>CGBNL@VVHcBUcA zI^8iPY%nslL9c-kvXC*CrOlizWt!Y-QdKo%r`C|2InS@hb_Lq+D300{ZMoeX&zYq) z+R^>uc+cbuY(Y17*?Li5&}61H=B-vQUuD{hsWMZ#tX2c7dBLw>Y(5b?QTN2<=E|ktyI=vejq?ub94nw`Raa0m|1wFv&sNL+4Vj>lu$^2S#VK*k|`DR+?mo>`1HZ_v_hyT#+=hBkEAG zkh5f*AJZm3rn_7ZU#T4>$Br92V{Fc6`H8sRZB44yFU)pqNf2!d>g75KgWdHt2!|M^ zm=!G6hQ?DC?pf-tI;HmGY`ZaoOrh5$$6~%W+hm7iHdA9qYGv1!iurynXG*iSr0%sv zr6vjzRLYmyc4Am5K!skjB`fS;-jPIErEw0y7PYmewey)mttMo&Rxc-1#1UB}Y`(Va zNOGqvamEsxl=I8nv{l80UY)3r&0)1O;ajclyjL)Ln`M3~?K!DpY{<{-!+YNtGRK<&+^YVHO&?&+ba%tfebz&9ug&SwZWs zs!C=fY&d?0t+$0qKR01Vnpw1)hHhDFM%1y|YNqvxZC2a~f(SvQ+|cY6H|ZW+t7OJ% zYc%VP2gYK|Gn0NpRPd3xo8=6llfxBqGbmLC6MU>p@Ub?j=7~t}dsNNMW{B8arT0dCB}|0Tti#Q!rAlSR2onk2 z_oggbD7GL2nPhTvX|to6&0MoJ8kREiQQyudnjJ2aUkwVA%_e6z%Cp{*+GTS?Wjd-^ zh|nA?G*YN6)}vk{munB^U1U`i`Ym;~v^w+EZf*8P+upLDK}NjR>=)6dY7K?@a=xMS zl2p*u5^t=VIkITaT0^Ny=T`G#W@hubUZ#>oTAltTS1v5@{)j6Nm$^zlSCA@Nep@M1 zR=P5Q3xeG$DU^n`x!G!?)C((SLl=iRyV=yyWr>z^1$3aLtHoZwX>#PSX-<|(wvgSc z*0O@a`EjL&_KOW_E34gB9b4B-L(H&n+n#4i4W^bitzv%Ft&=3vEah^j2DRy8Ar0ks zL~Sq^GSH~gVyN*Jt|)^>PTcHh#vbpnAzvJzgFYtJ`qdU9r8~vmvW+EXB!bL4GkCM= zh`N%ljMzeZ%P;JXy&q!sN<>TR+Mv|y71jx4MB#?E8}ufLt}P53g<+=MWVX6O>cb^G zR0e{w#P~wGUC*%F{Iq}+Yi5^Atk`nfgwXZgs%j-kEM#CPYwo*KWmzEi6=t`|t&o|F zT2mOYdqtwl?siLlr{&9I#4fjlS&k{MTOFF*m*9kfsZvfTH+xMs*I4Mfn4YQBkZT}N zNm^Gk<07tYg?KhaTcRwC zD(OzEU6Z;AeAgPy`ea=&l}%Mj?56#FC6VY#6-wyPjVdSf%)%tW%2(y=oH$RI8v(cxKiP2<$ix6V|u#0C=gY0SKQUwx%5<= zRA{l;&StQMUDmOVgd=l8;W%v8+2C8gG0Wn`?U;ZnQeiFV}dT1C6rDPwL%@Pp=tUfKTh8kzVX@po;bU9tlZ^bG{@EtWj-rH@V)@~@( zQEn*>(;^PREW?pp-&~g}#m-bl+S*)TJ=kq6nTrIBlaUSwT-rlxE}AW`(Vz_*hbxC2YjDTBBaAMlULM&Qzh1HSVW3 zMj2@*|=jjX~6gY~_r|HJHQkt{dB@e@yYPnEi zvq~GD$@F^DtCi&SlIpLwWM)_}i8Mzk_&D2}$<3KM#i}f+kM`U2Ou;ZyhN!*VSTklr z#5JwA$`UNF>yDzg1e#;Ywq+N~|g{y|7k%ORU)2Y)8(}`&_!M zE$4KF9OfG^Rcq!GoxHWAa#*d9-S_qGXsM+~1+8Bxt|+67@E+Jv!OSxF6p(Q6odXr%?@r=iqs0c6VC$J)XWjf)8jHWQd))lgc3KM0c|up!}fFs^)S9qbZ0_C-j`{! z0rjTq`hZ&ww-_N7RI^Z-lxnj{cGtuzQnjV!C)hUK-%$o8ja%IXEoMxmhMB7hVREe| zFH)5OYIXX>k(e`k^VxK<#g1@A0Tvo_cb|sXX23Z;m6Qj{atTK`+vTL~r5t|Oy&Gy%&sxj?0 zgjva8D}26)PgRYhjgmS|RA%Kp+3O7x#jMcV>}9lAHZv;K%UHdgv4V50e0xb1u<~qF zV@GSKKP*@2Tvf4)MllZweKwEqyRvO0`rNwE6=zyW;5zgeA9iqKYvt2xV~^$Nk+m@T zYq7#=X==UHutt**a%*`rA;#-I++}KeCYRT`%Y1oPFsS;DAZ%?(YDS@4?n(RYFxwqf znfw4|H`usV!iq+hqo#ATT^^QZ)qHkU))T`%TrE@G#I9>MCQ414cX(w<(1YzZ+b*UD zsIY)=UeB`yGb{8PWJ|-w>DElo&s!3d)z-O1Zd7lowO-kvMOlV&JE2$6*a9`ql!uwI zI;iHw%FxJ)of*@aVhb*j>+iA*f>n#989u5)b5qbpn@T-h$E6u1L&MCX(Sp~b`g{bH zq)NTEgGrKO7TrY`lK64W8fZgiv(oAkIAg@JjFrlbJ)J2I%3VgI#9^ab5}{?Wr*d>_ zvrtO;Ub?WArJM%85+9|l*T9JrHW!kUBpJc7Ls7e{-|7Ln{rjo zm}SN4Z{{s{S=($(ge;WD`SOwxO3P8k&eOx;aJbZPUCttM4c<2<4WXYe+YFt>5(~U7 zc5QuGBZf3T*l#k+HB>P9l`w)3o*a+@gRJ%nvbUIYeOhcNy}3cG7K3tw?~FNSP=_IP zBV+A_(9xH|W@*%$k|vpz-YU;GGu)(KXx6q`e@OH@M#k3WyJ~Y(Lt&^0|78vepBMWA;U%*%VDkx7BX8m94a-@-Qo>A-tO{XlR;-scCN4Uo$(#oQ}q& zb*;JYjL5Rm=H+=}1SP83Rz({v8i_UE%95FqK2*}f=A0_cx=k6yvBGwzS&hohRJeiN z(-U=jon6(5<)*R86B$Tdq|;-3)FXwvdp)X?wTFh zTewJPS!giFpu8Y;Izw3<;0dn3smruLltzj@>zOT0W(r-cV zY;IPy@-(x6q}qyw8+2hvWaM(chi5jug*@vo=hW;LY4YyHqlh>NOh_8wb zd)4R_OG2hJlhQ)TQWv9MON9qgwP!AL-4a(=o$eJ>QYlaHDU3Hv!<^X5-Y&7hdSi4= z7bLo`u=NU!i?fVftl*WJR^H2l>Zre3EQ-1Lq@wV3Oy;)T$pEKkcB|h|3390O)POM; z>owkMPg?Uz+{2W%cx)=U8}ID^>+)bwl}q`%8;#o zrp=5Rz3etiZ&s!H2x%<3+^)4~70^vFUoWp_BS@|li55|7n7wj0p)T89EWOtEIeJu- z&73k+`|`TX_9p4xkmw0W$I8y_C4vO#6;NDWBaap`rxT$G$#)yO0+y>`HOnq4Ff6GmKSmKqSn4}s&F66yT1Zqw zo^LV`SEbnbT#+-SWogqGu8IpGkGG23UQUo(*?d8r=KFPAl6EkyPZugZFSiQ_wQbS- z9O{<))oc?=^!jkso|067poC(cv^U#QSCipYu{c=dji$D;nKo4u`NS~09SyS^v79LA zRkGEe@UwP4SE}InPU#4o$dXxUzu8wrV{evo0!mGGW5X22gv@U;gC*XS^YyuEl1zP< zo>928hP(7sv>KUyzB?q_jiC%F^>M9=45!OxtJtpO<$OZKwzk3y6I#YnYL%HX)w|6y z-@vL2O2I1HY%yJJJY%h9eOpBr(>A;JF{JOg>U3du~wQ@YLiA$)bp*jz9@}^ zeQB{_)kKChjA6Bbv4cI=W_y$3C{tJU>1a|O>LSKT6H_cGkdc*U%Vuq3w;Gv&MlqX0 zzl+#qtSGkI!zs^DGmE8}+^o}-iBWM;$rom{(X5p_0=J+ScE3=EX9{h#uv}?Hag*i$ zPr+FvNeBQi@If4KJK`>b!wq+LUca@!NF|*HkC_r35RE>`8ZDEBPe6 zJ68-CYqn93(c{}GV?Lo|_6ohn4Sb%D7qKE+&+9Hz>QZ^#N__2bOs}Oq=oo0Cj#0EU z^h91SL+3d7w8cQhv%AR%SzOi5oH$S0pEi#tWPfQmXd~2wmVblGwa6okMeJh=$Szt1 ziIhkH;Y|(4ByUeiJ{=A}9F?(0QdAS@<~Zko5~uLxzfDMEe}uDDGWCty;!U)!rhv{o z8z~yoIbuvdbo2$`7uDqx?pvsVVSBjiQUUtUtV2Znr8z1Kd%tsmlWC*~*3g3LrDv|! z+KO9wZDTc4rF-x_LXbPkMzY`eN_>?}f91cu=(4-b0cAi+BvhH;n=+}YGjPK}K~j;xMk=`sz&*-CQQ;;FxO)d#I;!^DNEaUv<}cvv{tSMa zHrSH5^UktXeo6K+!1MZ^!N39pHtWgf(FK);*g7e*-Vf}zXs5bXI<u(w1d3IcP zVz^?B+w>jdS!?QZW5NffnC;i+ana=m;ZupG<5$BPVx}mR@?@^QBB|o|tDBxUh z;CJb&B>1wXPxb58ohpko$qMiS9WOBccu3duMja&Hs&BpaVvp^Yh(6s-v|L!8;@I<8529z8S4t;tTX(&C!0mY`)em0ZjJ=VcIEEFWb`)4`u08eSTF)I(_!h*&FOX^du)zY z3ELvwCj6IL9ZA1J?o-C#DT?~s7i%0$!7Mg2A9v7`d+w$C%;r#u+FrEc@ZH$H$(-&0 zna=B@li3CsW)5LUCRLORV+gKRb7C7Sbt-MRz>grfclFXvOrS1wn5mczy24xmH-4c_ zLDppSr8mvKOw|Bvm*$-Y4lZ>gh@lAp>#(>JP$@$a1;>n^brh*@2lWeE)rXnXVf#IZ zzIU>>0a!B9&cd1@s(U`MnF``)&#j+foGl@{Piq|%-a5mw=c0YZwE@6hWb@8mwN3>S z<7n8A_#~F$-J+c?%8RfHM7>nRa{(3cvPQ||I~3gsiS!gD!dfUjnn0QR#MclUxDUzq zy+2BsQs=-iAmnzhAOgQro}NYOnZ>Gx54SQ$PH8-Q@sQqaU_046RT*u-PyET_;aNx&$C2;#E<5Cfmr*}jO2^EIj(d~r{6e)Uc74Sk%+SJT6d~RU z67!pQPm~Er+j3`=3HeV?XWtd+SR037m@4IX`CBGLvc%L5@4yVo&ro|jXHi~Qe}Gny zw@>>>l$9Skk8HQczt$HT>`U7BM^zMjRn~eL#W)(u`yN;L;(+mZMZ&C6UP_yh@T`3=Clu( zo#H@zg-5m*C-*kLm=@cEo0xp=Vt(BPdO)}pT(lDKwaK|%C&c96b1VvKP{Ev_$j-%x zFD)~XXu{T1gw~1kmT4Ng9wKt$bNN4AkD1@knV(vcwNy_0cHz@zFl}P;8Hx<%U@4U= zkZ>Z#8kCm4frG2FSp)MsAnP{hg2&mO0@}I1im$j7eKnv&^Gle`ME59Cx6%1Xym(%W9&5Fx z%MGKx9e$%v``HkB_{S;mgpHL&rd*23YQv$${7V=nSa4bb&H>VN0*8&ME`&xO+KP5% z^31X$@0msNDclnYrk&t4;c18ZK|~L|WTXX0m4&SN4XP9RCq;lqF7uk5gQVau#2MuG z7HakH&e~Yl3X0jmjlM9XX*UiU`F+TjBXHj_jbjB4PYOrQVHl=%nBd`_3-l;twwu|=Iv>IK$WgIY~|1rgVTnJ zJboPqm5?s~C~~;m5LR$p01{HWXSfyg_fc`Y+ERl=Xr#=f2}hGg-rS3=a8(7V*n0fQ zCym~b6R@9%NmU;gkZUXXE;$L>*Ci$P&k%OT&j@Z5RO>l09fv6zzlBAd8kp9@(6!6y zClKw$X148v#*R3?c6(4yZWMNiZP9w^I&AwAQ z&@{ishd>^5-nBmvKY5>p5`Mn0yFP2EbHXM0wHdN)F}xk@pg>O(-_y)?1<2`rH_gw7 zV*Lpyl@SxXRZCfn+$u@Ofqt6SG$lRJPMDDB%sT(R;{sz`j>Hj+#2(3lpsY=meWxMw3=-w~hWV&&tu zaZ9oeOSw7-?_0flj*6m4Tes?EA}0OqWeYk6-?T1(kUD#?>t3)RpX@}~-4j<1KvUI% z1#ApxORi>%B)e0iX(62RFO_8gUd!GK@u4WnRh`!ckMXW?XMg5W-%vJc|c(}qx)9Dw_iNFFP`pi5L9=v_da34uO-t(?e0w*XVe^p2R z4#sazDVM^qmBs*D2Z+(L5lM`=?egU7_8dWgrg|K9Lq54>wg!w_kn%(Z))fJp4q>wC zK^>HSw2hFhi^HO=_rgN}fQE}9pb73o8Y&`kRol;P0F4Tg3V3StMob(Uh&@CbHa>q0 zia`~}N*4Px_@OlxeOYE$t#HD}o6maouZL2+Z32@N#1ZeYMg$R7gx&y)CGqUl{FmDa zf9R6LL%OlQ!aeS_xP+6*NfrEk{N~)4n&_Q-es^g}Bai9#9xOllE_Sv6(X=6{Ko`o|_7MQ`qP0ZG<( zZ;2YdabYBQ3C@CCuQlErh@=P8THc_fAC}_x7l>;m>7i#V&Ho*jk=Nx|r4p!MF|Y-$ zrlp8mkkHRNQZ;cJH^J5vhUi52IW>6&JrjOs$WJz%@ZKr5NS3c%uvnjKSIDikcs=ZN zzssX8osDJjJw?FQ$b#EBI_}y;`LPZf`AOEZ1CGX+B)^^K3o0w!R5S;pFjpXCe(KiJqy%{QPvO#z@v;HjqHp%W*fSB6L)OVn|Tr8wK#v zAwljl6BS^rgzY3lCY_@pQ}1P0N{Yjzxx3ic0J%}ZraOFgl3O`xILmA$E(u) z_Y#d-fKpQS=23)UwUN{jwy)lB)EZd+Q>3Wb24X7Hm_iZ8!riy|YKMX>f1UCd zM0yf+sn>s+g_Nk@^;i@N!QUyEUlbUob`~q;S4M^*;9Ul|@iey*Y{W$`S=08DN@<1hIZn zps&V;2aIDcg1JtbJ^d6n5l%tOq^I#|XR;SP;q|SB94){0JDD}XXw%EQW(tMPqx~Zo zw;mK80P*!E-5Bv&F5}LM{LM9JiVScCngC5evcDQchZNwZe4ou1PnpAp&2Uex@6bb) zkRt$#2v781piOE*q--+v7^5}&i7EiGgqR5*9&R7|b&oF)UNS&J%`txrNIUjJ3-8a^ zY~J+?Gul9kCKxKR#Du)xehQXr(^$RQnL0&_w~7JxDUYAAe?8J^QQ%ldO-2-zpkcN!eA$Ph!xP!Vv&OR#u zE<2t0E#%aX3l*)q0+x6az~3rGSdn+qH&tP8#^j-HOtk_(i^0HatHG@IB+^_I+6*|h zt;O)DpKL`yw5kNXM(`Cw+nFKeUjj70Zu+c>WX_G-WlBOEgRsg?N8Lm^6R*5Bd`El-JkOFMQI^L})*7l@U`)B*; z^G|ZnAd_{3dr3KU77x79INnd<=%Z8UX*S-eNV#{Uk5}5pI|Fo}hHQAKpA<94P1nv7 zozBH*yk7%d)TvAMu7i&G-K<&=!YK1XG_QUV(;qAn(OQYBK{Kh8W&QYBB8*U;C3i|% zp)&Js$d7Nk-D9{xP{&7G1V#eOLk-v~M;^2nF4ID*q;g+;Es&cYbfV~c_laWaC^biL z`99-n+DaUVeS*v25&S-SN%V>)B2=e?=*|X`X>JE%3V#hfvhS@%ecY=1=CHHn@&n#H zr&=&S@Vwn!@!VH!EEg*hT}x)Q4FXKP^%`J@#|C_{Ew2 z!~d=ah~-4%qMA!jx&?-a_{4n7v!IBOwbifjbS*m>N~A;6VgFU`#1dW04wddv>RExqU~*F>$P*;5%D2Olb`t{2Ih55})Fo-%m-CujW{`$z zNyh6c*D`t%E$l^(&>KNdN#w2(KG$F|j-9<<8{Q9Qtvjmf^tLnjc(am7V6`nthccom zG}KSAc~^C@HumxnlbIc-?WPSB63X+~K)pDwh{0!qB;B-+cKvU!ZxOXiUl zLu0f9xCPKwFvhE{O-{c{lMq3uZuPH%HZ1&;|Ojav}g;o@<8tQ7%h!JeF;rHuI zfMl&%GU@H@q%U-?}9(~kn$N*Rm+f+2foMIDpuVoTEB`Ft7 zqO-3Mp3}EdPz{q&hPyiH)`mag5-okhmd~qu-GzXY%Gq@ua&;fUqPwc)A#kHMkl0;Z z6NL%_ar?o{c_HsNEB3;~MH#azkl~+Y1Oo~Cr%lD_Oywah8VZhRv_uJ`WuD6PJ2bQ8 zNy?i!Kl)s$3GjeLf;46N$0)rp@wXM%xsU|d;Zqky@6Ye9rrM&Jv#qXOYZ-`XW=_#R z26+;sQu7&yEQA|3oW=8U7beK86HxgmM4=(9Z{*k_1MBku~8jg2O z*D_@ifLy4u8O(9y4ee*yEaJ&XLy`F;1r=T6#p79utUF{~dCBhS8P;|HUuW;^kt!k~ zXg@eY5c4~xXR8C8_Qb3Z6c#yQsx>y_oGlBa9HA39- zTLn>dnji_60avRy)_%HIAq#}xT?f|*c{a*U8sJ)cXt+y$4{*@3aKRLAjGKzO8nhgu zutKWwPu(p=$JpnDL>+X<1m-t_29q^y6A3s?#b@AHyApj=?tra0kvnEL(e zEso2gw<)V3GoL!C1D1+sekj~dJAbSEcEv56Bf}<*!d@!^D~D|jpRmJ?-*Rls1IE@* z4xg$&yC+B>F;z`CmvqLZz(1IsL^3#71Mm~JUjPGiZZmqVtbEeS$wG#M+XH%p8;6bPf1NkkW}4<8)96%{GrBX(YsG#KFU3JZRdb zfI#!R(QvNfC^z7N9<&m2(LTo=+k!s6(ogIN1@sbI*!xqbxDowxvrOU4f+=SOmr{C9 z4_&dRFp9pY0##qi!(AZpzyaQVfjGO!x0s?{EOgdkcDh@1&E+sS>~Z#RA{5rllIm?+ zsEEK2*izo*wqB?oQ7Ky_RFzFelZ{?#G)Y?OQr5;Djxl_Z9(^Pms28k$*e|L(_hI_f zX3D#i${wSMLd|rlJSN_HwLcYJ+EP+t%;@#jR|yrYAsy*h>h}ay8CqGggegu;5&<`h z;lKm_q)9t(x6s*>L4k zXMbxIy{BW-bWNoWkY~9`_WkyXeOJV${cOw`c}W|jHY+V(Mli4Hk>QbxmY+;B zIg>G-E_-(E`%dDy6gb4CbLs%l2PhB2FY)twW@q3(d(32k{n^7x1Ra4g6y%twF98I@ zDPzmmhCtt_$&{8TBjA6=6xv1=oPvg}3_~INrX-PErdy^__%0U6)ZcmgKpU+w1!l8A zJNyQ+?7FLcr?^kIY~;r0;O#?=%B)0;0I23zTDLPL3b|%sI@v37Ms2$l?xl-iyJnky z5TL`#qC*4}L1vWoo}a)s#k*qS(|N5_?vaV;Yq8~4)C`+X8{*}FpHs>_CHu-lDSj>E7{ zwdDuF$OO^al+@fx=|uU=5Z}UOVnBpj@(m)%k!cPWra!~2y{S-|x9JqAy5hAmxAZ3Q zw}8P)aeEXAZbbd>okt9e2ivU)I9}E(k2qxzKb=`xI0j8%n|)+Z=^z(1pEPqQOi@ew ze#q$%u48X&+3n~~E{}J8y!|AT!n8#J|3u$=C6ldn)mr?~y_QZ656SjD?>1iSr}UvN zn!KidC1zsV{KZY1GRPxZHmlT8Nwf?%XP;^%`fYyRv~jxnRuZ zNGY=MVc{QnY5gLBQ7z&!R(4Cbu4L&K=v)HRY0`OQQorGN@V1;l>;AHz6kh)Q+QP92 zR=e^b0(TiU9W;!Pc`_=r3z7+#ft;EYbm#XfB<>pHyN$j)NcdzZh)LQJhza5w;9h|@ z@v{WW^GtYi#w{MC2%;wNNy4m03hS{ADz>QE5XxxVC438(qlb%C zK27@ce0W3P57|&|SL*pIPRhY4lD$l^LG^lvP9@6YfbXWCbE3@P{o?or+umCQ^9Qnr z%KmN(1=k}t_FK-z#Hb*%a0rP+ZySnp)%MB@8H01^gjsmN$e2{em7gLs!b~RlSB$Dv z`WL(uyr;!_>_xotN$niB`7{L>ft3);GRG{rNzPc`z1!(kL=vo6r38*RI}bhoYkWos zEQlTrC+xLf=0>KTvjpZZMmIjFEKaFI>oA0GJh2??YSWMDT-A|UGm{4V>KrtaAW&zn z+i~q}*Fep8)pS*iAH-|kUJ_b3K?@nE6&f`ro6gxDK015;(kHaVRaW*k#|o{})J7-WJIP9pgg_8fMv*7<^Zp-BC{Dy4syevKHK zTUP8cz3R2Hs=`(gaTJQ)URvJ|uW&z1Z~73>-6RW^81)UaWy5;PyVg4pC>=znn^QKAgIYD zTE!4Q_cRr)0i%+yXVG~>WR1X!f{mWbkmX`(ug|tie9+Mc%`X}vERN}2=P08>s_kwj z>US%X)`@M-_x#?pn8s3zE`Myiy<}r6@5v?@@+=EymfCMx`SY%u6GxXjntzzYe^xes z>*__-NB~j2v_GoJgI-fKAu}^idT-=5pu>)yK_^AmCD{};5qd(Iu-{)Tt!sH5o^vk@)=c!2gdJcQjl(yH z@WVZP)D+?gapmyIo}M1`>wn-2>a*r3@T4pvuUy`1iPd#UwrtbkS*wKsw&&2})#@L_ z;&U0gauIgeo)5t6ZU6iBaIdcWndsbGQuQQ8#jUtOelM_Ju_-*g8Gto|O&gXJ*ex${ z>XHtqK)tzTKk>EzsuT-8aIqOOl*|xwk`A1Q2OFdB>eb$|V8j&l;*nt3+khWc)!^b_ z>A{m`$VLHn7lqA5y<2-4u z{T-Vy%NvoV&whQKrQ*C*v@X?+^R<{Wu&+y$y=MX9BK&8>I5x3iY5D5+SKy!9u0BtjOR*SZU@LptSCEWfE)Vma0~J% zEbKQ7ry>9>xdD9)Z6ncU>Sk8cXxA`#?;?|bQ%SVgTXOGj*s1Fog~=B5gUY|iLN1!u zd<*6AKE14b+T0EQAXRxQOjcSS#y$!}~ROR+p@YDUr zK2J}X@u&cpd~UG^P19dcMcdJmOcBBDDJXMGA(3=1u8zvu0;AS!A_;a^67^{2RgoP z<1v!egp$2&!HL|4=dp3*q^)f|<9${oEBD%5`dnkAdh@X{Lo!0}=HA#(4k)gEjdo5X zhWM6oFpU*wr?4TAI1!g5W8#5@3R709gOJ#03H-!;$L?ZfAUva6X%StN&S9{jfY$UH z#2Aj@+bUPGS=^YU;DD%XXFS(_#9b~eWa!LC6*r(c#+njaePdLcDkvTQUJgDGyN&L3 zfTJS)tqeP!F|sr6{(wDTAvrwoKe-|gfV86d`cOYI1n&Gr<& zr`d;ZctGM|^6*g^Q~{8E3UfiK@!F zgrze?rbT%``Hx*vQ$Za6(_&nUROP zKHLum0x7&jnY6S6#@*Djfaip->&`c#GIzB?loCEwpDrmn4}Is9V_->1q*c%O zDO0|ZjGda9VF2*LGrv^|Rd{HkP{7ftmXL}LfYJ?A`8Gu5$6h&J{X(a+mgz~5L{O6& zh@w=Cb5d1nQ_0zG2uf~;`s^N4US7!*V%e@dXk8v&L3DG5L4V-UoF%#r>`2ITE|PF! zc6wP5k3?s;)zjkc)qhk$FqMtCzp9vjHXdPA0m9pr%V-J4-+1MpGXyqo1xO8!YC8QG znlJCwI;rfUBiIaQ8bcPd&I8|_F8+S4dOtwG-Cd4f%S&?S6F*UI#tIy#W|;K=jYk2( ziARk9BQYdx^5D4dr(S4RIvT?xFA#-?!FUyK9>3Lw3Whpd2LnSwXdjGYr3z@e^E-MQ zi189|dp*ue1(xE`{i5uO zu6%yI%Lp0^&rXrs*`FOTnf+ryGe*m<$(7%5Y+Ui{J1`y;fL&V8YhQ#{kH#hQpj~>O z`_6KOSo(@pJ+Y&io?_iw1VwQ@w8!@cYxm!JNdu|Zypr_SUdopgL{1;S7n>sAPeO*@ zl_4jGxPiQK8{5u7B|+TpH|9XOE>d5@m)!D3Oe}Ig{63rkBvaz%!Q+qVzLbNwisk%f7XDnpU{O zsY0Rmc#7gX-wPwcH(_qy3H)5|8MddM(4t*rwY@Enc-=+UDf~iy3gMoTp-@EzyY!1z z{$$HWi{t0@`8ho1WnlqV3uvKCvlKGjlMBC5&<&xN?K}TMic$Ob2PU7R@6=so)?1{J z8Bakr8|MBa*;L}JAIM%2N&`5376o0-DSV(*NL6irxGc%QQepcBwM1J3^cp-~8K^39 z2gmU9ZB6HhSlgW2M3^Ww#B`+H-}7G4S+}gGjIiugpEPc@6Zm=HUuG@uKoC2F3;;=2#BIJUzB0(E<vw4`;KK<>0=|0eSlD6wpE;uILmu%)S zoxF7d%E|Lq{ef%IigBdR`$muBzsT?zR%CWS=_Z?oaegkRk1R(97$d13tROkx*BS{?Hc@=FW# zy$y5@=9F$mX>G#>yXy!Qb3G~o{1@k_42BnN!l|%&TB)+l#y}eqNJV1mJxe23!UD*c z!lP}7_y8-jFNxMlG|C*@1V>vN@uDwJqvq~XuN_!HBv7!1%%FXLQfYnD(t$~ z#cV04k<6hg#YR?W84}F7!By=3`$ft^xPTBPDBF>nwx+_in6YH0Tp_E~rE~NzD)eP&Q!lQ?-B#KqYUUSjHjo92_) zCx1ugM1ME(q)3B31}Z&63)M|afAte|UaY%ltfCp))2z1<;vhW;k;$c~xv zpcQHbPS85t@(0VhD=UFj5r(X54=hAKQ79-Y;1dlr^%~s8eNsn?tCQ5Xw!nH;>YobQW&cK zE*@#q-k;MFIHvwkgFFy#bD)z1Cc4xQ|c$1kL zI`{2ZWmEj~T$kV`YPb0apT7NKJHG(Ca05E=Rz;JNUWxHj?{tMA(pPBKmz~fS7hBUZ z#8*pIz^KjurC6qk-`VREaK#hY%NL2+!zi9HBD^sU45}1q`q2B%E$>_;MqK_cI8Mo;|RFH$8BR>sBU>BhG?scSaC1N_*l~KTEl1OyY0_F9g^Roe}%m62qr)pRbb7oZo zJBN^T5rK^sktGZ{T;=XmYpGTfPZP^t<_EU>mlj%$os}8@pIS!pWZgMwJLl5|2U?}e8H5c||dEkWFmlR1e zXS0nO4J^Eff|b)m$=3;hxh{hrUzS#YN0sJ*@wv;8cG|sKhLd+C_9BR>7wOxZk=zaGZ3+D;8f-*(3#uU)+E&Q6n=+pd{7{JUB(x{2{(}SSLpSFf?cl!bdhJ zJ!(kE82L3*X2kqjUH~(7>bkh5M-_tuY7bP=4|9la@$7|V-%=#u&UANc&uqnML_pCY18%}kuH&PlZ2i8{2SO%T>Dw!V7x_Naxc@7^ zQqo}~a$q0mwivmEp1qYX;!Uepbg6Q;b!MDnSA><3ZI zoZBmKO%JRLZ^a0}c3Yi~q&SM=@(&Iqbf% z?pBKGES-P%21B^8EjL3S^Uox(nq0hcfdCsS=$6pbTKlE9q#FQHpJ}rqy@6JocSN$U+DQl5O#7v2sxCsn`kSB`zBXc0$ci*9bytW?XuolKz}Q?bN|I70`RPcj72mZ_Rk zUZux6LQKp{4=zQS^w(BTo=`};6w@od6+Og=n`tJ&Vbe(X_)k9J2HA{XV0B5>3M4yQRP|i#1VL&x=2+cRO`?a1itojYmtm%)4KgFT4}#P^EQ8{ z3axt86(C|tqNK|U58=rtia+^o3e;tizYL_0c@ud=5$8rn!f0*rgqvd{_zvrR7qgYy z$xp+SxC@$MpI^gJ390%pl$t#(g8xW-KCD9Sq1y0-DTA*m^`>n$-*DOL-JWIgJ@r*` zu{{uEo?7k=HdEM)=#1(#3Q}q_+}r31uOWAs33aObD`9JbTO$Y|)2vrEr8e#kkZ9GA zNuwlW$<#OB_}@y1-^C{u?g8ZL;zSg=vbbI5nbxcz@tIlWrQ|(r5-Vxh$w2CrElNkL zt9dtPeEQpa0-Bdj1rqm4{`5cu*U>dziN$v@8wB~ZW3#ykb~`Sm_Z^Q1+eva}(j^ML zAJ~MF1{CsCo#dDWX^LUU;;B+=1*S@1Aegm0W+#OTjq|y!em;@!nij6LXtjV9lu{Qp z%U&ZQxe+!maU~*5{iHmhsK~HfDer@8W(_Qso=zWgE~IU$?eE(pz%PAb$Ay%fJJ)On zxDhqwihPx>mv;@n{%j5Q($tIFDWT(TSz6=NnnZTaMr%+F7jro4((}jnt#q(!!=xVg z#(&~OiD#qmo-g7(^PW7}5mQcPfq#|-L@ZI`q4aNdj{q4)`?s5V@O9)=fGbuDTXZYt zBD<%oT?3!oKO%Q*&rQf;X8MD})l4+|i185VBplHG4Y(zQe1|NGUR|kR}=36W(DFz7Ui`*QTvUqX=?G`Xc_sE`aISxV~<~jBqdYzr0LgSV{Il}7CO^L zld$c|5aY*ZzW{=h8bN7tls-EV#rLjdwnxNpfL?c5k-hZ6Bgc{JxkVj2XfhL-b+`z8 zVN{rk@r^#U+gwy=0&N_b9~Te$CL-b%mar|SALZxIn&@R#f7?#y8LECd4A<64NPEa) z6e!mA$wScJHNd3)5u^%R=~>lBa)!vfqS%jb?>R>37+_VDVysq)9C!#9i}%S~D>=a< zXZ$bmLFI%dDIGra*(1A1RY(X6mwCA}(Rud;U77}R*qGSp8>LWw)~s;yS|}o2Zd%y$+c+ews@ZZFjN=U}v2|ETU48_htS|CsD4F^4n%9+t zh@b?ZZ_}?qAC4}v{PRt)0}m0nt%ko1u#J#p?NDIH^W9D5()pyJND(-dAic4D{JQq7 zj8M?}o_VSDcwgfn4mWMDUmS=pIt0I-o_|pij26hQKm?-PGA!ApL9~-h0z8Zjead)a z+J*WA#t6jOMT~RF`1@>7`LDrpi^IQ8-ip<3FkzN#uq>lOj?jdO6FTvwX*yGzyxm+_ zfLerLn;#pko%zEY*3xO?&jg8>jWK;C=ikSU2u(jjCvQ9b+3k;w zN`+{GmXjLdT9K&Q3CLwPRFJw`M~mx9Gdni5y1PEW#5atUYrVT*ANQpNQ2IEoP=n?) zRf_#+5M>L@5Dhi!43;(W&%Vuz86glKwQ>p{0AljiL|yu-Y)nO(*Q4U} zSY9&bmxLSWN`Aqmj3P9Nq~*TLdFJYvhfI z#E8pyLS8`f9Xx?Vl--(~=GzGFJBHds*`!K)Bw`=YqxhRHGCVp*4`mu9CTs>NYS7`Q zXt3Vxvt<>qhoCDI!g^y>l&PZg8Y$D0yQxFwjhoVjwok0$0}-#_s5fWRMKNY%hlNE$ zB5C0in*j2DDc0vfs(IV1kgRMzrl-04%b^_n;2gHk{c=+yrr(}T?Y6_|sm)Zd*izWm zqwoM&ymMfpn|7R{R{Azsm@*ZDa7Uk4gH^Y$0AkG$V>xb<@O`UL=HHNBTWS5NtzW0CAgqjo=p|; zhBD3t=J)H|<2W6Q2}_?xtZx-H#R(wsf4!q!_1$17}F`h!{1SBTgFrhv}^F#$qM1_b^9^Fhdq#Mg!UOg2dA z^B*V+ZWF+Yzr;8Ug|sOC;pbu+47D5KBZxGrs5auona@7MZm?Rk-v7rDLe#Y3IK^%}$VU+T`$?oPN8moX6fLF|F zijSBdrS{@4C+i4FA>v`OTgqB?`$NYE?sn*6e^bBE1TMHMuy`&PpZb)-V60^pIZz*^ z9NX_L!=tDy_KCjzH&cA*OoVJoEQ6ulvkc>B`c`}30lq5gVBv$l6#Ch$p;rz3QMrnA zLdeA2>kR(-!l=yLeIcs_p-fz^ykBoeboZ{iAtKsDmXd)8n7Z=UtZs$t0)(h+=(8�HV2TJhADNCQbmtlZh) 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ŽF4UyLsTUQ*vRG*&T)YHoG)G1!Td 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%0Df2o`uw(^lSF(V0^l9 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

fSB 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%0A5(@TGagS%3@QE>!DbZt;{4 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�>Xxyz52p}N<8E#x2x*JUyt?MdAgQUleN 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

tnpTpQ#1+m)T;G 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 z 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

^`I3Yh^ym0JA2 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%0D+9MnY)GHb;H^U_AKNxYlb+{a58Ml9h33FbTH+2 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\EOI%n@J) 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

;&OKi_9e7f;nRg(gO@6TLndvC*CQu)x;{F*C6? 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 z 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

7U=;tnbI=s^n8?xy}~2A&Q&neD}6eMJ`W) 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

N7sOrEw1) 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Π{X_j%|gun21YEUoR^H#^YtX48p?)~~D( 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∓{@sT*pqB(XyeC9je_m9YhS6mCuUHl55$)d$_m^oA( zh`D1_^>N5v7b0~0%rIYUXY9P*4i@fFj6w)=X!%Vcf-I}5KYIh*Wg^zO$|v5ZTG<&j zL?OE2lu`r7X=8%rCNh_$=LMtKyhF;dMAQ_@_0!8SgfNkBMxM&qW7r^o-MX>mAg38n?6PGv9L`UllPj0VZJOoWEbor8hwft&4c<_ld0h6f80EQq1so>!4M6=i|cN0)W znG|jq%07If4xFeFV6<#7+0< z{9Or4byO>ljIM_`ifLIZ*!rc6aGlHXhs6srT9MQeoNk&Mcuv4=Y49pVqU$FUm(#bC zNab5@%nTn@kv(!L{1T~=e!2S^ayi1VA)auX1=0^C?iBKvO+|MumT=o{RUbU$o4Qty z@1x<-kj~3nPZqGt!bATv_>cSG-zsWGLKdR~+7f~v6sLascm2VUuG)_fv(}4!-z)9j zl4K?RbiB!aq>5O3W3S9w6qRIz-5b1SiR}8alH7*&l5b_peZc^lSgBU^c%wZC`bStp zq>8Y~eAP<=BXITb+v)>PqLeIu33901MLA7dS0KPX7zMdYef75nVs{6he_%`%VADh4 zXTXqrKBy3s1(6YO58mSca;*Zc^UH(eg5Z%H7qHp$Njp#gTC=PVUy1TUwC~??d9PcX zjYfTG65MpjGE%3#__Z%*WZgA?Gk*=vN-WA1tlP4~f&dBN(c9#m-Sfj#qu^d|It%F! z#C`~9(6J%Gbw`pRWi0BP^gd7fQ@2#9Zd&i>HMRE zpl|0^Fi(zM_)WmK*BbkeHJFB7H8~}Yz2PVPOlXb%RgSUZDqd?7=-mA|KH5QhkOu=t zjjr^s;F;L@D7Ghk8X2wTfZ|mUF`is-jOT6PvQ6sRDP9+ca6}DBJrF|Yit&^BEGW{9 zOz)O(DU}6jR;pY8t#goSq5tLREOIS}Vj#Mp48k-FGjnFa7iM04>-QFXCEL2LI^_%c z8v`_Gl88(yN@zqbYVl587wzQP#Z}gk3V?%b?x>XT=-h)Y$g6DX0(;ZDLJCj1f`?KW znRvp^rGI+DIvC(p>z7;S5qt0@UbxDf(AHCuJ{eKf;#yy%r3jo3j#{X9VV3- z0aUnW$LjepiaGDgsPh~-y>+8dJ2sNe{1Y+8FLfaJn7fqSzLbWUTId!fJJX+M`ofZA zy1B0|&hGt64YTcu%V!S4U81AYvcIrc>3V>O>pTb)ug8pzL3;vXJfu>9>d}XxT&ZW< z)gRYZSI~J2V}rE+G?7K`VFysPwc;g&vS!Au_mQ!!Z~fdIhpRN8!*#IrJh7BZ!?K4iT#!7g7zRjef|B z8itl+nANDjxZs5%G6Pfv%g;ZF!@>PtpQ6Ps;03_jqn16Si>;YO^{%w46$fdFH|un8 zUXQrhc>+O^`ISN~VaQlR2afrnzuU0H#Pu$It|9-%DB5q0%zAFsPPi%|)gWIBj!fH~ zE*yNjm2j2YNCU8p0iGV?;}Mm9+~$Kz$>S!}O!7&=D@2Op{75}~pQ-O6!85?#t~LbW zMMLirZ=D@Jbly1E@&hjCLq*fNm>3=^-j|cKQo{Zg$pR|{kt&hfn!d)r@0SU$DIRK$ zOl?bq5%=STAFOei9$t>HZ_4eUZYI%CtMCIG+Vl=8H^Y21{&FwNcqUraBYN}fbXFAK ze1cn2VhU`8G_87NL)i1PxI4*JbEgMq-Jqk1IRHgHZfu^lo--@wMq+~a-2EQ;#5Ux~ zIh+DggZSBbfEWFbI)yXKiRR&qUC?IJa}6hiH}I>f(pyS8KnidXB-%OG7a<|u1+4bJ}V~irkuL*w+&9umDV#)&P37Pibbh)MaZ;u z?CcfNu7Or z?bvfW-98U&x@T_9E$r-P`O&(*f`W=Bw{+jU&huV`WxH)inrhU-G+0 zik=%`f0>E(eyj=&;2c8)#=ad64mxbG=uKJUcVT!~H*JG@+^ zjabsRw5g�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

qX1r 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�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 Custom JSON config (For more info, refer to{' '} - + server documentation ) diff --git a/examples/server/webui/src/components/Sidebar.tsx b/tools/server/webui/src/components/Sidebar.tsx similarity index 100% rename from examples/server/webui/src/components/Sidebar.tsx rename to tools/server/webui/src/components/Sidebar.tsx diff --git a/examples/server/webui/src/components/useChatTextarea.ts b/tools/server/webui/src/components/useChatTextarea.ts similarity index 100% rename from examples/server/webui/src/components/useChatTextarea.ts rename to tools/server/webui/src/components/useChatTextarea.ts diff --git a/examples/server/webui/src/index.scss b/tools/server/webui/src/index.scss similarity index 100% rename from examples/server/webui/src/index.scss rename to tools/server/webui/src/index.scss diff --git a/examples/server/webui/src/main.tsx b/tools/server/webui/src/main.tsx similarity index 100% rename from examples/server/webui/src/main.tsx rename to tools/server/webui/src/main.tsx diff --git a/examples/server/webui/src/utils/app.context.tsx b/tools/server/webui/src/utils/app.context.tsx similarity index 100% rename from examples/server/webui/src/utils/app.context.tsx rename to tools/server/webui/src/utils/app.context.tsx diff --git a/examples/server/webui/src/utils/common.tsx b/tools/server/webui/src/utils/common.tsx similarity index 100% rename from examples/server/webui/src/utils/common.tsx rename to tools/server/webui/src/utils/common.tsx diff --git a/examples/server/webui/src/utils/llama-vscode.ts b/tools/server/webui/src/utils/llama-vscode.ts similarity index 100% rename from examples/server/webui/src/utils/llama-vscode.ts rename to tools/server/webui/src/utils/llama-vscode.ts diff --git a/examples/server/webui/src/utils/misc.ts b/tools/server/webui/src/utils/misc.ts similarity index 100% rename from examples/server/webui/src/utils/misc.ts rename to tools/server/webui/src/utils/misc.ts diff --git a/examples/server/webui/src/utils/storage.ts b/tools/server/webui/src/utils/storage.ts similarity index 100% rename from examples/server/webui/src/utils/storage.ts rename to tools/server/webui/src/utils/storage.ts diff --git a/examples/server/webui/src/utils/types.ts b/tools/server/webui/src/utils/types.ts similarity index 100% rename from examples/server/webui/src/utils/types.ts rename to tools/server/webui/src/utils/types.ts diff --git a/examples/server/webui/src/vite-env.d.ts b/tools/server/webui/src/vite-env.d.ts similarity index 100% rename from examples/server/webui/src/vite-env.d.ts rename to tools/server/webui/src/vite-env.d.ts diff --git a/examples/server/webui/tailwind.config.js b/tools/server/webui/tailwind.config.js similarity index 100% rename from examples/server/webui/tailwind.config.js rename to tools/server/webui/tailwind.config.js diff --git a/examples/server/webui/tsconfig.app.json b/tools/server/webui/tsconfig.app.json similarity index 100% rename from examples/server/webui/tsconfig.app.json rename to tools/server/webui/tsconfig.app.json diff --git a/examples/server/webui/tsconfig.json b/tools/server/webui/tsconfig.json similarity index 100% rename from examples/server/webui/tsconfig.json rename to tools/server/webui/tsconfig.json diff --git a/examples/server/webui/tsconfig.node.json b/tools/server/webui/tsconfig.node.json similarity index 100% rename from examples/server/webui/tsconfig.node.json rename to tools/server/webui/tsconfig.node.json diff --git a/examples/server/webui/vite.config.ts b/tools/server/webui/vite.config.ts similarity index 100% rename from examples/server/webui/vite.config.ts rename to tools/server/webui/vite.config.ts diff --git a/examples/tokenize/CMakeLists.txt b/tools/tokenize/CMakeLists.txt similarity index 100% rename from examples/tokenize/CMakeLists.txt rename to tools/tokenize/CMakeLists.txt diff --git a/examples/tokenize/tokenize.cpp b/tools/tokenize/tokenize.cpp similarity index 100% rename from examples/tokenize/tokenize.cpp rename to tools/tokenize/tokenize.cpp diff --git a/examples/tts/CMakeLists.txt b/tools/tts/CMakeLists.txt similarity index 100% rename from examples/tts/CMakeLists.txt rename to tools/tts/CMakeLists.txt diff --git a/examples/tts/README.md b/tools/tts/README.md similarity index 96% rename from examples/tts/README.md rename to tools/tts/README.md index 4509763c65..557014aebb 100644 --- a/examples/tts/README.md +++ b/tools/tts/README.md @@ -45,7 +45,7 @@ $ popd This model file is PyTorch checkpoint (.ckpt) and we first need to convert it to huggingface format: ```console -(venv) python examples/tts/convert_pt_to_hf.py \ +(venv) python tools/tts/convert_pt_to_hf.py \ models/WavTokenizer-large-speech-75token/wavtokenizer_large_speech_320_24k.ckpt ... Model has been successfully converted and saved to models/WavTokenizer-large-speech-75token/model.safetensors @@ -105,7 +105,7 @@ $ source venv/bin/activate And then run the python script using: ```conole -(venv) python ./examples/tts/tts-outetts.py http://localhost:8020 http://localhost:8021 "Hello world" +(venv) python ./tools/tts/tts-outetts.py http://localhost:8020 http://localhost:8021 "Hello world" spectrogram generated: n_codes: 90, n_embd: 1282 converting to audio ... audio generated: 28800 samples diff --git a/examples/tts/convert_pt_to_hf.py b/tools/tts/convert_pt_to_hf.py similarity index 100% rename from examples/tts/convert_pt_to_hf.py rename to tools/tts/convert_pt_to_hf.py diff --git a/examples/tts/tts-outetts.py b/tools/tts/tts-outetts.py similarity index 100% rename from examples/tts/tts-outetts.py rename to tools/tts/tts-outetts.py diff --git a/examples/tts/tts.cpp b/tools/tts/tts.cpp similarity index 100% rename from examples/tts/tts.cpp rename to tools/tts/tts.cpp From 3bf785f3efa89ed28294fbf73054558a2b034bfb Mon Sep 17 00:00:00 2001 From: ymcki <84055651+ymcki@users.noreply.github.com> Date: Sat, 3 May 2025 23:39:51 +0800 Subject: [PATCH 090/126] llama : Llama-3_1-Nemotron-Ultra-253B-v1 support (#12843) --- convert_hf_to_gguf.py | 8 +++++++- src/llama-model.cpp | 20 ++++++++++++++++---- src/llama-model.h | 1 + 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 0862099da4..838999531e 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -2123,6 +2123,9 @@ class DeciModel(TextModel): # if n_heads_in_group is not None, then # _num_kv_heads[il] is num_attention_head // n_heads_in_group and # _num_heads[il] is num_attention_head + # ***dummy layer*** for nemotron 253B + # if n_heads_in_group is None and ffn_mult is None + # then _num_kv_heads[il] is 0 and _num_heads[il] is 0 and _ffn_dims is 0 for il in range(len(_block_configs)): if _block_configs[il]["attention"]["n_heads_in_group"] is None: if _block_configs[il]["attention"]["replace_with_linear"] is True: @@ -2134,7 +2137,10 @@ class DeciModel(TextModel): else: self._num_kv_heads.append(self.hparams["num_attention_heads"] // _block_configs[il]["attention"]["n_heads_in_group"]) self._num_heads.append(self.hparams["num_attention_heads"]) - _ffn_multipliers.append(_block_configs[il]["ffn"]["ffn_mult"]) + if _block_configs[il]["ffn"]["ffn_mult"] is None: # dummy layer + _ffn_multipliers.append(0.0) + else: + _ffn_multipliers.append(_block_configs[il]["ffn"]["ffn_mult"]) assert self.block_count == len(self._num_kv_heads) assert self.block_count == len(self._num_heads) assert self.block_count == len(_ffn_multipliers) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 08d2130137..8d25070f42 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -80,6 +80,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_236B: return "236B"; case LLM_TYPE_290B: return "290B"; case LLM_TYPE_314B: return "314B"; + case LLM_TYPE_405B: return "405B"; case LLM_TYPE_671B: return "671B"; case LLM_TYPE_SMALL: return "0.1B"; case LLM_TYPE_MEDIUM: return "0.4B"; @@ -582,6 +583,7 @@ void llama_model::load_hparams(llama_model_loader & ml) { switch (hparams.n_layer) { case 32: type = LLM_TYPE_7B; break; case 80: type = LLM_TYPE_70B; break; + case 162: type = LLM_TYPE_405B; break; default: type = LLM_TYPE_UNKNOWN; } } break; @@ -1848,7 +1850,9 @@ bool llama_model::load_tensors(llama_model_loader & ml) { layer.bv = create_tensor(tn(LLM_TENSOR_ATTN_V, "bias", i), {n_embd_gqa}, TENSOR_NOT_REQUIRED); layer.bo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "bias", i), {n_embd}, TENSOR_NOT_REQUIRED); - layer.ffn_norm = create_tensor(tn(LLM_TENSOR_FFN_NORM, "weight", i), {n_embd}, 0); + if (n_ff > 0) { + layer.ffn_norm = create_tensor(tn(LLM_TENSOR_FFN_NORM, "weight", i), {n_embd}, 0); + } if (hparams.rope_scaling_type_train == LLAMA_ROPE_SCALING_TYPE_LONGROPE) { layer.rope_long = create_tensor(tn(LLM_TENSOR_ROPE_FACTORS_LONG, "weight", i), {n_rot/2}, TENSOR_NOT_REQUIRED | (i != 0 ? TENSOR_DUPLICATED : 0)); @@ -1858,9 +1862,11 @@ bool llama_model::load_tensors(llama_model_loader & ml) { layer.rope_freqs = create_tensor(tn(LLM_TENSOR_ROPE_FREQS, "weight", i), {n_rot/2}, TENSOR_NOT_REQUIRED | (i != 0 ? TENSOR_DUPLICATED : 0)); } - layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); - layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), { n_ff, n_embd}, 0); - layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); + if (n_ff > 0) { + layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); + layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), { n_ff, n_embd}, 0); + layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); + } // optional MLP bias layer.ffn_gate_b = create_tensor(tn(LLM_TENSOR_FFN_GATE, "bias", i), {n_ff}, TENSOR_NOT_REQUIRED); @@ -4705,6 +4711,7 @@ struct llm_build_deci : public llm_graph_context { ggml_tensor * inpSA = inpL; const int64_t n_head_kv = hparams.n_head_kv(il); const int64_t n_head = hparams.n_head(il); + const int64_t n_ff = hparams.n_ff(il); if (n_head == 0) { // attention-free layer of Llama-3_1-Nemotron-51B @@ -4780,6 +4787,11 @@ struct llm_build_deci : public llm_graph_context { inpSA = ggml_get_rows(ctx0, inpSA, inp_out_ids); } + // FFN-free layer of Llama-3_1-Nemotron-Ultra-253B + if (n_head == 0 && n_ff == 0) { + continue; + } + // For Granite architecture if (hparams.f_residual_scale) { cur = ggml_scale(ctx0, cur, hparams.f_residual_scale); diff --git a/src/llama-model.h b/src/llama-model.h index 4c7e7a335b..815fa11ebc 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -76,6 +76,7 @@ enum llm_type { LLM_TYPE_236B, LLM_TYPE_290B, LLM_TYPE_314B, + LLM_TYPE_405B, LLM_TYPE_671B, LLM_TYPE_SMALL, LLM_TYPE_MEDIUM, From 36667c8edcded08063ed51c7d57e9e086bbfc903 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Sat, 3 May 2025 20:07:54 +0200 Subject: [PATCH 091/126] =?UTF-8?q?clip=20:=20revert=20the=20change=20of?= =?UTF-8?q?=20BOI/EOI=20token=20for=20GLM-edge=20(=E2=9A=A0=EF=B8=8F=20bre?= =?UTF-8?q?aking=20change)=20(#13259)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/llava/clip-impl.h | 2 ++ tools/llava/clip.cpp | 26 +++++++++++++++++++------- tools/llava/mtmd.cpp | 6 +----- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/tools/llava/clip-impl.h b/tools/llava/clip-impl.h index b575ca4d7c..b78d930bce 100644 --- a/tools/llava/clip-impl.h +++ b/tools/llava/clip-impl.h @@ -75,6 +75,8 @@ #define TN_MM_PROJECTOR "mm.model.fc.weight" // idefics3 #define TN_MM_PATCH_MERGER "mm.patch_merger.weight" // mistral small 3.1 #define TN_TOK_IMG_BREAK "v.token_embd.img_break" // pixtral +#define TN_TOK_GLM_BOI "adapter.boi" // glm-edge (these embeddings are not in text model) +#define TN_TOK_GLM_EOI "adapter.eoi" // glm-edge (these embeddings are not in text model) // mimicpmv #define TN_MINICPMV_POS_EMBD_K "resampler.pos_embed_k" diff --git a/tools/llava/clip.cpp b/tools/llava/clip.cpp index 7607d4e3ae..3b60a526ee 100644 --- a/tools/llava/clip.cpp +++ b/tools/llava/clip.cpp @@ -249,9 +249,11 @@ struct clip_vision_model { struct ggml_tensor * mm_4_w = nullptr; struct ggml_tensor * mm_4_b = nullptr; - //GLMV-Edge projection + // GLMV-Edge projection struct ggml_tensor * mm_model_adapter_conv_w = nullptr; struct ggml_tensor * mm_model_adapter_conv_b = nullptr; + struct ggml_tensor * mm_glm_tok_boi = nullptr; + struct ggml_tensor * mm_glm_tok_eoi = nullptr; // MobileVLM projection struct ggml_tensor * mm_model_mlp_1_w = nullptr; @@ -1559,6 +1561,13 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im embeddings = ggml_mul(ctx0, embeddings,x); embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); } + // arrangement of BOI/EOI token embeddings + // note: these embeddings are not present in text model, hence we cannot process them as text tokens + // see: https://huggingface.co/THUDM/glm-edge-v-2b/blob/main/siglip.py#L53 + { + embeddings = ggml_concat(ctx0, model.mm_glm_tok_boi, embeddings, 1); // BOI + embeddings = ggml_concat(ctx0, embeddings, model.mm_glm_tok_eoi, 1); // EOI + } } else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { @@ -1972,12 +1981,14 @@ struct clip_model_loader { { vision_model.mm_model_adapter_conv_w = get_tensor(string_format(TN_GLM_ADAPER_CONV, "weight")); vision_model.mm_model_adapter_conv_b = get_tensor(string_format(TN_GLM_ADAPER_CONV, "bias")); - vision_model.mm_model_mlp_0_w = get_tensor(string_format(TN_GLM_ADAPTER_LINEAR,"weight")); - vision_model.mm_model_ln_q_w = get_tensor(string_format(TN_GLM_ADAPTER_NORM_1,"weight")); - vision_model.mm_model_ln_q_b = get_tensor(string_format(TN_GLM_ADAPTER_NORM_1,"bias")); - vision_model.mm_model_mlp_1_w = get_tensor(string_format(TN_GLM_ADAPTER_D_H_2_4H,"weight")); - vision_model.mm_model_mlp_2_w = get_tensor(string_format(TN_GLM_ADAPTER_GATE,"weight")); - vision_model.mm_model_mlp_3_w = get_tensor(string_format(TN_GLM_ADAPTER_D_4H_2_H,"weight")); + vision_model.mm_model_mlp_0_w = get_tensor(string_format(TN_GLM_ADAPTER_LINEAR, "weight")); + vision_model.mm_model_ln_q_w = get_tensor(string_format(TN_GLM_ADAPTER_NORM_1, "weight")); + vision_model.mm_model_ln_q_b = get_tensor(string_format(TN_GLM_ADAPTER_NORM_1, "bias")); + vision_model.mm_model_mlp_1_w = get_tensor(string_format(TN_GLM_ADAPTER_D_H_2_4H, "weight")); + vision_model.mm_model_mlp_2_w = get_tensor(string_format(TN_GLM_ADAPTER_GATE, "weight")); + vision_model.mm_model_mlp_3_w = get_tensor(string_format(TN_GLM_ADAPTER_D_4H_2_H, "weight")); + vision_model.mm_glm_tok_boi = get_tensor(string_format(TN_TOK_GLM_BOI, "weight")); + vision_model.mm_glm_tok_eoi = get_tensor(string_format(TN_TOK_GLM_EOI, "weight")); } break; case PROJECTOR_TYPE_QWEN2VL: case PROJECTOR_TYPE_QWEN25VL: @@ -2948,6 +2959,7 @@ int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * im if (ctx->proj_type == PROJECTOR_TYPE_LDP || ctx->proj_type == PROJECTOR_TYPE_LDPV2 || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { n_patches /= 4; + n_patches += 2; // for BOI and EOI token embeddings } else if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { if (ctx->minicpmv_version == 2) { n_patches = 96; diff --git a/tools/llava/mtmd.cpp b/tools/llava/mtmd.cpp index d1d7530feb..73abf2ad18 100644 --- a/tools/llava/mtmd.cpp +++ b/tools/llava/mtmd.cpp @@ -189,11 +189,6 @@ int32_t mtmd_tokenize(mtmd_context * ctx, marker_modified = "" + ctx->image_marker + ""; string_replace_all(prompt_modified, ctx->image_marker, marker_modified); - } else if (proj_type == PROJECTOR_TYPE_GLM_EDGE) { - // <|begin_of_image|> ... (image embeddings) ... <|end_of_image|> - marker_modified = "<|begin_of_image|>" + ctx->image_marker + "<|end_of_image|>"; - string_replace_all(prompt_modified, ctx->image_marker, marker_modified); - } else if (proj_type == PROJECTOR_TYPE_IDEFICS3) { // https://github.com/huggingface/transformers/blob/a42ba80fa520c784c8f11a973ca9034e5f859b79/src/transformers/models/idefics3/processing_idefics3.py#L192-L215 marker_modified = "" + ctx->image_marker + ""; @@ -213,6 +208,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, } // llava-1.5, llava-1.6, Yi-VL, Yi-34B, granite: don't need to add prefix and suffix + // for glm-edge, BOI and EOI token's embeddings are not present in the text model std::vector parts = string_split_str(prompt_modified, ctx->image_marker); output.clear(); From 3e959f09764a2bb0e64af594eab83f7fb3e08eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 4 May 2025 00:50:37 +0200 Subject: [PATCH 092/126] imatrix: fix oob writes if src1 is not contiguous (#13286) --- tools/imatrix/imatrix.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/imatrix/imatrix.cpp b/tools/imatrix/imatrix.cpp index 31b675e8f9..b4640f9faf 100644 --- a/tools/imatrix/imatrix.cpp +++ b/tools/imatrix/imatrix.cpp @@ -46,7 +46,7 @@ private: common_params m_params; std::mutex m_mutex; int m_last_call = 0; - std::vector m_src1_data; + std::vector m_src1_data; std::vector m_ids; // the expert ids from ggml_mul_mat_id }; @@ -93,11 +93,13 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * const bool is_host = ggml_backend_buffer_is_host(src1->buffer); if (!is_host) { - m_src1_data.resize(ggml_nelements(src1)); - ggml_backend_tensor_get(src1, m_src1_data.data(), 0, ggml_nbytes(src1)); + const size_t src1_nbytes = ggml_nbytes(src1); + m_src1_data.resize(src1_nbytes); + ggml_backend_tensor_get(src1, m_src1_data.data(), 0, src1_nbytes); } - const float * data = is_host ? (const float *) src1->data : m_src1_data.data(); + const char * data = is_host ? (const char *) src1->data : m_src1_data.data(); + GGML_ASSERT(src1->nb[0] == ggml_element_size(src1)); // this has been adapted to the new format of storing merged experts in a single 3d tensor // ref: https://github.com/ggml-org/llama.cpp/pull/6387 @@ -144,7 +146,7 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * const int64_t i11 = idx % src1->ne[1]; const int64_t i12 = row; - const float * x = (const float *)((const char *)data + i11*src1->nb[1] + i12*src1->nb[2]); + const float * x = (const float *)(data + i11*src1->nb[1] + i12*src1->nb[2]); for (int j = 0; j < (int)src1->ne[0]; ++j) { e.values[e_start + j] += x[j]*x[j]; @@ -180,7 +182,7 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void * ++e.ncall; LOG_DBGV(2, "%s[%d]: %32s, %s, %5d x %5d, %d\n", __func__, m_last_call, wname.c_str(), ggml_op_name(t->op), (int)src1->ne[0], (int)src1->ne[1], (int)src1->type); for (int row = 0; row < (int)src1->ne[1]; ++row) { - const float * x = data + row * src1->ne[0]; + const float * x = (const float *) (data + row * src1->nb[1]); for (int j = 0; j < (int)src1->ne[0]; ++j) { e.values[j] += x[j]*x[j]; e.counts[j]++; From 8ae5ebcf859b05a2ea3bbd930133a2fe4a89ed3c Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Sun, 4 May 2025 00:17:16 -0500 Subject: [PATCH 093/126] vulkan: Additional type support for unary, binary, and copy (#13266) Support f16->f32 copy. Support f16->f16 and f32->f32 unary ops. Support all combinations of f16/f32 for src0/src1/dst for add/sub/mul/div. --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 190 +++++++++++------- ggml/src/ggml-vulkan/vulkan-shaders/relu.comp | 2 +- .../ggml-vulkan/vulkan-shaders/sigmoid.comp | 2 +- ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp | 2 +- .../vulkan-shaders/vulkan-shaders-gen.cpp | 54 ++++- 5 files changed, 162 insertions(+), 88 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index c4df47abae..c61a8cf0af 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -340,11 +340,17 @@ struct vk_device_struct { vk_pipeline pipeline_get_rows[GGML_TYPE_COUNT]; vk_pipeline pipeline_get_rows_f32[GGML_TYPE_COUNT]; vk_pipeline pipeline_acc_f32; - vk_pipeline pipeline_add_f32, pipeline_add_f32_norepeat; - vk_pipeline pipeline_add_f16_f32_f16, pipeline_add_f16_f32_f16_norepeat; - vk_pipeline pipeline_sub_f32, pipeline_sub_f32_norepeat; - vk_pipeline pipeline_mul_f32, pipeline_mul_f32_norepeat; - vk_pipeline pipeline_div_f32, pipeline_div_f32_norepeat; + + // [src0 0=fp32,1=fp16][src1 0=fp32,1=fp16][dst 0=fp32,1=fp16] + vk_pipeline pipeline_add[2][2][2]; + vk_pipeline pipeline_add_norepeat[2][2][2]; + vk_pipeline pipeline_sub[2][2][2]; + vk_pipeline pipeline_sub_norepeat[2][2][2]; + vk_pipeline pipeline_mul[2][2][2]; + vk_pipeline pipeline_mul_norepeat[2][2][2]; + vk_pipeline pipeline_div[2][2][2]; + vk_pipeline pipeline_div_norepeat[2][2][2]; + vk_pipeline pipeline_concat_f32, pipeline_concat_f16, pipeline_concat_i32; vk_pipeline pipeline_upscale_f32; vk_pipeline pipeline_scale_f32; @@ -354,8 +360,8 @@ struct vk_device_struct { vk_pipeline pipeline_clamp_f32; vk_pipeline pipeline_pad_f32; vk_pipeline pipeline_repeat_f32, pipeline_repeat_back_f32; - vk_pipeline pipeline_cpy_f32_f32, pipeline_cpy_f32_f16, pipeline_cpy_f16_f16, pipeline_cpy_f32_bf16; - vk_pipeline pipeline_contig_cpy_f32_f32, pipeline_contig_cpy_f32_f16, pipeline_contig_cpy_f16_f16, pipeline_contig_cpy_f32_bf16; + vk_pipeline pipeline_cpy_f32_f32, pipeline_cpy_f32_f16, pipeline_cpy_f16_f16, pipeline_cpy_f16_f32, pipeline_cpy_f32_bf16; + vk_pipeline pipeline_contig_cpy_f32_f32, pipeline_contig_cpy_f32_f16, pipeline_contig_cpy_f16_f16, pipeline_contig_cpy_f16_f32, pipeline_contig_cpy_f32_bf16; vk_pipeline pipeline_cpy_f32_quant[GGML_TYPE_COUNT]; vk_pipeline pipeline_cpy_quant_f32[GGML_TYPE_COUNT]; vk_pipeline pipeline_norm_f32; @@ -363,14 +369,17 @@ struct vk_device_struct { vk_pipeline pipeline_rms_norm_f32; vk_pipeline pipeline_rms_norm_back_f32; vk_pipeline pipeline_l2_norm_f32; - vk_pipeline pipeline_gelu_f32; - vk_pipeline pipeline_gelu_quick_f32; - vk_pipeline pipeline_silu_f32; - vk_pipeline pipeline_silu_back_f32; - vk_pipeline pipeline_relu_f32; + + // [src/dst 0=fp32,1=fp16] + vk_pipeline pipeline_gelu[2]; + vk_pipeline pipeline_gelu_quick[2]; + vk_pipeline pipeline_silu[2]; + vk_pipeline pipeline_relu[2]; + vk_pipeline pipeline_tanh[2]; + vk_pipeline pipeline_sigmoid[2]; + vk_pipeline pipeline_leaky_relu_f32; - vk_pipeline pipeline_tanh_f32; - vk_pipeline pipeline_sigmoid_f32; + vk_pipeline pipeline_silu_back_f32; vk_pipeline pipeline_diag_mask_inf_f32; vk_pipeline pipeline_soft_max_f32, pipeline_soft_max_f32_f16; vk_pipeline pipeline_soft_max_f32_wg512, pipeline_soft_max_f32_f16_wg512; @@ -2508,11 +2517,13 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f32, "cpy_f32_f32", cpy_f32_f32_len, cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_f16, "cpy_f32_f16", cpy_f32_f16_len, cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f16_f16, "cpy_f16_f16", cpy_f16_f16_len, cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_cpy_f16_f32, "cpy_f16_f32", cpy_f16_f32_len, cpy_f16_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_f32_bf16,"cpy_f32_bf16",cpy_f32_bf16_len,cpy_f32_bf16_data,"main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_f32, "contig_cpy_f32_f32", contig_cpy_f32_f32_len, contig_cpy_f32_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_f16, "contig_cpy_f32_f16", contig_cpy_f32_f16_len, contig_cpy_f32_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f16_f16, "contig_cpy_f16_f16", contig_cpy_f16_f16_len, contig_cpy_f16_f16_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f16_f32, "contig_cpy_f16_f32", contig_cpy_f16_f32_len, contig_cpy_f16_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_contig_cpy_f32_bf16,"contig_cpy_f32_bf16",contig_cpy_f32_bf16_len,contig_cpy_f32_bf16_data,"main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); if (device->float_controls_rte_fp16) { @@ -2538,20 +2549,32 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_cpy_quant_f32[GGML_TYPE_Q8_0], "cpy_q8_0_f32", cpy_q8_0_f32_len, cpy_q8_0_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {(uint32_t)ggml_blck_size(GGML_TYPE_Q8_0), 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_cpy_quant_f32[GGML_TYPE_IQ4_NL], "cpy_iq4_nl_f32", cpy_iq4_nl_f32_len, cpy_iq4_nl_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {(uint32_t)ggml_blck_size(GGML_TYPE_IQ4_NL), 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_add_f32, "add_f32", add_f32_len, add_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {0}, 1); - ggml_vk_create_pipeline(device, device->pipeline_add_f32_norepeat, "add_f32_norepeat", add_f32_len, add_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {1}, 1); - ggml_vk_create_pipeline(device, device->pipeline_add_f16_f32_f16, "add_f16_f32_f16", add_f16_f32_f16_len, add_f16_f32_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {0}, 1); - ggml_vk_create_pipeline(device, device->pipeline_add_f16_f32_f16_norepeat, "add_f16_f32_f16_norepeat", add_f16_f32_f16_len, add_f16_f32_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {1}, 1); + auto get_suffix = [](bool src0_f16, bool src1_f16, bool dst_f16) { + std::string s; + s += std::string(src0_f16 ? "_f16" : "_f32"); + s += std::string(src1_f16 ? "_f16" : "_f32"); + s += std::string(dst_f16 ? "_f16" : "_f32"); + return s; + }; + +#define CREATE_BINARY(name, namemod, spec) \ + for (int s0 : {0,1}) for (int s1 : {0,1}) for (int d : {0,1}) \ + ggml_vk_create_pipeline(device, device->pipeline_ ## name ## namemod[s0][s1][d], \ + #name + get_suffix(s0, s1, d) + #namemod, name ## _len[s0][s1][d], name ## _data[s0][s1][d], \ + "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, spec, 1); + + CREATE_BINARY(add, , {0}) + CREATE_BINARY(add, _norepeat, {1}) + CREATE_BINARY(sub, , {0}) + CREATE_BINARY(sub, _norepeat, {1}) + CREATE_BINARY(mul, , {0}) + CREATE_BINARY(mul, _norepeat, {1}) + CREATE_BINARY(div, , {0}) + CREATE_BINARY(div, _norepeat, {1}) +#undef CREATE_BINARY ggml_vk_create_pipeline(device, device->pipeline_acc_f32, "acc_f32", acc_f32_len, acc_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_sub_f32, "sub_f32", sub_f32_len, sub_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {0}, 1); - ggml_vk_create_pipeline(device, device->pipeline_sub_f32_norepeat, "sub_f32_norepeat", sub_f32_len, sub_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {1}, 1); - ggml_vk_create_pipeline(device, device->pipeline_mul_f32, "mul_f32", mul_f32_len, mul_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {0}, 1); - ggml_vk_create_pipeline(device, device->pipeline_mul_f32_norepeat, "mul_f32_norepeat", mul_f32_len, mul_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {1}, 1); - ggml_vk_create_pipeline(device, device->pipeline_div_f32, "div_f32", div_f32_len, div_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {0}, 1); - ggml_vk_create_pipeline(device, device->pipeline_div_f32_norepeat, "div_f32_norepeat", div_f32_len, div_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {1}, 1); - ggml_vk_create_pipeline(device, device->pipeline_concat_f32, "concat_f32", concat_f32_len, concat_f32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_concat_f16, "concat_f16", concat_f16_len, concat_f16_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_concat_i32, "concat_i32", concat_i32_len, concat_i32_data, "main", 3, sizeof(vk_op_binary_push_constants), {512, 1, 1}, {}, 1); @@ -2571,14 +2594,20 @@ static void ggml_vk_load_shaders(vk_device& device) { ggml_vk_create_pipeline(device, device->pipeline_repeat_f32, "repeat_f32", repeat_f32_len, repeat_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_repeat_back_f32, "repeat_back_f32", repeat_back_f32_len, repeat_back_f32_data, "main", 2, sizeof(vk_op_unary_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_gelu_f32, "gelu_f32", gelu_f32_len, gelu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_gelu_quick_f32, "gelu_quick_f32", gelu_quick_f32_len, gelu_quick_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_silu_f32, "silu_f32", silu_f32_len, silu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_silu_back_f32, "silu_back_f32", silu_back_f32_len, silu_back_f32_data, "main", 3, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_relu_f32, "relu_f32", relu_f32_len, relu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); +#define CREATE_UNARY(name) \ + ggml_vk_create_pipeline(device, device->pipeline_ ## name [0], #name "_f32", name ## _f32_len, name ## _f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); \ + ggml_vk_create_pipeline(device, device->pipeline_ ## name [1], #name "_f16", name ## _f16_len, name ## _f16_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + + CREATE_UNARY(gelu) + CREATE_UNARY(gelu_quick) + CREATE_UNARY(silu) + CREATE_UNARY(relu) + CREATE_UNARY(tanh) + CREATE_UNARY(sigmoid) +#undef CREATE_UNARY + ggml_vk_create_pipeline(device, device->pipeline_leaky_relu_f32, "leaky_relu_f32", leaky_relu_f32_len, leaky_relu_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_tanh_f32, "tanh_f32", tanh_f32_len, tanh_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); - ggml_vk_create_pipeline(device, device->pipeline_sigmoid_f32, "sigmoid_f32", sigmoid_f32_len, sigmoid_f32_data, "main", 2, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); + ggml_vk_create_pipeline(device, device->pipeline_silu_back_f32, "silu_back_f32", silu_back_f32_len, silu_back_f32_data, "main", 3, sizeof(vk_op_push_constants), {512, 1, 1}, {}, 1); ggml_vk_create_pipeline(device, device->pipeline_diag_mask_inf_f32, "diag_mask_inf_f32", diag_mask_inf_f32_len, diag_mask_inf_f32_data, "main", 2, sizeof(vk_op_diag_mask_push_constants), {1, 512, 1}, {}, 1, true); @@ -4504,6 +4533,13 @@ static vk_pipeline ggml_vk_get_cpy_pipeline(ggml_backend_vk_context * ctx, const return ctx->device->pipeline_cpy_f16_f16; } } + if (src->type == GGML_TYPE_F16 && to == GGML_TYPE_F32) { + if (contig) { + return ctx->device->pipeline_contig_cpy_f16_f32; + } else { + return ctx->device->pipeline_cpy_f16_f32; + } + } if (src->type == GGML_TYPE_F32 && to == GGML_TYPE_BF16) { if (contig) { return ctx->device->pipeline_contig_cpy_f32_bf16; @@ -5894,26 +5930,37 @@ static vk_pipeline ggml_vk_op_get_pipeline(ggml_backend_vk_context * ctx, const } return nullptr; case GGML_OP_ADD: - if (src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_add_f32_norepeat : ctx->device->pipeline_add_f32; - } - if (src0->type == GGML_TYPE_F16 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F16) { - return ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_add_f16_f32_f16_norepeat : ctx->device->pipeline_add_f16_f32_f16; - } - return nullptr; case GGML_OP_SUB: - if (src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_sub_f32_norepeat : ctx->device->pipeline_sub_f32; - } - return nullptr; case GGML_OP_MUL: - if (src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_mul_f32_norepeat : ctx->device->pipeline_mul_f32; - } - return nullptr; case GGML_OP_DIV: - if (src0->type == GGML_TYPE_F32 && src1->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_div_f32_norepeat : ctx->device->pipeline_div_f32; + if ((src0->type != GGML_TYPE_F32 && src0->type != GGML_TYPE_F16) || + (src1->type != GGML_TYPE_F32 && src1->type != GGML_TYPE_F16) || + (dst->type != GGML_TYPE_F32 && dst->type != GGML_TYPE_F16)) { + return nullptr; + } + switch (op) { + case GGML_OP_ADD: + { + auto pipelines = ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_add_norepeat : ctx->device->pipeline_add; + return pipelines[src0->type == GGML_TYPE_F16][src1->type == GGML_TYPE_F16][dst->type == GGML_TYPE_F16]; + } + case GGML_OP_SUB: + { + auto pipelines = ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_sub_norepeat : ctx->device->pipeline_sub; + return pipelines[src0->type == GGML_TYPE_F16][src1->type == GGML_TYPE_F16][dst->type == GGML_TYPE_F16]; + } + case GGML_OP_MUL: + { + auto pipelines = ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_mul_norepeat : ctx->device->pipeline_mul; + return pipelines[src0->type == GGML_TYPE_F16][src1->type == GGML_TYPE_F16][dst->type == GGML_TYPE_F16]; + } + case GGML_OP_DIV: + { + auto pipelines = ggml_are_same_shape(src0, src1) ? ctx->device->pipeline_div_norepeat : ctx->device->pipeline_div; + return pipelines[src0->type == GGML_TYPE_F16][src1->type == GGML_TYPE_F16][dst->type == GGML_TYPE_F16]; + } + default: + break; } return nullptr; case GGML_OP_CONCAT: @@ -6007,37 +6054,25 @@ static vk_pipeline ggml_vk_op_get_pipeline(ggml_backend_vk_context * ctx, const } return nullptr; case GGML_OP_UNARY: + if ((src0->type != GGML_TYPE_F32 && src0->type != GGML_TYPE_F16) || + (dst->type != GGML_TYPE_F32 && dst->type != GGML_TYPE_F16) || + (src0->type != dst->type)) { + return nullptr; + } + switch (ggml_get_unary_op(dst)) { case GGML_UNARY_OP_SILU: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_silu_f32; - } - break; + return ctx->device->pipeline_silu[dst->type == GGML_TYPE_F16]; case GGML_UNARY_OP_GELU: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_gelu_f32; - } - break; + return ctx->device->pipeline_gelu[dst->type == GGML_TYPE_F16]; case GGML_UNARY_OP_GELU_QUICK: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_gelu_quick_f32; - } - break; + return ctx->device->pipeline_gelu_quick[dst->type == GGML_TYPE_F16]; case GGML_UNARY_OP_RELU: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_relu_f32; - } - break; + return ctx->device->pipeline_relu[dst->type == GGML_TYPE_F16]; case GGML_UNARY_OP_TANH: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_tanh_f32; - } - break; + return ctx->device->pipeline_tanh[dst->type == GGML_TYPE_F16]; case GGML_UNARY_OP_SIGMOID: - if (src0->type == GGML_TYPE_F32 && dst->type == GGML_TYPE_F32) { - return ctx->device->pipeline_sigmoid_f32; - } - break; + return ctx->device->pipeline_sigmoid[dst->type == GGML_TYPE_F16]; default: break; } @@ -9423,7 +9458,10 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_UNARY_OP_RELU: case GGML_UNARY_OP_TANH: case GGML_UNARY_OP_SIGMOID: - return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32; + return ggml_is_contiguous(op->src[0]) && + (op->src[0]->type == GGML_TYPE_F32 || op->src[0]->type == GGML_TYPE_F16) && + (op->type == GGML_TYPE_F32 || op->type == GGML_TYPE_F16) && + (op->src[0]->type == op->type); default: return false; } @@ -9603,6 +9641,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm } if (src1_type == GGML_TYPE_F32) { switch (src0_type) { + case GGML_TYPE_F16: case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: @@ -9641,6 +9680,9 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm case GGML_OP_SUB: case GGML_OP_MUL: case GGML_OP_DIV: + return (op->src[0]->type == GGML_TYPE_F32 || op->src[0]->type == GGML_TYPE_F16) && + (op->src[1]->type == GGML_TYPE_F32 || op->src[1]->type == GGML_TYPE_F16) && + (op->type == GGML_TYPE_F32 || op->type == GGML_TYPE_F16); case GGML_OP_SILU_BACK: case GGML_OP_RMS_NORM_BACK: case GGML_OP_SQR: diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp b/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp index 52a19b62a6..4f806270c7 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp @@ -17,5 +17,5 @@ void main() { return; } - data_d[i] = max(float(data_a[i]), 0); + data_d[i] = D_TYPE(max(float(data_a[i]), 0)); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp b/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp index 776581e2c4..5c9e5c3503 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp @@ -16,5 +16,5 @@ void main() { if (i >= p.KX) { return; } - data_d[i] = D_TYPE(1. / (1 + exp(-1. *data_a[i]))); + data_d[i] = D_TYPE(1. / (1 + exp(-1. * float(data_a[i])))); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp b/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp index 495f966bdc..8a6f868f58 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp @@ -16,5 +16,5 @@ void main() { if (i >= p.KX) { return; } - data_d[i] = D_TYPE(1. - 2. / (exp(2.*data_a[i]) + 1.)); + data_d[i] = D_TYPE(1. - 2. / (exp(2.*float(data_a[i])) + 1.)); } diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp index 759112b946..382f190f28 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp @@ -485,10 +485,12 @@ void process_shaders() { string_to_spv("cpy_f32_f32", "copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); string_to_spv("cpy_f32_f16", "copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float16_t"}}); string_to_spv("cpy_f16_f16", "copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); + string_to_spv("cpy_f16_f32", "copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); string_to_spv("cpy_f32_bf16","copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "uint16_t"}, {"DATA_D_BF16", "1"}}); string_to_spv("contig_cpy_f32_f32", "contig_copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); string_to_spv("contig_cpy_f32_f16", "contig_copy.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float16_t"}}); string_to_spv("contig_cpy_f16_f16", "contig_copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); + string_to_spv("contig_cpy_f16_f32", "contig_copy.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float"}, {"OPTIMIZATION_ERROR_WORKAROUND", "1"}}); string_to_spv("contig_cpy_f32_bf16","contig_copy.comp",{{"A_TYPE", "float"}, {"D_TYPE", "uint16_t"}, {"DATA_D_BF16", "1"}}); for (std::string t : {"q4_0", "q4_1", "q5_0", "q5_1", "q8_0", "iq4_nl"}) { @@ -497,8 +499,26 @@ void process_shaders() { string_to_spv("cpy_" + t + "_f32", "copy_from_quant.comp", {{"DATA_A_" + to_uppercase(t), "1"}, {"D_TYPE", "float"}, {"FLOAT_TYPE", "float"}}); } - string_to_spv("add_f32", "add.comp", {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}, {"FLOAT_TYPE", "float"}}); - string_to_spv("add_f16_f32_f16", "add.comp", {{"A_TYPE", "float16_t"}, {"B_TYPE", "float"}, {"D_TYPE", "float16_t"}, {"FLOAT_TYPE", "float"}}); + auto get_type_str = [](bool f16) { + return f16 ? "float16_t" : "float"; + }; + auto get_suffix = [](bool src0_f16, bool src1_f16, bool dst_f16) { + std::string s; + s += std::string(src0_f16 ? "_f16" : "_f32"); + s += std::string(src1_f16 ? "_f16" : "_f32"); + s += std::string(dst_f16 ? "_f16" : "_f32"); + return s; + }; + for (std::string op : {"add", "sub", "mul", "div"}) { + for (auto src0_f16 : {false, true}) { + for (auto src1_f16 : {false, true}) { + for (auto dst_f16 : {false, true}) { + auto name = op + get_suffix(src0_f16, src1_f16, dst_f16); + string_to_spv(name.c_str(), op + ".comp", {{"A_TYPE", get_type_str(src0_f16)}, {"B_TYPE", get_type_str(src1_f16)}, {"D_TYPE", get_type_str(dst_f16)}, {"FLOAT_TYPE", "float"}}); + } + } + } + } string_to_spv("sub_f32", "sub.comp", {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}, {"FLOAT_TYPE", "float"}}); @@ -533,14 +553,21 @@ void process_shaders() { string_to_spv("upscale_f32", "upscale.comp", {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("gelu_f32", "gelu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("gelu_quick_f32", "gelu_quick.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("silu_f32", "silu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("silu_back_f32", "silu_back.comp", {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("relu_f32", "relu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("leaky_relu_f32", "leaky_relu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("tanh_f32", "tanh.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); - string_to_spv("sigmoid_f32", "sigmoid.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("gelu_f16", "gelu.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("gelu_f32", "gelu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("gelu_quick_f16", "gelu_quick.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("gelu_quick_f32", "gelu_quick.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("silu_f16", "silu.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("silu_f32", "silu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("relu_f16", "relu.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("relu_f32", "relu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("tanh_f16", "tanh.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("tanh_f32", "tanh.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("sigmoid_f16", "sigmoid.comp", {{"A_TYPE", "float16_t"}, {"D_TYPE", "float16_t"}}); + string_to_spv("sigmoid_f32", "sigmoid.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + + string_to_spv("leaky_relu_f32", "leaky_relu.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); + string_to_spv("silu_back_f32", "silu_back.comp", {{"A_TYPE", "float"}, {"B_TYPE", "float"}, {"D_TYPE", "float"}}); string_to_spv("diag_mask_inf_f32", "diag_mask_inf.comp", {{"A_TYPE", "float"}, {"D_TYPE", "float"}}); @@ -641,7 +668,12 @@ void write_output_files() { std::remove(path.c_str()); } } - + for (const char *op : {"add", "sub", "mul", "div"}) { + fprintf(hdr, "extern unsigned char *%s_data[2][2][2];\n", op); + fprintf(hdr, "extern uint64_t %s_len[2][2][2];\n", op); + fprintf(src, "unsigned char *%s_data[2][2][2] = {{{%s_f32_f32_f32_data, %s_f32_f32_f16_data}, {%s_f32_f16_f32_data, %s_f32_f16_f16_data}}, {{%s_f16_f32_f32_data, %s_f16_f32_f16_data}, {%s_f16_f16_f32_data, %s_f16_f16_f16_data}}};\n", op, op, op, op, op, op, op, op, op); + fprintf(src, "uint64_t %s_len[2][2][2] = {{{%s_f32_f32_f32_len, %s_f32_f32_f16_len}, {%s_f32_f16_f32_len, %s_f32_f16_f16_len}}, {{%s_f16_f32_f32_len, %s_f16_f32_f16_len}, {%s_f16_f16_f32_len, %s_f16_f16_f16_len}}};\n", op, op, op, op, op, op, op, op, op); + } fclose(hdr); fclose(src); } From 8afbd968182909cf93fb15959fc867b6dd3adb53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 4 May 2025 13:58:38 +0200 Subject: [PATCH 094/126] CUDA: fix race condition in MMQ ids_dst (#13294) --- ggml/src/ggml-cuda/mmq.cuh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index 8c93e8326e..fc6ce00830 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -2636,6 +2636,7 @@ static __global__ void mul_mat_q( ids_dst_shared[j] = j; } + __syncthreads(); // On AMD or old CUDA the performance with stream-k was worse, use conventional tiling instead: #if (defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) || __CUDA_ARCH__ < GGML_CUDA_CC_VOLTA @@ -2664,6 +2665,7 @@ static __global__ void mul_mat_q( return; } + // __syncthreads(); // There is no previous tile that could cause a race condition. #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; @@ -2674,6 +2676,7 @@ static __global__ void mul_mat_q( ids_dst_shared[j] = ids_dst[col_low + jt*mmq_x + j]; } + __syncthreads(); } offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); @@ -2740,6 +2743,7 @@ static __global__ void mul_mat_q( continue; } + __syncthreads(); #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; @@ -2750,6 +2754,7 @@ static __global__ void mul_mat_q( ids_dst_shared[j] = ids_dst[col_low + jt*mmq_x + j]; } + __syncthreads(); } offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); @@ -2805,6 +2810,7 @@ static __global__ void mul_mat_q( } // The memory layout for the fixup buffer is always contiguous, therefore reset ids: + __syncthreads(); #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps*WARP_SIZE) { const int j = j0 + threadIdx.y*WARP_SIZE + threadIdx.x; @@ -2815,6 +2821,7 @@ static __global__ void mul_mat_q( ids_dst_shared[j] = j; } + __syncthreads(); } offset_y += (col_low + jt*mmq_x)*(sizeof(block_q8_1_mmq)/sizeof(int)); From 93c4e23905987949b714b21ae918ff6bfb55fe36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Sun, 4 May 2025 14:16:39 +0200 Subject: [PATCH 095/126] CUDA: fix race condition in MMQ stream-k fixup (#13299) --- ggml/src/ggml-cuda/mmq.cuh | 1 + 1 file changed, 1 insertion(+) diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index fc6ce00830..e1096dce6d 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -2958,6 +2958,7 @@ static __global__ void mul_mat_q_stream_k_fixup( for (int j = threadIdx.y*WARP_SIZE + threadIdx.x; j < mmq_x; j += nwarps*WARP_SIZE) { ids_dst_shared[j] = ids_dst[col_low + j]; } + __syncthreads(); const int offset_dst = it*mmq_y; dst += offset_dst; From 9f2da5871f4bbd205b8a3b952cdc76283218d595 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Sun, 4 May 2025 14:20:49 +0200 Subject: [PATCH 096/126] llama : build windows releases with dl backends (#13220) --- .github/workflows/build.yml | 71 +++++++++++++--------------------- cmake/arm64-windows-msvc.cmake | 6 --- cmake/x64-windows-llvm.cmake | 6 --- tests/CMakeLists.txt | 5 ++- 4 files changed, 30 insertions(+), 58 deletions(-) delete mode 100644 cmake/arm64-windows-msvc.cmake diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bcea1a8afc..e42ba47a19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -771,7 +771,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-msys2 - variant: sccache + variant: ccache evict-old-files: 1d - name: Setup ${{ matrix.sys }} @@ -814,26 +814,18 @@ jobs: strategy: matrix: include: - - build: 'noavx-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF' - - build: 'avx2-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON' - - build: 'avx-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX2=OFF' - - build: 'avx512-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX512=ON' + - build: 'cpu-x64' + defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF' - build: 'openblas-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"' - - build: 'kompute-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON' + defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"' - build: 'vulkan-x64' - defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_VULKAN=ON' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_VULKAN=ON' - build: 'llvm-arm64' defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON' - - build: 'msvc-arm64' - defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-msvc.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON' - build: 'llvm-arm64-opencl-adreno' defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" -DGGML_OPENCL=ON -DGGML_OPENCL_USE_ADRENO_KERNELS=ON' + # - build: 'kompute-x64' + # defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON' steps: - name: Clone @@ -846,7 +838,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-${{ matrix.build }} - variant: sccache + variant: ccache evict-old-files: 1d - name: Clone Kompute submodule @@ -922,39 +914,26 @@ jobs: cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build/bin/Release/openblas.dll cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt - - name: Check AVX512F support - id: check_avx512f - if: ${{ matrix.build == 'avx512-x64' }} - continue-on-error: true - run: | - cd build - $vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath) - $msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim())) - $cl = $(join-path $msvc 'bin\Hostx64\x64\cl.exe') - echo 'int main(void){unsigned int a[4];__cpuid(a,7);return !(a[1]&65536);}' >> avx512f.c - & $cl /O2 /GS- /kernel avx512f.c /link /nodefaultlib /entry:main - .\avx512f.exe && echo "AVX512F: YES" && ( echo HAS_AVX512F=1 >> $env:GITHUB_ENV ) || echo "AVX512F: NO" - - name: Test id: cmake_test - # not all machines have native AVX-512 - if: ${{ matrix.build != 'msvc-arm64' && matrix.build != 'llvm-arm64' && matrix.build != 'llvm-arm64-opencl-adreno' && matrix.build != 'kompute-x64' && matrix.build != 'vulkan-x64' && (matrix.build != 'avx512-x64' || env.HAS_AVX512F == '1') }} + if: ${{ matrix.build != 'llvm-arm64' && matrix.build != 'llvm-arm64-opencl-adreno' }} run: | cd build ctest -L main -C Release --verbose --timeout 900 - - name: Test (Intel SDE) - id: cmake_test_sde - if: ${{ matrix.build == 'avx512-x64' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation - run: | - curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz" - # for some weird reason windows tar doesn't like sde tar.xz - 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar.xz - 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar - $sde = $(join-path $env:RUNNER_TEMP sde-external-${env:SDE_VERSION}-win/sde.exe) - cd build - $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1 - & $sde -future -- ctest -L main -C Release --verbose --timeout 900 + # TODO: disabled for now, consider adding tests for all CPU variants instead + # - name: Test (Intel SDE) + # id: cmake_test_sde + # if: ${{ matrix.build == 'avx512-x64' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation + # run: | + # curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz" + # # for some weird reason windows tar doesn't like sde tar.xz + # 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar.xz + # 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar + # $sde = $(join-path $env:RUNNER_TEMP sde-external-${env:SDE_VERSION}-win/sde.exe) + # cd build + # $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1 + # & $sde -future -- ctest -L main -C Release --verbose --timeout 900 - name: Determine tag name id: tag @@ -1039,7 +1018,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }} - variant: sccache + variant: ccache evict-old-files: 1d - name: Install Cuda Toolkit 11.7 @@ -1117,6 +1096,8 @@ jobs: cmake -S . -B build -G "Ninja Multi-Config" ^ -DLLAMA_BUILD_SERVER=ON ^ -DGGML_NATIVE=OFF ^ + -DGGML_BACKEND_DL=ON ^ + -DGGML_CPU_ALL_VARIANTS=ON ^ -DGGML_CUDA=ON ^ -DGGML_RPC=ON ^ -DCURL_LIBRARY="%CURL_PATH%/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="%CURL_PATH%/include" @@ -1191,7 +1172,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2.16 with: key: windows-latest-cmake-sycl - variant: sccache + variant: ccache evict-old-files: 1d - name: Install diff --git a/cmake/arm64-windows-msvc.cmake b/cmake/arm64-windows-msvc.cmake deleted file mode 100644 index c77631420c..0000000000 --- a/cmake/arm64-windows-msvc.cmake +++ /dev/null @@ -1,6 +0,0 @@ -set( CMAKE_SYSTEM_NAME Windows ) -set( CMAKE_SYSTEM_PROCESSOR arm64 ) - -set( target arm64-pc-windows-msvc ) -set( CMAKE_C_COMPILER_TARGET ${target} ) -set( CMAKE_CXX_COMPILER_TARGET ${target} ) diff --git a/cmake/x64-windows-llvm.cmake b/cmake/x64-windows-llvm.cmake index 0603d738fb..77e7914079 100644 --- a/cmake/x64-windows-llvm.cmake +++ b/cmake/x64-windows-llvm.cmake @@ -3,9 +3,3 @@ set( CMAKE_SYSTEM_PROCESSOR x86_64 ) set( CMAKE_C_COMPILER clang ) set( CMAKE_CXX_COMPILER clang++ ) - -set( arch_c_flags "-march=native" ) - -set( CMAKE_C_FLAGS_INIT "${arch_c_flags}" ) -set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags}" ) - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8acbe689a4..72b32df9fc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -114,7 +114,10 @@ if (NOT WIN32) target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../tools/server) endif() - llama_build(test-quantize-stats.cpp) + if (NOT GGML_BACKEND_DL) + llama_build(test-quantize-stats.cpp) + endif() + llama_build(test-gbnf-validator.cpp) # build test-tokenizer-1-bpe target once and add many tests From 86bd60d3fe4a08b8c9d920e6defbc2412d803569 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Sun, 4 May 2025 17:05:20 +0200 Subject: [PATCH 097/126] llava/mtmd : fixes to fully support dl backends (#13303) --- tools/CMakeLists.txt | 2 +- tools/llava/clip.cpp | 10 +++++++++- tools/llava/llava.cpp | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 119d7c50a0..383e94accb 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -27,11 +27,11 @@ else() add_subdirectory(run) add_subdirectory(tokenize) add_subdirectory(tts) + add_subdirectory(llava) if (NOT GGML_BACKEND_DL) # these examples use the backends directly and cannot be built with dynamic loading add_subdirectory(cvector-generator) add_subdirectory(export-lora) - add_subdirectory(llava) if (GGML_RPC) add_subdirectory(rpc) endif() diff --git a/tools/llava/clip.cpp b/tools/llava/clip.cpp index 3b60a526ee..cc03bf884a 100644 --- a/tools/llava/clip.cpp +++ b/tools/llava/clip.cpp @@ -3382,7 +3382,15 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima GGML_ABORT("Unknown projector type"); } - ggml_backend_cpu_set_n_threads(ctx->backend_cpu, n_threads); + // ggml_backend_cpu_set_n_threads(ctx->backend_cpu, n_threads); + ggml_backend_dev_t dev = ggml_backend_get_device(ctx->backend_cpu); + ggml_backend_reg_t reg = dev ? ggml_backend_dev_backend_reg(dev) : nullptr; + if (reg) { + auto ggml_backend_set_n_threads_fn = (ggml_backend_set_n_threads_t) ggml_backend_reg_get_proc_address(reg, "ggml_backend_set_n_threads"); + if (ggml_backend_set_n_threads_fn) { + ggml_backend_set_n_threads_fn(ctx->backend_cpu, n_threads); + } + } auto status = ggml_backend_sched_graph_compute(ctx->sched.get(), gf); if (status != GGML_STATUS_SUCCESS) { diff --git a/tools/llava/llava.cpp b/tools/llava/llava.cpp index c00d16aeff..b85ab112bf 100644 --- a/tools/llava/llava.cpp +++ b/tools/llava/llava.cpp @@ -2,6 +2,7 @@ #include "llava.h" #include "llama.h" +#include "ggml-cpp.h" #include #include @@ -209,7 +210,10 @@ static bool clip_llava_handle_patches(clip_ctx * ctx_clip, std::vector struct ggml_tensor *flatten = ggml_view_2d(model.ctx, permuted_cont, clip_n_mmproj_embd(ctx_clip), num_patches_height * num_patches_width * num_patches_per_side * num_patches_per_side, size_ele * clip_n_mmproj_embd(ctx_clip), 0); // ggml_tensor_printf(flatten,"flatten",__LINE__,false,false); ggml_build_forward_expand(gf, flatten); - ggml_graph_compute_with_ctx(model.ctx, gf, 1); + + ggml_backend_ptr backend { ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_CPU, nullptr) }; + ggml_backend_graph_compute(backend.get(), gf); + struct ggml_tensor* result = ggml_graph_node(gf, -1); memcpy(image_embd_out, image_embd_v[0], clip_embd_nbytes(ctx_clip)); // main image as global context From 6eb7d25c700e29d9272064db408855178d01741b Mon Sep 17 00:00:00 2001 From: Aaron Teo Date: Mon, 5 May 2025 01:49:12 +0800 Subject: [PATCH 098/126] ggml : activate s390x simd for Q3_K (#13301) Signed-off-by: Aaron Teo --- ggml/src/ggml-cpu/ggml-cpu-quants.c | 111 ++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/ggml/src/ggml-cpu/ggml-cpu-quants.c b/ggml/src/ggml-cpu/ggml-cpu-quants.c index 91a81bdc3c..987e153165 100644 --- a/ggml/src/ggml-cpu/ggml-cpu-quants.c +++ b/ggml/src/ggml-cpu/ggml-cpu-quants.c @@ -6596,7 +6596,118 @@ void ggml_vec_dot_q3_K_q8_K(int n, float * GGML_RESTRICT s, size_t bs, const voi } *s = hsum_float_8(acc); +#elif defined(__VXE__) || defined(__VXE2__) + uint32_t aux[3]; + uint32_t utmp[4]; + const int32x4_t v_z = vec_splat_s32(0); + const uint8x16_t v_3m = vec_splat_u8(0x03); + + const uint8x16_t v_0c = vec_splat_u8(1); + const uint8x16_t v_1c = vec_sl(v_0c, 1); + const uint8x16_t v_2c = vec_sl(v_0c, 2); + const uint8x16_t v_3c = vec_sl(v_0c, 3); + + uint8x16_t q3h[4]; + uint8x16_t q3b[2]; + int8x16_t q3bytes[4]; + int8x16_t q8bytes[4]; + uint8x16_t qhbits[2]; + + float sum = 0; + + for (int i = 0; i < nb; ++i) { + const float d = y[i].d * GGML_FP16_TO_FP32(x[i].d); + + const uint8_t * restrict x0l = x[i].qs; + const uint8_t * restrict x0h = x[i].hmask; + const int8_t * restrict y0 = y[i].qs; + + qhbits[0] = vec_xl(0 , x0h); + qhbits[1] = vec_xl(16, x0h); + + int32_t isum = 0; + + memcpy(aux, x[i].scales, 12); + utmp[3] = ((aux[1] >> 4) & kmask2) | (((aux[2] >> 6) & kmask1) << 4); + utmp[2] = ((aux[0] >> 4) & kmask2) | (((aux[2] >> 4) & kmask1) << 4); + utmp[1] = (aux[1] & kmask2) | (((aux[2] >> 2) & kmask1) << 4); + utmp[0] = (aux[0] & kmask2) | (((aux[2] >> 0) & kmask1) << 4); + + int8_t * scale = (int8_t *)utmp; + for (int j = 0; j < 16; ++j) scale[j] -= 32; + + for (int j = 0; j < QK_K/128; ++j) { + int32x4_t isum0, isum1, isum2, isum3; + + q3b[0] = vec_xl(0 , x0l); + q3b[1] = vec_xl(16, x0l); + x0l += 32; + + q8bytes[0] = vec_xl(0 , y0); + q8bytes[1] = vec_xl(16 , y0); + q8bytes[2] = vec_xl(32 , y0); + q8bytes[3] = vec_xl(48 , y0); + q8bytes[4] = vec_xl(64 , y0); + q8bytes[5] = vec_xl(80 , y0); + q8bytes[6] = vec_xl(96 , y0); + q8bytes[7] = vec_xl(112, y0); + y0 += 128; + + q3h[0] = vec_sl(vec_andc(v_0c, qhbits[0]), 2); + q3h[1] = vec_sl(vec_andc(v_0c, qhbits[1]), 2); + q3h[2] = vec_sl(vec_andc(v_1c, qhbits[0]), 1); + q3h[3] = vec_sl(vec_andc(v_1c, qhbits[1]), 1); + + q3bytes[0] = vec_sub((int8x16_t)vec_and(q3b[0], v_3m), (int8x16_t)q3h[0]); + q3bytes[1] = vec_sub((int8x16_t)vec_and(q3b[1], v_3m), (int8x16_t)q3h[1]); + q3bytes[2] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[0], 2), v_3m), (int8x16_t)q3h[2]); + q3bytes[3] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[1], 2), v_3m), (int8x16_t)q3h[3]); + + isum0 = ggml_vec_dot(v_z, q3bytes[0], q8bytes[0]); + isum1 = ggml_vec_dot(v_z, q3bytes[1], q8bytes[1]); + isum2 = ggml_vec_dot(v_z, q3bytes[2], q8bytes[2]); + isum3 = ggml_vec_dot(v_z, q3bytes[3], q8bytes[3]); + + isum += (isum0[0] + isum0[1] + isum0[2] + isum0[3]) * scale[0]; + isum += (isum1[0] + isum1[1] + isum1[2] + isum1[3]) * scale[1]; + isum += (isum2[0] + isum2[1] + isum2[2] + isum2[3]) * scale[2]; + isum += (isum3[0] + isum3[1] + isum3[2] + isum3[3]) * scale[3]; + + scale += 4; + + q3h[0] = vec_andc(v_2c, qhbits[0]); + q3h[1] = vec_andc(v_2c, qhbits[1]); + q3h[2] = vec_sr(vec_andc(v_3c, qhbits[0]), 1); + q3h[3] = vec_sr(vec_andc(v_3c, qhbits[1]), 1); + + q3bytes[0] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[0], 4), v_3m), (int8x16_t)q3h[0]); + q3bytes[1] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[1], 4), v_3m), (int8x16_t)q3h[1]); + q3bytes[2] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[0], 6), v_3m), (int8x16_t)q3h[2]); + q3bytes[3] = vec_sub((int8x16_t)vec_and(vec_sr(q3b[1], 6), v_3m), (int8x16_t)q3h[3]); + + isum0 = ggml_vec_dot(v_z, q3bytes[0], q8bytes[4]); + isum1 = ggml_vec_dot(v_z, q3bytes[1], q8bytes[5]); + isum2 = ggml_vec_dot(v_z, q3bytes[2], q8bytes[6]); + isum3 = ggml_vec_dot(v_z, q3bytes[3], q8bytes[7]); + + isum += (isum0[0] + isum0[1] + isum0[2] + isum0[3]) * scale[0]; + isum += (isum1[0] + isum1[1] + isum1[2] + isum1[3]) * scale[1]; + isum += (isum2[0] + isum2[1] + isum2[2] + isum2[3]) * scale[2]; + isum += (isum3[0] + isum3[1] + isum3[2] + isum3[3]) * scale[3]; + + scale += 4; + + if (j == 0) { + qhbits[0] = vec_sr(qhbits[0], 4); + qhbits[1] = vec_sr(qhbits[1], 4); + } + } + + sum += d * isum; + } + + *s = sum; #else // scalar version // This function is written like this so the compiler can manage to vectorize most of it From 9fdfcdaeddd1ef57c6d041b89cd8fb7048a0f028 Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Sun, 4 May 2025 21:25:43 +0200 Subject: [PATCH 099/126] rpc : use backend registry, support dl backends (#13304) --- ggml/src/ggml-cpu/ggml-cpu.cpp | 45 ++++++---- ggml/src/ggml-rpc/ggml-rpc.cpp | 11 +++ tools/CMakeLists.txt | 6 +- tools/rpc/rpc-server.cpp | 152 ++++++++++++++++----------------- 4 files changed, 116 insertions(+), 98 deletions(-) diff --git a/ggml/src/ggml-cpu/ggml-cpu.cpp b/ggml/src/ggml-cpu/ggml-cpu.cpp index 4b688a67eb..e013e8b416 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.cpp +++ b/ggml/src/ggml-cpu/ggml-cpu.cpp @@ -11,24 +11,26 @@ #include #ifdef GGML_USE_CPU_HBM -#include "ggml-cpu-hbm.h" +# include "ggml-cpu-hbm.h" #endif #ifdef GGML_USE_CPU_KLEIDIAI -#include "kleidiai/kleidiai.h" -#endif - -#if defined(__APPLE__) -#include -#include +# include "kleidiai/kleidiai.h" #endif #if defined(_WIN32) -#define WIN32_LEAN_AND_MEAN -#ifndef NOMINMAX - #define NOMINMAX +# define WIN32_LEAN_AND_MEAN +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include +#else +# include #endif -#include + +#if defined(__APPLE__) +# include +# include #endif // ggml-backend interface @@ -70,8 +72,10 @@ static ggml_backend_buffer_type_t * ggml_backend_cpu_device_get_extra_buffers_ty } static bool ggml_backend_cpu_is_extra_buffer_type(ggml_backend_buffer_type_t buft) { - for (auto extra : ggml_backend_cpu_get_extra_buffers_type()) { - if (extra && extra == buft) return true; + for (auto * extra : ggml_backend_cpu_get_extra_buffers_type()) { + if (extra && extra == buft) { + return true; + } } return false; } @@ -330,9 +334,18 @@ static const char * ggml_backend_cpu_device_get_description(ggml_backend_dev_t d } static void ggml_backend_cpu_device_get_memory(ggml_backend_dev_t dev, size_t * free, size_t * total) { - // TODO - *free = 0; - *total = 0; +#ifdef _WIN32 + MEMORYSTATUSEX status; + status.dwLength = sizeof(status); + GlobalMemoryStatusEx(&status); + *total = status.ullTotalPhys; + *free = status.ullAvailPhys; +#else + long pages = sysconf(_SC_PHYS_PAGES); + long page_size = sysconf(_SC_PAGE_SIZE); + *total = pages * page_size; + *free = *total; +#endif GGML_UNUSED(dev); } diff --git a/ggml/src/ggml-rpc/ggml-rpc.cpp b/ggml/src/ggml-rpc/ggml-rpc.cpp index e662cc6eb3..039214dc2b 100644 --- a/ggml/src/ggml-rpc/ggml-rpc.cpp +++ b/ggml/src/ggml-rpc/ggml-rpc.cpp @@ -1594,6 +1594,14 @@ static void rpc_serve_client(ggml_backend_t backend, const char * cache_dir, void ggml_backend_rpc_start_server(ggml_backend_t backend, const char * endpoint, const char * cache_dir, size_t free_mem, size_t total_mem) { + printf("Starting RPC server v%d.%d.%d\n", + RPC_PROTO_MAJOR_VERSION, + RPC_PROTO_MINOR_VERSION, + RPC_PROTO_PATCH_VERSION); + printf(" endpoint : %s\n", endpoint); + printf(" local cache : %s\n", cache_dir ? cache_dir : "n/a"); + printf(" backend memory : %zu MB\n", free_mem / (1024 * 1024)); + std::string host; int port; if (!parse_endpoint(endpoint, host, port)) { @@ -1753,6 +1761,9 @@ static void * ggml_backend_rpc_get_proc_address(ggml_backend_reg_t reg, const ch if (std::strcmp(name, "ggml_backend_rpc_add_device") == 0) { return (void *)ggml_backend_rpc_add_device; } + if (std::strcmp(name, "ggml_backend_rpc_start_server") == 0) { + return (void *)ggml_backend_rpc_start_server; + } return NULL; GGML_UNUSED(reg); diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 383e94accb..06a96af552 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -28,12 +28,12 @@ else() add_subdirectory(tokenize) add_subdirectory(tts) add_subdirectory(llava) + if (GGML_RPC) + add_subdirectory(rpc) + endif() if (NOT GGML_BACKEND_DL) # these examples use the backends directly and cannot be built with dynamic loading add_subdirectory(cvector-generator) add_subdirectory(export-lora) - if (GGML_RPC) - add_subdirectory(rpc) - endif() endif() endif() diff --git a/tools/rpc/rpc-server.cpp b/tools/rpc/rpc-server.cpp index b663a81191..a3f901a223 100644 --- a/tools/rpc/rpc-server.cpp +++ b/tools/rpc/rpc-server.cpp @@ -2,24 +2,6 @@ #define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING #endif -#include "ggml-cpu.h" - -#ifdef GGML_USE_CUDA -#include "ggml-cuda.h" -#endif - -#ifdef GGML_USE_METAL -#include "ggml-metal.h" -#endif - -#ifdef GGML_USE_VULKAN -#include "ggml-vulkan.h" -#endif - -#ifdef GGML_USE_SYCL -#include "ggml-sycl.h" -#endif - #include "ggml-rpc.h" #ifdef _WIN32 # define NOMINMAX @@ -154,6 +136,7 @@ struct rpc_server_params { size_t backend_mem = 0; bool use_cache = false; int n_threads = std::max(1U, std::thread::hardware_concurrency()/2); + std::string device; }; static void print_usage(int /*argc*/, char ** argv, rpc_server_params params) { @@ -161,6 +144,7 @@ static void print_usage(int /*argc*/, char ** argv, rpc_server_params params) { fprintf(stderr, "options:\n"); fprintf(stderr, " -h, --help show this help message and exit\n"); fprintf(stderr, " -t, --threads number of threads for the CPU backend (default: %d)\n", params.n_threads); + fprintf(stderr, " -d DEV, --device device to use\n"); fprintf(stderr, " -H HOST, --host HOST host to bind to (default: %s)\n", params.host.c_str()); fprintf(stderr, " -p PORT, --port PORT port to bind to (default: %d)\n", params.port); fprintf(stderr, " -m MEM, --mem MEM backend memory size (in MB)\n"); @@ -186,6 +170,22 @@ static bool rpc_server_params_parse(int argc, char ** argv, rpc_server_params & fprintf(stderr, "error: invalid number of threads: %d\n", params.n_threads); return false; } + } else if (arg == "-d" || arg == "--device") { + if (++i >= argc) { + return false; + } + params.device = argv[i]; + if (ggml_backend_dev_by_name(params.device.c_str()) == nullptr) { + fprintf(stderr, "error: unknown device: %s\n", params.device.c_str()); + fprintf(stderr, "available devices:\n"); + for (size_t i = 0; i < ggml_backend_dev_count(); i++) { + auto * dev = ggml_backend_dev_get(i); + size_t free, total; + ggml_backend_dev_memory(dev, &free, &total); + printf(" %s: %s (%zu MiB, %zu MiB free)\n", ggml_backend_dev_name(dev), ggml_backend_dev_description(dev), total / 1024 / 1024, free / 1024 / 1024); + } + return false; + } } else if (arg == "-p" || arg == "--port") { if (++i >= argc) { return false; @@ -214,66 +214,53 @@ static bool rpc_server_params_parse(int argc, char ** argv, rpc_server_params & } static ggml_backend_t create_backend(const rpc_server_params & params) { - ggml_backend_t backend = NULL; -#ifdef GGML_USE_CUDA - fprintf(stderr, "%s: using CUDA backend\n", __func__); - backend = ggml_backend_cuda_init(0); // init device 0 - if (!backend) { - fprintf(stderr, "%s: ggml_backend_cuda_init() failed\n", __func__); - } -#elif GGML_USE_METAL - fprintf(stderr, "%s: using Metal backend\n", __func__); - backend = ggml_backend_metal_init(); - if (!backend) { - fprintf(stderr, "%s: ggml_backend_metal_init() failed\n", __func__); - } -#elif GGML_USE_VULKAN - fprintf(stderr, "%s: using Vulkan backend\n", __func__); - backend = ggml_backend_vk_init(0); // init device 0 - if (!backend) { - fprintf(stderr, "%s: ggml_backend_vulkan_init() failed\n", __func__); - } -#elif GGML_USE_SYCL - fprintf(stderr, "%s: using SYCL backend\n", __func__); - backend = ggml_backend_sycl_init(0); // init device 0 - if (!backend) { - fprintf(stderr, "%s: ggml_backend_sycl_init() failed\n", __func__); - } -#endif + ggml_backend_t backend = nullptr; - // if there aren't GPU Backends fallback to CPU backend - if (!backend) { - fprintf(stderr, "%s: using CPU backend\n", __func__); - backend = ggml_backend_cpu_init(); - ggml_backend_cpu_set_n_threads(backend, params.n_threads); + if (!params.device.empty()) { + ggml_backend_dev_t dev = ggml_backend_dev_by_name(params.device.c_str()); + if (dev) { + backend = ggml_backend_dev_init(dev, nullptr); + if (!backend) { + fprintf(stderr, "Failed to create backend for device %s\n", params.device.c_str()); + return nullptr; + } + } } + + // try to initialize a GPU backend first + if (!backend) { + backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr); + } + + // if there aren't GPU backends fallback to CPU backend + if (!backend) { + backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_CPU, nullptr); + } + + fprintf(stderr, "%s: using %s backend\n", __func__, ggml_backend_name(backend)); + + // set the number of threads + ggml_backend_dev_t dev = ggml_backend_get_device(backend); + ggml_backend_reg_t reg = dev ? ggml_backend_dev_backend_reg(dev) : nullptr; + if (reg) { + auto ggml_backend_set_n_threads_fn = (ggml_backend_set_n_threads_t) ggml_backend_reg_get_proc_address(reg, "ggml_backend_set_n_threads"); + if (ggml_backend_set_n_threads_fn) { + ggml_backend_set_n_threads_fn(backend, params.n_threads); + } + } + return backend; } -static void get_backend_memory(size_t * free_mem, size_t * total_mem) { -#ifdef GGML_USE_CUDA - ggml_backend_cuda_get_device_memory(0, free_mem, total_mem); -#elif GGML_USE_VULKAN - ggml_backend_vk_get_device_memory(0, free_mem, total_mem); -#elif GGML_USE_SYCL - ggml_backend_sycl_get_device_memory(0, free_mem, total_mem); -#else - #ifdef _WIN32 - MEMORYSTATUSEX status; - status.dwLength = sizeof(status); - GlobalMemoryStatusEx(&status); - *total_mem = status.ullTotalPhys; - *free_mem = status.ullAvailPhys; - #else - long pages = sysconf(_SC_PHYS_PAGES); - long page_size = sysconf(_SC_PAGE_SIZE); - *total_mem = pages * page_size; - *free_mem = *total_mem; - #endif -#endif +static void get_backend_memory(ggml_backend_t backend, size_t * free_mem, size_t * total_mem) { + ggml_backend_dev_t dev = ggml_backend_get_device(backend); + GGML_ASSERT(dev != nullptr); + ggml_backend_dev_memory(dev, free_mem, total_mem); } int main(int argc, char * argv[]) { + ggml_backend_load_all(); + rpc_server_params params; if (!rpc_server_params_parse(argc, argv, params)) { fprintf(stderr, "Invalid parameters\n"); @@ -301,7 +288,7 @@ int main(int argc, char * argv[]) { free_mem = params.backend_mem; total_mem = params.backend_mem; } else { - get_backend_memory(&free_mem, &total_mem); + get_backend_memory(backend, &free_mem, &total_mem); } const char * cache_dir = nullptr; std::string cache_dir_str; @@ -313,14 +300,21 @@ int main(int argc, char * argv[]) { } cache_dir = cache_dir_str.c_str(); } - printf("Starting RPC server v%d.%d.%d\n", - RPC_PROTO_MAJOR_VERSION, - RPC_PROTO_MINOR_VERSION, - RPC_PROTO_PATCH_VERSION); - printf(" endpoint : %s\n", endpoint.c_str()); - printf(" local cache : %s\n", cache_dir ? cache_dir : "n/a"); - printf(" backend memory : %zu MB\n", free_mem / (1024 * 1024)); - ggml_backend_rpc_start_server(backend, endpoint.c_str(), cache_dir, free_mem, total_mem); + + ggml_backend_reg_t reg = ggml_backend_reg_by_name("RPC"); + if (!reg) { + fprintf(stderr, "Failed to find RPC backend\n"); + return 1; + } + + auto start_server_fn = (decltype(ggml_backend_rpc_start_server)*) ggml_backend_reg_get_proc_address(reg, "ggml_backend_rpc_start_server"); + if (!start_server_fn) { + fprintf(stderr, "Failed to obtain RPC backend start server function\n"); + return 1; + } + + start_server_fn(backend, endpoint.c_str(), cache_dir, free_mem, total_mem); + ggml_backend_free(backend); return 0; } From 27aa2595321c4d9cc4086a8e67bdea204b8309b0 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Sun, 4 May 2025 23:43:42 +0200 Subject: [PATCH 100/126] mtmd : add C public API (#13184) * init * wip * working version * add mtmd::bitmaps * add test target * rm redundant define * test: mtmd_input_chunks_free * rm outdated comment * fix merging issue * explicitly create mtmd::input_chunks * mtmd_input_chunk_copy * add clone() * add const to various places * add warning about breaking changes * helper: use mtmd_image_tokens_get_n_pos --- tests/CMakeLists.txt | 4 + tests/test-mtmd-c-api.c | 63 +++++ tools/llava/clip-impl.h | 9 + tools/llava/clip.h | 8 +- tools/llava/mtmd-cli.cpp | 49 ++-- tools/llava/mtmd.cpp | 557 +++++++++++++++++++++++++++------------ tools/llava/mtmd.h | 298 +++++++++++++++------ 7 files changed, 730 insertions(+), 258 deletions(-) create mode 100644 tests/test-mtmd-c-api.c diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 72b32df9fc..709d5ad96a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -165,6 +165,10 @@ if (NOT GGML_BACKEND_DL) llama_build_and_test(test-rope.cpp) endif() +# libmtmd +set(LLAMA_TEST_NAME test-mtmd-c-api) +llama_build_and_test(test-mtmd-c-api.c) +target_link_libraries(${LLAMA_TEST_NAME} PRIVATE mtmd) # dummy executable - not installed get_filename_component(TEST_TARGET test-c.c NAME_WE) diff --git a/tests/test-mtmd-c-api.c b/tests/test-mtmd-c-api.c new file mode 100644 index 0000000000..02e762e6a2 --- /dev/null +++ b/tests/test-mtmd-c-api.c @@ -0,0 +1,63 @@ +#include +#include + +#include "mtmd.h" + +int main(void) { + printf("\n\nTesting libmtmd C API...\n"); + printf("--------\n\n"); + + struct mtmd_context_params params = mtmd_context_params_default(); + printf("Default image marker: %s\n", params.image_marker); + + mtmd_input_chunks * chunks = mtmd_test_create_input_chunks(); + + if (!chunks) { + fprintf(stderr, "Failed to create input chunks\n"); + return 1; + } + + size_t n_chunks = mtmd_input_chunks_size(chunks); + printf("Number of chunks: %zu\n", n_chunks); + assert(n_chunks > 0); + + for (size_t i = 0; i < n_chunks; i++) { + const mtmd_input_chunk * chunk = mtmd_input_chunks_get(chunks, i); + assert(chunk != NULL); + enum mtmd_input_chunk_type type = mtmd_input_chunk_get_type(chunk); + printf("Chunk %zu type: %d\n", i, type); + + if (type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + size_t n_tokens; + const llama_token * tokens = mtmd_input_chunk_get_tokens_text(chunk, &n_tokens); + printf(" Text chunk with %zu tokens\n", n_tokens); + assert(tokens != NULL); + assert(n_tokens > 0); + for (size_t j = 0; j < n_tokens; j++) { + assert(tokens[j] >= 0); + printf(" > Token %zu: %d\n", j, tokens[j]); + } + + } else if (type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + const mtmd_image_tokens * image_tokens = mtmd_input_chunk_get_tokens_image(chunk); + size_t n_tokens = mtmd_image_tokens_get_n_tokens(image_tokens); + size_t nx = mtmd_image_tokens_get_nx(image_tokens); + size_t ny = mtmd_image_tokens_get_ny(image_tokens); + const char * id = mtmd_image_tokens_get_id(image_tokens); + assert(n_tokens > 0); + assert(nx > 0); + assert(ny > 0); + assert(id != NULL); + printf(" Image chunk with %zu tokens\n", n_tokens); + printf(" Image size: %zu x %zu\n", nx, ny); + printf(" Image ID: %s\n", id); + } + } + + // Free the chunks + mtmd_input_chunks_free(chunks); + + printf("\n\nDONE: test libmtmd C API...\n"); + + return 0; +} diff --git a/tools/llava/clip-impl.h b/tools/llava/clip-impl.h index b78d930bce..fb780e9dea 100644 --- a/tools/llava/clip-impl.h +++ b/tools/llava/clip-impl.h @@ -233,6 +233,15 @@ struct clip_image_u8_batch { struct clip_image_f32_batch { std::vector entries; + + clip_image_f32_batch clone() const { + clip_image_f32_batch new_batch; + new_batch.entries.reserve(entries.size()); + for (const auto & entry : entries) { + new_batch.entries.emplace_back(new clip_image_f32(*entry)); + } + return new_batch; + } }; // diff --git a/tools/llava/clip.h b/tools/llava/clip.h index 0a53bd8eb7..0b0eb02956 100644 --- a/tools/llava/clip.h +++ b/tools/llava/clip.h @@ -78,10 +78,10 @@ CLIP_API int clip_uhd_num_image_embeds_col(struct clip_ctx * ctx_clip); CLIP_API void clip_add_load_image_size(struct clip_ctx * ctx_clip, struct clip_image_size * load_image_size); CLIP_API struct clip_image_size * clip_get_load_image_size(struct clip_ctx * ctx_clip); -CLIP_API struct clip_image_size * clip_image_size_init(); -CLIP_API struct clip_image_u8 * clip_image_u8_init (); -CLIP_API struct clip_image_f32 * clip_image_f32_init(); -CLIP_API struct clip_image_f32_batch * clip_image_f32_batch_init(); // only used by libllava +CLIP_API struct clip_image_size * clip_image_size_init(void); +CLIP_API struct clip_image_u8 * clip_image_u8_init (void); +CLIP_API struct clip_image_f32 * clip_image_f32_init(void); +CLIP_API struct clip_image_f32_batch * clip_image_f32_batch_init(void); // only used by libllava // nx, ny are the output image dimensions CLIP_API unsigned char * clip_image_u8_get_data(struct clip_image_u8 * img, uint32_t * nx, uint32_t * ny); diff --git a/tools/llava/mtmd-cli.cpp b/tools/llava/mtmd-cli.cpp index 474e7c4f83..dd18e0fe6e 100644 --- a/tools/llava/mtmd-cli.cpp +++ b/tools/llava/mtmd-cli.cpp @@ -63,7 +63,7 @@ static void sigint_handler(int signo) { #endif struct mtmd_cli_context { - mtmd_context_ptr ctx_vision; + mtmd::context_ptr ctx_vision; common_init_result llama_init; llama_model * model; @@ -72,7 +72,7 @@ struct mtmd_cli_context { llama_batch batch; int n_batch; - std::vector bitmaps; + mtmd::bitmaps bitmaps; // note: we know that gemma3 template is "linear", meaning each turn is completely separated to another // so here we don't need to keep track of chat history @@ -115,12 +115,12 @@ struct mtmd_cli_context { void init_vision_context(common_params & params) { const char * clip_path = params.mmproj.path.c_str(); - ctx_vision.reset(mtmd_init_from_file(clip_path, model, mtmd_context_params{ - /* use_gpu */ params.mmproj_use_gpu, - /* timings */ true, - /* n_threads */ params.cpuparams.n_threads, - /* verbosity */ params.verbosity > 0 ? GGML_LOG_LEVEL_DEBUG : GGML_LOG_LEVEL_INFO, - })); + mtmd_context_params mparams = mtmd_context_params_default(); + mparams.use_gpu = params.mmproj_use_gpu; + mparams.print_timings = true; + mparams.n_threads = params.cpuparams.n_threads; + mparams.verbosity = params.verbosity > 0 ? GGML_LOG_LEVEL_DEBUG : GGML_LOG_LEVEL_INFO; + ctx_vision.reset(mtmd_init_from_file(clip_path, model, mparams)); if (!ctx_vision.get()) { LOG_ERR("Failed to load vision model from %s\n", clip_path); exit(1); @@ -139,11 +139,11 @@ struct mtmd_cli_context { } bool load_image(const std::string & fname) { - mtmd_bitmap bitmap; - if (mtmd_helper_bitmap_init_from_file(fname.c_str(), bitmap)) { + mtmd::bitmap bmp(mtmd_helper_bitmap_init_from_file(fname.c_str())); + if (!bmp.ptr) { return false; } - bitmaps.push_back(std::move(bitmap)); + bitmaps.entries.push_back(std::move(bmp)); return true; } }; @@ -193,27 +193,40 @@ static int eval_message(mtmd_cli_context & ctx, common_chat_msg & msg, bool add_ LOG_DBG("formatted_chat.prompt: %s\n", formatted_chat.prompt.c_str()); mtmd_input_text text; - text.text = formatted_chat.prompt; + text.text = formatted_chat.prompt.c_str(); text.add_special = add_bos; text.parse_special = true; - mtmd_input_chunks chunks; if (g_is_interrupted) return 0; - int32_t res = mtmd_tokenize(ctx.ctx_vision.get(), chunks, text, ctx.bitmaps); + mtmd::input_chunks chunks(mtmd_input_chunks_init()); + auto bitmaps_c_ptr = ctx.bitmaps.c_ptr(); + int32_t res = mtmd_tokenize(ctx.ctx_vision.get(), + chunks.ptr.get(), // output + &text, // text + bitmaps_c_ptr.data(), + bitmaps_c_ptr.size()); if (res != 0) { LOG_ERR("Unable to tokenize prompt, res = %d\n", res); return 1; } - ctx.bitmaps.clear(); + ctx.bitmaps.entries.clear(); - if (mtmd_helper_eval(ctx.ctx_vision.get(), ctx.lctx, chunks, ctx.n_past, 0, ctx.n_batch)) { + llama_pos new_n_past; + if (mtmd_helper_eval_chunks(ctx.ctx_vision.get(), + ctx.lctx, // lctx + chunks.ptr.get(), // chunks + ctx.n_past, // n_past + 0, // seq_id + ctx.n_batch, // n_batch + true, // logits_last + &new_n_past)) { LOG_ERR("Unable to eval prompt\n"); return 1; } - ctx.n_past += mtmd_helper_get_n_pos(chunks); + ctx.n_past = new_n_past; LOG("\n"); @@ -246,7 +259,7 @@ int main(int argc, char ** argv) { struct common_sampler * smpl = common_sampler_init(ctx.model, params.sampling); int n_predict = params.n_predict < 0 ? INT_MAX : params.n_predict; - // ctrl+C handling + // Ctrl+C handling { #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) struct sigaction sigint_action; diff --git a/tools/llava/mtmd.cpp b/tools/llava/mtmd.cpp index 73abf2ad18..b600e43413 100644 --- a/tools/llava/mtmd.cpp +++ b/tools/llava/mtmd.cpp @@ -12,6 +12,30 @@ #include #include +// represents raw image data, layout is RGBRGBRGB... +// length of data must be nx * ny * 3 +struct mtmd_bitmap { + uint32_t nx; + uint32_t ny; + std::vector data; + std::string id; // optional user-defined id, for ex: can be set to image hash, useful for KV cache tracking +}; + +struct mtmd_image_tokens_deleter { + void operator()(mtmd_image_tokens * val); // forward declaration +}; +using mtmd_image_tokens_ptr = std::unique_ptr; + +struct mtmd_input_chunk { + mtmd_input_chunk_type type; + std::vector tokens_text; + mtmd_image_tokens_ptr tokens_image; +}; + +struct mtmd_input_chunks { + std::vector entries; +}; + // slice template, used by some llava-uhd models to correctly place the special tokens around image embeddings // models not having it (llava-1.6) will process embeddings without any special tokens in-between enum mtmd_slice_tmpl { @@ -21,6 +45,16 @@ enum mtmd_slice_tmpl { // TODO @ngxson : add support for idefics (SmolVLM) }; +mtmd_context_params mtmd_context_params_default() { + mtmd_context_params params; + params.use_gpu = true; + params.print_timings = true; + params.n_threads = 4; + params.verbosity = GGML_LOG_LEVEL_INFO; + params.image_marker = MTMD_DEFAULT_IMAGE_MARKER; + return params; +} + struct mtmd_context { struct clip_ctx * ctx_clip; const struct llama_model * text_model; @@ -132,6 +166,16 @@ struct mtmd_image_tokens { uint32_t n_tokens() const { return nx * ny; } clip_image_f32_batch batch_f32; // preprocessed image patches std::string id; // optional user-defined ID, useful for KV cache tracking + + mtmd_image_tokens clone() { + return mtmd_image_tokens{ + nx, + ny, + use_mrope_pos, + batch_f32.clone(), + id + }; + } }; mtmd_context * mtmd_init_from_file(const char * mmproj_fname, @@ -172,12 +216,13 @@ static std::vector mtmd_tokenize_text_internal( } int32_t mtmd_tokenize(mtmd_context * ctx, - std::vector & output, - const mtmd_input_text & text, - const std::vector & bitmaps) { + mtmd_input_chunks * output, + const mtmd_input_text * text, + const mtmd_bitmap ** bitmaps, + size_t n_bitmaps) { auto vocab = llama_model_get_vocab(ctx->text_model); - std::string prompt_modified(text.text); + std::string prompt_modified(text->text); std::string marker_modified(ctx->image_marker); projector_type proj_type = clip_get_projector_type(ctx->ctx_clip); @@ -211,8 +256,8 @@ int32_t mtmd_tokenize(mtmd_context * ctx, // for glm-edge, BOI and EOI token's embeddings are not present in the text model std::vector parts = string_split_str(prompt_modified, ctx->image_marker); - output.clear(); - output.reserve(parts.size()); + output->entries.clear(); + output->entries.reserve(parts.size()); size_t i_img = 0; @@ -223,7 +268,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, std::move(tokens), {}, }; - output.emplace_back(std::move(chunk)); + output->entries.emplace_back(std::move(chunk)); }; // utility for splitting batch of multiple images into chunks of batch having single images @@ -251,7 +296,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, for (const auto & part : parts) { // printf("tokenizing part: %s\n", part.c_str()); bool add_bos = &parts.front() == ∂ - auto tokens = mtmd_tokenize_text_internal(vocab, part, text.add_special && add_bos, text.parse_special); + auto tokens = mtmd_tokenize_text_internal(vocab, part, text->add_special && add_bos, text->parse_special); if (tokens.empty()) { continue; } @@ -260,22 +305,22 @@ int32_t mtmd_tokenize(mtmd_context * ctx, std::move(tokens), {}, }; - output.emplace_back(std::move(chunk)); + output->entries.emplace_back(std::move(chunk)); if (&parts.back() != &part) { // add image token to middle of 2 parts - if (i_img >= bitmaps.size()) { + if (i_img >= n_bitmaps) { LOG_ERR("%s: error: not enough images for %d parts\n", __func__, (int)parts.size()); return 1; } // convert mtmd_bitmap to clip_image_u8 clip_image_u8_ptr img_u8(clip_image_u8_init()); - img_u8->nx = bitmaps[i_img].nx; - img_u8->ny = bitmaps[i_img].ny; - img_u8->buf.resize(bitmaps[i_img].data.size()); - std::memcpy(img_u8->buf.data(), bitmaps[i_img].data.data(), img_u8->nx * img_u8->ny * 3); + img_u8->nx = bitmaps[i_img]->nx; + img_u8->ny = bitmaps[i_img]->ny; + img_u8->buf.resize(bitmaps[i_img]->data.size()); + std::memcpy(img_u8->buf.data(), bitmaps[i_img]->data.data(), img_u8->nx * img_u8->ny * 3); clip_image_size img_u8_size{img_u8->nx, img_u8->ny}; // preprocess image @@ -288,12 +333,12 @@ int32_t mtmd_tokenize(mtmd_context * ctx, if (ctx->slice_tmpl == MTMD_SLICE_TMPL_MINICPMV_2_5 || ctx->slice_tmpl == MTMD_SLICE_TMPL_MINICPMV_2_6) { // split batch into chunks of single images - auto chunks = split_batch_to_chunk(std::move(batch_f32), bitmaps[i_img].id); + auto chunks = split_batch_to_chunk(std::move(batch_f32), bitmaps[i_img]->id); GGML_ASSERT(chunks.size() > 0); // add overview image add_text_chunk({ctx->tok_ov_img_start}); - output.emplace_back(std::move(chunks.front())); + output->entries.emplace_back(std::move(chunks.front())); chunks.erase(chunks.begin()); add_text_chunk({ctx->tok_ov_img_end}); @@ -311,7 +356,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, if (ctx->tok_sli_img_start != LLAMA_TOKEN_NULL) { add_text_chunk({ctx->tok_sli_img_start}); } - output.emplace_back(std::move(chunks[y * n_col + x])); + output->entries.emplace_back(std::move(chunks[y * n_col + x])); if (ctx->tok_sli_img_end != LLAMA_TOKEN_NULL) { add_text_chunk({ctx->tok_sli_img_end}); } @@ -343,7 +388,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, image_tokens->ny = 1; } image_tokens->batch_f32 = std::move(batch_f32); - image_tokens->id = bitmaps[i_img].id; // optional + image_tokens->id = bitmaps[i_img]->id; // optional LOG_DBG("image_tokens->nx = %d\n", image_tokens->nx); LOG_DBG("image_tokens->ny = %d\n", image_tokens->ny); @@ -354,7 +399,7 @@ int32_t mtmd_tokenize(mtmd_context * ctx, {}, std::move(image_tokens), }; - output.emplace_back(std::move(chunk)); + output->entries.emplace_back(std::move(chunk)); } i_img++; // move to next image @@ -364,35 +409,12 @@ int32_t mtmd_tokenize(mtmd_context * ctx, return 0; } -void mtmd_image_tokens_free(mtmd_image_tokens * image_tokens) { +static void mtmd_image_tokens_free(mtmd_image_tokens * image_tokens) { if (image_tokens) { delete image_tokens; } } -size_t mtmd_image_tokens_get_n_tokens(const mtmd_image_tokens * image_tokens) { - return image_tokens->n_tokens(); -} - -size_t mtmd_image_tokens_get_nx(const mtmd_image_tokens * image_tokens) { - return image_tokens->nx; -} - -size_t mtmd_image_tokens_get_ny(const mtmd_image_tokens * image_tokens) { - return image_tokens->ny; -} - -std::string mtmd_image_tokens_get_id(const mtmd_image_tokens * image_tokens) { - return image_tokens->id; -} - -llama_pos mtmd_image_tokens_get_n_pos(const mtmd_image_tokens * image_tokens) { - if (image_tokens->use_mrope_pos) { - return 1; // for M-RoPE, the whole image is 1 in temporal dimension - } - return image_tokens->n_tokens(); -} - int32_t mtmd_encode(mtmd_context * ctx, const mtmd_image_tokens * image_tokens) { int n_mmproj_embd = clip_n_mmproj_embd(ctx->ctx_clip); ctx->image_embd_v.resize(image_tokens->n_tokens() * n_mmproj_embd); @@ -432,13 +454,18 @@ float * mtmd_get_output_embd(mtmd_context * ctx) { return ctx->image_embd_v.data(); } -size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks) { +size_t mtmd_helper_get_n_tokens(const mtmd_input_chunks * chunks) { size_t n_tokens = 0; - for (auto & chunk : chunks) { - if (chunk.type == MTMD_INPUT_CHUNK_TYPE_TEXT) { - n_tokens += chunk.tokens_text.size(); - } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { - n_tokens += mtmd_image_tokens_get_n_tokens(chunk.tokens_image.get()); + for (size_t i = 0; i < mtmd_input_chunks_size(chunks); i++) { + auto chunk = mtmd_input_chunks_get(chunks, i); + auto chunk_type = mtmd_input_chunk_get_type(chunk); + if (chunk_type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + size_t n_tokens_text; + mtmd_input_chunk_get_tokens_text(chunk, &n_tokens_text); + n_tokens += n_tokens_text; + } else if (chunk_type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + auto tokens_image = mtmd_input_chunk_get_tokens_image(chunk); + n_tokens += mtmd_image_tokens_get_n_tokens(tokens_image); } else { GGML_ASSERT(false && "chunk type not supported"); } @@ -446,13 +473,18 @@ size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks) { return n_tokens; } -llama_pos mtmd_helper_get_n_pos(mtmd_input_chunks & chunks) { +llama_pos mtmd_helper_get_n_pos(const mtmd_input_chunks * chunks) { llama_pos n_pos = 0; - for (auto & chunk : chunks) { - if (chunk.type == MTMD_INPUT_CHUNK_TYPE_TEXT) { - n_pos += chunk.tokens_text.size(); - } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { - n_pos += mtmd_image_tokens_get_n_pos(chunk.tokens_image.get()); + for (size_t i = 0; i < mtmd_input_chunks_size(chunks); i++) { + auto chunk = mtmd_input_chunks_get(chunks, i); + auto chunk_type = mtmd_input_chunk_get_type(chunk); + if (chunk_type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + size_t n_tokens_text; + mtmd_input_chunk_get_tokens_text(chunk, &n_tokens_text); + n_pos += n_tokens_text; + } else if (chunk_type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + auto tokens_image = mtmd_input_chunk_get_tokens_image(chunk); + n_pos += mtmd_image_tokens_get_n_pos(tokens_image); } else { GGML_ASSERT(false && "chunk type not supported"); } @@ -548,143 +580,172 @@ struct decode_embd_batch { } }; -int32_t mtmd_helper_eval(mtmd_context * ctx, - llama_context * lctx, - mtmd_input_chunks & chunks, - llama_pos pos0, +int32_t mtmd_helper_eval_chunk_single(mtmd_context * ctx, + struct llama_context * lctx, + const mtmd_input_chunk * chunk, + llama_pos n_past, llama_seq_id seq_id, - int32_t n_batch) { + int32_t n_batch, + bool logits_last, + llama_pos * new_n_past) { int32_t ret; - llama_pos n_past = pos0; llama_batch text_batch = llama_batch_init(n_batch, 0, 1); + auto chunk_type = mtmd_input_chunk_get_type(chunk); int n_mmproj_embd = clip_n_mmproj_embd(ctx->ctx_clip); int n_pos_per_embd = mtmd_decode_use_mrope(ctx) ? 4 : 1; - for (auto & chunk : chunks) { - bool is_last = &chunk == &chunks.back(); - if (chunk.type == MTMD_INPUT_CHUNK_TYPE_TEXT) { - text_batch.n_tokens = chunk.tokens_text.size(); - size_t i = 0; - while (i < chunk.tokens_text.size()) { // split into batches - for (; i < chunk.tokens_text.size() && text_batch.n_tokens < n_batch; i++) { - text_batch.token [i] = chunk.tokens_text[i]; - text_batch.pos [i] = n_past++; - text_batch.n_seq_id[i] = 1; - text_batch.seq_id [i][0] = seq_id; - text_batch.logits [i] = false; - } - if (is_last) { - // always get logits for last input chunk - text_batch.logits[text_batch.n_tokens - 1] = true; - } - ret = llama_decode(lctx, text_batch); - if (ret != 0) { - LOG_ERR("failed to decode text\n"); - llama_batch_free(text_batch); - return ret; - } + if (chunk_type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + size_t n_tokens; + const auto tokens = mtmd_input_chunk_get_tokens_text(chunk, &n_tokens); + LOG_DBG("decoding text chunk, n_tokens = %zu\n", n_tokens); + size_t i = 0; + while (i < n_tokens) { // split into batches + text_batch.n_tokens = 0; // clear the batch + for (; i < n_tokens && text_batch.n_tokens < n_batch; i++) { + text_batch.n_tokens++; + text_batch.token [i] = tokens[i]; + text_batch.pos [i] = n_past++; + text_batch.n_seq_id[i] = 1; + text_batch.seq_id [i][0] = seq_id; + text_batch.logits [i] = false; } - - } else if (chunk.type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { - GGML_ASSERT(!is_last && "logits for last image chunk is not yet supported"); - GGML_ASSERT(chunk.tokens_image != nullptr); - int64_t t0 = ggml_time_ms(); - if (ctx->print_timings) { - LOG_INF("encoding image or slice...\n"); + bool is_last_token = (i == n_tokens); + if (logits_last && is_last_token) { + text_batch.logits[text_batch.n_tokens - 1] = true; } - ret = mtmd_encode(ctx, chunk.tokens_image.get()); + ret = llama_decode(lctx, text_batch); if (ret != 0) { - LOG_ERR("failed to encode image\n"); + LOG_ERR("failed to decode text\n"); llama_batch_free(text_batch); return ret; } - if (ctx->print_timings) { - LOG_INF("image/slice encoded in %" PRId64 " ms\n", ggml_time_ms() - t0); - } - - int32_t n_tokens = mtmd_image_tokens_get_n_tokens(chunk.tokens_image.get()); - int32_t i_batch = 0; - int32_t n_img_batches = GGML_PAD(n_tokens, n_batch) / n_batch; - float * embd = mtmd_get_output_embd(ctx); - decode_embd_batch batch_embd(embd, n_tokens, n_pos_per_embd, n_mmproj_embd); - - const int nx = mtmd_image_tokens_get_nx(chunk.tokens_image.get()); - const int ny = mtmd_image_tokens_get_ny(chunk.tokens_image.get()); - - if (mtmd_decode_use_mrope(ctx)) { - batch_embd.set_position_mrope(n_past, nx, ny, seq_id); - } else { - batch_embd.set_position_normal(n_past, seq_id); - } - - if (mtmd_decode_use_non_causal(ctx)) { - llama_set_causal_attn(lctx, false); - // TODO @ngxson : need to make sure only one image is processed at a time, and n_ubatch must be enough to hold the image - } - - while (i_batch < n_img_batches) { // split into batches - int pos_offset = i_batch*n_batch; - int n_tokens_batch = std::min(n_batch, n_tokens - pos_offset); - llama_batch batch_embd_view = batch_embd.get_view(pos_offset, n_tokens_batch); - - LOG_INF("decoding image batch %d/%d, n_tokens_batch = %d\n", i_batch+1, n_img_batches, n_tokens_batch); - - int64_t t1 = ggml_time_ms(); - ret = llama_decode(lctx, batch_embd_view); - if (ret != 0) { - LOG_ERR("failed to decode image\n"); - llama_set_causal_attn(lctx, true); // restore causal attn - llama_batch_free(text_batch); - return ret; - } - - if (ctx->print_timings) { - LOG_INF("image decoded (batch %d/%d) in %" PRId64 " ms\n", i_batch+1, n_img_batches, ggml_time_ms() - t1); - } - - i_batch++; - } - - // for mrope, one image is one single **temporal** position - n_past += mtmd_decode_use_mrope(ctx) ? 1 : n_tokens; - - if (mtmd_decode_use_non_causal(ctx)) { - llama_set_causal_attn(lctx, true); - } - - } else { - GGML_ASSERT(false && "chunk type not supported"); + *new_n_past += text_batch.n_tokens; } + + } else if (chunk_type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + const auto image_tokens = mtmd_input_chunk_get_tokens_image(chunk); + int64_t t0 = ggml_time_ms(); + if (ctx->print_timings) { + LOG_INF("encoding image or slice...\n"); + } + ret = mtmd_encode(ctx, image_tokens); + if (ret != 0) { + LOG_ERR("failed to encode image\n"); + llama_batch_free(text_batch); + return ret; + } + if (ctx->print_timings) { + LOG_INF("image/slice encoded in %" PRId64 " ms\n", ggml_time_ms() - t0); + } + + int32_t n_tokens = mtmd_image_tokens_get_n_tokens(image_tokens); + int32_t i_batch = 0; + int32_t n_img_batches = GGML_PAD(n_tokens, n_batch) / n_batch; + float * embd = mtmd_get_output_embd(ctx); + decode_embd_batch batch_embd(embd, n_tokens, n_pos_per_embd, n_mmproj_embd); + + const int nx = mtmd_image_tokens_get_nx(image_tokens); + const int ny = mtmd_image_tokens_get_ny(image_tokens); + + if (mtmd_decode_use_mrope(ctx)) { + batch_embd.set_position_mrope(n_past, nx, ny, seq_id); + } else { + batch_embd.set_position_normal(n_past, seq_id); + } + + if (mtmd_decode_use_non_causal(ctx)) { + llama_set_causal_attn(lctx, false); + // TODO @ngxson : need to make sure only one image is processed at a time, and n_ubatch must be enough to hold the image + } + + while (i_batch < n_img_batches) { // split into batches + int pos_offset = i_batch*n_batch; + int n_tokens_batch = std::min(n_batch, n_tokens - pos_offset); + llama_batch batch_embd_view = batch_embd.get_view(pos_offset, n_tokens_batch); + + LOG_INF("decoding image batch %d/%d, n_tokens_batch = %d\n", i_batch+1, n_img_batches, n_tokens_batch); + + int64_t t1 = ggml_time_ms(); + ret = llama_decode(lctx, batch_embd_view); + if (ret != 0) { + LOG_ERR("failed to decode image\n"); + llama_set_causal_attn(lctx, true); // restore causal attn + llama_batch_free(text_batch); + return ret; + } + + if (ctx->print_timings) { + LOG_INF("image decoded (batch %d/%d) in %" PRId64 " ms\n", i_batch+1, n_img_batches, ggml_time_ms() - t1); + } + + i_batch++; + } + + n_past += mtmd_image_tokens_get_n_pos(image_tokens); + *new_n_past = n_past; + + if (mtmd_decode_use_non_causal(ctx)) { + llama_set_causal_attn(lctx, true); + } + + } else { + GGML_ABORT("chunk type not supported"); } - llama_batch_free(text_batch); return 0; } -int32_t mtmd_helper_bitmap_init_from_buf(const unsigned char * buf, size_t len, mtmd_bitmap & output) { +int32_t mtmd_helper_eval_chunks(mtmd_context * ctx, + struct llama_context * lctx, + const mtmd_input_chunks * chunks, + llama_pos n_past, + llama_seq_id seq_id, + int32_t n_batch, + bool logits_last, + llama_pos * new_n_past) { + size_t n_chunks = mtmd_input_chunks_size(chunks); + if (n_chunks == 0) { + LOG_WRN("no chunks to eval\n"); + return 0; + } + + for (size_t i = 0; i < n_chunks; i++) { + bool chunk_logits_last = (i == n_chunks - 1) && logits_last; + auto chunk = mtmd_input_chunks_get(chunks, i); + + int32_t res = mtmd_helper_eval_chunk_single(ctx, lctx, chunk, n_past, seq_id, n_batch, chunk_logits_last, &n_past); + if (res != 0) { + LOG_ERR("failed to eval chunk %zu\n", i); + return res; + } + *new_n_past = n_past; + } + + return 0; +} + +mtmd_bitmap * mtmd_helper_bitmap_init_from_buf(const unsigned char * buf, size_t len) { clip_image_u8_ptr img_u8(clip_image_u8_init()); bool ok = clip_image_load_from_bytes(buf, len, img_u8.get()); if (!ok) { LOG_ERR("Unable to load image from buffer\n"); - return 1; + return nullptr; } - unsigned char * data = clip_image_u8_get_data(img_u8.get(), &output.nx, &output.ny); - output.data.resize(output.nx * output.ny * 3); - std::memcpy(output.data.data(), data, output.nx * output.ny * 3); - return 0; + uint32_t nx, ny; + unsigned char * data = clip_image_u8_get_data(img_u8.get(), &nx, &ny); + return mtmd_bitmap_init(nx, ny, data); } -int32_t mtmd_helper_bitmap_init_from_file(const char * fname, mtmd_bitmap & output) { +mtmd_bitmap * mtmd_helper_bitmap_init_from_file(const char * fname) { clip_image_u8_ptr img_u8(clip_image_u8_init()); bool ok = clip_image_load_from_file(fname, img_u8.get()); if (!ok) { LOG_ERR("Unable to load image %s\n", fname); - return 1; + return nullptr; } - unsigned char * data = clip_image_u8_get_data(img_u8.get(), &output.nx, &output.ny); - output.data.resize(output.nx * output.ny * 3); - std::memcpy(output.data.data(), data, output.nx * output.ny * 3); - return 0; + uint32_t nx, ny; + unsigned char * data = clip_image_u8_get_data(img_u8.get(), &nx, &ny); + return mtmd_bitmap_init(nx, ny, data); } bool mtmd_decode_use_non_causal(mtmd_context * ctx) { @@ -702,3 +763,175 @@ bool mtmd_decode_use_mrope(mtmd_context * ctx) { void mtmd_image_tokens_deleter::operator()(mtmd_image_tokens * val) { mtmd_image_tokens_free(val); } + + +// +// public API functions +// + +// mtmd_bitmap + +mtmd_bitmap * mtmd_bitmap_init(uint32_t nx, + uint32_t ny, + const unsigned char * data) { + mtmd_bitmap * bitmap = new mtmd_bitmap; + bitmap->nx = nx; + bitmap->ny = ny; + size_t data_size = (size_t)nx * ny * 3; + bitmap->data.resize(data_size); + std::memcpy(bitmap->data.data(), data, data_size); + return bitmap; +} + +uint32_t mtmd_bitmap_get_nx(const mtmd_bitmap * bitmap) { + return bitmap->nx; +} + +uint32_t mtmd_bitmap_get_ny(const mtmd_bitmap * bitmap) { + return bitmap->ny; +} + +const unsigned char * mtmd_bitmap_get_data(const mtmd_bitmap * bitmap) { + return bitmap->data.data(); +} + +const char * mtmd_bitmap_get_id(const mtmd_bitmap * bitmap) { + return bitmap->id.c_str(); +} + +void mtmd_bitmap_set_id(mtmd_bitmap * bitmap, const char * id) { + if (id) { + bitmap->id = std::string(id); + } else { + bitmap->id.clear(); + } +} + +void mtmd_bitmap_free(mtmd_bitmap * bitmap) { + if (bitmap) { + delete bitmap; + } +} + +// mtmd_input_chunks + +mtmd_input_chunks * mtmd_input_chunks_init() { + return new mtmd_input_chunks; +} + +size_t mtmd_input_chunks_size(const mtmd_input_chunks * chunks) { + return chunks->entries.size(); +} + +const mtmd_input_chunk * mtmd_input_chunks_get(const mtmd_input_chunks * chunks, size_t idx) { + if (idx >= chunks->entries.size()) { + return nullptr; + } + return &chunks->entries[idx]; +} + +void mtmd_input_chunks_free(mtmd_input_chunks * chunks) { + if (chunks) { + delete chunks; + } +} + +// mtmd_input_chunk + +enum mtmd_input_chunk_type mtmd_input_chunk_get_type(const mtmd_input_chunk * chunk) { + return chunk->type; +} + +const llama_token * mtmd_input_chunk_get_tokens_text(const mtmd_input_chunk * chunk, size_t * n_tokens_output) { + if (chunk->type == MTMD_INPUT_CHUNK_TYPE_TEXT) { + *n_tokens_output = chunk->tokens_text.size(); + return chunk->tokens_text.data(); + } + *n_tokens_output = 0; + return nullptr; +} + +const mtmd_image_tokens * mtmd_input_chunk_get_tokens_image(const mtmd_input_chunk * chunk) { + if (chunk->type == MTMD_INPUT_CHUNK_TYPE_IMAGE) { + return chunk->tokens_image.get(); + } + return nullptr; +} + +mtmd_input_chunk * mtmd_input_chunk_copy(const mtmd_input_chunk * chunk) { + mtmd_input_chunk * copy = new mtmd_input_chunk{ + chunk->type, + chunk->tokens_text, + mtmd_image_tokens_ptr(), + }; + if (chunk->tokens_image) { + // copy the image tokens + copy->tokens_image = mtmd_image_tokens_ptr(new mtmd_image_tokens()); + *copy->tokens_image = chunk->tokens_image->clone(); + } + return copy; +} + +void mtmd_input_chunk_free(mtmd_input_chunk * chunk) { + if (chunk) { + delete chunk; + } +} + +// mtmd_image_tokens + +size_t mtmd_image_tokens_get_n_tokens(const mtmd_image_tokens * image_tokens) { + return image_tokens->n_tokens(); +} + +size_t mtmd_image_tokens_get_nx(const mtmd_image_tokens * image_tokens) { + return image_tokens->nx; +} + +size_t mtmd_image_tokens_get_ny(const mtmd_image_tokens * image_tokens) { + return image_tokens->ny; +} + +const char * mtmd_image_tokens_get_id(const mtmd_image_tokens * image_tokens) { + return image_tokens->id.c_str(); +} + +llama_pos mtmd_image_tokens_get_n_pos(const mtmd_image_tokens * image_tokens) { + if (image_tokens->use_mrope_pos) { + return 1; // for M-RoPE, the whole image is 1 in temporal dimension + } + return image_tokens->n_tokens(); +} + +// test function + +mtmd_input_chunks * mtmd_test_create_input_chunks() { + mtmd_input_chunks * chunks = mtmd_input_chunks_init(); + if (!chunks) { + return nullptr; + } + + // create a text chunk + std::vector tokens_text = { 1, 2, 3, 4, 5 }; + mtmd_input_chunk chunk_text{ + MTMD_INPUT_CHUNK_TYPE_TEXT, + std::move(tokens_text), + {}, + }; + chunks->entries.emplace_back(std::move(chunk_text)); + + // create an image chunk + mtmd_image_tokens_ptr image_tokens(new mtmd_image_tokens); + image_tokens->nx = 4; + image_tokens->ny = 4; + image_tokens->batch_f32.entries.resize(16); + image_tokens->id = "image_1"; + mtmd_input_chunk chunk_image{ + MTMD_INPUT_CHUNK_TYPE_IMAGE, + {}, + std::move(image_tokens), + }; + chunks->entries.emplace_back(std::move(chunk_image)); + + return chunks; +} diff --git a/tools/llava/mtmd.h b/tools/llava/mtmd.h index 6805e5e481..e2f76e2e8d 100644 --- a/tools/llava/mtmd.h +++ b/tools/llava/mtmd.h @@ -5,9 +5,24 @@ #include "llama.h" #include "clip.h" +#include +#include +#include + +#ifdef __cplusplus #include #include #include +#endif + +/** + * libmtmd: A library for multimodal support in llama.cpp. + * + * WARNING: This API is experimental and subject to many BREAKING CHANGES. + * Issues related to API usage may receive lower priority support. + * + * For the usage, see an example in mtmd-cli.cpp + */ #ifdef LLAMA_SHARED # if defined(_WIN32) && !defined(__MINGW32__) @@ -23,60 +38,118 @@ # define MTMD_API #endif +#define MTMD_DEFAULT_IMAGE_MARKER "<__image__>" + #ifdef __cplusplus +extern "C" { +#endif enum mtmd_input_chunk_type { MTMD_INPUT_CHUNK_TYPE_TEXT, MTMD_INPUT_CHUNK_TYPE_IMAGE, }; +// opaque types struct mtmd_context; +struct mtmd_bitmap; struct mtmd_image_tokens; - -// represents raw image data, layout is RGBRGBRGB... -// length of data must be nx * ny * 3 -struct mtmd_bitmap { - uint32_t nx; - uint32_t ny; - std::vector data; - std::string id; // optional user-defined id, for ex: can be set to image hash, useful for KV cache tracking -}; - -struct mtmd_image_tokens_deleter { - void operator()(mtmd_image_tokens * val); // forward declaration -}; -using mtmd_image_tokens_ptr = std::unique_ptr; - -struct mtmd_input_chunk { - mtmd_input_chunk_type type; - std::vector tokens_text; - mtmd_image_tokens_ptr tokens_image; -}; - -using mtmd_input_chunks = std::vector; - -struct mtmd_context_params { - bool use_gpu = true; - bool print_timings = true; - int n_threads = 4; - enum ggml_log_level verbosity = GGML_LOG_LEVEL_INFO; - const char * image_marker = "<__image__>"; -}; +struct mtmd_input_chunk; +struct mtmd_input_chunks; struct mtmd_input_text { - std::string text; + const char * text; bool add_special; bool parse_special; }; +// +// C API +// + +typedef struct mtmd_context mtmd_context; +typedef struct mtmd_bitmap mtmd_bitmap; +typedef struct mtmd_image_tokens mtmd_image_tokens; +typedef struct mtmd_input_chunk mtmd_input_chunk; +typedef struct mtmd_input_chunks mtmd_input_chunks; +typedef struct mtmd_input_text mtmd_input_text; + +struct mtmd_context_params { + bool use_gpu; + bool print_timings; + int n_threads; + enum ggml_log_level verbosity; + const char * image_marker; +}; + +MTMD_API struct mtmd_context_params mtmd_context_params_default(void); + // initialize the mtmd context // return nullptr on failure MTMD_API mtmd_context * mtmd_init_from_file(const char * mmproj_fname, - const llama_model * text_model, - const mtmd_context_params ctx_params); + const struct llama_model * text_model, + const struct mtmd_context_params ctx_params); MTMD_API void mtmd_free(mtmd_context * ctx); +// whether we need to set non-causal mask before llama_decode +MTMD_API bool mtmd_decode_use_non_causal(mtmd_context * ctx); + +// whether the current model use M-RoPE for llama_decode +MTMD_API bool mtmd_decode_use_mrope(mtmd_context * ctx); + + +// mtmd_bitmap +// +// length of data must be nx * ny * 3 +// the data is in RGBRGBRGB... format +MTMD_API mtmd_bitmap * mtmd_bitmap_init (uint32_t nx, + uint32_t ny, + const unsigned char * data); +MTMD_API uint32_t mtmd_bitmap_get_nx (const mtmd_bitmap * bitmap); +MTMD_API uint32_t mtmd_bitmap_get_ny (const mtmd_bitmap * bitmap); +MTMD_API const unsigned char * mtmd_bitmap_get_data(const mtmd_bitmap * bitmap); +MTMD_API void mtmd_bitmap_free (mtmd_bitmap * bitmap); +// bitmap ID is optional, but useful for KV cache tracking +// these getters/setters are dedicated functions, so you can for example calculate the hash of the image based on mtmd_bitmap_get_data() +MTMD_API const char * mtmd_bitmap_get_id(const mtmd_bitmap * bitmap); +MTMD_API void mtmd_bitmap_set_id(mtmd_bitmap * bitmap, const char * id); + + +// mtmd_input_chunks +// +// this is simply a list of mtmd_input_chunk +// the elements can only be populated via mtmd_tokenize() +MTMD_API mtmd_input_chunks * mtmd_input_chunks_init(void); +MTMD_API size_t mtmd_input_chunks_size(const mtmd_input_chunks * chunks); +MTMD_API const mtmd_input_chunk * mtmd_input_chunks_get (const mtmd_input_chunks * chunks, size_t idx); +MTMD_API void mtmd_input_chunks_free(mtmd_input_chunks * chunks); + +// mtmd_input_chunk +// +// the instance will be constructed via mtmd_tokenize() +// it will be freed along with mtmd_input_chunks +MTMD_API enum mtmd_input_chunk_type mtmd_input_chunk_get_type (const mtmd_input_chunk * chunk); +MTMD_API const llama_token * mtmd_input_chunk_get_tokens_text (const mtmd_input_chunk * chunk, size_t * n_tokens_output); +MTMD_API const mtmd_image_tokens * mtmd_input_chunk_get_tokens_image(const mtmd_input_chunk * chunk); + +// in case you want to use custom logic to handle the chunk (i.e. KV cache management) +// you can move the chunk ownership to your own code by copying it +// remember to free the chunk when you are done with it +MTMD_API mtmd_input_chunk * mtmd_input_chunk_copy(const mtmd_input_chunk * chunk); +MTMD_API void mtmd_input_chunk_free(mtmd_input_chunk * chunk); + + +// mtmd_image_tokens +// +// the instance will be constructed via mtmd_tokenize() +// it will be freed along with mtmd_input_chunk +MTMD_API size_t mtmd_image_tokens_get_n_tokens(const mtmd_image_tokens * image_tokens); +MTMD_API size_t mtmd_image_tokens_get_nx (const mtmd_image_tokens * image_tokens); +MTMD_API size_t mtmd_image_tokens_get_ny (const mtmd_image_tokens * image_tokens); +MTMD_API const char * mtmd_image_tokens_get_id (const mtmd_image_tokens * image_tokens); +// number of temporal positions (always 1 for M-RoPE, n_tokens otherwise) +MTMD_API llama_pos mtmd_image_tokens_get_n_pos (const mtmd_image_tokens * image_tokens); + // tokenize an input text prompt and an image // the prompt must have the input image marker (default: "<__image__>") in it // the marker will be replaced with the image tokens @@ -93,75 +166,152 @@ MTMD_API void mtmd_free(mtmd_context * ctx); // 1 on number of images not matching the number of markers // 2 on image preprocessing error MTMD_API int32_t mtmd_tokenize(mtmd_context * ctx, - std::vector & output, - const mtmd_input_text & text, - const std::vector & bitmaps); - -// access mtmd_image_tokens -MTMD_API size_t mtmd_image_tokens_get_n_tokens(const mtmd_image_tokens * image_tokens); -MTMD_API size_t mtmd_image_tokens_get_nx(const mtmd_image_tokens * image_tokens); -MTMD_API size_t mtmd_image_tokens_get_ny(const mtmd_image_tokens * image_tokens); -MTMD_API std::string mtmd_image_tokens_get_id(const mtmd_image_tokens * image_tokens); -MTMD_API llama_pos mtmd_image_tokens_get_n_pos(const mtmd_image_tokens * image_tokens); // number of temporal positions (always 1 for M-RoPE, n_tokens otherwise) -MTMD_API void mtmd_image_tokens_free(mtmd_image_tokens * image_tokens); + mtmd_input_chunks * output, + const mtmd_input_text * text, + const mtmd_bitmap ** bitmaps, + size_t n_bitmaps); // returns 0 on success MTMD_API int32_t mtmd_encode(mtmd_context * ctx, - const mtmd_image_tokens * image_tokens); + const mtmd_image_tokens * image_tokens); // get output embeddings from the last encode pass MTMD_API float * mtmd_get_output_embd(mtmd_context * ctx); -// whether we need to set non-causal mask before llama_decode -MTMD_API bool mtmd_decode_use_non_causal(mtmd_context * ctx); - -// whether the current model use M-RoPE for llama_decode -MTMD_API bool mtmd_decode_use_mrope(mtmd_context * ctx); - - +///////////////////////////////////////// // -// helper functions (can be implemented based on other functions) +// Helper functions (can be implemented based on other functions) // +// Please note that these helpers are not guaranteed to be stable. +// BREAKING CHANGES are expected. +// + +// helper function to construct a mtmd_bitmap from a file +// returns nullptr on failure +// this function is thread-safe +MTMD_API mtmd_bitmap * mtmd_helper_bitmap_init_from_file(const char * fname); + +// helper function to construct a mtmd_bitmap from a buffer containing a file +// the file content must be an image in format supported by stb_image (jpg, png, bmp, gif, etc.) +// returns nullptr on failure +// this function is thread-safe +MTMD_API mtmd_bitmap * mtmd_helper_bitmap_init_from_buf(const unsigned char * buf, size_t len); // helper to count the total number of tokens from a list of chunks, useful to keep track of KV cache -MTMD_API size_t mtmd_helper_get_n_tokens(mtmd_input_chunks & chunks); +MTMD_API size_t mtmd_helper_get_n_tokens(const mtmd_input_chunks * chunks); // helper to count the total position of tokens from a list of chunks, useful to keep track of n_past -MTMD_API llama_pos mtmd_helper_get_n_pos(mtmd_input_chunks & chunks); +// normally, n_pos is equal to n_tokens, but for M-RoPE it is different +MTMD_API llama_pos mtmd_helper_get_n_pos(const mtmd_input_chunks * chunks); // helper function that automatically: // 1. run llama_decode() on text chunks // 2. run mtmd_encode() on image chunks, then mtmd_get_output_embd() and then llama_decode() // if any of the mtmd_encode() or llama_decode() calls return non-zero, stop and forward the error // otherwise, returns 0 on success -MTMD_API int32_t mtmd_helper_eval(mtmd_context * ctx, - llama_context * lctx, - mtmd_input_chunks & chunks, - llama_pos pos0, - llama_seq_id seq_id, - int32_t n_batch); +// this function is NOT thread-safe +MTMD_API int32_t mtmd_helper_eval_chunks(mtmd_context * ctx, + struct llama_context * lctx, + const mtmd_input_chunks * chunks, + llama_pos n_past, + llama_seq_id seq_id, + int32_t n_batch, + bool logits_last, + llama_pos * new_n_past); -// helper function to construct a mtmd_bitmap from a file -// returns 0 on success -// this function is thread-safe -MTMD_API int32_t mtmd_helper_bitmap_init_from_file(const char * fname, mtmd_bitmap & output); +// works like mtmd_helper_eval_chunks(), but only for a single chunk +// this function is NOT thread-safe +MTMD_API int32_t mtmd_helper_eval_chunk_single(mtmd_context * ctx, + struct llama_context * lctx, + const mtmd_input_chunk * chunk, + llama_pos n_past, + llama_seq_id seq_id, + int32_t n_batch, + bool logits_last, + llama_pos * new_n_past); -// helper function to construct a mtmd_bitmap from a buffer -// the buffer must be an image in format supported by stb_image (jpg, png, bmp, gif, etc.) -// returns 0 on success -// this function is thread-safe -MTMD_API int32_t mtmd_helper_bitmap_init_from_buf(const unsigned char * buf, size_t len, mtmd_bitmap & output); +///////////////////////////////////////// + +// test function, to be used in test-mtmd-c-api.c +MTMD_API mtmd_input_chunks * mtmd_test_create_input_chunks(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +// +// C++ wrappers +// + +#ifdef __cplusplus + +namespace mtmd { -// convenient unique_ptr wrappers struct mtmd_context_deleter { void operator()(mtmd_context * val) { mtmd_free(val); } }; -using mtmd_context_ptr = std::unique_ptr; +using context_ptr = std::unique_ptr; -#else +struct mtmd_bitmap_deleter { + void operator()(mtmd_bitmap * val) { mtmd_bitmap_free(val); } +}; +using bitmap_ptr = std::unique_ptr; -static_assert(false && "C header is not yet supported by this library"); +struct mtmd_input_chunks_deleter { + void operator()(mtmd_input_chunks * val) { mtmd_input_chunks_free(val); } +}; +using input_chunks_ptr = std::unique_ptr; + +struct mtmd_input_chunk_deleter { + void operator()(mtmd_input_chunk * val) { mtmd_input_chunk_free(val); } +}; +using input_chunk_ptr = std::unique_ptr; + +struct bitmap { + bitmap_ptr ptr; + bitmap() : ptr(nullptr) {} + bitmap(mtmd_bitmap * bitmap) : ptr(bitmap) {} + bitmap(bitmap && other) noexcept : ptr(std::move(other.ptr)) {} + bitmap(uint32_t nx, uint32_t ny, const unsigned char * data) { + ptr.reset(mtmd_bitmap_init(nx, ny, data)); + } + ~bitmap() = default; + uint32_t nx() { return mtmd_bitmap_get_nx(ptr.get()); } + uint32_t ny() { return mtmd_bitmap_get_ny(ptr.get()); } + const unsigned char * data() { return mtmd_bitmap_get_data(ptr.get()); } + std::string id() { return mtmd_bitmap_get_id(ptr.get()); } + void set_id(const char * id) { mtmd_bitmap_set_id(ptr.get(), id); } +}; + +struct bitmaps { + std::vector entries; + ~bitmaps() = default; + // return list of pointers to mtmd_bitmap + // example: + // auto bitmaps_c_ptr = bitmaps.c_ptr(); + // int32_t res = mtmd_tokenize(... bitmaps_c_ptr.data(), bitmaps_c_ptr.size()); + std::vector c_ptr() { + std::vector res(entries.size()); + for (size_t i = 0; i < entries.size(); i++) { + res[i] = entries[i].ptr.get(); + } + return res; + } +}; + +struct input_chunks { + input_chunks_ptr ptr; + input_chunks() = default; + input_chunks(mtmd_input_chunks * chunks) : ptr(chunks) {} + ~input_chunks() = default; + size_t size() { return mtmd_input_chunks_size(ptr.get()); } + const mtmd_input_chunk * operator[](size_t idx) { + return mtmd_input_chunks_get(ptr.get(), idx); + } +}; + +} // namespace mtmd #endif From 66645a5285d8c4c5f9a3b3f360d042baac2d820a Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Mon, 5 May 2025 13:39:10 +0530 Subject: [PATCH 101/126] SYCL: Disable mul_mat kernels for noncontiguous tensor b (#13308) ggml-ci --- ggml/src/ggml-sycl/ggml-sycl.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index 66b6f2cca4..72cdbbccaf 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -3873,6 +3873,9 @@ static bool ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, const g if (a->ne[3] != b->ne[3]) { return false; } + if (!ggml_is_contiguous(b)) { + return false; + } ggml_type a_type = a->type; if (a_type == GGML_TYPE_IQ4_NL || a_type == GGML_TYPE_IQ4_XS || a_type == GGML_TYPE_IQ3_XXS || a_type == GGML_TYPE_IQ3_S || From ae803bfc3d0fc2d0d3e1cce22ee103a30939e104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Mon, 5 May 2025 12:34:26 +0200 Subject: [PATCH 102/126] convert : bailingmoe : set yarn metadata if present (#13312) --- convert_hf_to_gguf.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 838999531e..34bed7a08a 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -5680,7 +5680,12 @@ class BailingMoeModel(TextModel): rope_dim = hparams.get("head_dim") or hparams["hidden_size"] // hparams["num_attention_heads"] self.gguf_writer.add_rope_dimension_count(rope_dim) - self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.NONE) + if (self.hparams.get("rope_scaling") or {}).get("type") == "yarn" and "factor" in self.hparams["rope_scaling"]: + self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.YARN) + self.gguf_writer.add_rope_scaling_factor(self.hparams["rope_scaling"]["factor"]) + self.gguf_writer.add_rope_scaling_orig_ctx_len(self.hparams["rope_scaling"]["original_max_position_embeddings"]) + else: + self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.NONE) self.gguf_writer.add_leading_dense_block_count(hparams["first_k_dense_replace"]) self.gguf_writer.add_vocab_size(hparams["vocab_size"]) self.gguf_writer.add_expert_feed_forward_length(hparams["moe_intermediate_size"]) From 5215b91e9377ce23e4ccc92ec3156bf5c7f892a3 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 5 May 2025 12:54:44 +0200 Subject: [PATCH 103/126] clip : fix confused naming ffn_up and ffn_down (#13290) * clip : fix confused naming ffn_up and ffn_down * rm ffn_i/o/g naming * rename n_embd, n_ff * small fix * no check n_ff --- convert_hf_to_gguf.py | 6 ++ gguf-py/gguf/tensor_mapping.py | 11 +-- tools/llava/clip.cpp | 147 ++++++++++++++++----------------- tools/llava/mtmd-cli.cpp | 4 + 4 files changed, 86 insertions(+), 82 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 34bed7a08a..a47d7df6fd 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1778,6 +1778,12 @@ class LlamaModel(TextModel): model_arch = gguf.MODEL_ARCH.LLAMA undo_permute = True + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # fix for SmolVLM2, missing `num_attention_heads` in config.json + if self.hf_arch == "VLlama3ForCausalLM": + self.hparams["num_attention_heads"] = self.hparams.get("num_attention_heads", 32) + def set_vocab(self): try: self._set_vocab_sentencepiece() diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index 2b089f84a8..003b0172c7 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -977,15 +977,12 @@ class TensorNameMap: "visual.blocks.{bid}.norm2", # qwen2vl ), - # some namings are messed up because the original llava code swapped fc1 and fc2 - # we have no better way to fix it, just be careful - # new models like pixtral use the correct naming MODEL_TENSOR.V_ENC_FFN_UP: ( "vision_tower.vision_model.encoder.layers.{bid}.mlp.fc1", "vpm.encoder.layers.{bid}.mlp.fc1", - "model.vision_model.encoder.layers.{bid}.mlp.fc2", # SmolVLM, gemma3 (note: name is swapped) + "model.vision_model.encoder.layers.{bid}.mlp.fc1", # SmolVLM, gemma3 "vision_tower.transformer.layers.{bid}.feed_forward.up_proj", # pixtral - "visual.blocks.{bid}.mlp.fc2", # qwen2vl + "visual.blocks.{bid}.mlp.fc1", # qwen2vl "visual.blocks.{bid}.mlp.up_proj", # qwen2.5vl ), @@ -997,9 +994,9 @@ class TensorNameMap: MODEL_TENSOR.V_ENC_FFN_DOWN: ( "vision_tower.vision_model.encoder.layers.{bid}.mlp.fc2", "vpm.encoder.layers.{bid}.mlp.fc2", - "model.vision_model.encoder.layers.{bid}.mlp.fc1", # SmolVLM, gemma3 (note: name is swapped) + "model.vision_model.encoder.layers.{bid}.mlp.fc2", # SmolVLM, gemma3 "vision_tower.transformer.layers.{bid}.feed_forward.down_proj", # pixtral - "visual.blocks.{bid}.mlp.fc1", # qwen2vl + "visual.blocks.{bid}.mlp.fc2", # qwen2vl "visual.blocks.{bid}.mlp.down_proj", # qwen2.5vl ), diff --git a/tools/llava/clip.cpp b/tools/llava/clip.cpp index cc03bf884a..1414f6ba4f 100644 --- a/tools/llava/clip.cpp +++ b/tools/llava/clip.cpp @@ -155,8 +155,8 @@ enum patch_merge_type { struct clip_hparams { int32_t image_size; int32_t patch_size; - int32_t hidden_size; - int32_t n_intermediate; + int32_t n_embd; + int32_t n_ff; int32_t projection_dim; int32_t n_head; int32_t n_layer; @@ -191,12 +191,6 @@ struct clip_layer { struct ggml_tensor * ln_1_w = nullptr; struct ggml_tensor * ln_1_b = nullptr; - // ff - struct ggml_tensor * ff_i_w = nullptr; // legacy naming - struct ggml_tensor * ff_i_b = nullptr; // legacy naming - struct ggml_tensor * ff_o_w = nullptr; // legacy naming - struct ggml_tensor * ff_o_b = nullptr; // legacy naming - struct ggml_tensor * ff_up_w = nullptr; struct ggml_tensor * ff_up_b = nullptr; struct ggml_tensor * ff_gate_w = nullptr; @@ -204,9 +198,6 @@ struct clip_layer { struct ggml_tensor * ff_down_w = nullptr; struct ggml_tensor * ff_down_b = nullptr; - struct ggml_tensor * ff_g_w = NULL; - struct ggml_tensor * ff_g_b = NULL; - // layernorm 2 struct ggml_tensor * ln_2_w = nullptr; struct ggml_tensor * ln_2_b = nullptr; @@ -388,9 +379,9 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im const int patch_size = hparams.patch_size; const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int hidden_size = hparams.hidden_size; + const int n_embd = hparams.n_embd; const int n_head = hparams.n_head; - const int d_head = hidden_size / n_head; + const int d_head = n_embd / n_head; const int n_layer = hparams.n_layer; const float eps = hparams.eps; @@ -411,7 +402,7 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im ggml_set_input(inp_raw); struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_reshape_2d(ctx0, inp, num_patches, hidden_size); + inp = ggml_reshape_2d(ctx0, inp, num_patches, n_embd); inp = ggml_cont(ctx0, ggml_transpose(ctx0, inp)); inp = ggml_add(ctx0, inp, model.patch_bias); @@ -456,7 +447,7 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im KQV = ggml_reshape_3d(ctx0, KQV, d_head, num_patches, n_head); KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - cur = ggml_cont_2d(ctx0, KQV, hidden_size, num_patches); + cur = ggml_cont_2d(ctx0, KQV, n_embd, num_patches); } // attention output @@ -473,14 +464,14 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_2_w), model.layers[il].ln_2_b); } - cur = ggml_mul_mat(ctx0, model.layers[il].ff_i_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_i_b); + cur = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_up_b); // siglip uses gelu cur = ggml_gelu(ctx0, cur); - cur = ggml_mul_mat(ctx0, model.layers[il].ff_o_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_o_b); + cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); // residual 2 cur = ggml_add(ctx0, embeddings, cur); @@ -504,11 +495,11 @@ static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_im const int kernel_size = patches_per_image / tokens_per_side; embeddings = ggml_cont(ctx0, ggml_transpose(ctx0, embeddings)); - embeddings = ggml_reshape_4d(ctx0, embeddings, patches_per_image, patches_per_image, hidden_size, batch_size); + embeddings = ggml_reshape_4d(ctx0, embeddings, patches_per_image, patches_per_image, n_embd, batch_size); // doing a pool2d to reduce the number of output tokens to 256 embeddings = ggml_pool_2d(ctx0, embeddings, GGML_OP_POOL_AVG, kernel_size, kernel_size, kernel_size, kernel_size, 0, 0); - embeddings = ggml_reshape_3d(ctx0, embeddings, embeddings->ne[0] * embeddings->ne[0], hidden_size, batch_size); + embeddings = ggml_reshape_3d(ctx0, embeddings, embeddings->ne[0] * embeddings->ne[0], n_embd, batch_size); embeddings = ggml_cont(ctx0, ggml_transpose(ctx0, embeddings)); // apply norm before projection @@ -637,9 +628,9 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i const int n_patches_x = image_size_width / patch_size; const int n_patches_y = image_size_height / patch_size; const int num_patches = n_patches_x * n_patches_y; - const int hidden_size = hparams.hidden_size; + const int n_embd = hparams.n_embd; const int n_head = hparams.n_head; - const int d_head = hidden_size / n_head; + const int d_head = n_embd / n_head; const int n_layer = hparams.n_layer; const float eps = hparams.eps; const int n_merge = hparams.spatial_merge_size; @@ -669,7 +660,7 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i ggml_set_input(pos_w); struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_reshape_2d(ctx0, inp, num_patches, hidden_size); + inp = ggml_reshape_2d(ctx0, inp, num_patches, n_embd); inp = ggml_cont(ctx0, ggml_transpose(ctx0, inp)); struct ggml_tensor * embeddings = inp; @@ -710,7 +701,7 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i KQV = ggml_reshape_3d(ctx0, KQV, d_head, num_patches, n_head); KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - cur = ggml_cont_2d(ctx0, KQV, hidden_size, num_patches); + cur = ggml_cont_2d(ctx0, KQV, n_embd, num_patches); cur = ggml_mul_mat(ctx0, model.layers[il].o_w, cur); } @@ -753,8 +744,8 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.mm_input_norm_w); // reshape image tokens to 2D grid - cur = ggml_reshape_3d(ctx0, cur, hidden_size, n_patches_x, n_patches_y); - cur = ggml_permute(ctx0, cur, 2, 0, 1, 3); // [x, y, hidden_size] + cur = ggml_reshape_3d(ctx0, cur, n_embd, n_patches_x, n_patches_y); + cur = ggml_permute(ctx0, cur, 2, 0, 1, 3); // [x, y, n_embd] cur = ggml_cont(ctx0, cur); // torch.nn.functional.unfold is just an im2col under the hood @@ -762,7 +753,7 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i ggml_tensor * kernel = ggml_view_3d(ctx0, cur, n_merge, n_merge, cur->ne[2], 0, 0, 0); cur = ggml_im2col(ctx0, kernel, cur, n_merge, n_merge, 0, 0, 1, 1, true, inp->type); - // project to hidden_size + // project to n_embd cur = ggml_reshape_2d(ctx0, cur, cur->ne[0], cur->ne[1] * cur->ne[2]); cur = ggml_mul_mat(ctx0, model.mm_patch_merger_w, cur); embeddings = cur; @@ -785,9 +776,9 @@ static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_i // arrangement of the [IMG_BREAK] token { // not efficient, but works - // the trick is to view the embeddings as a 3D tensor with shape [hidden_size, n_patches_per_row, n_rows] + // the trick is to view the embeddings as a 3D tensor with shape [n_embd, n_patches_per_row, n_rows] // and then concatenate the [IMG_BREAK] token to the end of each row, aka n_patches_per_row dimension - // after the concatenation, we have a tensor with shape [hidden_size, n_patches_per_row + 1, n_rows] + // after the concatenation, we have a tensor with shape [n_embd, n_patches_per_row + 1, n_rows] const int p_y = n_merge > 0 ? n_patches_y / n_merge : n_patches_y; const int p_x = n_merge > 0 ? n_patches_x / n_merge : n_patches_x; @@ -827,9 +818,9 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ const int patches_h = image_size_height / patch_size; const int num_positions = num_patches + (model.class_embedding ? 1 : 0); const int num_position_ids = num_positions * 4; // m-rope requires 4 dim per position - const int hidden_size = hparams.hidden_size; + const int n_embd = hparams.n_embd; const int n_head = hparams.n_head; - const int d_head = hidden_size / n_head; + const int d_head = n_embd / n_head; const int n_layer = hparams.n_layer; const float eps = hparams.eps; @@ -864,14 +855,14 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] inp = ggml_reshape_4d( ctx0, inp, - hidden_size * 2, patches_w / 2, patches_h, batch_size); + n_embd * 2, patches_w / 2, patches_h, batch_size); inp = ggml_reshape_4d( ctx0, inp, - hidden_size * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); + n_embd * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); inp = ggml_reshape_3d( ctx0, inp, - hidden_size, patches_w * patches_h, batch_size); + n_embd, patches_w * patches_h, batch_size); if (model.patch_bias) { // inp = ggml_add(ctx0, inp, ggml_repeat(ctx0, model.patch_bias, inp)); @@ -904,11 +895,11 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ ggml_set_name(window_mask, "window_mask"); ggml_set_input(window_mask); - // embeddings shape: [hidden_size, patches_w * patches_h, batch_size] + // embeddings shape: [n_embd, patches_w * patches_h, batch_size] GGML_ASSERT(batch_size == 1); - embeddings = ggml_reshape_2d(ctx0, embeddings, hidden_size * 4, patches_w * patches_h * batch_size / 4); + embeddings = ggml_reshape_2d(ctx0, embeddings, n_embd * 4, patches_w * patches_h * batch_size / 4); embeddings = ggml_get_rows(ctx0, embeddings, inv_window_idx); - embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size, patches_w * patches_h, batch_size); + embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd, patches_w * patches_h, batch_size); } // loop over layers @@ -961,7 +952,7 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_positions, n_head, batch_size); KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - cur = ggml_cont_3d(ctx0, KQV, hidden_size, num_positions, batch_size); + cur = ggml_cont_3d(ctx0, KQV, n_embd, num_positions, batch_size); } // attention output @@ -978,11 +969,11 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ // mlp // ffn_up - auto cur_up = ggml_mul_mat(ctx0, model.layers[il].ff_o_w, cur); - cur_up = ggml_add(ctx0, cur_up, model.layers[il].ff_o_b); + auto cur_up = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); + cur_up = ggml_add(ctx0, cur_up, model.layers[il].ff_up_b); - auto cur_gate = ggml_mul_mat(ctx0, model.layers[il].ff_g_w, cur); - cur_gate = ggml_add(ctx0, cur_gate, model.layers[il].ff_g_b); + auto cur_gate = ggml_mul_mat(ctx0, model.layers[il].ff_gate_w, cur); + cur_gate = ggml_add(ctx0, cur_gate, model.layers[il].ff_gate_b); // TODO : only 2 of these 3 are actually used, should we remove one of them? if (ctx->use_gelu) { cur_gate = ggml_gelu_inplace(ctx0, cur_gate); @@ -994,8 +985,8 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ cur = ggml_mul(ctx0, cur_gate, cur_up); // ffn_down - cur = ggml_mul_mat(ctx0, model.layers[il].ff_i_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_i_b); + cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); // residual 2 cur = ggml_add(ctx0, embeddings, cur); @@ -1011,7 +1002,7 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ embeddings = ggml_mul(ctx0, embeddings, model.post_ln_w); } - embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size * 4, num_positions / 4, batch_size); + embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd * 4, num_positions / 4, batch_size); embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); @@ -1028,7 +1019,7 @@ static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_ ggml_set_name(window_idx, "window_idx"); ggml_set_input(window_idx); - // embeddings shape: [hidden_size, patches_w * patches_h, batch_size] + // embeddings shape: [n_embd, patches_w * patches_h, batch_size] GGML_ASSERT(batch_size == 1); embeddings = ggml_reshape_2d(ctx0, embeddings, hparams.projection_dim, patches_w * patches_h / 4); embeddings = ggml_get_rows(ctx0, embeddings, window_idx); @@ -1074,9 +1065,9 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im const int patches_h = image_size_height / patch_size; const int num_positions = num_patches + (model.class_embedding ? 1 : 0); const int num_position_ids = ctx->proj_type == PROJECTOR_TYPE_QWEN2VL ? num_positions * 4 : num_positions; - const int hidden_size = hparams.hidden_size; + const int n_embd = hparams.n_embd; const int n_head = hparams.n_head; - const int d_head = hidden_size / n_head; + const int d_head = n_embd / n_head; const float eps = hparams.eps; int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; @@ -1114,17 +1105,17 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] inp = ggml_reshape_4d( ctx0, inp, - hidden_size * 2, patches_w / 2, patches_h, batch_size); + n_embd * 2, patches_w / 2, patches_h, batch_size); inp = ggml_reshape_4d( ctx0, inp, - hidden_size * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); + n_embd * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); inp = ggml_reshape_3d( ctx0, inp, - hidden_size, patches_w * patches_h, batch_size); + n_embd, patches_w * patches_h, batch_size); } else { - inp = ggml_reshape_3d(ctx0, inp, num_patches, hidden_size, batch_size); + inp = ggml_reshape_3d(ctx0, inp, num_patches, n_embd, batch_size); inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 0, 2, 3)); } @@ -1137,7 +1128,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im // concat class_embeddings and patch_embeddings if (model.class_embedding) { - embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, hidden_size, num_positions, batch_size); + embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_embd, num_positions, batch_size); embeddings = ggml_scale(ctx0, embeddings, 0.0f); // set to all zeros embeddings = ggml_acc(ctx0, embeddings, model.class_embedding, embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], 0); @@ -1234,7 +1225,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_positions, n_head, batch_size); KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - cur = ggml_cont_3d(ctx0, KQV, hidden_size, num_positions, batch_size); + cur = ggml_cont_3d(ctx0, KQV, n_embd, num_positions, batch_size); } // attention output @@ -1252,8 +1243,8 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_2_w), model.layers[il].ln_2_b); } - cur = ggml_mul_mat(ctx0, model.layers[il].ff_i_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_i_b); + cur = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_up_b); if (ctx->use_gelu) { cur = ggml_gelu_inplace(ctx0, cur); @@ -1263,8 +1254,8 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im cur = ggml_gelu_quick_inplace(ctx0, cur); } - cur = ggml_mul_mat(ctx0, model.layers[il].ff_o_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_o_b); + cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); + cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); // residual 2 cur = ggml_add(ctx0, embeddings, cur); @@ -1496,9 +1487,9 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im } { // attention - int hidden_size = clip_n_mmproj_embd(ctx); + int n_embd = clip_n_mmproj_embd(ctx); const int d_head = 128; - int n_head = hidden_size/d_head; + int n_head = n_embd/d_head; int num_query = 96; if (ctx->minicpmv_version == 2) { num_query = 96; @@ -1528,7 +1519,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_query, n_head, batch_size); KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - KQV = ggml_cont_3d(ctx0, KQV, hidden_size, num_query, batch_size); + KQV = ggml_cont_3d(ctx0, KQV, n_embd, num_query, batch_size); embeddings = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_o_w, KQV), model.mm_model_attn_o_b); } @@ -1571,7 +1562,7 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im } else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - embeddings = ggml_reshape_3d(ctx0, embeddings, hidden_size * 4, num_positions / 4, batch_size); + embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd * 4, num_positions / 4, batch_size); embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); @@ -1696,9 +1687,9 @@ struct clip_model_loader { get_bool(KEY_USE_GELU, ctx_clip.use_gelu, false); get_bool(KEY_USE_SILU, ctx_clip.use_silu, false); - get_u32(KEY_N_EMBD, hparams.hidden_size); + get_u32(KEY_N_EMBD, hparams.n_embd); get_u32(KEY_N_HEAD, hparams.n_head); - get_u32(KEY_N_FF, hparams.n_intermediate); + get_u32(KEY_N_FF, hparams.n_ff); get_u32(KEY_N_BLOCK, hparams.n_layer); get_u32(KEY_PROJ_DIM, hparams.projection_dim); get_f32(KEY_LAYER_NORM_EPS, hparams.eps); @@ -1807,6 +1798,7 @@ struct clip_model_loader { } void load_tensors() { + auto & hparams = ctx_clip.vision_model.hparams; std::map tensor_offset; std::vector tensors_to_load; @@ -1860,8 +1852,8 @@ struct clip_model_loader { vision_model.position_embeddings = get_tensor(string_format(TN_POS_EMBD, "v"), false); // layers - vision_model.layers.resize(vision_model.hparams.n_layer); - for (int il = 0; il < vision_model.hparams.n_layer; ++il) { + vision_model.layers.resize(hparams.n_layer); + for (int il = 0; il < hparams.n_layer; ++il) { auto & layer = vision_model.layers[il]; layer.k_w = get_tensor(string_format(TN_ATTN_K, "v", il, "weight")); layer.q_w = get_tensor(string_format(TN_ATTN_Q, "v", il, "weight")); @@ -1884,13 +1876,18 @@ struct clip_model_loader { layer.ff_down_w = get_tensor(string_format(TN_FFN_DOWN, "v", il, "weight")); layer.ff_down_b = get_tensor(string_format(TN_FFN_DOWN, "v", il, "bias"), false); - // legacy naming (the in and out is reversed! don't ask me why) - layer.ff_i_w = layer.ff_down_w; - layer.ff_o_w = layer.ff_up_w; - layer.ff_g_w = layer.ff_gate_w; - layer.ff_i_b = layer.ff_down_b; - layer.ff_o_b = layer.ff_up_b; - layer.ff_g_b = layer.ff_gate_b; + // some models already exported with legacy (incorrect) naming which is quite messy, let's fix it here + // note: Qwen model converted from the old surgery script has n_ff = 0, so we cannot use n_ff to check! + if (layer.ff_up_w && layer.ff_down_w && layer.ff_down_w->ne[0] == hparams.n_embd) { + // swap up and down weights + ggml_tensor * tmp = layer.ff_up_w; + layer.ff_up_w = layer.ff_down_w; + layer.ff_down_w = tmp; + // swap up and down biases + tmp = layer.ff_up_b; + layer.ff_up_b = layer.ff_down_b; + layer.ff_down_b = tmp; + } } switch (ctx_clip.proj_type) { @@ -2904,7 +2901,7 @@ int32_t clip_get_patch_size(const struct clip_ctx * ctx) { } int32_t clip_get_hidden_size(const struct clip_ctx * ctx) { - return ctx->vision_model.hparams.hidden_size; + return ctx->vision_model.hparams.n_embd; } const char * clip_patch_merge_type(const struct clip_ctx * ctx) { diff --git a/tools/llava/mtmd-cli.cpp b/tools/llava/mtmd-cli.cpp index dd18e0fe6e..4977d5480b 100644 --- a/tools/llava/mtmd-cli.cpp +++ b/tools/llava/mtmd-cli.cpp @@ -92,6 +92,10 @@ struct mtmd_cli_context { batch = llama_batch_init(params.n_batch, 0, 1); n_batch = params.n_batch; + if (!model || !lctx) { + exit(1); + } + if (!llama_model_chat_template(model, nullptr) && params.chat_template.empty()) { LOG_ERR("Model does not have chat template.\n"); LOG_ERR(" For old llava models, you may need to use '--chat-template vicuna'\n"); From 9b61acf06041dcbaff6afa5f28940e93297f8520 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Mon, 5 May 2025 16:02:55 +0200 Subject: [PATCH 104/126] mtmd : rename llava directory to mtmd (#13311) * mv llava to mtmd * change ref everywhere --- Makefile | 38 +++++++++--------- common/arg.cpp | 4 +- common/common.h | 2 +- docs/multimodal/MobileVLM.md | 12 +++--- docs/multimodal/glmedge.md | 4 +- docs/multimodal/llava.md | 12 +++--- docs/multimodal/minicpmo2.6.md | 4 +- docs/multimodal/minicpmv2.5.md | 4 +- docs/multimodal/minicpmv2.6.md | 4 +- requirements/requirements-all.txt | 2 +- tools/CMakeLists.txt | 2 +- tools/{llava => mtmd}/CMakeLists.txt | 0 tools/{llava => mtmd}/README-quantize.md | 0 tools/{llava => mtmd}/README.md | 0 tools/{llava => mtmd}/android/adb_run.sh | 0 tools/{llava => mtmd}/android/build_64.sh | 0 tools/{llava => mtmd}/clip-impl.h | 0 tools/{llava => mtmd}/clip-quantize-cli.cpp | 0 tools/{llava => mtmd}/clip.cpp | 0 tools/{llava => mtmd}/clip.h | 0 .../convert_image_encoder_to_gguf.py | 0 tools/{llava => mtmd}/deprecation-warning.cpp | 0 .../glmedge-convert-image-encoder-to-gguf.py | 0 tools/{llava => mtmd}/glmedge-surgery.py | 0 tools/{llava => mtmd}/llava.cpp | 0 tools/{llava => mtmd}/llava.h | 0 tools/{llava => mtmd}/llava_surgery.py | 0 tools/{llava => mtmd}/llava_surgery_v2.py | 0 .../minicpmv-convert-image-encoder-to-gguf.py | 0 tools/{llava => mtmd}/minicpmv-surgery.py | 0 tools/{llava => mtmd}/mtmd-cli.cpp | 0 tools/{llava => mtmd}/mtmd.cpp | 0 tools/{llava => mtmd}/mtmd.h | 0 tools/{llava => mtmd}/qwen2vl-test.cpp | 0 tools/{llava => mtmd}/requirements.txt | 0 tools/{llava => mtmd}/test-1.jpeg | Bin tools/{llava => mtmd}/tests.sh | 0 37 files changed, 44 insertions(+), 44 deletions(-) rename tools/{llava => mtmd}/CMakeLists.txt (100%) rename tools/{llava => mtmd}/README-quantize.md (100%) rename tools/{llava => mtmd}/README.md (100%) rename tools/{llava => mtmd}/android/adb_run.sh (100%) rename tools/{llava => mtmd}/android/build_64.sh (100%) rename tools/{llava => mtmd}/clip-impl.h (100%) rename tools/{llava => mtmd}/clip-quantize-cli.cpp (100%) rename tools/{llava => mtmd}/clip.cpp (100%) rename tools/{llava => mtmd}/clip.h (100%) rename tools/{llava => mtmd}/convert_image_encoder_to_gguf.py (100%) rename tools/{llava => mtmd}/deprecation-warning.cpp (100%) rename tools/{llava => mtmd}/glmedge-convert-image-encoder-to-gguf.py (100%) rename tools/{llava => mtmd}/glmedge-surgery.py (100%) rename tools/{llava => mtmd}/llava.cpp (100%) rename tools/{llava => mtmd}/llava.h (100%) rename tools/{llava => mtmd}/llava_surgery.py (100%) rename tools/{llava => mtmd}/llava_surgery_v2.py (100%) rename tools/{llava => mtmd}/minicpmv-convert-image-encoder-to-gguf.py (100%) rename tools/{llava => mtmd}/minicpmv-surgery.py (100%) rename tools/{llava => mtmd}/mtmd-cli.cpp (100%) rename tools/{llava => mtmd}/mtmd.cpp (100%) rename tools/{llava => mtmd}/mtmd.h (100%) rename tools/{llava => mtmd}/qwen2vl-test.cpp (100%) rename tools/{llava => mtmd}/requirements.txt (100%) rename tools/{llava => mtmd}/test-1.jpeg (100%) rename tools/{llava => mtmd}/tests.sh (100%) diff --git a/Makefile b/Makefile index 305037089b..68b6fe59a6 100644 --- a/Makefile +++ b/Makefile @@ -1394,36 +1394,36 @@ llama-gen-docs: examples/gen-docs/gen-docs.cpp \ $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) -libllava.a: tools/llava/llava.cpp \ - tools/llava/llava.h \ - tools/llava/clip.cpp \ - tools/llava/clip.h \ +libllava.a: tools/mtmd/llava.cpp \ + tools/mtmd/llava.h \ + tools/mtmd/clip.cpp \ + tools/mtmd/clip.h \ common/stb_image.h \ common/base64.hpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -static -fPIC -c $< -o $@ -Wno-cast-qual -llama-llava-cli: tools/llava/llava-cli.cpp \ - tools/llava/llava.cpp \ - tools/llava/llava.h \ - tools/llava/clip.cpp \ - tools/llava/clip.h \ +llama-llava-cli: tools/mtmd/llava-cli.cpp \ + tools/mtmd/llava.cpp \ + tools/mtmd/llava.h \ + tools/mtmd/clip.cpp \ + tools/mtmd/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual -llama-minicpmv-cli: tools/llava/minicpmv-cli.cpp \ - tools/llava/llava.cpp \ - tools/llava/llava.h \ - tools/llava/clip.cpp \ - tools/llava/clip.h \ +llama-minicpmv-cli: tools/mtmd/minicpmv-cli.cpp \ + tools/mtmd/llava.cpp \ + tools/mtmd/llava.h \ + tools/mtmd/clip.cpp \ + tools/mtmd/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual -llama-qwen2vl-cli: tools/llava/qwen2vl-cli.cpp \ - tools/llava/llava.cpp \ - tools/llava/llava.h \ - tools/llava/clip.cpp \ - tools/llava/clip.h \ +llama-qwen2vl-cli: tools/mtmd/qwen2vl-cli.cpp \ + tools/mtmd/llava.cpp \ + tools/mtmd/llava.h \ + tools/mtmd/clip.cpp \ + tools/mtmd/clip.h \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual diff --git a/common/arg.cpp b/common/arg.cpp index 5080aa2fcb..490991b23a 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -2211,14 +2211,14 @@ common_params_context common_params_parser_init(common_params & params, llama_ex ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_NO_CONT_BATCHING")); add_opt(common_arg( {"--mmproj"}, "FILE", - "path to a multimodal projector file. see tools/llava/README.md", + "path to a multimodal projector file. see tools/mtmd/README.md", [](common_params & params, const std::string & value) { params.mmproj.path = value; } ).set_examples(mmproj_examples)); add_opt(common_arg( {"--mmproj-url"}, "URL", - "URL to a multimodal projector file. see tools/llava/README.md", + "URL to a multimodal projector file. see tools/mtmd/README.md", [](common_params & params, const std::string & value) { params.mmproj.url = value; } diff --git a/common/common.h b/common/common.h index cfe1b72786..416939da9a 100644 --- a/common/common.h +++ b/common/common.h @@ -340,7 +340,7 @@ struct common_params { common_conversation_mode conversation_mode = COMMON_CONVERSATION_MODE_AUTO; - // multimodal models (see tools/llava) + // multimodal models (see tools/mtmd) struct common_params_model mmproj; bool mmproj_use_gpu = true; // use GPU for multimodal model bool no_mmproj = false; // explicitly disable multimodal model diff --git a/docs/multimodal/MobileVLM.md b/docs/multimodal/MobileVLM.md index a647d7d357..4f5eca6190 100644 --- a/docs/multimodal/MobileVLM.md +++ b/docs/multimodal/MobileVLM.md @@ -33,13 +33,13 @@ git clone https://huggingface.co/openai/clip-vit-large-patch14-336 2. Use `llava_surgery.py` to split the LLaVA model to LLaMA and multimodel projector constituents: ```sh -python ./tools/llava/llava_surgery.py -m path/to/MobileVLM-1.7B +python ./tools/mtmd/llava_surgery.py -m path/to/MobileVLM-1.7B ``` 3. Use `convert_image_encoder_to_gguf.py` with `--projector-type ldp` (for **V2** please use `--projector-type ldpv2`) to convert the LLaVA image encoder to GGUF: ```sh -python ./tools/llava/convert_image_encoder_to_gguf.py \ +python ./tools/mtmd/convert_image_encoder_to_gguf.py \ -m path/to/clip-vit-large-patch14-336 \ --llava-projector path/to/MobileVLM-1.7B/llava.projector \ --output-dir path/to/MobileVLM-1.7B \ @@ -47,7 +47,7 @@ python ./tools/llava/convert_image_encoder_to_gguf.py \ ``` ```sh -python ./tools/llava/convert_image_encoder_to_gguf.py \ +python ./tools/mtmd/convert_image_encoder_to_gguf.py \ -m path/to/clip-vit-large-patch14-336 \ --llava-projector path/to/MobileVLM-1.7B_V2/llava.projector \ --output-dir path/to/MobileVLM-1.7B_V2 \ @@ -69,10 +69,10 @@ Now both the LLaMA part and the image encoder is in the `MobileVLM-1.7B` directo ## Android compile and run ### compile -refer to `tools/llava/android/build_64.sh` +refer to `tools/mtmd/android/build_64.sh` ```sh -mkdir tools/llava/android/build_64 -cd tools/llava/android/build_64 +mkdir tools/mtmd/android/build_64 +cd tools/mtmd/android/build_64 ../build_64.sh ``` ### run on Android diff --git a/docs/multimodal/glmedge.md b/docs/multimodal/glmedge.md index e7dfafdde1..7bae831505 100644 --- a/docs/multimodal/glmedge.md +++ b/docs/multimodal/glmedge.md @@ -25,13 +25,13 @@ git clone https://huggingface.co/THUDM/glm-edge-v-5b or https://huggingface.co/T 2. Use `glmedge-surgery.py` to split the GLMV-EDGE model to LLM and multimodel projector constituents: ```sh -python ./tools/llava/glmedge-surgery.py -m ../model_path +python ./tools/mtmd/glmedge-surgery.py -m ../model_path ``` 4. Use `glmedge-convert-image-encoder-to-gguf.py` to convert the GLMV-EDGE image encoder to GGUF: ```sh -python ./tools/llava/glmedge-convert-image-encoder-to-gguf.py -m ../model_path --llava-projector ../model_path/glm.projector --output-dir ../model_path +python ./tools/mtmd/glmedge-convert-image-encoder-to-gguf.py -m ../model_path --llava-projector ../model_path/glm.projector --output-dir ../model_path ``` 5. Use `examples/convert_hf_to_gguf.py` to convert the LLM part of GLMV-EDGE to GGUF: diff --git a/docs/multimodal/llava.md b/docs/multimodal/llava.md index 0087b10610..12354ab60a 100644 --- a/docs/multimodal/llava.md +++ b/docs/multimodal/llava.md @@ -37,19 +37,19 @@ git clone https://huggingface.co/openai/clip-vit-large-patch14-336 2. Install the required Python packages: ```sh -pip install -r tools/llava/requirements.txt +pip install -r tools/mtmd/requirements.txt ``` 3. Use `llava_surgery.py` to split the LLaVA model to LLaMA and multimodel projector constituents: ```sh -python ./tools/llava/llava_surgery.py -m ../llava-v1.5-7b +python ./tools/mtmd/llava_surgery.py -m ../llava-v1.5-7b ``` 4. Use `convert_image_encoder_to_gguf.py` to convert the LLaVA image encoder to GGUF: ```sh -python ./tools/llava/convert_image_encoder_to_gguf.py -m ../clip-vit-large-patch14-336 --llava-projector ../llava-v1.5-7b/llava.projector --output-dir ../llava-v1.5-7b +python ./tools/mtmd/convert_image_encoder_to_gguf.py -m ../clip-vit-large-patch14-336 --llava-projector ../llava-v1.5-7b/llava.projector --output-dir ../llava-v1.5-7b ``` 5. Use `examples/convert_legacy_llama.py` to convert the LLaMA part of LLaVA to GGUF: @@ -69,12 +69,12 @@ git clone https://huggingface.co/liuhaotian/llava-v1.6-vicuna-7b 2) Install the required Python packages: ```sh -pip install -r tools/llava/requirements.txt +pip install -r tools/mtmd/requirements.txt ``` 3) Use `llava_surgery_v2.py` which also supports llava-1.5 variants pytorch as well as safetensor models: ```console -python tools/llava/llava_surgery_v2.py -C -m ../llava-v1.6-vicuna-7b/ +python tools/mtmd/llava_surgery_v2.py -C -m ../llava-v1.6-vicuna-7b/ ``` - you will find a llava.projector and a llava.clip file in your model directory @@ -88,7 +88,7 @@ curl -s -q https://huggingface.co/cmp-nct/llava-1.6-gguf/raw/main/config_vit.jso 5) Create the visual gguf model: ```console -python ./tools/llava/convert_image_encoder_to_gguf.py -m vit --llava-projector vit/llava.projector --output-dir vit --clip-model-is-vision +python ./tools/mtmd/convert_image_encoder_to_gguf.py -m vit --llava-projector vit/llava.projector --output-dir vit --clip-model-is-vision ``` - This is similar to llava-1.5, the difference is that we tell the encoder that we are working with the pure vision model part of CLIP diff --git a/docs/multimodal/minicpmo2.6.md b/docs/multimodal/minicpmo2.6.md index c9aab8abc0..8c6db8efe5 100644 --- a/docs/multimodal/minicpmo2.6.md +++ b/docs/multimodal/minicpmo2.6.md @@ -29,8 +29,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-o-2_6-gguf) by us) ```bash -python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-o-2_6 -python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-o-2_6 --minicpmv-projector ../MiniCPM-o-2_6/minicpmv.projector --output-dir ../MiniCPM-o-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 4 +python ./tools/mtmd/minicpmv-surgery.py -m ../MiniCPM-o-2_6 +python ./tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-o-2_6 --minicpmv-projector ../MiniCPM-o-2_6/minicpmv.projector --output-dir ../MiniCPM-o-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 4 python ./convert_hf_to_gguf.py ../MiniCPM-o-2_6/model # quantize int4 version diff --git a/docs/multimodal/minicpmv2.5.md b/docs/multimodal/minicpmv2.5.md index 4603bd7c1c..19b439607d 100644 --- a/docs/multimodal/minicpmv2.5.md +++ b/docs/multimodal/minicpmv2.5.md @@ -28,8 +28,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-Llama3-V-2_5-gguf) by us) ```bash -python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-Llama3-V-2_5 -python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-Llama3-V-2_5 --minicpmv-projector ../MiniCPM-Llama3-V-2_5/minicpmv.projector --output-dir ../MiniCPM-Llama3-V-2_5/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 2 +python ./tools/mtmd/minicpmv-surgery.py -m ../MiniCPM-Llama3-V-2_5 +python ./tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-Llama3-V-2_5 --minicpmv-projector ../MiniCPM-Llama3-V-2_5/minicpmv.projector --output-dir ../MiniCPM-Llama3-V-2_5/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 2 python ./convert_hf_to_gguf.py ../MiniCPM-Llama3-V-2_5/model # quantize int4 version diff --git a/docs/multimodal/minicpmv2.6.md b/docs/multimodal/minicpmv2.6.md index 69ebc12961..15c1bbd12e 100644 --- a/docs/multimodal/minicpmv2.6.md +++ b/docs/multimodal/minicpmv2.6.md @@ -28,8 +28,8 @@ cmake --build build --config Release Convert PyTorch model to gguf files (You can also download the converted [gguf](https://huggingface.co/openbmb/MiniCPM-V-2_6-gguf) by us) ```bash -python ./tools/llava/minicpmv-surgery.py -m ../MiniCPM-V-2_6 -python ./tools/llava/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-V-2_6 --minicpmv-projector ../MiniCPM-V-2_6/minicpmv.projector --output-dir ../MiniCPM-V-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 3 +python ./tools/mtmd/minicpmv-surgery.py -m ../MiniCPM-V-2_6 +python ./tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-V-2_6 --minicpmv-projector ../MiniCPM-V-2_6/minicpmv.projector --output-dir ../MiniCPM-V-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 3 python ./convert_hf_to_gguf.py ../MiniCPM-V-2_6/model # quantize int4 version diff --git a/requirements/requirements-all.txt b/requirements/requirements-all.txt index 4b6d4b7d7c..9fa7d4d0ab 100644 --- a/requirements/requirements-all.txt +++ b/requirements/requirements-all.txt @@ -1,4 +1,4 @@ --r ../tools/llava/requirements.txt +-r ../tools/mtmd/requirements.txt -r ../tools/server/bench/requirements.txt -r ../tools/server/tests/requirements.txt diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 06a96af552..d64956b843 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -27,7 +27,7 @@ else() add_subdirectory(run) add_subdirectory(tokenize) add_subdirectory(tts) - add_subdirectory(llava) + add_subdirectory(mtmd) if (GGML_RPC) add_subdirectory(rpc) endif() diff --git a/tools/llava/CMakeLists.txt b/tools/mtmd/CMakeLists.txt similarity index 100% rename from tools/llava/CMakeLists.txt rename to tools/mtmd/CMakeLists.txt diff --git a/tools/llava/README-quantize.md b/tools/mtmd/README-quantize.md similarity index 100% rename from tools/llava/README-quantize.md rename to tools/mtmd/README-quantize.md diff --git a/tools/llava/README.md b/tools/mtmd/README.md similarity index 100% rename from tools/llava/README.md rename to tools/mtmd/README.md diff --git a/tools/llava/android/adb_run.sh b/tools/mtmd/android/adb_run.sh similarity index 100% rename from tools/llava/android/adb_run.sh rename to tools/mtmd/android/adb_run.sh diff --git a/tools/llava/android/build_64.sh b/tools/mtmd/android/build_64.sh similarity index 100% rename from tools/llava/android/build_64.sh rename to tools/mtmd/android/build_64.sh diff --git a/tools/llava/clip-impl.h b/tools/mtmd/clip-impl.h similarity index 100% rename from tools/llava/clip-impl.h rename to tools/mtmd/clip-impl.h diff --git a/tools/llava/clip-quantize-cli.cpp b/tools/mtmd/clip-quantize-cli.cpp similarity index 100% rename from tools/llava/clip-quantize-cli.cpp rename to tools/mtmd/clip-quantize-cli.cpp diff --git a/tools/llava/clip.cpp b/tools/mtmd/clip.cpp similarity index 100% rename from tools/llava/clip.cpp rename to tools/mtmd/clip.cpp diff --git a/tools/llava/clip.h b/tools/mtmd/clip.h similarity index 100% rename from tools/llava/clip.h rename to tools/mtmd/clip.h diff --git a/tools/llava/convert_image_encoder_to_gguf.py b/tools/mtmd/convert_image_encoder_to_gguf.py similarity index 100% rename from tools/llava/convert_image_encoder_to_gguf.py rename to tools/mtmd/convert_image_encoder_to_gguf.py diff --git a/tools/llava/deprecation-warning.cpp b/tools/mtmd/deprecation-warning.cpp similarity index 100% rename from tools/llava/deprecation-warning.cpp rename to tools/mtmd/deprecation-warning.cpp diff --git a/tools/llava/glmedge-convert-image-encoder-to-gguf.py b/tools/mtmd/glmedge-convert-image-encoder-to-gguf.py similarity index 100% rename from tools/llava/glmedge-convert-image-encoder-to-gguf.py rename to tools/mtmd/glmedge-convert-image-encoder-to-gguf.py diff --git a/tools/llava/glmedge-surgery.py b/tools/mtmd/glmedge-surgery.py similarity index 100% rename from tools/llava/glmedge-surgery.py rename to tools/mtmd/glmedge-surgery.py diff --git a/tools/llava/llava.cpp b/tools/mtmd/llava.cpp similarity index 100% rename from tools/llava/llava.cpp rename to tools/mtmd/llava.cpp diff --git a/tools/llava/llava.h b/tools/mtmd/llava.h similarity index 100% rename from tools/llava/llava.h rename to tools/mtmd/llava.h diff --git a/tools/llava/llava_surgery.py b/tools/mtmd/llava_surgery.py similarity index 100% rename from tools/llava/llava_surgery.py rename to tools/mtmd/llava_surgery.py diff --git a/tools/llava/llava_surgery_v2.py b/tools/mtmd/llava_surgery_v2.py similarity index 100% rename from tools/llava/llava_surgery_v2.py rename to tools/mtmd/llava_surgery_v2.py diff --git a/tools/llava/minicpmv-convert-image-encoder-to-gguf.py b/tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py similarity index 100% rename from tools/llava/minicpmv-convert-image-encoder-to-gguf.py rename to tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py diff --git a/tools/llava/minicpmv-surgery.py b/tools/mtmd/minicpmv-surgery.py similarity index 100% rename from tools/llava/minicpmv-surgery.py rename to tools/mtmd/minicpmv-surgery.py diff --git a/tools/llava/mtmd-cli.cpp b/tools/mtmd/mtmd-cli.cpp similarity index 100% rename from tools/llava/mtmd-cli.cpp rename to tools/mtmd/mtmd-cli.cpp diff --git a/tools/llava/mtmd.cpp b/tools/mtmd/mtmd.cpp similarity index 100% rename from tools/llava/mtmd.cpp rename to tools/mtmd/mtmd.cpp diff --git a/tools/llava/mtmd.h b/tools/mtmd/mtmd.h similarity index 100% rename from tools/llava/mtmd.h rename to tools/mtmd/mtmd.h diff --git a/tools/llava/qwen2vl-test.cpp b/tools/mtmd/qwen2vl-test.cpp similarity index 100% rename from tools/llava/qwen2vl-test.cpp rename to tools/mtmd/qwen2vl-test.cpp diff --git a/tools/llava/requirements.txt b/tools/mtmd/requirements.txt similarity index 100% rename from tools/llava/requirements.txt rename to tools/mtmd/requirements.txt diff --git a/tools/llava/test-1.jpeg b/tools/mtmd/test-1.jpeg similarity index 100% rename from tools/llava/test-1.jpeg rename to tools/mtmd/test-1.jpeg diff --git a/tools/llava/tests.sh b/tools/mtmd/tests.sh similarity index 100% rename from tools/llava/tests.sh rename to tools/mtmd/tests.sh From b34c859146630dff136943abc9852ca173a7c9d6 Mon Sep 17 00:00:00 2001 From: igardev <49397134+igardev@users.noreply.github.com> Date: Mon, 5 May 2025 17:03:31 +0300 Subject: [PATCH 105/126] server : Webui - change setText command from parent window to also send the message. (#13309) * setText command from parent window for llama-vscode now sends the message automatically. * Upgrade packages versions to fix vulnerabilities with "npm audit fix" command. * Fix code formatting. * Add index.html.gz changes. * Revert "Upgrade packages versions to fix vulnerabilities with "npm audit fix" command." This reverts commit 67687b7fda8a293724ba92ea30bb151677406bc8. * easier approach * add setTimeout --------- Co-authored-by: igardev Co-authored-by: Xuan Son Nguyen --- tools/server/public/index.html.gz | Bin 1263378 -> 1263424 bytes .../webui/src/components/ChatScreen.tsx | 3 +++ .../webui/src/components/useChatTextarea.ts | 3 +++ tools/server/webui/src/utils/llama-vscode.ts | 3 +++ 4 files changed, 9 insertions(+) diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 6f760c39f44c0ed88f0319fd72971f94168dee7a..82d2e3b97ba383b64a88656086fc26849706326b 100644 GIT binary patch delta 845949 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
+v@vnYM=H*KJ9ncTWntHqa2pH_~0Mh1W#x5 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

E@++Qvueo_bU0>2B^|0pJ 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

PU=@$SE*qAc*+b5Y=1>;ZlehnB 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

vqKO`XZalF5E$AK(9r_i& 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

kmLxcWy*^chcIH{!F0n( zj79Ylw~U}rE)XO$`z9EYl+YWp#bH5wkZw828IcnNg4r;b)`LbaaL6xMummglN|7KK zG7OTMNKFDHs~EwFf17Hyq#-MblnWa2H3D{ksNJswbNL~++GaC!lyY#Gz4$^cSf~;T z6#0rPcPYxf6+?+n;TA-?U{VkD|5>X#TQKfe&4?E(H@ywPRy2%e%!yU z--)xEU*t#Du@ZG$*K_OZk1_=24B@0X??3VYiP}YDpAlh{NMt6cY>rj)j!_YlXok(< zX%k2M;)E-Re+zIhBteR+z^~XKK{X{e*_kb;rcoWliantg4weCxg&{J#W?_R5uB?K< zs4l{6?d4E$7W;`CIetZW?n#Not!m9~c0+@A+dt?dK}C}A8yoREFVu9@`Foyz)2xPj z@F+7BDZjBV{xtOQgVr9r3#qKumT%tKYEu?8arH?;pJIL2tJV z1&9(P^*Md@n-3W}L&h;sjBl^;Y0MB&$s1Gkf80J0o8KrU`()=t)xi#H<-~~#VZEeK zRV-@e1QKjX?hu$|Ry8}~FdLXMuh=qsrO3gdq_#<rzPL37LC-b96g8UZO!` z%)42^hpUqpTOWa_k)s-cMPozT5D;n_9JbXm%0^hJ14o7zs>VcNc=igzwcBJE9}06$ za^jvQ2|YRsTTG@zng}aiMr|{uN}pY-D5%OrDvKmd-eAiR!LOT;AU7_m#O(OFe=xxq zY?#a1Mwl|OF(d>+81lGv{pdt2+1@OuEKrjG3(i?lyQ|~#B|7j73E_d@5f-v0Qf$oq z@VcwS%vR0}TI5zN{Zf9DZQ5isJ& zYGi`^vY zSz)K+6t}=5EAPBetnF|Y&kH~xG_BMATw-T1$l-N@#|j4e(C#yUdwD4jhhsMOfNOf` zzWBgHr#*h-|4UD~1atZ&&Q^8miSTk1ORbjmvRMN8d7|3(iz-9~aAl2AklsAF~2+nhEhT#8rU z8UiD;*CbRiD2grM6r&oE@^!gAGzdrH<#UnQG&B~j!DkGU*}D?86K5xPA7ZDQ*{ICR zFw8Bg42!fM*e@V5fA`h96=zor8G)A8F3uZ}&Dxa8a?4pj&w-b_dkM26;*0fuC0>9e3y{9(!b1v{8w zg%C6`f-2LIU@{+U;L7k#U;+*U?4^DY=N$IzOf@gM%dTJYOZ>>5-X6<-blorBA|7Qw zaGK}6f9c>~f4Vd)^AgD{G4-4)zG?LSt=sopI6616|E-HZXff$|=`TG9V)1ovp$D(K z6*CS>ruL}5t_{v{RZ)=nDrFZumz;s*7-K^T@L!k^+O|XpWhs#cx56y5N|%S^k`S3M zNhl>P^0O%#0fHe=C&rOrR?+M{+@v5A*Nu_@N3$s?f1a|%M6ocdB6Ew0kS<2B4l4LS zt;9hw+woQ{Z98!gTIYF@pt)oihqD7;s-r%IX$})+wXdTEu2K+O+iE$EvKM%t#ZU+a zQp|143K}Id(eYM{q8&xwu4utBlJGF`fzt(mrZ(I$m*`= zl5c(X!H0y6ioEl0{7V*o^EuQpEr0euvM(FYB^&qnZNKSf@BEToe#C61e$n4=y3lnO zcblJm^S$h@(|+kpGXFysKK{o)JoJ}7T=HMAe_Dp$`J(efXUlJTm5kXjy_(3J&-L+< zN)Y}*kyXMoPIpZLGK(blyu&mBB`pxiT7>)-#EuCvBU(<-kXksLcS9Px^2QKBsZ(536@T{yVIv)WD8w#4DVKAkVQb#2i ze+i16Zo42z2-0RtDjN$!p5lFWrP5$_lnJcdy(8-|vL^<}%CXcgp5Hinf@X<}Fqxw! zz@k7SK@nj)P9%G!poYOX2|>_miOmJaGjpl9g@9p@wdaQQ7%OJ3+G^w6WE!CgfoRCW z5}Wy<5ttYbfl0)onYPz#vy?tkG^h`Le}Rh=MWWKa6E{Z{0VzI_;1)>6T{VgAmIh`~ zZHUsc>EfBP+E_)hp=0BK!mbpe*XxjFntkR=Fc^Hol;fK~5m*wiw~!0MJK<=fA6Va zUdj$iMimF8ZG5)L6LoY^7GNrsB^d?9SD+FCDhVtbUWkx~T@q&T&2%x)p>wAXA486; z!Wa?+A|8q@Z50YaAjz_s+9b1}lpd&xIte^G<)*L?xlhUIDGFy56^S-@lSL|SOCnZK z6o^H2id#uQ){GXD&<<6Xz=Y!4e`;@c^&11>xTMjzq#&7X%E=sstJG@i0#7E>gCv%ym|1Fz8>w59QL}{Hy_aWf62$+a^@j> z{9FD6lHP6lM?2UL&#{mxTo5^h)=iU8N>H_yJ$l|-=msZGYPrl16t#sQu~2JHgq$%H z=a+ys5fVm(lj++wHWdlZv8n(d9lg!jgRUj8BYkp$%UY1;9Bk5Tg)*m(0dU1 zh(Pv6B|pUEIT>*F3@XR2f3fyUr}jRzwY z4WTjMEb&;|Uzd%ueb`^+!v?Y+HjeS2hi~2EFMgF?_WUu2dpi2ABVk?k{zV%P|MD-J zt$*J0j$dWU@5_3-ZTv+)S|;`ME3B!`7TwTGplX6T`az){VwDYrtV2`D&^AF~+1vtD`<@h-f8d%q55{f{16bz1AnPaIKjjIR*rzkWIzD$rER+*)3gNRWJ zw2yZ-awSDnNfP;7`}B}4g@yJXbB}8IoFh}_2x8cyQnI-v-;iudP9~prSWTeVW<+Kb zxA`W4hRko-f6Yf1K$15^QI9Fw@25yU2cHNUEpIwtRPP|@UM3%OH_jUPvipAUYcu(6 zcYV?3__r_TSG>diyH1?%VBgz`PbkjEzkPx|AMAB5UZRrUdD30(EVU1)*SqfXVCm!R zUAF^N{`Cyq=`^>#ZAl1PH>R~<$xGNWgclHcmGmJwe=Y5H=y@U!O_j?mrthp!EHJYb z-oKhA&bD}%6SIP)zt4}TZBh{IgXm1sB6n<&?5w(;SW<+|kZ+L?+VsL86T*hHuuHMD z4RD-@6T8doD9#36mkel_I|z>nsG}Rlat?1d1EI|F!kmL#A*ZMeXp9f1G@i1!T2c^x z9%fSxfAs z2R9jGxKNN1tY&D;A!cX4{cF5I|Motd2j6)3e~Ewi(CCZTp+D@kJbA?4#&fA-Y`l+= z{l$kce!$|t=-%UB^#t%mi{H9VlAzKTq|8%vYfV;}wqvaKn~FQoiYF8VeWwfgY0+2WqRDX{&OCE(r0B*98s;anoP{8tZ8kJBmo8qCTb*Oc zOdJIY;$T%TJIQMlp@&MeZcV ziN>P^5Y)8PTt3a(oIu&G7uVGS35IMjf3$dU*u|a9?T*<{%v@4T4BFDfQhoHex2vwg zTY^~uI`bP5RP%@A&L4j8ukmg|wm|AjhkW3rWOv;(?tO=b|5LXA3orO*8K|JQb9$Ri zdNT^zW=L1-YQ+g~3l!5jim<|MoIXEau;iFYMscKhMdJ}?b}Ove+LV{QDY!|nfAO%F zl|XU*VZzBt%YzS*VL|}{$)*KKbBUUhEhjdf7niW)CP*DqswpVJ2!hGm>vU=A*s09I zXh@e%CAaB*GN)IV)i`nHqT-}rh1X`KrShd+C`=E=c_XX~C}tsKhP}VmB7-O32ko!5 z6*9EG;6*fnyT0&Cr_^!ZZ-1?xe;dc&HmG^~w*NHj-{XP3|F!qu-D8K37&0&a9w&Un zZoXyux1Z(SmWRISypiMVYAI#~UCm8&+WVu!28SVEDC#YiyGCq-%#N~*CYK-`vI!S6 zu1{E)FOm$4I$+pvKsEuWNo2MO)AlC089t88rMu531O$di%k#`OEa$_AX6* z_4+v%x#uZvBj5-X1_mK&9+?vXGNZ~k_>1>sX~_ksWIGS((haK^6f>OoLqsIM&{En6 zgdKLmdjgKLR3f~;ge{w8lyV+Hb7$#E6)1jCTvK8%CC>7C}~oiI8D5k_#f5oxy4o34u7R zeNt}cHsm2l&QUZ=Lt-qb96D*p3|g(gANnSb*~#gei7h{Rk1H5MVBu-JAku|%v z+rE!0gMi}55{&s+I3U%H#z~4gVVfWlC!!Zt_V_6}PbpncEfOs(Y9DKq!*M9F5TnSgH_x>INe?E89=H;V2)(0CAt$Y3Q;S_)H z`LR>}ji3A~&&EG_AHQ_4A3Xo~NN@Qgu9w??#9sOwmi*yQ|M7F*ZGZ>g=y}B>-q-V; zFFWyzE*~^0so`|_L$>AJmmcU#KK`~1?!0cyb-QIg<}xqQ1Zqpm0AMJH>J1yBiA-S} ziW#;@f4C0m&P-b4jHHRpBFj9e_D-Q=a&)ix52~^qH9{MS`r-qdCx_K+IShxPG%iRc zm?(oW$vqY=EZm9(NNz(2jN{CvQko!)*enz66TyB0OPzNCh2%udCU3*!)rc%qYS*U{mS=od_*2s&R1e;E@*u%jQ`G!J` zkf<1rlE#$k;&$qw?-3+{8P+>W#TXZpj3}vN;X4Y(93{hz1C|=iXm6xZV-5xT|W+i+0DtcP)?Z$t~Hy~Q)`mK9@$CtA^@9TLcLq5*R zyYEihyAL^B@u>^5Y<-*^7|s_+y*`H|e{&(?m+kNrQI#O1GOF{^z`)3h#T-$1T7z2I zUAo!{Ww|QzL{#K!ISJ`ru248rdxtZ7VXX0=J`ocphHb)Z;TB@y+++aa`6|Nf9JJ~U zp>5}4V`ypLTxslGk@z0YZcaNPNaUWj`JAvRJkfBk1Ie&7hKOOWrAu#Nlu?;bf3sM5 zOeIIxh6JLSFoh9*`MF`=xEK=4!|V`NRf6^?w1%ud(qO6Ma!&$}6`BC7Z+<9{mPbDM z_I=*R_OCfVcYFRIPe}b58EipqhX?AAVd^lAwN?^7O7Cb<0?tkT?;TCiZ z-C-8&tf6ycRYB~SJ`t7KP=+R#_0A2S9f_$hb)Hwapl;h>5KaIEm$>C0aUsVs0xO-0 zIS9@ek_?O7v{6k#FjF%Cb0H0OyKMMkJ0-y1EUhOK@GYcmiVP!}Q!1-Hf5Cz6rNg}& zPdcm^0Y&Gwj_1l}DKLvHp)3@dmRIIF=BMqtvDPn?)-UWCptIj_=QU1J*|f+rEKliJ>!eB}hD|$l zMWH@1(ql^Z?@OI;Ix~a45fPc0q@@(Y>^(LrlLPlG^=fg-C5-%tBlZSIs2rdyU+@Ei zTo9FH+D*J5c?5#$c!!b4^^_=f!w5obx~&uX5GWOdRN8~jghjXte?Vq4SFrqaMhO$t z?qj;;%{(2FjSmLGL`Kv5h7+3Rj$g5T=wvUmuPUW)6tPkM@&svadQ{ z=N^cRVltV!Rr2X}^&v{>j>yVmkm>x=jK~=V$v&N1z9ztGB4!Iu>3AJS7=-Cm!huo= zGc7ZR|Jk^U45WX^N?QRx43SZ$PxmXe~EAi-e_U@QFRc9Tn8mM zl8lnuag$TtAR#SV@(;6BLGMq))4@~;tnpF`uo|OwG+t<{^|Tr8^>NKFzjIx_aq)X@ zJ<9&-e|z}6{Sr5xh_PGK|JTHt||Sp&V8EgFfa=VN-QC6VX3xeG5he|SBlG- z#(8POB}5^+QAF`uUPv1#qDUZgdpGj2%x5jA-E&jR$X%n<@#HM#X!j zDk?;{Jl)pASI8=5_OUJ$y7_1uhD+t>+?i-0hVJ5(e>qiFQ;}hW83v`WHQaLE(NDL0 z-Y)iZj%4ETxL#aDT_tUvRabo`9HlxbB7A$590YfTv9t;n{)z{uRI;tv)?1?K!Fn4^ zRe09)&}e!XvYs9wV#hz`X3rDzulpVJzRic;{*^zab#wCIui_z7@6WZ4{v|v6{B*4w z{nG#Mf4(I3i)PBd=<1K$P^bM{?$(_ydYR3?d`(&&|5Glg;qQ|#o$FgSgT?IVib=LI z=&P4Of%FnHBPe|-S7s|Sj#Ow$VVdD&%Z=gO#ffbKpF>D7l&Zn9CFmd%Vk`s}!qT=Q z6vA{$l}6Fbq$GRAis{_kd3>v{s3;s(z>c;ee|01aJyA2<$_Wh}y1;5|=`EoPN}yyV zLYW`Lx#FYh#6^R+oG=rqWdPbg!Ez9l1M0O6L84_>m3CypI-G5@a77syBxW>6i`nWHMjjDkM_6SQVc-uYeSj zsJCs^@jyd)bq$SHZFez(BIC%b>dB4EeH^o^IEX^$+kwn0s-z9dbUdNV<$E505}3%s zHG%txtV~=y=M9xs zW~9gExd+ZNq4Vgl6ut@EwhD;| zn}mJJ1E`fH3O_^q#)!fsZRY}4YrB9&nB=dhturWKO`%SST#zVi)NvO>t}X3H5SJhnp4C=t9@Ucon#7Yce;dom#J^QH z3XIU!&@o}W(LRJeH+Zm}%cMf)Xs;g$-9~X@PMK+C(JAc1Z+X zI3som5aaVhb+FpnA;3(KoFY_9QZ^Zhjg^bombFHZ?^5-BV! zGoQ3D3WdZ6EcOAK#FnI?e_a|CZ>c#*)GpZ10!Vo02}-cY5iDl!j?{UiFmx)zfhZ}h z&OkxiytW&~zU8;Mw zdj5^6hjG^HhGx|G2x=pbwND|5KxG(O@yZJ7Q@zdu$rC|fnL{eWf1;wOQxp~T+nj(8 zf<{D1ZS%bmlq@Jo0__{JB;T>txPZtVQY1(6Hnwm((Q5-z(0Qv`7r(FHd;?!Rwh?+9 zHi#tbwQmDW0`jwW&|~K!h#+XtOu82s8FVg^5t5ZnVRyl{;q2te!>ac7N=-?a`-YmH z$z&#imMEH4QQZ32e+0SUMbdpAEePc8DI%+-n$2DX%;8D?@d_@p$2Lps zyX@()o)W_(l$OjX(P(H@QMR zy{N|yQeSwGe_+;7&j*A1`v`$c27|$1uXj0mlRqQ|fE8dR8$gScE>;X9?+Oqk$yK3) zzfL_ctSQuKijIt(7O4l=Nv-GpTb93PBer3YrNBHYpnM;C40M`XM%kqS+B6u+RXNha zf6pRbcpD%dMpdJDVhV)C6k^fo)mLr{MM%V%9>53`e^h?5!&njAUz0426f)7IkqkrS zOL2x`6{?~EhlnW)OkrXhV+9r8i!+NM^mQBd4Iq(Pi&ax(sDG~1pRtba z*#=T!@NZbFLlyG~Bpy)b@X@(IePJy2;RdX5A&Un1Aze6|6w^HmuWpL5N=%fo4T3am zWJ3y(e_~4o=3&J=ib&#{nXxEV9@L2`i$*-^i?Fs(GqwTMzsHeCu^#6SH;b^s2b5)~ zk&TW_V@u&9Y?ue5z7DdI)(EZAMYU;w9U5p!HU&ryr2=~G-(?%%qP=(xdhXx1t4nc3 z0NE6{7zGm~P?;_cRkk=Ph%T!%3KW)MI(5E)66Nqls)l9I{l%2DT(I zONBZgHz4<-XbPt5Na4~z);z|PxE-n*u`NZ36~-ENWv1xbf*6u84f@{(Oc|zuLQ!2X z518n%%h-p4=-P5f4h@K7vM6MNE=6)UWNcU!X@r$9{j33cwmM4*v--xJw*lMpz!BZG zf72u?MhJTwVEP#|*q(U+%y2Z_l&dqKYzipzz;?@#!jY2qem;|IDk)e@_Vs!QGV^e3 zz}#mvdi1ky8d(KEeN&Wm(daov@AQSc?jPoYY8XZ)^8mSBpnwJn;e}*0b=io@71mk9 zJVriiMY^s9>6ncb79k!fs^?D%l6f!}#z#*x`kEQeszHcE zXHADvHVE$YgJ{D%5ZQ69Amuv25wc0W&o&T>5y&k=E^b0`Xd@ntl<UZlYI`$2Yl`cU_ChzP$E4YTwKC_{zTAExQ&+efibHFw^+-Ht^|TBpXynM)@7b(_Z!} zNU`$DTFX-9dGP5@;ZyT3-t(_q{(CxueHP1oFUv8qnU=AYzwhT{iTk2laR<=ISgXb>c(}h~wFD4u;6mI{>Ut%YjC5}Qz3%VtF#K#YBj0P?0%_hM z6o@l;qHAPhX&pn$RWoapkSKypqr?$~rl^$ORNfuu9z3gS$2Jk*J4M5tUd@ssg9)Frn3D*Zc_j97@#`pz;71q2PgA7aG?%Ot^6K?}go~LOQmdtP! zbg7mrcU)}%7N)#1qO`85p!`*)$2Ll}%=&`0oDG;xa_r^ORY<*XV4rpTL0gA^JKn*WLDZ*Y+{M1O}X|6P5$eQVust3g|mnrxGphm4VS<(;X5P@KIDBAy2?ZueJM z*z~&PpRm;PVCqh4-JgEG^keg%^+(fM_oBGw@ie)Q;eGxczwn-IfHQ+V=)_Xk;Ahss zjN!>X@V>uqd4C>twLbEzj{mzkOn3iguITyE$g)0ZJ)DXWs@N1vF*17{5>daf`g_#t zkN-UHt$s{<`9jn_Kuy6gvY4^cb!)j(q?_;l*`7xsD4S~&12X&Zl3FL3y4rr|2E_Q;)dk5>mYc7o`n?`9HgX{jUJdYy)L^NDlb~n)aYY*3GIDn*w%RNu~ z3CtdD8GmUwKzF!F)9C#v?r?9OwpFOs;gIaFlm5E!Jcb_6%l`WQe1C_R`ntNq_t%Fz ze1Cns!}r(keLDbA-HtWZ{h|=+F|{h)4lSQG+(+Lp@qoMcAKl^9z5huMce(f9?BO=| z{y*Tf-U&0e`{5h8*3XDKH?*gnR^xt-uS#e=)qiI9IjY~8BHY7keK`JxH?+?81OJ%Q zf_}qqOI^Ql{>3}S{Wqek61q)xPuH*R6d?`2i|+6ZWg7OSum2miX&OPlVc&Gy<8Rp4 zzTV$+#-8Z9pWG>e9$vSdOwJ9ZXK#by4u4gmY%UF>y6$gSsoNcY!;-!o->|(sHTXS_ zMStJ!*<)O=)z{rU#)ai~_{W%(eY?M5oxbjG*jl&a2e#`vtnPMa1KFn0v3p~oeKT5S ztwecM*h&?2q1bspx}ztwuZpnbP_`hfAl(4^l6kpD0U2)Z*L2VQ^^Hh@aQV>!Y;n^H z45I#M1Tb-~iRyi9jlOrpx$ZZ()Av^aI)9u>n@FHi^Hqvj>Q#E}W)*t0hO7uvPcmRd z_63`U*Va)MOBUq|*6uhFLTUNQ{XKxtJgm~iVb!!iK}OGJO}b!Z+1Klj#O%6&LWwEL+q03yglA_CS7azM{uGgu4suGc4T zwcip;$P}D(OSlBR^AH3AEcRdZC34e6ea6;(sP`&@(0W1S{LYGrm=zCMbQlS_u4!J}p zumQH9*I_5HQfLU4()DyeGuS9}1zSKU(Wh?LN}_U96%{rF0B(|>S%`*eHs zNdScEEgq%*-WJeN!*2yL^ti4;kN@O*Jhu{BJ?;VM_c*xX{|@hWeD?kC+qHVMs~-n_ zukm7WSP5wQ@p{~Q@?QTO&=~9-whFEqUs>O732TW8uqAlk;}1`OtN$P9<)7Ns=y5Fc zIA(u`zxM5s=pD#JZ>`e+)PJzmbZ-ltk0rrmkMZg8H|pu3AGaSmV}Jr(??&9|>_4R| z9i@O;({-LJg=?cW>f`@VlR)Av0- zR^mRNBZ0VXU#yV2&+ET^m;bF^tn~ALOTT@8OmU~zf7Lz=x*sDwPJipiyvU^f?fW&> z@LN3|J>0!rLZI;Ro&luR^ix0PiPHC;-a^Fw%lxx7eLmU=zwnD^y5AO1rQ2!fdh(tR z%)nC`{tv!#)AQ`k57lov{scPHe1-qS=g2^+ulU?Q|Mh#H=s1|>+gJ-kI0DW!5u5_;P)Ro0!S$s zk;j}M%J9cCt#2Ipl2tIFPk6-iN^!FkV9WOjm!aC=vf9(lnp~J;C*m`9ig-2@<~&?% zo(QU<$;at@vQ85=Z;SC$J|X*+f7^UM58L^ebn1PxZ2vjoHLA-Ezwr;pd^hNO^}6knbkTtG z_OzqhzyO;Z-%r$yz){W_5b$u$TVzoZ(2T#-GZc0XvRz#Y z(>jZn4S%`5*Vj`)>(SulDa~f`?u@D$&fJA-otz;mhk&is$v~M-rSb&-1sd^SYT<-E}$aMx$7LPR;{w{^ZOD z`}fz6^Tr*`rkmU4Ivc(Es~unv<$F??DYA4Pz7-3~|C&f<8Pye0>40mb{)Ed%nRy3xknM|n=x z(K5MgX&ao`6AI6-d0H;2CE^R_80K8;SAWJ~Wsr8wrb{&=i{$CD_^4m^D|?U@udmNI zz3iW-n`?ABR!i$+@V4S`3 zX({0YThyETC2*Q-p;6n9t2KIFWhWM`cljy0oGh@3JDjTL)EVLrv}Yl8pIdquW`7B` zKg4I^tUhEuyO7~*3-3#7B*_u>=g+z0Emv<-RIb+R%W-$C-!iN`pU&vZ<>g79$Xot) zd<&b8k1aW+#@ofXt?}Z8kj%T>>ZhPy=fbEn_lcq6q|$PX#l)%BTl|4qykiQT2Z+p{ z49QIT8G4=(CW|-bB<*QUHhX(yo`0ISJ|@;A=%&Nz8o9woN_MGZSZ6U5FNNoOR(J@i z+qs^X+2T|jF0vacSSQx!^V9jM42In44FAfFMU$S&X5qJFRu0#*&-4REpPTG|5%wNS z5-Qua?dhS>)d5+-t91Sy^_H3`QHA;uY6gTa~atQ>y)39JN|M;OPNvze4D z5j5&Wmd_bM82sJM28eNnL3aej6@qWEGhf+8M zMp{b2>n`Tw%v1}RVdJlSdwm-JX|8&#!xtOX!q1lyr9cic z8hf1L?x4~3k~=14+_^kqWxCBw(>_6sk#t>uVB|z#kS>&YU%47pcd4vd*twdAv!;@I{4)4A2iD%?Bqz6C)P_?niJmXXZGAmHp9gJqUVl;{7?S(bSnrT< zl-{c*IiYEYPZ_hb6P~r%m=CMwlD`V8@_`I%hu_JlkR1Dr97NDloP=b%&*$e0K*<#j zEdTWC5*j%=a}xNeVyv#*7hh0i5P^>w-rxX{kJhX>DB>ENp9TaFVqodb$e39lW7_wo zK4^~VMF*>q9d+W>Eq_$@E)hw{4W1PpEoh1^Lv+r6$|+XZUMiMqQ9P0BD@qKtE*`3q zO?u51(}qY1RKASBfnk26x{T(6-S-{A`<4Q3(>|lF+_nH_3GE3iT)ZBcd1&}uI?X_J zH*PPeXye($bgR`+K#2&U;Ox3#j?+;x8?5-L;A)%OJiZ`a%zr;~G_H;*Mdv3;UC56K z^cu_wp5{u=0gYReHB^+y4`$hf=G&>6n?^Wm{CHx!GIzgM+14;T>4I~(`@5|=b!}9G zP({-_VmoWQUBA!OTg06ZZZIBp*e*{_Lc@|7c;OhbBJLKxk`QJo^prY((-^)sKI-~q zlF=dtJJ{2Rcz>rxxK1Y=IcHSE_KDq2-5cS^L(cG8S40c8Bi4g?eK<3h`wG5y0dF&297df)x^Ma}uB{I>Hq-HnvUcKQ)rX1WvD-Avxe zB%)v$I+*Lg*c%>QG(Tv2P9JBTsyEX%Y zf@(}Uk#{+s{s%IJ&lF@?zCbjre6vW@=}$Z|*et0=Y7-vjMqx%DL3-T-PPU@azb=UG zT>Rmbw6Qbp8*@+7r3`G?BAr9*81{A`SK*yDFlVa+3q6P!VsvGh+P6aH>48|Y4LdP_ zXr9yIS%2tv-eWQwDa`EC2n_P6>)^yNDI;CjRV!h2Q7)DTwzNlwEF)uLl~g?Ts*V>` z{50$!PIBg>PRv-&gi!Y?PMK?GGX)i!jXdZl9s>@^uMJyiQK~5>>@wCw7S=R4JDV4! z4f&7IDDTob1Y6xP7bk`mD_;#unSLWhwE-fxsedE4nIpI9Be&Tjw`n7{S^fR_FlIl9 zl&0%q7^eo~|B%3@K?H4*X;nel6Dlmcx57G)MB&Go!-+WRi(pOmaQJ79q|S}DFA}qK z_t1h}A6`&nnMzw^ZF72Fb1AFRU%D(<0^e5KxR(6tkM32l4}Y=m)tp_bHu2-LOUe%6 z%zyWurmMA2L}M?y!zwK6`587!?xL7rjQ$;+Iii&T}=de^q5|&tjfX8CAsgK zZ4LlkZvpC(VnCO?BcrcAr4|rh_@SJ|WPeELD%L|XI)To^3c(Bg~Hi)Ixs+?S2 z4{p9y8RyNkSJj?TnY;UGdQwB_fbcn@rJC*CusxwZ96e?bCQ+OFxb8@%A$An zHbp-Vpg z8etRIut0%(J%(7j1=XV=Ar>cVZZ{W@GRYE1;cJY1)dyKyk-?>kjDHAl_Wc3!8&2^O zH9!cl(BxHG-vsdT*Sz2ax_4Hp;@81oiz!Yu&#m$1`A7R^%h4kTRN}RzWtu*V7+MLv z**X)vy~%2E`miq#+wvwsZ9bvO6Yhs|TB?qWuL^*;c;8_X-Rn81P!I97VE%hl$b(WPfdQ9WDLqf%U%Ui3{&xZ+57!HVSbQ56(kcGv?GXluAlr_c<(!)w~J z$Vq%8_!K%PrVPpVeKyPE#)^sK9b|B)ecFe=ocE`<)qfFU1%J1}_LU^+Q{EA1ff1kz zP>%ez8(7gAGC8xwkks~M%Kd51*wM$qD%MgAhAFAwUs7hyR35%OQ|F9YIF9G5xvmnT ztctZNKEA!O4p*I^HJfhFD>TlH9~lrh17+x`Y`t!3R)R+t+WZd5u6*#_1wN|L)cLsD zXY)*?`k;N;RDWd4N0+-?M>d(wH1+13d91RL+=@SB3~X-2gv_Rd49}=`+&N|+1`eYJ zo^LDh!F^SG?Z)YLI!2Wz?tU2DYxZ_pl)|Y2?b>lDJ1bZ{two^^@`3Dom!1bwUtJx7 zc<n(5nY^k^1K`x}3mHu`xln>P!N6wz94(PtA3|kT%$5btcf|Yg-4> zjqP?|n9UeGOD^gCW6FMtZA1fVm%L*t5sEwRqy_@qj1xD`*d)_PHGL5FsCS_PCRhcR ze`JiQp?}K#V2vT^^mn=)W@98e@QTbQfwc(kP&?Du3xNtSW0p>RZ-}EN@)ezvrxt>q zoa1MPVGg+x?s1&@CJ5&XAvh}`3Zc^yIi_|#;6jrxz@yBwN2~>y!b@3^j$)d=<=ga# zmoY+U_tmHsRo1CS$eisu-*0UXy8m&xWPd5CLVs0w9wD~Y9#0B6M<1b!+P|D2*YvwA z`Wrq)C9^2zKwam{1+>)??I{;42N$p7jUcZTD=&^?_o^Q!Ppijqpwe#q@+S7PSa^A* zdwIbJ2hIwhp`#E8MA_rXRsO(K<|siXfdvONxaGTIs9;WC>A2g_k|JO`NbEX*y>n3~ zihq>c2pZ#nqmPT=#rip50d>(YK0_NqIQhAc!?r-v4j-rseUpI@K8v=S+VPzY#Q?U@ z3Mq*RxR>ilbjQdxI}RB$PGNyTu`0-zq1d~M!}F|2dTLwF=qeh9^fVjprKKul-?mxS zocD7_v{{8m3@Df~fnN=-6ju*MAlRT@<9~)cWMB%=I+^mqJXcf;53#`e(;87r#Gnr?vc!{t6&5J#IdDG5iY#WqVVBT~7c8OY#=<2NM0AKKc8o z_UnG->m9EPTCSgLcvaJ}BDAI$@ux1rE6~MyZxL-RB`L zRM4EjUh*~s>JO*JPG@{CYg)E$0;Lm6_sHf!=a`N;#oEGQ8j@_?<|Smif8&cdHM4gVGdGr8REs z(LQ6%MWhGc6-nOL{pJSF_%z#eII1q*G937kxdP4liP@{-%MP5f>tZmBZq7V+6cG7X z7JbLL@B~d*M80bX`hQ%7qrHm<?~8mH}&14uf@arSJ|Q-CRLJz+NIJB)fNZb zp;I=f5q&RyHOX}#^JDNpn{?v5y^6V`o0wDG@clStm%P|3?rDWxR}i~bCX^VX9vDJ4 z%p=JVq|S&uv$!CZ(9;DB$&6S^R$b1_1sYu;Ef?-ftNvK&7PyPZl?2-NL~jTf_l9Q< zCuZpN3OGQwrhivMVdgo43{C}uN%ybs%4L{HYFKu>QuJd#^ePK(&1`Ypb?KfyDPbBe z-dxkN@Bx>%|0ds&XQ<2&^iPZY$|}g zK`z7qL3com2D_~^uhY5enwD?{6VN+ll6dzkT5W&>6MrBLd?a9+zQr5v0Vxym7uve{ z*@#I9FGu|@yRuyFtVNdpx)cGS>Xs2@HbL#1cRO=Rq+NX@)s)!tcB9vj9gvfopy48= zl%u|+S=|*2N$1!(+IvtTTew3heVSea_# z>SN4n!wDzgji7LBl%TaAp-8L9lRz4A{(MN>pMP4E5=cs_+KPx{A|~&=wE(N0Y1h)o zq28c$Q}v6VN{Wnkm9yEMq$zv2snHn#BzO|};DgPob-&q-e8v-LR?9H8dVPVWLC0W-(A7yT+Cm3L1q?EN7f& z4~2j1bFDmn`dFedkAf1^Q95`Ohrr<)S-sT$7j7^_6mv363yH?Xs5aQM3@)LSB?2s?J(GgOD`u1T0M)*W^N`92R3#J#IlV+qkRi`AK2!Ako))cuk97U<&+5 zXRgFgCni#+Kcpv!tRt-8_e*MA^qy1+Mk9C6Z$>=)7AjoixK{zrWv!PCO4(5kvzX_F z=*#iY?4}uc;#a1l6hSkz!zV0()B^TWB+i^9n->=}yUqcuFHeS6G)IP9B!(p)vL1HK~?aIP6w z_^FCF@(%k1JN%t(=w;((8W%#L1hA&B+oIR@0c%;ZHTuLHFgr2~!MNJV}>pA^|&xzW8{BA+I zBV{Gu8;Ug_&5M(g%Rr-B!DDl3=MhXfrOb<(kaMBD#ha}fMRC*XN`EY$>=T|TClW)^ zgmy%qX2FzQLbJkbuc{fGw4n9Ahb1cpOgY`sQgE(sc5Hx;m$d0A@uv2Hx4dnH4s1V> zmjowB7#kn&P9VRe1Vo@ki;_Bu^#_D0r&M07T(Dr5Tx$Z_mZGPthN)@~o32QC1SLjw zvenxUV2N+hZsq|$FMl#;d7$N6Ljra8xLaBN5q^XN_v|o#L?3Q-R9U@zAMibW$qj^E z#L;9UF@+*2KNus58?~TWF-^|N8K4TB(^&!EG8>)(omVZA*n-b6Q!0vx?UZ@Ti5pr! z(NiWN8sgVXIwD)}qJWs0L?{_snfYn$j9M1Mn&`vbC1-i5+RTzEm~)Qd7#^QMi^h`xJS=$Ps-sDBcay4S%%IRcZj_mH&0;fCG92 zic0dtOLUHP_OY2&fUHt{L0>$(`=sEosC6W)vH5QqE6|s-MVtmB2W4)u5lU8}OjtcsvFsW+LoPuo=1FQMl6%65O=q&(3 zdkOcqB;~MR0lvk>f?SAqi%w~Qc+<=E6G8ffKv!5ix|Lfl~W2a+^ z3yCXGCKx#KV@c4n=`^bgWo=I*W1gpR)GbMw+M&Xq(G;WNK#;I_ZBlfNbW<13PwXRN z#ecfRFNnmra;p_;mU;RU5tzl1ptW+#r2Pzj=X7OFslAtYFR6E81j)*GIQ{4hYX=X` zW4NAf7&$GA<`(<|o91BMy+F7%JgKs`-JP?yT8vP<0lvoiB%-1U!v*ZVVSDt_x2YDXUxKhsIf^pyzECB`b1GJn$J z#7?yKgU)c?Whyjj^HSw_jLh?J<>O2_Ng`c_EFH@(-MFmL$pqb^tQ{+Y-8HN~Dfu-v zY|pD0y{9ZT{cH5~C&Z`SZOJ5ov@FY~xyzdVuS-c5s)36vh_vDUyT0>ZqpQN0gQwx; ztE2rIl+H8Q(*z!_sMoG{X@#%RZ-0h3o?%dV{qYLuZYE50JOaX3z(8D^#kB=^;}m<* z3N2Dbq{BG{xj3I9>+%?%whD2-q&|dRR0YUc0<=#xI$nFYG3b}|b431Zu);4e5sqVW zt{!FA?eQkgj(ASHC&pwYwf~8Smh4W9zV2TATSH?oWH72kWGe1l(1sP&xqkppqNMtj zQD{DJEAC>8oKE(C`?m?V3aerw^I~AF>U|*Ij?6YME z7oS@i)7g63JbneWZ`Fvh8Bezti`>*ArkKLQpKA+I+U9SGtT5*GXKzUl${;f_(@l3Z zOi@kaED{Sey)`a9vngkF`hRA>0jK3UI}e8b#hXOPZC`n2GgzOg5PHSud({nkCGdNT z$mnMWWr0e*sV7WZIJ_YE>K82q3oQkr4D_A7YYIn&^BOtyV4D+(`5_H?BS@Cu2Yf(q z1Pu`UfMrR&;JSiFxoQOnqGz6bxU$GU@A!>B;0FXg=s|%;xjtDglz)S_*~X2WDg1Gd z)YiUU6Vo)iPmZY5g|TeG{v{CTGNp9E1KjuLiA^4JgKKQ{Q2Ug2F8fmDDX*#BV&_QGY-pnsd_+DWs~<>knm%%PfUi*2j7>$R}M2cfjV`8fkQT(|V9IRokf zN;v$DT3>UZJdESIIwsP=s0mmfd-8Pju==8_5F_`niwE|d)BrM(u=Ti9iMI{pxCyRa z=&P}uB&>?6cIzFojYjaj3m4;* zL^D7QhUUk?a{{9ymJf~JJ@DK(v~&Q^>^H+T7#11UnJDKFFKcKN%sH7@-ML3#eE_%SbQMbq(>6Z8JMPSYKL~nroS=PNwAUri$&9 ztfOyE)Sc7+n(ssI^{aaAow4AhZ9I?N=)OMfXkrKsvcV~y!ccA?Vd{FS?~ zOsdoFY3U=Vdc>$E_w=f7ID(z(3sX9HBD9^A&yCw0@#OM_4|NBQ@E>Gku1MimTK>#1 zdeK^1bEZywr0-(PAd>o;qq?@#OnjK+zAEu@LGzHCRk*dh2~i5hlwH1_n~7UW?6Vrw z2@Djhr+>lHX+%jh-OA6#2kppSY5lCjCi|h_cJs7CmSSMZ*)cSCsJx z_TF*gp_%4wecG)n6t*dq)yav-(yz#Z$fZ;%2`2N;=;-DUHlMJers#^u zOhx6R2oql{HVv!Hw5MFl?!GU#;(qJw8h^LpUmRP+Y?eNj7Ra!<+7%nCPgeGUbD>FK zh!{iK5>m_iYmB1dt9tfS3;U3ENC@T%dpqL92iJ6;+{9#C4C8iw$;{3SO?x-i`;P6m zdUU|wLln#}QH>?+@R;Ca2yCV89KJc#=#;JQPcI?viG>o23Z8Y^Sma(*9U1J6(0_;S zOU~Aj@mE)6&xo@b915!F<%%M2kb8B3qKJi)(7h6`d;t~3#^b2$d|kZZZt9Bz-TmoU z2LBQf&CCsKe6_=Nq0GzmTN+>un+N>yk5B7vL{RBV;(V;m2o*JSlcne?j7qC8Bv$A1 zEmhQ|GQJ^F3VBdP{!qkJYu^+uWq%9hO#2|UTIRHKf@8CFpXXIo;)K9?? zYH^rH6sbgy#RVMl!CF@l9$YpcHd0{hmZayEoch0h%3-yEw^^Zc2=5mxAN5vx3~*H;eW^8ks=V@ z85uApaC{v(O251~mqbZA`jUGQ5e8`Ie%iMzHG@G`TXK)Ssv>=LW6)H+2mvzSUJp2d zf^g;S%U1GKnwxS|?(ovpdKvIn{FGwk>}UkN8ME}B;Ax-igL%{?^}b-sQ=s1~LtlLD zcadX|;FfQiMnXqWpD$rr)@NHj6zxVS?F$$(SQokpm)z8i z{1|Nn*y24yImcZ3V}JXZ_-(#MD_Wqe=F*1ZCP%%h#b~hHP!J@lmBOMV*U1BSOJ)fRLz3qx0U9> zd1#UO7-bdvuvP%^u=$+%O~NfI5acV(Wehz1(|!{QTiy;6aI0ucp?+Pya~i3CzqPj zcMa9TObMQk#YnTYes^t-L~+4x3TY8Q&%+H5V9G})+MU!4W-%X;$*&Tx?2=_UVTu{> z_L#o|Q#(dV(a~Tokjtpujtrj2S%v;tP-Ud1m#89W>0|Eq_~80=q}c49oZ%v^6Opk} z()@%?X@6N5DCfPVy&M@i*~h|xl$S&Awy5{|&-mG{AG7-BN1{t#^S8||S9JMQY?Rn^ zghLbkc@5sGaVcrv_jYZYb*##nwP1OZt^Hm&!b9;_^;6Fn%;aou9U++%3$)0g0)iDDB*oydHp`H)5)r*X^4=K>Df&27evFSk?gxql04}J8`ivESoxZ=vwa_ zK$z6M?K`i4##`mu0VhmJOFjS@NpTBOD(fKurCEaScXb7QZQAX!?N<}A<`LLx=w{B8 zWyWa>&va{!(0ZC-I`yM#0E4i)PhS5Yh3`ML$Nx(LvhV*@fc#sDZvIv9Urgn}`l)wD z-G4p)Pn7W|vxvn%MaQ3lgQkB@5P!Ba?RT{Q>))-We>w{@8JRH)@M5>LWubRj4Pk)f|PyGKXG=7SV-{C(NH_Q=-a34_u@LM`j zv+K|KJQu0=tF$*nY(E>EpQ3{)$DbmD`BPxfG(G6iSX5gLC-zr(4&xSL--eg+hb?&!DQ@}3?%8ygQ6 z(K0GI0R%t&#;I`_!l=r)7A95rpQ=$_CuAh6(%yY*n{h& za`vS#GR?8orLpDl&q@`O0n^2WG%Wx1AOHHlzJv9f4=1Ub%n4cJd{Mjwfzj%Mq zU!H#<(Y*98Mt)G995UQ^{14jgKS;R$qKp0)Zo+8gSHJWBqGbLD|B*++Kj^tXJmo*g zO6ki~kg0@n$6Xck^8w*stYoX7zuKirFXl1ykKR*R3WB-x4|7Y$ELX*{#$Os^^P=?p zu+vl~*Yc0{sd?-rgG(o}H+1lgSc`w`cVR2}lx>V>=ve3Mm}h9L)~>5)2)PhAzF;a| z$pqn4A%Q+a^7dSU)6q=NO$Vb|~Rqf}R$xna!fAb^C zokYhBefyMj+v1N_$2UsGU3ac9f4T9a>em;%M8iDummgPb{>cx|NN;7(H}BFHgh_w7 z;cLFZzU&p7oGtTAZ5IO5iNm~!60;pL9rMylXA+%e6OBF6#k2G!JKXh~sdHAjWa#II zCHz4bWL|#q!Fd0{+X|H({c?YzJaI=mxd@&e!`dCo--;r~5Jx+)$l5Va+Yta>>i1jA zE^SY$$|xp1|8Q`SK--hb5to;xnsBp(WRPKKT~d~AVj_uqd##xWJo<~7vF zHZKbI#M7RwaFs35m0WPIE-<&8GBgjdzj1fTG+m+^-Q+Y&Yts)sK+}A~u=)?r`p-Rd z$Gq?xBft2p&&r%1{10VR>#pmH27U1%Q*|Ok^8$F1>=?x^U-2s2RIXR45yQwoR2r98 zGy{HpHYh=W-sOK}h#r5&{_u_ZKV$SCRL}i)4@Un*2L6+mAJRuso_J6|G?3Z-hg~)3 z#=gzR7g+DVZD(XBU@e9ZMYsAWw6B_wuKwZQZRL?%xu)$n5-XcA=+68hxak_R^vjp{ z`hVx@CwAn2E9xw3E9rlpGqS_Ky!V?gd4_h6N4=C3Ok*}Yk>P)DUi(ud$}8RfJHEX9 zpL@^!o2wl8=Ks)JhLUkMEKh>U$Vo(-*>4>uega&$*3EE@mt3cTV^I#^Wk9CLfvKbK}>xf01Imt2_Te z`~BKzyfIVS70(E4sXC-VKb`7yyh^*9t~{~8IM>Lrn`%S8s@l3CJwr)%xy@Wd8{U=1 zxEsUUeq-1TvR7iju@lZz)uLW6kY2*Za&gT#JfmK|CJKMsf8u6-afkF@-2Jb=eskcz zSi#@3F8a^&;h%i{@PqMxo+t1>^JC8ZA2Bj)Cx~p*ahyZWBTUN-?bzefm7J~5Y!`4J zTG+s0)77>US$0}ES`79zmJL@Hc$;4tdy7Lt|3BMS8-GZx5@ad^qYvz7{YNuS9O<`T z8=n3bv+RHHo>1qn;PSBki~Z(*@wSG`2lC$>uDcw6ncyayPEB**05Sjjn7$d2s|UE97e@SuVGij+i|z674OV;-EHIpdha zt(?U|X`HQ~iF+#x>{}rG%{iBdMZ!ZIHqU-&=H|2@}W ze~Xp}i?$Jiv*E6?9q#fO+SXm({#nB+9e0r`>+-Ad&c9tS!g#itwI_?aCPj8P)a-P? zekW9Yc;#=iQjtK?7E^lEY2|0pNdG_V-B**dxS}xXAH)UOm`jm!4u(6Eqrt`|{ra!4 zyZe1-*6dlcQ`M@wtC63=z9;P2{3da_I$h9wW?1w%6GutTWcZn$v-jrh(+ZI;c5W(Vbe+yxY zr5(FWn}hN!XgiUr)nPo990SgdP#-=WqH-1R*$NHBij<{tb0x>lxr6DlWri(fowbQx z*CD8!rl37;a7v!D*mEc`h%c230~VQK>{2%vw5uK)_u$-8EfGj?rtlcz?wt-4@<|8z zxL=93U+ve_|7kZge0dHZbg%)pC&8B3*XG42_X*dY}GFN4Ll zcqf_!aNN5Qwg84KaE9Dv2pwF~uXCpJpK~Ug|K^A5e#JSMf4YI?Kx--u zXU&7A2{D-Y<6dB2W}#X#;W!psXMyb>jod7buIKW!AOkxXR^=zc(GFVx4o`$29`qNl zgKFWl|JCxq+W(io{zvoI!erZLn+(u3h5;A8BqEOCEv^DrhUsL{Ay{tlXRBI%w#%)2 zs4=$A*@MY5wkiewRcgzee^cb|d~?w1Dkv9)tD|M7PVBaZwzdNCpis3nN`LZo$qOu4 z5Gf4BSvDs_1$WLP0`d1a|KH2|+#&bvrBZ{<{|v<{+yAEi``kDFqAXJgH0i-({=@Qc zl%=n}kT)NFaGU9IpY&T^vpwVZeemB^`tIv8))YDJ2L$_@>O8g=fB$u!1ZR%1Z3FoF zg$3o+Uwn%{7+!mjf%CU{!DGwvVy~&pGNZ@XXNLhi%Px`5EkmY%!44h^$X*JEE=FzACd^<(ur1@|@y#{?;;}N*!S#7&B08tCRp@K%Kwo>t5b@ zAY0%?M0{zhBLeoK^rUAs*xW+MwnhCBhutVPadwx!pjEMe)Zs#Mec9B>;8J z&Mzb}V7TH$zxxl4`@lt4j{6z)-7orX-#h%LPbB;yWEmO#>VJE6c<|GI_bL1D z1lyx8h$EPsX97I%N)wc_A#Ol9>dl~iHmYdflDJfXElc1lyq1pcpn<@AB?@K>KQ-X8tg z;SrDf74PWxZGU(t!BwE&RqN?6M?3E?*T?TdIt-un!Bp;+f3?0NUSs6`K*N;A$OYxU z<9$Atjh0V;4q*9rKaR;xzxr=P2^tnrJ?^hQ{WtIXDjzJm$5)^G38j=-gOObj+V6X* zf?z?h@GfUZY@Qastdy;^wGk;Q9GE&JmM}GB+Qv)s$=a=v2 zXx{spzeX-!*~h)#=iY_UJ+LSSsC1pNRkpw(7L>kue9l_R3=9z90(+9+Ck_#10}(To zG0WsI3txP_k6OHGfcJf}ogew?J@owhNx=I#LiojRUw)C;KW(A@!@8%KQSwLq{;SPY z*_Yq?F@N7Qvf|lC84HD9*B2%eIuopb*IWf%IKSrrUn`?hg(6c2q39{KTq~o_KIuGR z-6>S%0`Miz@WGfhE*On%#qO&w!j;`iwjD4`Td9cs0Mpa}JM|lEv@Ydziv_1@>!^{p zs~ZJQ8+CEj&SY>mZ5P=7WgU6d0e2d|HQ$8>rC z&IXo!=m&s#m$y%u3qN(pPapcH@Al`K8(j=m|7NQt+0lFX==(eBnDXc!Nk3_{@VM+8 z{dWH}ovhcA;bWXFz{Wrx)O+W61gVKbcO#S9?}sKK*ky zrQ|VVi*E0EpFGAWyZve7SLvq>bMV>juje*j6#PHUYm8&J523C)Z#i+5>~dW9fTY3Y zO2Ss0y^F3&Ybjp=&)d2_#N|a~c{n7x3my}~|?FHBg z`2VfzM8tg6JAvTo-{-24*UveVH~CWsxL@~1T#DM`F8Ji?*s&Ff2NVa%SNvu4-ep3`nLbL$(Dtu=R*rhznSF+y+A^f{gfYU4v%I z6-wP>8-irOl89guO>f{h$M(2VKbdx+=^?4Hlp;pGPh~gDZd!4Sqbo|0^1t(?M7=1dv;Bx7ibL+vCfE5G2IWx7UL{ zW%E)k!4z@qVpxD^xfR$sBj|i-dm-bs0#v3ELq{@GRx+!|GG;deYo!WPwtoTZ%8FZd zJDba@Z$C;F9klv~);_*4VAO4#(tk^dr!zE^esnzF{YR8|I)ENXDqwZiE&&d%JlINw z1zf}oHV8qRf~&1a2dVImU+*xz$kThjEL;PCqfuK|kAAuSpe4o$q(D~z*K%wLNI)G! zQXB+p%FD+?bf^T$A{ap7S$_?%&f%IEi@qP>&9VLWZ-W8c@#;Ci0m6U(W-!31N4QW* z5zq$)10V$B#F#*efXFi#U<^h`feD-o;7UF?=!Ez3;Mdz2s0Ixsb7f?T-e4MIobsV+R%@KRObx;oqgu*$h8@J?jT-PpvSUm=@p$<9`aSeRPZ_&Q2z_iX$;9>n?~6qJJ<-TKPzp2-BPBAi5I( z!sOuO4E}en8o1k=bJP;RYOG$#8~>buKFOlHgVhcIuW%D%aI(mh_Jd~y-e4!!=MIk6 zMjb-dfG!`?h;b0-yf4)oC}sAbizim-BvyPA?o&wwz?V~51FU_pq?OL_$gvOK?0CNk zCC`45#|OX2secp*Y_xpS@e>ns_VyjOO=Qu2lj#So7(V3T!-^Zin;Ad0xdpM`J)>h; zkr*RcJKjJjtBF6@S#~i$+%^#gZTUm8heA8CZ@zu~UZ1QT9QQ%4f0kR0<&JdzP>HH9 zROK=Mi|u(x4 z`H+#THr6J9jRdS(i|=_uG2udd!n#g5ZSp((goPlKG4nh-@B7enzF!&o@-TnJ@PONjR2fWwwlScgl zHou8{hyP-c&3E}f*x&`x0WgGPKg3P1LibHUTL;|@+Hi?Qf!7jXYwztJWG($6*@d#4 zz`3!ze&KmTedj}#U3m7Be|UHK#cyxy!74W&_FUj1mQ@cTly?nQ-mrzQSM6Y(8PVZG z*MD8O&~NgChTm4r4=T+^zrviUI>LGE6D}MqAfs?WP_KNYa1#(J`vDvk?caR;n`gJr z2d%#HZ?YXQ!aG0coiEhi^g6Hjs#@2qdhn?{J5+DZ+x_+X$iK%q{jl#JHv5<#CI?xc zAIC2pg!{kd9sS?1&c~Bgy*bXUO#xs%WPj%1HQ)J{@h5PEw}BsOz?BiXbP`}5Wr}m( zWr&qU78jY4IRra?IbIi1-{~s6IcTB!Gd(UGMB|5EzZ`_(hgLs0N%=#wA0*?4UcVmn z_$T}zB>fM~&TcDHy~DGE9{+?NWMugX-?o+g(C?2w@$2I6{QBjGUtj*nuQPw(*MHY< zeqD3_NWLq-lkXS#n|v?-#DxC^ZO^=E`y*|h&KGabAGAHY3ZQ&U^7Qy3#H)j&{Lt$1 z!Arhrb@|{hKlFO5X*~A{_ovCWKQ#M6+kfcwo2K#NC;Uj?^h2||+sc0E_q(R?$|szd z4iXrI;5o79>EMt>5tQ$1Q^;_iYkx0bA`QGg)Hs+X_WYRG^HG1T@A~UaN&ihgV~xsW z_4l>>ACm6Lhi#UB%Y(ehvC9E8uWW{$(X31kE~{#|yl#i*CkI+*&uJ$`lp{C|;N*kWwU zOW2p^#FhV?cTWIgWBS2xlkYl|i8`4jN{0gA&2iU(QV-)7yUavKTk5!u%80s|fM*29 zKF;gucfy-te`mRQ9q{U#d5)vubui+VJRIAj{&gAu7qhJaQAX5X#QVlB(b2{@uB$=4 zAG(;#ymp3-1hMPb&vkP=u7AzVH$m?7?Ef7CS@`6*W_`zvx`Uv1llOIrWRDwO(P-rDD{qDWaXHuOZ(d!0*R$64$Njdq zAAY`!G*Cw3^)J)#R~}@*QSbi)4xRbecz;Q(vwyd~<2vCS*JJ;>2#68+)zc1xvb2Qu zHwIjvCT@8AOI+sZ{(oy+dz!fEQP-ffKIP>|n}2&eM_$t&U^(h|=j+^m%3t(#-m_`~ zOJmnx`6PK0>j!IIYCk0TvHfV8?BQsS{I-t&UKw_%zbPw6`Pf*s?vHl3!$qRqOd#N* z@ZE;wZH!OezlEdy_}AqpdgsmfeSNW5oe(#^l=-M}sAJtnJ%1|1zmD(CI-h=Lpxrm8 zJw0UiofqE>y}Z|-@MGV%)1tqZZIAL29PIqN-FmdM9pC4-(_+-abK-}86MnQ~03$Hw zVr<9nWtzD5;M$FMz1jNByPh6~Ci3c^{qyQ=VUP9$j~w~Y`cUQ3F>QaS^7pj!p~~OW z?uROWPkW#E>3=cpf8xKVgHQbTbohz?p1yq1<{ygvi#God>)*8bn^?bo(dM6cU$prr z-ZyRjj+cGW<{z^Ci#GqnJ5N&yfOE9rL~u+qpJ{%YO8#rUd`y4M*WdBoH;Zn+{^{-NW)$oAnw$A98IK7YsmMX`U5|BGTrKF9wd+h3pK z|BAPLNcP|Ajpc`Bf3xQN^hL728T7P%m(efA{Y|0oKP>w@{=t>=Kk+m7E57#=AN!E( zztidIH_QI!&~x^iWj{D{hWsJi4-Q=#zFGE9-0hoXf5$!l5bp1|$cJSAt;`hlH_QGe z<>4Qe{eR7&gKxt9&7qg>H_QH})7c-E{T)~TCfwg~EA~UO|4K(z_+iw@Zu`x$zvI^RH{t${t7+PCMLO;~>xHRa8v|s{3Cc!3?(u?-RVg6H z3E&igA%1H+KEcsfrB`mK9iOg{@dSRZdCO!2$$x(E0I**yyA9MYu6+gI&9h7P<2}f( z_BEe;cQS5w^8H+vcUJ|xsrAMFCfG%XKgKFQxb_z)K`qo@ah>Bk&)bJ=ALJ4MhT&N` zLY-f9dvMU~{R+T;g=PPD)Oz%<)H?W`T93e5{!Xn&$IG05pw{*BcWV6);Rfgww5oTV%zN1bCB9b{U(Vy^E{|R@%ceo;ahui!2@(QQhU*WC3{R;nHUSG`b z<##}Sh3`7g|AgD$$A#F-S2*r?Dqq=9Z-?CA6Il&YiUNe{u5?{}nj+ff@{}IZI06Gm7#G{CTv1F>f~lx4@bpTs5rrB+&$6NA9bFM z^r;9`h*~A!lu(&O3|P3NG!P9auhvDP;uu4}44OtCK(SifGlQA)b;yJwXM}ES2{X4G z@qQCbqz8`}A!;3!jej+J`4?qCB)JBeXxqvp*^Dr!JP zZN_k;R!S@LxX~*maMvqgSgYjKT|A@BX^7SrWavCjLqtt2Xp(pmaXEMJKA(9Cvu3!! za};eWO@Y^X4u+AUewDj_X& z5=Z87uM)_S**M@#vt67@zX5WWAdb)#BJ?>^bj{L*! zr^G8)o@}w0TO8)11ii=VSWv}tYDW(T0bn8|UB*FCM)!U?DbwKhqo>U>JlX3?!=fdJ zp`JyjQV{i25YB2R*o9=TvbTX6T~y6n#4x9uSCd@C^nXQ`N{94rX$ryR;SfH5+g*-` zZLYnpf`}2sIrB#jZc|i923*#(td(LNAD+xWU@X1yZIU%Bcnl4*JQqm43XgvAa;!G< z^#Tezdh7@nOb!|)b}HGoma6N*t}{Flq#P zeHo9_%2ttpO0?Q*TqA{ICGZ!`@+x5AQ<~m!-bgdP0(j>6-38(U8GG5f+ zhzDAtto*88h5TxUm%nXWPewQj-x>jVVv({5N`G^gtkK1o%Fo&3V*p#bAogBssnT~k z(~xN8_43oPs=kDST+s4oKTd%gS#{H>r&C|?D-deL@RBCppRK>=(IPrmC*vbE6YkH~ z#fwA-bg0BE;+R8imB}zDvsHuc&#S0hl-8LV{5IvTbt-K?bhypN#+QFXt^!|XE#5R` z&3~&c@60?qE)L_XO6e;~=|7axkH)e^$Hkm>TYfJ6F733eR{o&U8ab9`eI}Q&z^M2& zFNQVGY^|?lT?ygB2LbjHFTSsE_Ied1dpU`MT)Di#l)5f}RTTMcnM!0cFiMeHXh>h} zaNX~5=epM8qET0ov2N?Dr!EYLSPfwRGq72ROClQvHYND`Z zo}w$Q1|x@=nwoL*lbLUX?_kQg+0Uuv4lePuoxR&w%%|$o--0aOOvrw2w&`>{Z?luM zF%okhsB|H%YExw!H93!QbaEsW#kPP(_7EB-T%FLC=}(02U0Ga9b2RId$BM?lyno8+ za(1vRd|lvb12R2()hnsb3o1QQ470n7Q=(q8j5ya~eue>@jEt6R~lZOLG~ zqrczeY^ju@4$t+F+gq?-TYP_YMj5j%FJ>wfJYhzWRPwc7=FZ=#&7g1Ah#=D`@i21F zB&piRQlA4IP2CQ_O)p85?w2XW-=F&Fj9mBN3GwtqS#VKi6lN~0K(G@kLVpM^y0_}N zk;p)n1k{#+AB2cx_<_ulYK!(TpnJ$9yv4Nq05kD`dvr>0(w7&aP;jxe3F>p=J(eLe z!Mxio(;w0OdGnoz;v*%WBvj>$v6dQ?e+ITB!oq@Yi`G#cJnS=z2Lw)DkU&+L zv>8_a0o=G&A20S5pVaY!h<_-~gb8sa_E8cX^I_Xh_acBtXO5!mi?nZGz>&KlRym-u zw#*I)PS`TfHtJQoh9TlN_VwPq>}6`PAym1$So^2ubsm-)iI4_~^ahEhM)K7|m8&ud7=3=C6ah%P(svTo@F-EeS$VVex_Q^k+bfGhF4w&r32+ds_st(j(VW;fdH4*IrDwY*?7b0K?!_g+C{RgOH`xiGNL#>kSa%20Gb~XWD|` z37wlnN-l%Cbzwm`E_u}A;(zi<4F1F+_6sXCMP)WTIN#bkETyoa&EN)SyG6oUA3gIEYQXAEo6MvT zt>&yW_xj;-h~VRNLpJ{X)^h60)d|fzrI&WWO&Nu6dmPc?>o(yyO+_%ixXb=eCR zk6u)DiAolyg-*hTw$^$Q);r+iGo_ehaZLi_`GToyEq|ZwvcVW6y}VvX{!kg3x>Bz# zZ98SUli7kkR)xRlj!T`cmt4W`rYJE5vGYp-!3|mmrF6)deH6MHykA#5k203J?wIQm ziHl#Ad&?&Zja$k6E(zFfG_!!62tgo+`FKdgSx6A>1Wbw61KJl4#?~8TA|kuzwmG1x zkZxCO(tp)LVOzCG*DJm(xaJs0O@cys-Zb(~1_dR`VHanq%~W^jfj+mTc+Bj^=Q+3alXL|5e_(g6Sda@pRQhI`Pm(<3vy5&!zJ=KpQe@^bKCkt^a|~# zt_fL^w%ttiB?lyTk2bo9Tdc*p8BBDf+_NrEXn#ZZT&3s`e6C*iht06hNAXPg81PO| zonQS!80Y5+uAlH`;V+D)tQ)W2H_HG|^p>8>%PS)3_5oQ4no%NzJFZ`$UaMY#fs!+y zVucd(G{kHppPrr>DrHGR!XYY)cSQqf>34S7U394-+c79PElX==A`IL0NmB2VY~azh zL4VWug{$dYbv3@h@4@3VpJVqhysBQe7+8WorblsS`j_~^k7g_y|<7^t2(y9BlI0kKC@0r8-vhP70 zG-cD6mxY4fMBa=ub;GW7PQ#J)DrpMnr@<~Na%Lm$t_%1T4&*|$kU_!m8Q)~03V+7C zjp$~4UKAQcmSXu54U-0SNisO+rN?bbZY*55;8CuUKEtzk&8O%wkOZemSZcYv9qHMb zwoV>zS6rf1R`*I^YQGq_6;2s6xMcp2)5Va4ccYcJ6Ai^)RpJ*A-SFyFN;De#` zwIwH15a$^|ml-P7kh1r1Ih3gy>VK^j<}{Bgd1irwG2cqhDD$Ek3D=E$yeTD93dwMd z&g^(~mX{ZSf{wdIW-{(P4cJcIyl7u5n{Dg{&!Ed|v4yGNnp1qn#6=jzO@-9vBzdVt zvauy6-1R0xthB1fH!SA9&k}7brRT?dcw$A(XMy6P|1O|9tV<`Uiyb;OSi!+ zdhU6@J~8uz5Ed-S7pRwmX2ii1jjHU-^_btc1Yd%o&q zL_Ao|A5!FN51;qk=M;D`lz$XwDR*vSl@sfY%Tzq4L54%FwT+y3Ys5Q6IeUhumqo~m z7oPPcE!ka$Yg?tCESsE8K|RDKMDcM1(}dV#G!BtI49!5I`sy0u#>Fzvub13dUcjSX zNIB&_Cqf-Vbf~zUGVoGMVZJE&G?20K?5jI;9`}>rP6*vgeJ!G$oqw^U*{xSRCpWyq z7;ZB{n!*K35FPt2ODWc;{pDIV2D#_{v<2tfmrhn%=+e1^FWVej$~`W!@rD}@AV`>- zy;j(?%<<(v?kMY@A(g=3E6kJE2o7ua5k!L+$0*t*7N(QQwacfbMMUAjkH`AxTL0aGF$?EXxhnsI*RtftJTLJxAqj_XTgu9YgA+RE5)6x zb>G6Viv=o5F)?RoGV=?qL?n&&v3k6nLwm~-Hf)91s(2k z`x>CCbRy{|DxB5gJj^jv4DGeh;3SUIKn-c_wvDG(xeEqHU91?X3p6p8d*6osBfjPL z);Kvz>DwJMH@y06gQ~cXoDn|G@LVf+UOh-T=rDisxYlpIlhavSfLbv<>`ZMlW59B=M)296Ri2l2^u`(3|Zpt)4Jc~!Ocd37#bh+lnYTz4%#i@99f8{8Gha6T&) zq42c(O3v6Lz@g!pPrgAtH<(Ia5S!TzKf_CE$@9)&WPi@^_DfLPoTGB%ir!W6b|wu# z7=t&bk9wZY-Ys7>&vC@ZqueDS<{sr)TwOAMov3!!OOHFNPZNVv-Z&9;K)|BtoSO%E z-}Vz`R}40D26a}k?RHIXK2mHHeJ2TnRTW6{9Qbk}M$ZbMJ)fUFB~)uHxJScV#vLVm ztZOVzEq~EJald$Eq(9Bb*F3ywMCC zd3)x`?${6OMotA&;t`!+Bf_D>ZAOEF^^$Sa?WcW>IZ>3WLceI2ZGYlxJYwDj9^z*; zjhD(jsRs0PF4Jm@kcjkzPMK7))c0qdY+TcjRDbn=9#@b0nm^m(l&A%go!TiCmR#Y^rmHv?d`x#&4hX-t19%MlSxLrZEfsYs!~7v> zr+>Cywa&m7ps<|+9&&F4>wfrf*V01QJmfb5?4Kqs;rfztzUMkAI=%T}@ z&xA7RET?jzvgN|X@_^u!KcS?k+3W&5GZzUetcV}qfT$-Qw9n||~%-1kiHgQbWk#}#G8v9_}f+48wjl0fk=Ev?SWY*fQ}V?hh( z8e5mBTJ+jfNHdr3B&#^)t_OgX3Uj?m5rON93+9E~H6Y>KtEJmhKyZdLn)AqTu78cu zT!z();l!uSwT7H?LvfL?R@M+%VolguutJo%F`Y*`%!@H{KR)kbIFW(%bEd4*=b}= zdNNNq`&!hxj#KwKwHe1Sos9*tDS!2M)b}?&)h}#Y^*WBw^zSD%sB(toJIkX*#O zF1~ORqL30fKArB{CO*9&h`!NIgN@H6@bSq=Dyyw-9zhksh>*@Lc7^cdEXcjO(2oqY z?-k*9u7_mh5Q8f@za9zdR^c^hfGzIRuHRGS=@dFm;|tIs*Sshs9gZf!F+B{zrQ(ml z+c28cG#1pr|p;E*W z_b>*)7Qxhy?dZmWL2@NF5KtZR0CQ$?|!c#p)DOR;T9Pj|$1Al3L^-)LL{hjm) zY!~_&;E|*VjL=>#v2uJ8p2u53v72z`R>4ows!C|%ghr~X=55;W!L1qmDPIaBbF3>}7zoH`__2u(fL?P{EuL+Q zvzgSg33WPk@u{+;m|S9tANy4y#a#9*kvIEP-m%9CL1hg;YpbJ@&|PI+kL+I|AN94m zOIpjiLVqH!cuRPlj$)VAZ<1XZ-C~ z?rsu++ABht@{Hy|d_h4Nwea;~*o@%Rdr?Gy2Y>Jo!mm6*s+`3b@g#DO)F|NG$sh6~ zYqAn)jOq45mtM0g+E*)$v!MXL#}0bG2t{+LETsl=;XI_uxs^Nj@M?<3L+>Uq$Vyy9 zy|5i7?&rj-68;P<8AqQ!0wo(|$S%#*H_&XDt;b_7i6Alp{yIJ=+-&k8VDd^#j`3tf z5`V_M7hM#7bPf6K!PY4897h@18L3Hc5LDE1Hok71tg*KMpLHfCc8`}aS^$@1M(n;Q zXD^UT1bMieg+i0|6t9#~*9(%B&dzN^lmdSS4uKfUc`b&zMPf^IRSMZbpUdS^seaGS)(eN(PZgj>inI-ylx9~Y3!PbU>+d3XlLAGGD_U#n5x*z4Wx6pfXF`>EWU+rzy{U|bWn##L0JtR1m2*;RDPqO5_@EpTE$ZS>a<5-J`s8^m_#Hr6inXTK3(~h?=Wup532wTVDX{Gls4={NjOJ}$Sq;; zj2z*01CYX^h1qcVHm(c9N~*fQuBK!=CVNeCv+8|jMb3{0hc4>5E%i`UTYrR283k5& zizOtsGRv|WJG+G4`N?6@P_29itx9=gd__r4WgVahF<-8A;i$B@LbbKhF;O+7+S!Hw zP;+0~$mf`$yDx#r!7y{%(A%)gu^zjHU1|C&-d?J3`@@-T|GJSU)qmjyt<@kH=KRRN~Hq=c5t?*5_ zdQh^Mgmva>qFy$l08OyH3BG=j&f`tE$2_xZ3Z|oSi_kU5XU^<#{3h$!)$1N;Pv}El z*csYfLsyVATc`5?xx%NasAKCK6N0tVc{HCd+G$<(3=f>S2w-$uXMb9u1}&Tk_g3IN z|FXJPeS~`WOi6p(^;4BZq@E5{yyX;bCN)>%i5SP)WL92H@P56JJkl3F>WsOo?(QZ% zG)Z}tl&etk$&6d)6exwbzTB-$Ry^%7uJyu&r01wPIpb{*oxC@isOe+#ajKT0QLFXz z(uXZN%?}a2ox;w~AAh9;1Vbg6(pu_liiZO8N(~6;xvQr7zT*;CRk+FZMZeGw3!9fE z^=FGQ^jl8rwA`$(l4b@d(KVK|(B~}Sl1@ZMdYMJCPW)XI{H&*o(>2g_JGL>jM{;-A zpO$~uA0*67x&TY-IAO3gFve}aw-u*VX~c^D_!#h9?t*Q@JAY$z3`cQKwFwb?zO*56 zlY>Yr9q1ThER_t_Tms@!`omcmOl#a22Ya^7?Yf;R#IYUt?5UE8-Bs#ZE$S7S=GU?~ zr+_NzO6ZPpXJ8_gK+mYPuWsf^se~#3Mo;TGYY@KMk>}~j-jL`%Y?7I-^x0F*KvYD+ zdk&Z%q3sYSj(_*WO}-wj|(o~S->3ECH+&ydurY>x$9hm zHVE|zcQ0Hro%*!SSaEuJw@cOYSjgBt_MB?3d^sM~dVf#hLQ+};ad-d_MGsO-*Ch>l z$t#&=XhJ%;chaVxXF$X5m%hJ@crUA9&as;Qix z14bydC#pPS3V)8$Sl%=}SFe3bZrs}4X7_$7Qe+*FXM`oH+cu0VRGm)WDc&kV@k}U4 z*v!_x=YMx=zxF8-C()Ijtq{vsj#Qi5Lm)>gYI(gQ8Q=AHi5(^8nw8_(HmWs5cM#-x zA+CN%16E~2oLPe;Y#GEU7AJyfSGKiC%QF&i78Y9ljM@`+x27pxX4yRRuf5-tRm%3N z3uNlynH67XHRosT(k+cx<(pqr$~COf$>yC~OMe*36Wa)3e-8U58H=3Q;0B(F84&Km zkae?iPojuyo-NgOzoQziLv`Zc?_;(ngKn;Sa;a!%^q020T z0FXdamz%~QnYf*&Yc?;Cdh1I30<9>9i+G^!`jdW5jhkBwkFn~GRjx+g&zCby^eSK6 z9Dnv+PdAN(aq660(D8)l2u=mN;3rO#1SHS5_ehOk;(X(p=krMh7fO3oZO_;AN>xS^ z8BF&`;5Md5Ai}dgnx0}5iHDPm8v|PZdy98X` zy37}%=DGqd3-#Hgp?j}2{hVBQA~|tGhsSqUIkhii%oCV3AZqV2-*aC9JJ^zxEq^8! zbdA9Cx0}S@JJDhl#$0YK>eby6p6o>B&H;~^XEH)9qhoy>ml$rpJSgZAVrzbN-5H7I zMqwZ4bk&eGD|G#|h~#Zel;%=qRN#sPO$wU<_i_^P~$BxX{t=*5I0vR|*4NZdVbif9v$xDyUdFcMP3j>x_c zx}+=aG`gZ^^U4JfLgqv{DSN{@l(Q@F1|pK@34iw=#b+ z6e69LGGgUP5kNn)%~`FMKMVrqyCC8J?I2)`bsoz6%zXCtw?V)TrrRRckmCVx^|@Sh zn~OMqYdE21!uT2YlgOTz0svQ;n5!-Jn7wy0SltEQYZ!xjVPmp_aDSOl);fvM1y<8v zkq4yumF_2xjV8KWdd-M+rRK0)9D2S7gw5ORnHys{Vr4*fMM{<+)yvG@d!P=a?C8I< z?*^oqvK&1OVt|)(W!>6Ew>(KtO;qK;0!l7kOQQc~ z&7}}-?UwvQ#U zzf-UuJ(U^>HR_jH;t@1|VTTKSF?nSvQ#r<)VLVi=;q zu@iF74-;C@SF$G5}25Z>v5IIfYo!Q+(IlFoEo?i^7k+yZk{e!*kN9`CBmrOHkzU-dC zUVORB{kojFIfCSWz4yvki16r?@3Zb|p2A4i^tLXRmDY^XXD=4sE7}_Sy1P5jMnu%O z$eo`6JCDpXSgCQo2*o9g#4eyoTBa|z^3dRz5xyrjZuVBx?&%~rToarF_C3^jckeu3 zJ^K)@CslmdPlqxElH&}utn;G@hm2f~nLl1zs}X<=ZGX*wd*PVxFT6Dh{G-6)MmVkF zlN`o2$I7;M?-%M-NT7_|fDuH~xY!I&jpI3jUe=wx^F73`)|EDxol z&%HXih_Xj&-rgD%@@8lbsYVt9d<9ogke-Gh2&z&ilYgWgbI8x{=EfV8HUcJNueZm3 zX%b6)&8E12n@uB9`!cDUc(<=!SF>t6IOL}{D1`!l!pqR0ne!*zH@N4*7y#_REoCyE zWXjly%$pku@ERrid*9Mr=spuMa?~t|-F-enbDj>hOed<+lY8tKlkVL4 zPjl?Br(*YZMUHo8aU0!wJ4FuhspHq1lf+bXSa!IQ%MxS7X|Lj(N0DVKI%R(js$M=u ztFgL&Q+{?U0@!lrrUwJ>4g+DEy(1-0d#6jSS3ZRxa&FJ!X%+H99(G1`(?r(2KZ=4g zt#=N0Bl&PRXcQ{HUPCi@hOAL^x;#?kd7vlJ@@zx%ZX*OM=IgzG zD>STX#yP3meV)Q} z?q5l9IE1ws9;dMYhv$`$&WuHB##r0BfcM5)laHbe-&NYvgIl`CfdO*%l82q=iR`U* z@i-G_kVafVYWpN0%yu3Xrd8D$#;tpQ96f^!`GPVOXP8b|4#Kc79+!E5J>HMTBrhapB7(558-;{w03Vci{PL2$4kgmtHOw@@-8Md7TR`=LS}83 z$Rd|&cjz6)hNF^J^5_L_8|qV46|1E(mRnWffv*_1E_&-^9gdUpNOGP~8|fl{66E9P zh;LI8YqCp#(5NnfzYkEg27Ow&d+d%y6F+48^wyQN^TE>9V!tzqpz1=o>5evA5>FV$ z&p{jr`gK!@-d4L88LLTEj^wl82IA$>8J1`V=JfI?$E{mUddGL}a`JbfL20^;b9qw+ zuYtO>-H|#TZprI;&GVBNSpHjofN6b&EEP#NcaPJ-IMBz&?rnzjFSUBI z;(;Ngc`j^fXT!hjGj=B)EH~ z2a4QXg`Q)9&D%C`10QH%`<|UlZxjHl)ykCODR6q{;!8Vsky7kbGpxhBIhu}+hmYpy zPU=kwd17dCpO++Gh;9LY=jMUzH~xtiz*)ir85d%e+2P75@}#;eFh3k>uh>61XW)j% z{;92}n-Q|384yeIpmiv`{kX1ToxdmO`##}SR>xx099>DBW`$3=A&uMH=EGy=mXAea z)8L>UFO8=biSc@JqJCyre~-u2?t0Twl@=eb9bgHJU>_v~>LU$*rt@7F_KNqoE6e3V z9@)p~%&zPKU)l1QLjp6i-L7?oIvrk({p=O&Lei(Ra+5{M=!mXMeCI_DWJ}T5dwGpG zly5CGQGXs|@6#0&iXfHJUQZ7o79Q55iC~qX)rWf--)kjoO+S0{V*3D-#_F^DlF?5% zsf%jmSE1|~i8ZNz8)w5^(GLP^K@3g_>jI{ic=_0_ofN^F2qvv8a9vEYTmzZ8*GAZ# ze3m9pPuN|PlA|taI0UYq1y_DzT#;$Tum0us4wT*AkD~tC-iChHo0i3`r|g0~cxn-E zA9ooyzcXilg8rotoN}K8LKv*)&MR3T zlWK3qx%Vzq4D++@plyUW|J zagV-~VDgUMFmlvN9}-tcaB^l1VyDM5hq+_*X4lAj?91`JZ=O8xHIlUC& zEvV}q|4g%gJGRzXx?SkzWe+F+g$43~RHgWGz696ZrExm1^a{enl}TImOR2sR z{LzlbsJeQrYVQ^0T^!@XG2*?8ZXDKgV29+I?~c!S%{qbb@pd!`?C3>A8NcfO`Va|` zKR>$tMfZGvPweJttoWq1{8PP8<#VxK+IvLbhFL9t9!CqmKbS1qJyLug)`$8&IpyI> zm~MGr&Yc0C$GThVdc3?%lDnrD^27zaf$cq!=rH^gN2jF4ZbjDaQWAsN{d=FuwgU3C|CFP)|?w$`5Dncre!6esuU@wW}d~Eb;a9!X(Uj@Rc~a z$GIne%P3BsL~F{3G%%Yx_Qo?cXYPjxzE5xd2Do~V99`1KMQe7tH=)_7;>lp`#ALJJ z-bX80LY`J6Nouv^wK76J-03M?$wm?QFrujyPj_1OxQqt>BG=MbF>0~TJDR#~}c9I9%6%^;Ap3?XA5@2{t808$JCfc_uT-dIUqVMoPMLdx32)u`R(6m@7o)PD|(CnMCWIJ z?i=mx)w~BaglBAD5x8HpH+t)jzCytMKzr*uG)0k&XFs&J$TSaO0)QE}PYGo4543ml z`0vx+ICf1K&9rs^ZXX=DaM6Ad1HUofBFH%tSOKG%K@xUZr?Zxe&y&DfR7PZ+%cgq( zrtrEuL?=q$oq=NzFw;1;;9Bg>?m$X^0&GYOl)n;2kRSqFnr$q*qqD)PeYgWe%XGiwI`j;1X|@!a@F6i-9|IeEa8rp9tsd`>2fMdA6Z7l=tyKprT6J3B*D zqC;S?=i4NTP^3NtH=cUKu047Dp0ybFR z#{euxNbNAVbu(%d&H_Skr4(%ALVx9P~LU1d}FQ9svaA(YP$HiNTYF zpAfNyqp7|~ly4GBXGEt%4cC82aKyCy#Md%^v2s5&dhp@wS&I20l1M@(f2qoZI#Ge?I<8IaSQ9s3W}-yFUC^Sm)zqTz)Tx(~ z0(Y2=1LGi50~{qJ1lE(CT%ONq(zfF1Xx=z|=>s&s8f&^7J6q7t(vF6qtk1L$&A?#H ziiJSBx{juUTcv3gmx{T@L6#Rq23SgeTHvZ%{3LN;LLX0w*lv;tu$x$je=05jpp=V?ow41mK`#ia116RB}Cn*OQkfUG%1R3rwxltFN!i8jU?n zi0s(-2SkB?c$8mk;YMv=Kh*Yj`ToVSZ3N23I-{@|H*t2(%gdZ-U}~HioHfMFW)cg{ ztn#RvuC837d(_A>q2aRle*`8pakR!WjAdRpjyajV#x9%ya@-R(4vmu-3)sqn>u}a` zm`OL@%C_WZKxJ}8=JF zR}Rm>RY4~5yG%Lew#HgSqCNq~N^8ggAkqSmOAMnC$uVx^*oQUwf1OE0)C(f05kvGR zGX29&Z^B-0aK5%`p5(Y2`@XRvC{7>Z zc|pYU=RVRtY%FibtQjuUBQPzTiu+uQJQX?bMq;O8X;LOBGNc1Hw0!J zR_1|6VCqA`4oD^wC#KbWV2T7YSD{=c3P^#H&GByW+`V2+e=-!bM9lh&UWP6fIp+@8 z)Ss@8#7c^ffw2c{wUNS-&0WPzx=O$58#m`CaOJZE@~oEWzf;cBZ0Wy*qt+u9e^T=_*6jiVC$TzgNakIAQ3?3oI6C{%u*HP{Q#eK3`~iE zlf=nO5!xm&PWG>N~v@Lqam7-Rd$BY7uKvt8Ps%f4>cUexX)z;Zkj-STXOf66>;HYFT!c zcu;^`va`G3GeCkttuh2q9h%v~0m=M-HGc#K^@}tYnE1MDRSM)1BY2jbdz>$D(kwF4 z76t-M0!X>{hG;n`F?Jiz*yGG5Y>QbeNF@7<7FHy2{3_?Exi!wt|90L$%M>@3YyPUM ze`d+KWE#2M-+AJ0?L8udm!$ban~$DbwtN1IpS~YK4hWE$j*#Jowz`Qz zJOw^a-r7v(;;QYyOvU^H2!NhRCfbIklu0(%ig}%74De-p8qlL1$hUA1WB(V+_63iX ziDJQQLe{w)voT}1ObR_-;aw{T%#ur_e*y%`L~&rs7$)OnpLnTNH=g$xxl3_wACz?iWWQ0tSyIAD`b*gd4#nup zFSgp<`n(%Y7t}iQO$<{ET(^GkUSI!Q7JHt}EM2y#w#pwJp2dEZFJSZ{1!HIhzROBie-qxW+JqZiV7~GyLuq$*OzNK1Jr8r(*bsbCxYQ0p znjN-THv#-2f*X)Y4>U&bou_&R$gk%?z|R3E&b=pQ6tna_#G0OEEy@+qV_KpyETj`Q zli+Mh5Nl{h%zGA80b^(CDW1$&M9++%;`z)B1#meY%!K_SZFiT$io{$K!IT~krWOd9#`9+Tr|WRhl$HQE-_OC@f6m4u78`eHaSW=5f0bG558FQX z4#U6zXJvk}8_s|x8XwRSe<|-dU~mB(n@u6BSp0)W;{TwGC9r)u87B;CsAT(os7)yelpF86Y3{#PfGi* zwgj=pC_cYfR?b3s9DKH!(jVA(`SbkLfEiFA?`_VSzOP@gn*E=ze_xgHw-b>`FA~ws zXn?oHo1)F_`Y#6#tGJ)*&jbv_)93oZb!Vg$#SooV;?)Yx*}3eWqUdQT+r=$^KI2i? zHXdbe<5B1t#G(L~o-PClr)1sP+g#>=yAUL>Y1B{VxA8Zdv!oe~@6qU6nss-n1Y&!h zU^DERKx`Xl`i&62e}naN%=DnL+V^-ARR0(**VAdm-s1V0#qRD>ZPU905nZRGqw5q* z0QA*$xUc#W&Mvz>gU*`6Tfr9>tWSM6#f(Yo?4+y;Py77KSb<5Y?9|7Pi)o-QwQij2 zvQsN!)wwvZ!5*u~oeL6`oh=?*%`M(uN{}FxP`uG^rW~mVe@NZZ934oEyaZn?xaRPt z#=t3@m>j_VWGww8K{o46I0@ts`y?>a^KAwSoP-I)8U)b<2aqV7i9@VPclLDJ+2cV3 zXbcHxz_?Htj3{axQntT4 zc!@t|=_W$!9r)2*DV92Yq`SlFwlb@&^1_V_Ky9N7*;0P&JG;J#%<)cX5j5RkJw$GI zwWjyu&087A@ud9f_&Iw}1l>*)1G08dkKr>WjR&xJf6c=7gu-f!RwS)fBsVk+4Y%iP zntx>mfo7pqOmF~Pf?DJMINi9JE78A$&v;x8?4XoqE|*xBkc)uW`gIv+NjC6!3yt4> z#*=_!<{wu0bN{2d>H(>@F}>MnmoEPHwhM( znF5-2f0mm#$X@3%OHU8%P3}(SwqE7Y#FXP{z}~nJ5k!MNTVR3vAEhf6YK%OYvT`|5 z<4kG5lq!&k=RM+>vy4q|wR**d2SBWSCP{!KLwj#ppl~5}s~}TMW7o8pHKVa;_mAb1 zp}_^|>w@%6Tz`*oe)=iD2wd~A^|`n4G#8C;e-vM36pb&D`f8%|ZGbI(kBNS`;WdDA zu|0?Tz>z-b?4Yn{oL>UGWqyt8eQnE>L@cNiL+MXaAW)fgA4ygvjImqG2N4cH19}&vcW#cK&($g6hS;pJ*g~{6hN)juA3i`qe4Mnrx+XR0fA5C$WI;MFK ze-qb$wtt_&3Qm9rCbfj;=Xd(ELgw; z99B6y(|lTl)wY8O6cE#J1g6F3i3wBcfR&l*SIfnAG@j)(ENYXRI|%?J>8^#_G0^cK zn0rf{a1r>OFM=u(vMTYK7QzWnIjd)ZU-y6Rf9a@Q{YhUmw)d0X*2M7n#KGKjd24$& zlFN4R(4C2q%ZbxV6W5)L6&4Ale;F$SjuRGyK%!rw(>zvQcY01qz~p}78obWMBop8f zpnibQS*B|d2Qm!>p}G>}wMtwb(jw|x2=iaJ{dxDde{Ji7Zx2}?vBe}C4!36O{`)+a<4f7U^c-uOufyI?qU{_TyNTmlg=!2~^c zN7V84fsTKe0QK4bhdPEHOK;S1S<)PKpy6ry2kJNhAk)|XTk6;|0rB6Yj#cm}hs@VJ z@Bd647o06cQb85dqN(z(dV-?mlq^P5iEn360NStr(|%IHE@;0Ge_<@|vL|4^_QS9e zJFggl?Rt#DuyQ>2n46xp5!cB~z3m3_NqUbPf6ER;aq*=g$p5=kaSuR`P#Dk4dEW+^ zeaZk^^J))5$FGY?hwn+@>nto7#q$b8a^-ImRrIh77QH}RWDgK82U!WXf9F}Dy76Vf z&;zNL7Oq4bAXug>e^fOVy*Du{W8!cv3k1mYrsSHqGRvmU_CRJm5mBd8iIx#(*8|JE zs|bIS*??0f$#)YeMr5(Eu(=D(e9BN*MEY?P=b&r&#q7qC4@~)ss5N^;=JwEI{f$Z% zCce_yUtz62L-g*%BZ4lB`Xc)*izX;;Mw{ zUKW2d&D-A-00HNfJwQ|>GclZ&Arf{YC7myFujYe*2XWxZq0i`{gs5i@IzD35=6<7~ zf8`w_l$T{VOOrPOmY2m|-J_R(QY8fkr zRp6RKe-A;A&X0&j7T*YB6A{ELBCKOzn)q`ohlq~-DnAxtkH5KDNkxpP@nL>lJ(Hvk zk$9GbOQjkETSa88%5foQg|Z6t(AE*N>8RXb`P|@qZxa?CZFj!5yNJxGMnvx!1;}qkF_vW_Ci9FlTN=G2r~IJS?8Mf3a2@HEh;q`&1CW8N|R;3J$T=`ETo} z`~nkkrQ0z!Ce~C6RQ}JbbwcsKWq-?T{#T4C>Z>8j8t`lnzz&ga!2Oh8-kv~j0><*J zpodav7Le}&h3+X`+U_AK3)CbK&{&BH9K`FI?Ut_Y#-IAapQ&9RrPqfNMuZyop@L*c-0kA4(Xpb=rp_wwD=xf2iR`RXP5%9i?yZp@)e~H_D`7h;6+H;h& zptd~w&j@4KZ~3DYzm-9g5-h}JTG6E0&l#GWXL;G=TOaaTTPDy0`t_fN*O@8Pf4^9J zeJkr<;a%?^;$cj{e*a56KidI}@ULGWa+i(#G$H??*3n=mjacS?r@{d+_Z+HUNR^?k z7iK>h%zw@qqkB165j%@mJ_+!Jo2dm9d-N!?v8atwd^4kbUZ6Uy2V7~sBnp_E$1^Bj z+uzAr?hg#DIRW#9Sks{{3aXSCe?S){I$!_See54rwg*9JzJ5q!Nrl-)%X853RgIH? zn+Ye4lQTE+U3qIanF_Vd`WLyY3xWE7Oq?Q`6!kd@UD#;s6HrVXk+44Ei9grjqw*WF zf6p3&@^c-=1S?dxBc|F#^)>2OFn?EOAQR@Fe$K`yv*<7CI|&P-dVjy3e;n0C^bh?k zZS5hngC90_olvQ7z?6X2~tEdY)Bnjez+dmBny zw?=K&cUV~X6SO_~(=JsKddvy-TKQeJ{`o%Fev#Iw-B)9P{qedx_J>=BsIQWRufIz} z?WYWKp#RVKU#|bpNMY&Ue~wp5%wZ#|trxhOL~aWN41EUBzWqaZn#(d7MgQlpra;Jl z32QOSWGrt5#b>);T9h{bReatPth9H}ZbT^mm4=`D?>pc3!o)H<^Ic9pq%dN9!TT4% zi_VYQ(#)*Q*Kf!8AKk;K-ucISWxGEl>8WfiH>YnbH+1zp-1?9fe;ZhDw4QDK$G^RQ zP+X)Mk=@b)Xlc!2$p)EK=;C&4)b4oAPy9BIpZh?4&c_iS%8 ztozNoqkc9b+#U4=_DZpz?Bc)Jj?N7@mpcIxtve{MZNwAfTfJ%78mgxS)Q|o?zZyeB z-B@vDa!|j9`=Wdie;3PtQNG*q7v;Mxe^I{M@`v)ZHU{`Z`F@r^l<#NxL-~G|zbW61 z6b`;9-w!?fMfrY6;cv=!3m1P;z8`w{i}L-1`=)%iaQ83D_Y-be7WCQ}Ee8x*=0D5! zvHK;&prCZ7H{;g_RSD) z;cuuZ4DrVQX3RHPyz#&A7el;J!O}NF{0X~!lf_$D?n4m& zmX4D9%@A+tk{90$F-jLk{6!X{G?B7zhIk8G*xwBC7FPL17H?tuzDJXDqUTN(2*OF? zK&JC(YzDPizAL?Ykk>uXDpxFi`i?dZ&{)-i#ym_8f0lJKf$uhtWWFh4@K=hM15ELu zir?G#VgDzhxZ1`8EtRW2%rN}L4~LvRD<7(uVgMug>Q`94ihDcxaK%}HZd%Ti^3wZ_ zE#6q-m;-F_q(HjkdtmFRPiUzcAA$f_+&@oA${_j^9mh1~ZBTL>^8H@t0G~0%&$GrbtnjmL0y*QfpLG|Q8TZ@qgFkJ@nK0w=pLGi8;1U5&Lxko8#OgzJ3dx7^ z+{QZ*AzY!KL@nrh1r2}$B6PnASna=0)GGhK&T9hv_wyRyLj!-)u@Zm~9XCMKDx#20 zc=%U3ID_^^#ZHhwv#$gwUw$KFtzR_hhd|Xbe?S3c`sck<*`2NrGd&@@) z#p82bkFWH1Q2Iyahpr8_beqt>%b#`d{u)20KlCpoH@ekC6!AvwK2iGI!C%PV|NCc|^ZRyCNbj<%6{)e2sWQatb5V1?5bl*r{RQ|J1`h4;)_(cG3Aw-t!Am*al&fBj!cZS}9j@?Woy0Vp1OlrGWNeH3Kq?-s8= zq<3I`uFEu`^|c=k*cRnW`$cz8XkA6ru(*-w%a)ECHH_+`uj~B1{4q3&w*a{5e}^{y zHH#99Wz*;PlK=ES<@^2VM$Gr<|F-v{mk9#EQy>5w1N02+x1VB}pvgEMy)W%de?$-m z5Kf!~%nC9Yrvh_=tjQU`q#*}53s@5RHpB&%3;B$@e&}2mCp|6jz zFMX51v-U#*vp;08`9lW(kigRq3C#VF!P&3v>n{?R&3?$>@BLQ@f5>3zhXnpQzmB_y zAMzLckib7=@ba_W{Iy-r{--oBfBC;m0|To4p3Yp1QOALF{v#UL`i%x|iMA-eXkda; zwG40)@MQq*Pz1J=lf31LlTsG3Pb zj!${-`sZsJkwXT=^;nGEam<+g!cy3gJnSF0hmK!yM?LlTrK`%Y*7~vuA1SUi2XiMc zmF1gIVLZmW#K5{-{ly&Oe}k8)@CXYut5z{5<=z*bH;Eq5?{40fup7<a10$jio&pPo$ z-gnv#f8Q4|j^czIt2nt0Ym#DVvF!BO;( z*A#`vb9R{DOC!4c1@<|!dw{b<@XZuk(9uPZ6cuSicRZPue^w$j<5g(X-hEx}2jbC3 z!YuFn^!koLf1#-;irw0@WkM=Aytr_V>bevIoGiWCjNQF0-f9>jHg=QUfyWx%BPQ?( zPv@528s1liQ;Evu-8de!k#vfBz=(t(%7HWwajZo&m2`g5bu?E`q!#9e*cu6DKDc6-oO?ldF2LmnAnd%4^8`P>gr; zq0NuU6ywfFL`fyylmeH|hOwWxbJS*%@iHf8_d3itgo*0Yg{Thggftd$_zr zVPfX9eS~zC+LV?S6t|2g!#$CB><~5s%Yi1T(zMN{Q2$Mja-?XJdvGpP_9Swr49!b zINGyoF2KyITsdCcauwajiNiCI!>bF27fRLES>?`WJ8V2~W3w(zZ;PyCWOeeIH4vD| zy9z5dT${>}y4{%g{f^V#c|PiRetzfa>dR{Zf6a!mIKh_q#+0he>%hZ?R>NS}F|X8c zioAT9>z8aBw`a`{MljdW`^@i6{Sch#xsgC$XoTo>dyl{FSWy(RBbSspIX2IsxLwJo zDD9t1;#62M&Gv9`SEu1F=Y0qtobObWHq%;HpXiWnt2x6IKi-+RS&cWvYo4T|`8(^% ze`T+JEo_kLS6<86`P_U0Ajg*_WZUk*iZaB`S&|9yB|_&b{bb_ri@Q`CttbRyro_ ztDq`vb~&a#OQjrkYc&=FXlLbp-<|P}f7QlBv1YYCkWOPLOygm*)z-RVKcDWL994TT zIH%!_LJh-isKa}gCn+N%_OQnjh37`QkxIZPkLdNBT$QTX zTx=d*HN6RG>hri@l58~cd-x6(W4OQ5Fr4bdsnzTek}c*Z!EFsiAM=Ii8F^{re}qKj zGs#^pt2li2XGn-(nnJ&-;nJ-0pbwuHrG2 zeEnFuKJPRaiNONOy)X^!rmVw$A;$nE$A z2(+Ws*CH#P4G6E)oE4=~TD8!r94_3t+De&7ZgJU+>{*A^F>JIoSt6Woe_lz^v$qFs zlA^TleY@*|B5P`mxH?#+nxUEpYd_st`OErWkm#lIuRNOwi z?eg%-t_f+~ORmU<#Dc>!xR`z6^i^XV#XJ$GC~1a%uZeDoqY z;YDyRLtA+D?g{tZb$~j!_4)si6seqs5eJ6 zu&-2j+~F0WiNZNmgTbQ;dv7-?XY#;Wt>lrOFRqQN-UB~i@>we^e+#i?f@$kh$+2=^09`al=ULeY2op7B@3=Ictsgm^XzwA!2ss?(b7h-bUkaEaXdy@4zv6f_>2u zG-vG!KFhM=ZB%2qr{Z|Q^>ev*MXAc3(y;5jENyQL6=b<;Yo#5=BJNq(@usn_K)x$t zQ7g{98II$z8rShbV%F>C4=-G3b!=95_I<{ZOQ5>ly_?U;e~Pix(Y?3_<(dIA+Uac9 z6XQ`P=L=En#UWxLuAQUn{&oi^J4jOu+hs1(j#?ur*fZ_<#He;ua0vDD=~@fN^&US5 zEmpF-#TN%+e9Vp+K)0y&FB@YX#|uLP)}nb~?yU=?_qR3G*)yI=NuL`@;8tmw-(PS& zknOE&j?RT1f985J!V@t!sVExb6F-nop2sw+w#o8>bL#u{O83THr&)3Aj$v|F@AOj% zMt{XlONYOyn{r9(f@FdxZV;rDpNM9uWf~uhg20UjJrz5i+NplVUhXo9H@$5RXKbt* z@p;D7vE9eik!UV7PK=~a%}&xEnRw*SE_-{~!w%4fe;appemFdV%U}KV0bzQ(%XCED zPVdY)4CCys5t*MGN<4Lg^DG2v#k0dL!LR$XkqC9(3B1;s?Rgm-d#8Iv*y*>?r7C~k zsmiPe1YViM@)WMG{7zxSW4xTW-Q#uu=e;vTR#(TO{cNS1@f<9FD0XQD57>j)Vcy6z zE3xkcf1>J4zfTJy9ctLd4IX!otS63)SjEzGQy-V;H4lzQnt@fPGOqA_C7!yQjs@&v zw^(occItJJj0~I&E?HI`-~RjhN{wWfMx^J=yf-S5K8t-JHvM&BREaw*Z{x0$n0!lV z5vtfhJN9|G3ljN;_80zSr)=O->~|-8{4F<>uY{^C7rh$2>m^>54^n-XAkBriQl~CnL3+)Z2UT!Vyc{ z_Ax;gJKouv!y~&;6ztuK}D`cz;H~C^` zNJ@Tx8v0l+xm`G-RC#XF9^yw?&<%#I>gl3H4&l`Y>F9Dt{G9Hx>UGpY#aoo*w8~b) zM7i4E>IEFqn^{?Q^f;^8sy)z|Z>Ru0I!S}T&FV8DE^NhrDI?JnQd2VC}yK4|HBOg!pMUzL^*&3hlG=O8R3 z&ML$*(%T#BAJr@=URSKSJY=bY0_%1T%?}>|H6^C4?he91g{S8HU?kUTKO| zADQ|rliP%3_?YJ{nvn$ZV1SDC^rL67;VF6^Px^2Vp5eak9J&qQo>_(#-j3cI%#@!M zpntqe(r42`SiGR^iBJ*3-~A6Pdxr3?Z?soPWw4%K0JXKy!poG-?X2Q{zm&<7n#}n z-?U#M{YLuu_;ry_ zaJYZde(W;+PWyT3f6Mx&{mku+zCdliNYF)o*KX9!6O8Y$r4;Ze@RnFR$+VY(D z9_e{!dM=1dd)^&htnT0a{v2XML&k^U5)KXdqWtCkie6E%dxkWvb!%EOEZ;ya4VZm9 zt+Q8J3Va>fj(cC#xoiVw|2~@Fw#r$&KF>QP-*fvRW0}QUf8Xg+8mZDntz7$0qEXF3 zz6p{{&n}nmyfRX9^7`()sP><#NfulX-p7|!1@9fhHtQQ&1nGeIeGJl60O_q)`%~HG zZ?nJ-?5Pp&=6MXg1HVwJM$0cLo?6Nz8Wp}p_vr-=<2kCqv65TVc(Feu&#OYgcnnxP zlGdf&iRIm!DZ#-_c;(gui*EBOzJ(00FE<(`8HzV`)bFI9bWu+@# ze$STFk521(3hgm&RlRMiR@SWKvx{+dlbB6H_Mwa2MIFr@uf00ml^8&AJ$vYLe0{&y zQ(f1wZse#qQTb{*riVLrbc!u&U~k}Xxn3W)6VQ8&e`F!~9`{vA0<3kC*R`t_@*o;! zKvsQqSY;0?wkli~cBjGys`q?)pXIq9ODQSc3Ld3kZbz*Q4a>YR)*+hxl$gT$Xhd}xZq|EXMSAYulPYa(Fv2=B6tM>T&J`~1*HE~v-L zM9qLH@#OXvF;g3M`-L`rY0~ytY@badCuH9u7-I&1O7M-KNPz7JE~D<$8Wf9*!UKQOO*lT$s0VL+eG{8?(=3QT95 z!0)HU%g9%HyJow~S+0x9q)w-|GZ$uR%4PU`*oCPVGA|KaQbLe#B*S%iYOln_@73=*xQQquAJvvax zf0n(!(nfz=M0hqD>@BrXk&u-N#j|1`$MAaR&H{UwCYiA+S?L9Fs1A{Maqnj$+;`;D z*hz_N+HNVT;^+YFqA8Is3@_7zv=l#Xga~MSeJ@Vd^FGAK=R

f9)dFFHT|6qz&IMVlOY}42w8@#+98Nw0to= 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

  • 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�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 z zZ+vK6v`|JdJ}bO@G2<#Fg}(h(4j=0L7}qf-9^vL|9Y|I`v+bw2@G|29$M1(nPci}n zz~*r#eBxJKH`7B&Hc7vK+eBtIwJ4iPe8hi?by2-g%gT5SP36<%dR*ieCrH#EWzO|% z7u#(rCr<*$NRC9@`aeqw$97L9ReObTH@N0|jk@LM7bA6*N`v{9CSMAOSi_`2lOS^5n@ zaY!Cwb}<{?9btSYU|(oz>j9t)s=5ydK?R@N&+sxU!e%;y+6Gyt81Mr24IFl}NQ)0Js7|Tw)n8lR~?Mh z4Wjg6NOTJMrU8*7VzUH@lWOiw)yh&j5rAw#Lok5jFLDt^FmZiX`5Bf?IA(y zeUjfYhC`ZvNSD?P_CIdzCAv$w-m8}BL33j&GsMl@$!YxMZLqev@geIOwqwC4UUU0e zJm^DaEe{pvXU4(w{W{BZVMU9ro0yB;p8nUaPKBugpWU`41Y9fI)F$$f3!5kFGw=3y z`2llpBAYRKteKKJIL{Q{o2h<8vrigycHvyJz$($N;xz*ozTy|BY7iEOA@3yN660R zt^z@~$8El?DbcL^pkoW}`C30?-yPUF)9~0Gt@}C;(-lf~9Luy6(%sUc%UB>sNN5Pb ze)Z>n84BHvBTKfVfL`!+?0sR4+`gek$59U8-8?BU?uK$o-z`M%CM{f#&&Oki5q^td z1~MpI6|LJc*c^!9RjA^?I3Ebqf>$tO_O*P!2kp6Y-)6IMY{Z~lMk2R z8S}ZM`Y``5`QJ;uFoGC>zYYLhO{OVOMi zEv&9-^_dezM9$zfC%jR&Fq1C#{jNGS&FO04@Zya1xOoS6NXkv)(;c~{rpTclI>0V} z=K+W(KocF9s-(&bjSKl942F<>WlxrinQ&)~X*xn-l#7*&l669uV0{#g?93Y!crrD?Vo*KJ^w=kQZ7RCWV&0WaV?Ykt6lGf#`f{4 zjeBd;m_kjN;@%vmX*KLYrKhO)W6cAR8L=w0!`m|SnrUY~Hp!k%R{?Xt{}O>_{Ex!H zTUOuWsb0)}sbG5EwV>>xX(0*@x!5GlLpkC?Dmfq$I$DZoTm{gXGy9SL?ExNtMbH~b zuiO8^`e)ZK4h-o$dwu0lgYR`gQS`C@yNCfr%!zEugLn3#lEN2tFheCvhZ}A7>hpBEE*SsiID; zvn8B^Qv}vV(Zw~z_jeO8$Zw$J4?Aa9FotTpEr=gswRZRDcMboZl6T0Vpk=6H<=VWD z5iij0>Pe)Cl?lXrF-jPJ6kTNqQ|f7uNA)o)U_<*#<%m;Uc+Rb~yDNU~SJe72SubK!C-fxrO5hOsGQioE2NxXg2n<7CBA??FsQ$^MR! z8vstFDsC1qV|GyMCK}vExYbj9`kSd+z9gc3O}bosl}HjkG|$I>9eXt36ea%(`&mu2 zZ7XdAJ>D&aBlUlsFZ}@xD2Q<^hU3JzacRDVmF1kaX3At)DOQ89;x_Tux@e7`95xK3 zF%M;zV?(pMHw>@OCkAdJy&)W#CN?R2|l*}>?6F4V8JkVVr9v%G)n9RDRDsU*n6Wen>rf7Pezt zp>xr%XjL44!vhiG)eceo$w^GW(z_Cm78r(!`U+} zP7py6j6AmP*{Uh2w%Ema`{GExU1}s(Jim0LKUWxkS$U)VlG;v5VZrYyB_M|J0AG{9`XaR4!o(p5aCP|! zO@&*Gd#i5z~p;h;FYt zee2wF_g;|a4MK0650o4e5j4E~rNgCc5Fl>UeBIn1Cwf zZCn~k@YFyK71kUci&F8aa3=N@i7G41l)^rIq+VTM*4Y#sO<3*#niPB>G<@7{v0vDK z```;RAY+&a!T1y6jrzpaSkuSiol;*BQ|K*c3g0QP{{b!--OVpkz!apoYdnQsfXmM-zHwe;t*SE_Ktd{h^D{KBu^1~My3{aj*!^*l9BeEQt+8VzA1jV2< zJN*OaPn4M~L?`q(LFEHhQyAs14PbwNZKB2iIXazH_gQ`>VYr>ZdW;gdTPutnk(9hp z5hkM%k6no_Ab5;1lx~I|4q!fy7S~+0Rg9ak<~5Cif9>V89Y+H)Nwe%IQtCF9g6887 z&87oMvFomV&N?`aDFff^;*0t^3B;t6HHL(R6BcXgM>MtMQRtbipPE7)3qF zNeHF4FEJ3$U~E(UsBtzQO5Rj|8+)?7v6z6L-+PK*2%#>7AfJ$#;Vw8(GT=#=RgJGj zb8AUFaNq)_d3K=C8}|_i2zx%gz`cxzE*>+w|ol4>iK(0QypH%KRck{TFXsR}9g zg}rajmC2cJq5a;@51cr_kO{eMXb1ik)sz8C2p=h#S7Z!-ZnoH1Z}tJuraFdFjyL}@ z9l=@G;nDI)sb*0xwe*nfZXPFMu;DhWEjklXJuvKu!#7xHoB*8bnr3%Pn<(1c137n{ zx;tPvW}1jB(^N@CMY?Z)b!{Re2)D}Cy=x0xwUY3mBxno1G;K%>33uX*CKv6|?`p-Z z26W{jasnK*ndh=?zHFmexH}P1BMo8>yLEc(yAvRRg=1s(^1;e#NK&K^X>2N__h<=G zDL?p;gP1oqncItqEl*H1(=cr1E?blC>0SDi;x6pl) z_(|=h@hf9D@&-V@k_9}sbcgQ&j%IbEYd6yXR7e%d%1oWpwiVLLd9r{e8oy&*sv%6m zNc3dASa_8#y~757E84Hf<%+K@`x2A%^Ap4iI!O9z>s*4AvqQv>$E3F8X32yc1l6yP zO9hX5aTmvjsWQ$o^u1T^Oz5x=JG;&FbT_6GRC-%L5hTUlI+{4_rpJ?H`*~fIs-x4h zk?daOh3WuRrKd-9b>=Gj%y!d!rAT(-uDP7!Gw+*RJ?Eu=WsA4T;HGUtTh1$;lRW5# zeLic$aJ>Z?87boS5#>&~+h|)DneaA$y4SK;r@IfB!uwy_$!&AiL~Ri0CuK$ zkd`?9a!EtzOMgiS^Rz0G7Mh+bES-*QT`FfCi%swikB;;F&L%w}G|=DDZ)(m4-amN@ z2V$7eQS`-s22-us;78|SUx07$gNT`(NPuU1n-`|R#%}Cu64=DPwtj>B4Gy#>&0?#b zmH}^uGWOB72}>@TMQQr|u!s5l0G4}1c&G&*R4W~?FI%Mbq;uMz^qa|md_+-LD)=vj z1?SKYeegTB%~?&g<$Au!MkL94vl=qF#G#zAu}OY^k)9yHLYW10-A8p>@LIKZvpB5` zfVyee;27c}0yzhF8DLrN#CIO)!6q7$3NU{(E?0K$Y}-K2N+?*hhGQ^T{<6&@(ACO| z85@j@(6gc@*ey@LN)45p+F8|FPh%9FK!`&Xgku*eR_f@@&3&eLR~uzL}T$PnxD z5shbNrurj~`NVH0S2PwCL2APMOx&w{f+3}D5AZ6MjTM*FE9&0Y=Al2eTRI5X6m4DA zpaboGAGWkK$(FgHP;^O$R&TuJ5bAPyqpWWF4{i1%5N&Acln_M(K*@bkKj8tR0y(K;91u-IyZMunwx#VDo9t}dR zSXZfg$Cje8N;jzG+V%n))w#Lm6+bNus*)&MV``Bnb6Y`wI0@1;MfnBOZ&QciA>GmR zfe+nQUUM1u<&uvUB8TNS;Gk5H#M7{U&UYqqu8l;C#X-)p76_Be34*#vRsw$8cN5k7 z)*<+bdP$w>wT)I5E#p zIeAeW;1(Fu&gvOxFE9sBE&*zKM}q|(ar=^yX>lJM8k?ik$Zy=Y8K59==QEstwvcDe zrX&bQuzEJ@bOCZs3}7*Ya`l02JrJOI=)I`q>12OYbM|sGvl;m|Gq}cR!~UoN)XX6M z2^wnVK7A6+zIVWN$t31ezhZ}p1gz1YS&d%_L=$DqTh#+QsFBc%@ssw>My}z(tZO z?+VHUZa>ba>!`yq4b1vV-j^a*Z=@#KdXHaC?=U%f@#l&XW$Nvj5lYm55|j8p7{u4N z*Orz@vF3X*saiprqAY%8S?w`Ti!^t0k7SVy${{PS?Ap*2)ieZ$Cf3!9{Jb*lAaN*I zaRMUR!}o-8tFlw9&>4PG36U8egd4MBo{=vO&0ujUCSLR7rXyviyHC=jH$DZW$G;-aFW z7VzmO3cL61|6I<@IltJw+tvbYDs$ypE7SI}$?kWDi0HZAxag68kB)UYF)p5=%COI43+ueJ}B+Qlg;DTP_frbQr%CT6OG(^d*exc+m1%? zNbB?4ahmQn^xVmRXK-_i&-!$n9fLyCGdA4Q*+d<=+EE>VX`YU+!@H};2Xc9Ta+8FG zwwY?9orSXN8%=fZ6`WWup3knFHRmXJEv@DKJew`w(UY_2J(+4^^Nc^|@$r$h2h*k( zGMWZU-(QDpx)0sZoGRxb=QEbFvA&4r{^~hdwB2DW|9ZTCPnz|GKh{*Eh3^<%W+;oh zolMqUJx%v1zUQrKuk~Y^o}c$)7{|kBF?!8trRkYxcorYr!N>R1&MlJba!|XMU41wiQMTOP zcj-G7-p6e2t9yMNPcpZ(UZr;}y?DH|H_@)3ry!%nHk(kq z*9pFVF3qVmF<;Y>l`k&W^KP`rr>3EzkA?B%arPbUVH{@Rm{;|6%z*1F$Q@e~EC~#Yp3*$b?TUUx5x46* z9V|)@hhS~_Wf|-|>j^j99&2l%RA!LdwomQ}zO?o}y|-;u+n4fj!_SW`oF@xjV|%IA zByY%yDz$<~`f69c*X?Y&8nI8^4#$pvRtc_Yw!=iT(TtmOPFt_D2TsSjwqS49N=Bx( zDcvj`^Wt!D+j^3R=g-;%btj9JYR~6-%;&>SaF4*^-HnFc2?j#G7rrYvL-}JdOuv^cie_9qV}4XRv)u&)#JiB*u|f27x48W-o)5N!1jq@w(e- zmvU-s{9W!}mGSYj8|u|j#y5~YdSz_8$0*&3#bU|8g8_$s@89xu7&xrF!=Ua{p#Sfi z0P6TQ4qetA7|Qj@bh7H4&Y5`6)b=N<&Q;po=yVI;<@=a+(dQ^e?`6<`ysgddn(E7L zSRHSXZF`@QQzxVI22wcWM=;N-(R{d(UFh4njicw-iX7gqT0Pq~BAlRPeGf;ZekVcG zSub*G=3P_r%`vD&IV4ksUjx0#@H&|}_sJqq$7}m^S_p4-vp*-8IZM?RD!0q-qpl5K_NB^?F8JH61h`g z)(59A5i03%>b34{_8y+;yL&k9)YiRw+SFX~PkWgtW|qIM z;`sKlW=}@v+4z%qhg~?#lp7}xBqG1OT+uTUY0mI_o48TY*X(A0GP!-8KW{W&|sJj7)|cs z^7S4K7wObZNd8#E4eZqnjTAV!_aZS?vo6dL-)#`zUsrp!&_Hp#%-Ai2q0!a}0HG=| zTy^EFnkgPQ=6!X&IvN+Y)-pLraaa)6oZJ24ATTKI(9~RidbyUbQb#-i1|E+5l>qsC zWj9)P`4-o3GKj#_nW&K^V+4$J$YiLTC*#nyd| z$GlnXqxfZiUB`;A&KNmYmab%BlAILmB`Tr0MUM8JBv)hu1P`d~2W=k@x|uzQe|R~nxTiqJEs#(8_QxJHn zIZrQ>SGO9^iFV-Eco03d)@_wuZ|kPJB=s)UHkzHR;dN8jL3*)VL94l`Wryo~c)5D_ zVlsVED)r=B_O zmh+7_8azH$JX?LT-J&}O`(+W2vTbS~8vg{YcXWV)s+4vLGJYR*{5sCYiddWb$26Ws z(Y?aEc3qD$^%+js$9!pr=z*lc^A@8QkL+h=+mMS^!LSf?6) zV-Et&Vg5l3ea=E>DQMW(q*887vBR4olW}u>8E^Gi*|D-7Z;DWV+gnLp4>heC@lH9eaN&$cMeM!L+V!NjJXDi(-2DX|59bXK{GKFjzLoc{`M{vwsJStw&B`urfss5PW`;vbq!5tbFtS^~8 z3zBPPO%(G`fM4yNyZ5$phnMLp=++w}j0ka^_inXI?n*NL9JE#F?eSLZHemAcW9qqg zSDo#)d14JQY(^6wPoHVGeBFb88f9BnbZE5jZCA$!^l55>P~5$2hdgrdIGMmpbNOXL z@~0UGM;;rQw>=x{?2*!KJS*wGi$rrM?=zkaG~KDJ@nzg(Y3Z;~7js%QdwaHaSI(AN zCsQqLO8i)fT>Bm{YiVZX_Efd)^+oB}z{FEn;G^+SnOD;sow?96!aAnLq3 zRL7Azek?41|BiGF>&>0*tO=tj<0?C_>Ds=X=HA7s4vOzNfzO6FOB}3OJs1zi={UNV z+gbW}d>+JiW;bPc-L<7&ChzdY5tD=Ko51-j4tK1M_lVf-G&nluKp&|MSLf&4v4U&; z>XL4)Zke@=NM`%iGCW#;r}=$%nKME5w9bQpn>^yeAcy^PUj=!ZO;6o)9c1akw4!%W zW_ep}#b7Z$WOvSXCu6oMTt;`bZ|&lNFZKSOX<#HM}g&hP}D-79x0M2KfpJTl7UaePr zx^|!R+~jlU~@YJh$qJ6ywctu`*J66ZKFD z)eTWY@4g#aH&O2dKey^0-?u(D+lzhb9MT1Gb;vK)!PA^Bzb|%cr+8NbPmds6y|33| zos`}(|134w4R`K;DW7_NS*Ky9E^p<-@|WjsN6B{T+TJa=FK_rhyIsQNwt9bxTRO0^ zay;7FV*3gPc-ZYWQ@v|Do42FvOi;%@4}YK+?<76j<=&kp>238{>uhqQpW}3YH>%N| zpwJJ3!{Ys18*}?!b>OuyP%QM`EmZNy;`~H(f3wZC3EW42r^oT#9*{_*;*d>r4f0Mu zt`GS>JXX8)F$)gW^02_{)?S|D;rs?!h=zKb*e`Xx)l;lpA9UwenX5SU?BH!(7Ub6O z{fS+aZN`@GkCj%R_@z=jOKUmVT?xmhXlR9}M{|evkXbId<{OevE!yRB_Gm?tVw`uQ z^0vMktB2`-_^0#p?Uh$A714V2*{I;s&3%4PTfE8lhs%xD?fo1(<8^SEr2F_5Ec7z8 zy=2k6g@wnVt0@>WPMRFLw7VS~c)1|UZ$H=w^agM`LHtJ^6F#d#p+W5iqSL(>Osv3qUqxt=HR~ueL z_x(Il;INLW&@5eVdUGC0F+s^YyC~)btYC>*x}0?GC~7x$KG!|#;6I;JUs0Mwt>|QD zm;Q2Noel;*+(+&u;re@VwzuPave(~jtG?5x)g<*@fvU{JO6?&sC=7W=7h7)pO-)^`5cX5i^n8vA}otHMU*!@b5ya z+_8a{RXiR&{8gyG>+Z1skQZ@od+WS@k>hRrNIUbyn`gOPtG3~$^~9#*(`s?gwZp^R zn7a`SzxRrgMpt zcz7O8$1^erJ-!Q{;bvOj!uMeqi|OZh*`907w;be4Jz8w7noY2Su&!>?5|~qILG&Vd z7W(dP6l1XOifSal_Li24Tr4K?gQDzz1xmKwW;vVyJy~OiXv)l=tuebT{LW)xh7ai3 z-uF9uyt++;wa-3y@qSN>nx7&D^=59F>gfJdvT3rsmS*O6Fo||!JBmkWw|ULe;n45y z=Xk^>{HRXi<@5rdL+rq|L(_U|zml(>zIuS}0YugXT{qI>}LuStyZ9W~mGe@zW{ z!w*_grt$1*If-LiZ%-uQRJT!Fm-*UdyS#P}AKjfT9nI;S!7>nwW-*ww7sptS*vY$J zKJD`vZ{k=_%u&(=!Q=g|@LV5%Im)2Q^?dUg8Di0LH;AKjJoC4+lg)jP8%BM$mLCI# z&xw6rizb^T_pUft!7(3Qw>mRPf|uck*F%Ws&+BcXDB(1KdT%V~6MZV(jV9Z7yimg_ znsf)_ba)Ov>Q=Lsw=FJEdpjQNiB`ZVsUJiw+s##6rtDfxipf11-NI0RH%I4@dmFw7 z^QS+ZzWi2Oqr^A2YCULP=T{xB_QibOJzG|g+paUt)1ryz<$8Wkx{rQp>Tau!Hz&u| z8pT;(FqzfCVS932vN@06-oBn?L4;P@)Sf**&SzCS+qZGMM|*XZkN9{Hrru_}d~q+{ z9^TPlzqCX%9`43l$J3O5UA|O!YdxI89RwqN)7|GPIhc7}&D`1af%2uwc4y#G>^WZW zernm2i_exXY*;^z!+DS@?n5(P&##`XMHC|t0L(RquYviV-`t5gn4faLMh^m)oWg`T zgN3icaNDKPAW1U@lwjY-R=+7V2y|7pv9tS=Rac{eJIfhPrnRExt~u zZ$-0%d)4CGq_Xs2x_@m}@pZzIvwNNFUhnmFGoH=m8RoYSucGvH8qoW4I-Sm|&31dc zEkhp`1|hvq`&K)D^>v*b9;@A(=FZca4fw+j>gw^3A2xZv@5jYscKjqpRvrxNvAa&Q z{U&}TY55-ShBs2> z+g1E%_VswK-Sf%e`0n=gU(xV2G;r>}{XTY%!Q?_t`)f ztMvRC&KFn>h#!S|gQN1k_b0-oz1#-tS-Vk&O_OBHQ!zWc z$D6Wzc42UTeLk2sx;N^q^|Q@Go8`?+Lq#k?QQrr*S$cfFx7qMEnuMu2Qb*U2Zsta{ zd98DiI2&Udj4>({qtkPtD)vjyl=V#0c|+L_k9PIgBFojrL-*Sbt;Zi-HSy3pE>EA) zZ2T0#e$Nj|H$UG`&)537I6rsW+w45K?QZk^zUIk)Yn?U1_lDy1%GTrMXjHw{?y()3 zi=m<1JU%&ws8TkbQSjHuH4485`W^<8n%W3xI zN?fihHy3mm?-WBL87iOdyQ4Q_<*Nx4e%&OsJAFML!`t-qLc=cRq7u5@9qPA^4;3+1 z8b2$4hK6!^|9WoUaP$1*XM4We?b`8dyf=+OvsgI+&CktrebS4}IX9a_lWXk!7VGJB zJzh*6gU{{to=3sNoji|v_nwTW`v^6&VzYP;t=E2cJgnB}?L@PQK>$ravcDGRTfKj0 z^t@23`UJ#xuPeQXUEA8WD(`>)s~gR#`h=Is^4J(2f8-#4zgCUtn6qSoXnSxrriwhp zJp+?|u{j(H@c!-pIakl?{`KGgo2bs`|MqYHVYr1JIIBpHhBtyfKbu)O-QJtnO`V zvAdz$e_=!4gGmkG3VG*RGmcq0`R(0kYTnEiVM}o8?fzw{DtaUhzho`!Q1CiS!p9Fuz$^@;3h@m|g z473RB?d26lWi@bs5+|=OI-~{7)2rJhol_)Zr%NVo$Zl5a#E7Sc?z4^FBwL*)Cd%o} zf69}ITcl&ROD3d9$9j_lBunL*&dHLS4r%8Ukz%zfv4kU!-|AVqu>>vX_k0~{laY&^ zHHZ{{#B6gB)I%)QfiWGjIyJ>11;(h>a2G*DkO(P)lpu&)y`iplBAUhpJ|~Gy5V15U z?GYQ9K2J^J*SnSP&nzE3X%laP7RcIffAT^o2t;jaEb%c<5%L`i7(oV$b{j-A@T1CX z$q588Py-rps%auMfjLZT9UO9Jtub>j_2!O_77h~ilgM-Oa%E}tY>!o>Ula_%R@sw{ z2h1pAo}k9BDxD=_524@c8Xk&Fq&*lZoCLPPihxA0F6rCkxA?i!mqFmye+U&+ z{#D3M&(gNvhb)Q^Pffi^o+XiwIjbj*(z~&^eZoMTSQfe`^E;fe`XF zU?fr>0vNN4>qH8jP#`fD@^NJ~e44SIRlWvn1)^e@6Ayf_2~--Ef6mgcHml-jVNOqH z^97MnMTdf6<)Q?UHey(^+E5_@Hf{yFW1^bJ&q_()M{Nxdy(Sa3^Yj=8#CX;|vP zo-d4e6j&OM5P?L#tL>usbfs~o10y;D)dJ4kjm9eK^UbOxF4m|He=I%U>O@1FVgxa_ znh0@Fw;EfRCg}07E)mwMJ8pw2|PjZ=ROD43Xu{@smAdion&beA` z;u9c0xz_K6sc{*@g(XNCscM49UM$7bY&cuF;wX*evW2q*?lf5|#5W&R=>O?}K&!)oaF z`8ipw6nNV~-3h&67*Q({_7gbK!M9fN6d#k4Z4sCI!>G&;;8g?x`7;+8i7=;qF1lQC zB`#~;{5^ax94tzVGq8az5b@^fX}9npbL8)&n_)C6hw~4`X?dw%?qnPo6sUf9aV;o@(O-3nv=Ed-}(10Zl zu+&BY1mAt89I?s-CRQM51w7S$a(M+j3q4;bHe(JF#NDHXLwHSO9N>m-2;Ny(Vk#44 z6|&SGC8^0vOju+Ougb_}2?n0X@A8})MCBA`j?Y2(hH!Kp*>4mq5?mI5A6!G6Aq0eA zP&Ht5e?ry6Dqqh_ie#m+PX*kBeM zuAEsbjjSnMW1K}MaAvNM$Sg!Dqz(q5YQ&p2!w)cd8+fw8jJUvrrRQ8AQHR6VG13t6 zfK!Wn<}(u~E@F}l_i<&)xJm?C0%cHea2Y&|e{8!Pq?>4_18eOz%H5F3eE;HZlWZM{ zFA`V&iYWz^wRr4yOmPcAtl}3_=#@&orKMx~JwDc<=W^F?ef|UE`#LXiNv{1%jA<@* z3LPb}o)Lx`X6WG;i~6;a3o;o)JK>hoBk1ZngMA^m6F?z#M*n32Q;r5mTC5;x@ia=&FP$eKSx zDCry-57^03)9>{+roOn-$Bf%Kt;7WAG3vMeCtJN^H;WTl_cwZzYKW(8k2zg5fB9k$ zDf;8evcy6qh{^qo42?zcrc+cS^COCkEk>`i#u|3P3*Rtd*VAddDG8q9rFmGW^mf-#6}TEZ=r5A-${^CArREnbH0-Cr?J4( zf$MOmDTaz5{}Mz^sUw7#7jR1De+L12^Q{Twh?IJOI>}2?`x_(9niNaKIJI!c_mswa z+K%_hm8`H&z2S3c?^xtV>GXA#@0R9q0w+cChZFv&>KaiUWmIPbY~81Zj%rWpI3ihv zAo$5J28+X!gZ-KXyP|UDz?{}@9GQnQm*l<}Up*Fezj^zU+sY5m+v>9Je@L#@2#hio zf3;VS7aPgpXiI+g>< zrje#j5K~=*{l%$`2;u@Ee^Kc_$0Nj?&}bOeSdDLHeL?Ua)vk^o`dYJlAx;qDM*R1m zzdS^fMggxwWH#!F(iP^Z#Dqlh8N?I^L60AqTe_k3&=o8ySuY%|$0J5CQ+_Zefb&+_ zdc3@7T(0>)z@bKH8h6<6V-6Mw+ zRKVyz<1I%yT_ctn#D}fPlU8yIy`#P6{AVmVMbdganz$KZR;wB^F8-)JC>^`4v(XzC z>6suhHh*-dj3pUUii;LnmB0movPOQXX(F-_q#6R}%RL3tkYF}q3r%O##lp_cZSu44 zwGLvTW6n&u4w#G)e}{lb3FeXat05-m@B^qMM_ zcqcLVSO5Npx$xysZ0rHM{u3wNf8EDe@6rKC9wl-8f3It@DC+%}KmDFwBm7|b&En2~ zhN~B=t?;joL`~G!XVNB!@}#c|dKSfSf*oN}bwz}TsK;F$`us}&1y>otBnMskXByPn z%@pM~U-^Luhrp)Zt$h`dfQMLEgQQUj@||*xv&vJB^vdeB#%rQ+g_zeX0sg7}jJq%7gyH6iKc-fW7dG`zrtFH1H#r>iE+c$!@Uzj3@WhI z2>E5u!>|BpG2^qaUqEW910FK(_nX}=42dQ4f8Giu9y0?qlJ664wX|`A|La)uN%Qq; ze?46Hzto3hB00U@QGDQu4Zc8_uLkOHewJS8f6U|8+f(2Wjj6i+>kIJ6K^h&S@+Cj! zULRJK@}u*{F7I_7hFGkeysYdsP{ce8Utbs@;1Yi&J|Lyiw7XVvcutMxzY ze{>b2&%7Oe5?g1oP7}us#8hWS^{>2~8agi#VI)A}v%E(Rax&UmK0QC1Mfl0k6-*8V z;IQZ6)xhPq`}mMYNb+#f^&EU_WfDVEiKl<$Z(m0x7teZ+=386&pWMph?7N2<@j=ip z{}#?wM?dTTuJZ;+>v`Ci_#i!=yvH3Ne?Qzlz0vRfZb+7nUD5BY5AyjN);V%bMgmzE zAV{yh-ftFI?L9ctNIKFW*eP3I5X5RqT4qY#PBdrzf#$ykG|3=k(V_zWRI3F7H$$Q>O-u|cA!F>qHi z!@(q}5|hyg&hvcurUpR_8OSk#f63=dh%p?WF(*dv^8y9^Gkigv$hfjWr+`;+5QYwe zfRBm_ueIM`%4^IjP`Lt8fRyq zMGAtLW}|GeunYT%psM6Q4$g?6&|x7*h@SV%1+~<_!`?C&!1nC%j@v{K2DLBF=-(o4W{7 z$;Xf(NDT32Gi&OA@LJ+8L8}Bg_tHV1`F{BRw)|+Xn>qdnhya(c=5iK(1h`C=Zmx2j zE5G^LIa&H=|3tQVfAp>ue5+82o)M4o@BQ|e`njs2#57>9Set$ z_@*^+;)C#G<%o_XJ{Xrva@AR+AwBJ{U*811r1;5T0ebxx-@$z)qvwR$drw>K5Nbb*<<4Wwxoa@)8`t?Ekb4w5Px99ZrAHKfn z0cOD+%c0cZu58*Ge?jK(A6~QnVwj*vBq!4Q-_$pGVq)kHKYq0Ik<4{iO1}~VXJdDs zS}R-$4am*$p)fMi_Y2J2(GVMDgptH#y;d|fqr0|hs~onmicnvl{>e>j9i&$5xe1oK zK!@tfO@^a^^idH{C>Cn0H^vZrVi2e>X0pIk+nvgCNwH29YT_ zp~BIVD7rayH&(7XQtAcXe4z=dL9UO2M$u4_+zG36ltm{Z?oY%c1Noo>iwczap3&4E z$~SdJ??;)Rz?4PuY^`mk?pK+-`u|_@^t^0k4cwLiW5pWOc89&#UkJ?Q^J`}}KP z>(>Wx-XMJ;++)CqXuU6x>%OY#=%?@O|Ma&trzLIjNB{Z9t5U3Qyp4Np`}M(!KJFS; zAf6Vae@VMOR%{;T$J zzS^h#(LU?GM}~VJfu+;6OzUqSO_w^Z6JqYRr33y;zJJ(6IOQ5wC(gJeI*_9dj%N6Z zhUTnspst)&>HE;qU(iZ*hS70l`+SE4F%nCaf0$%zJko*5ekeiL-BCRW7GgmW>G6b+ z|C%3vmgnAAPYew8TK7}`BZ!aszSuwRKVA&!wL?}tXf`u5K~FZSYiCTlZ7e5I8S^y% zXbEZzAM7kWkKwySxV_t+==-I|;gDg%R{%tXSfD9T+V@M(x8||YV{awcw_mDB&zSaD zfAaOI`<}Fny`Q}Q=}-LnlRp~x+gJVaAo|nac0(Dr{km@->{|=I=V6K2V@ek(@Qt18 zAK3EipNRCwW9{?c1P#-zJe6L`*y)_(Azn}nNoBQsZ)RlG`%a7)8dEf)iRTJb%PAC7 z8|`!tO%olGl|e6jg?Zs3W??8PW~INXn) z1D_X~kQ`Uwm00A*T$wR69DIaGz)yX|O?9&=bzsVxuxbT0V2x2tkI09L3cIZuX#r`B ztc=zdCouwYW<+?J?^xQKxJJmPj4zN=)N8Ce1G`n45igO(B5r2$<+G`lD;_bpf6yt( z(u0l4i=DF*W>mvK9}#wT>w<=6M+RX|9EwSXdB6YCT*0Sa*HS4NW63Av{>P)8A4EHi zvY&o=PWT^lEg~`g*ss>{$^RRlB_sY1_wD=azdTO%(B0NSByfBkMTRD*#Dy#AqC!63 z3aEU~{uzPPoet4NY5@NN$(xs6MFmcjvW-R7&x)kBjNYHZzE?+sBZes z85aVrb*0xA2kC_z>m|-a2oHgPI~I(x4FawqmUyf!&q!*8*TT?w^;d6E&P*U+)dq2r zfv@W8R$c3e=(wR|qn8AY*k1DEF(=pItE&BjVu46aO`~WYMkdL)^cC1}f1uz-`iXi8 zM}c+eD{%8tZ?(n0=O=z=6q;|p;HQTydDu@6n!eFjhy41(-=5JoSN_zqd2;*3{cnH! zA2SW#+>Laf#oruGwtAb~T#d>6Q`~|nR**Kouj9v~IKcEir(gZCvjo?F`h0JPC5eS& zPI|t^xWS2mAi@YJLYyUmeC?0?vW$Vzq1SuMy=F`+);p-`(BgCJs{fy zD?6!CAgLwjVhwsf*+%f!UO;MKIJhI2dLb(j&TWdPvoj813WEN4$$Fp!R14P9TR9-1e>vj?_BZ9*jG(i# z>e$yG&bA1shQ&h8muUdna3)q!KVQaBAoC7CkGr@W5$UnWoTEP+?hmj3r&ri>wvK&! zx}lsaptnDDX74)|aG(^1iq9Gh60REGlxD z@S^t(nX)HL;0;+|f1_Lkh^Zk4sv{A3aE(jg3wax1ASDszVAx-Kq7yzf3^p)P^R6^< zG%?f|&Z_R$>UE(=|*p2+FnNtDYvPLmi*{eQlh^qnp7>iF?S!a(3g7ociWr@AXow%N}~3YCk>PzQzHkeI5Mq1Nxrt z59Y1m%fmyxOM~yeeKFK6{;|hR^sS$oiu?TT`*L!xsO0+-OZ?6dCVJ1yzViYB$)ZU5 zT0i^z)yXngaabSs|@l6dIor6d%3@O@gRGs*diA9Zv zz)U$*q=D)nA$1n9jabp3f)b(Vq{-P&NJ(Kr*2fDdfeEp@0=Ci`FfEaw;r2B_ta)rX zMLLQ$DX)?Adva!BCTB>Qd*30)#;kUeEHb3VCR{~We<%bA3oM-YNJKyTUmfvzt`F-4 z!ay+=rZ!nB29_8dM9AgJ19K_l2nMk*_lJz{4#2A2@O2(6I{0{8*CR+QEI8@$iPvX5oPUNNj-ZHAqfv5T zyMvh#e-E*Qm;sB;oLXAn&ya)FDnV`i&& zeJn`*m0SG`X*&KR*JaPSp9@KYA59SdG2iqvZz{dwuXan#-+AFa=6q)Uu5o|sN!!Oy z@fZBr>X{Rv&iUnfBR6oq{H{qt7fWr>bAXNBe?${cehx|0kD(U=nvZ#u)Wf0&gX zf81*ybE<1NX#!DMYg}qN;&&v7MTGPzqYyJfBGGJJau}!}Oxa(SIz{RX#A=`T`!(U^ z*6S9g`~^*3|E#G^T-1j{#7kg;YyGhd1M`*{Fhkc@ep6IOEV#2CwvMAX*zfyslmIU` zh%1^VCd(U2_lTuCt)H%k@H;>L!yg!$e@p&w+8*!QoSBk8KtTW6bNtim{>~A}p2hF% z!N1NbbxG%O$@SCG4_5s-2UmROO}@1zjr7L(@em}JNc29QS|`-A$oSE$-+A+%fAoAM zbX#ZZ6bV{#zLGp3B#Pt#Hfjhb*LWp!3z~9A#NYbJlH2<`M>e>T;s z%$|RwOlOW+(Nsf7Y=9Mm1t{qFa=uy+oaq{zuW!xI910qOU*TNt6|f&3keIkFx7F>^ z9z}@|DCXa0k@`6Sf-x(-~A=x_L=iB@RjDL7sSZNDeLC((7=hG!Sf4>Ro^L^y|1AKvk-sijME5C$^6M!XszQ6aLpvMN# z(!T!xV!#hi>}Si6NC1iS+gp-r!`{b>P$TEl(lP01K#H`GJ~cFHYlX?!4QSM#uXFGL zqTl|~atzGJ;Gh$8rhe9-4WybTgn?yUmdBr|)H-NbF%9C~MvLw*EVcv2f2)HDk(@d6 zZDF(@xL1Q03EJ3=@qy}Qcy@DtwBdw*D>?_P=-yl>m+J?MsZ0Af3K+~5@L+v7x34> z#uBq7X5IG)4ih~~2yn&q_>M=6#QG-jG)@8{=L|2&T8c6d$-v|3NzM%PTFrNCr{%ZP zcsdU`X*Edunhb(#BiFqlzl?E1Z1T-h0}DlmQTc++?t}fv2FBbUE^ojF5EV4hx$d1e z(?uxA#*lo$Pti_Le^Y0*HLQqnx<&|mCph~&B8*E_ypp)8%9$b>K_P&?l9}l;z)oIg zz0c7)qn|n75p64N#o5T}y)UQxYN{U`{c^j}5AMnN(2*l!rK1z4iTWJXQF?-GfgSmN zj2WXLaEG0@HN!2L zWALzsh~(E=@1M)Q+hn@b!onxxLmI zGOT_O5+Pf3+`bPnKD_{y`py2}#Id^#C;3 zXfvpIW=PT~DoIGv=&%2-0yMdw{p|hj;XAkoXXv52hP76Cj^=l$=V-MHrhA+}wZA+Aj2 zfHm+Ue=n(9y4p-+Y==bUo5yh3yxzi^=qyWEC{Iv*@KpDLHMPR_udGNLs4Qy%EG3(gZE zlC4_N;Y6kiaps)UmV4aX6LB(J8iTcIv=O!rjMWZx#KgRdC&ObFQ6*34B_t#X^bhtmO&%1Wmg`O9LXNKz5+%ZyJj_6V= zP`}r}Wi9q+OtHGGHDP}F2$%I7E5wu?dyI-iJlbKvH(hv!XuqyCqs(M-eFJIW)(n*9 z4Ch(dk*jkOCN%-IrnHR^llCff1RGQvD?}?&GZL}O)T2Ro6^ZM(JJD)mONG- zC@-d!n-M_F_0x)#u@I_qq2y2gSqpJ4=B_r+@S$g9>x3?K&~CVEqXUufCC>4*-b+ee zM^08}A`y=nfz@L7=rWU2W+|UkE`;0c$!&EDTKH>I2uQe26?X+>1ioz=6Zzq?e>G3q z<~1bt`#R0G3)8s_W<1VlXu=zCZ6F^J@_zbxI?Ew9BM(78?)V4eGUN#LaTof<>5t#g z=XUZQSJ3(E{T?Sj`Gl^v($9rMhk3)fO`>y$89WC2T4hQnKFJWr;8O7Bpm0%`IhUNc zL_VhMnS!alxaNYkre#`sEJo**e{0@WN2%*?rew=?$)qW^0BZq(~s_zGp9n&=?}SDO&^dEs8jN@2CONn2X)y`rlTeNKQ-7*> z|GL@>C@Q86PdQU3u0{n@e|aFF4r%fNjKG6zVZPeg5z&>Vx^~@K1H3*hq2jPa#~i{bVDdyrx2JbvtG0y7ZIq@rH|F0SEByW)ydjf(#)0BGmn%@+_h0NuXA=a? zEZrk}*;y(!u}7CNB=JTdzkT*P`hrhE zR|?(%V1;XkmtCBD54-#%PjL0ayFJRf8tm{G^LUxJIR|N`Idd^jljw=3cua{>^y$Vy z%+}^m2h2FZ)6zQ9e>e|eF9cEU9I^^A?})KO%rphHDfVdZ(I+>8)HGU!z(c%F`8sys zQ;|lK7^P<9P+uXYxSeZxvFDfPyn*w1@h8smiu(`)7NF?uiMi%9Z-1~DqW2l_vzl+< zlv9>i9#y&yvV8Sv?6td9Ay^Se#EX{dea>SUrX0Dx*^_&+=PxRsdfEhVGVkhENvd)eF&0D>K5}t_UEzo{ zv!%*BSZQajtPM4l7j8`}tGZyoBW83Qo~uqNmjS%NTu}*_AK9ESUq95+(PvKjJV$YW z>$&KJgl03ce{?n;DEgr|6}qNVEj0bMN5rUr7)9X;upYhRkaxc$=i>=%8~Ulq8`k#4 z59R`S^O$3q!!P^IciEO)^Cu3CkQ0bp?|(ca7Cpyb41ONk`Yt9M@-9P+h;d+7KSjS! zo-Q17Slj>9h8M;K8jHjuc}-Olc3i*qkF(+#mY;86e+o%WbW^mz5yL{xpMGQsMiV;$ zrKdjQGcb9C6D1Q!>DJkE(%!}3tY${cGJWG~ZJs!o859L^l}IqLPqbA{jqyPb=Z1Pd z!&Yb{Vi6_w!V+^~bO0LfNv+s98p$}H(VcasM$KsQ>2uZ3^K?Fbhxd%W8&U%R)=Q3E zow~0Be=l8AWS4s5kngQNK`P`+-J$UxDdF#3S)Nf7Ud$qI|1A!u|dfgMMBevsk{tg7f&a zVf^SrjX6v7uhyvT09wBItzsQ-x6I$OCF1Mg*|Q#x)C4nWi6=jSeROz^!xC#?9JLi* zz=&=hI{l4TML%_yk4z9t#?wv}VwNmHq{Z~bx{Z6dddL~*-IbbZ3iSsjm_5tIDJZU|Fx;}HLZ{9-pMaANankpgNYU?M$MV>Y( z8^&5#QN*)p8~x$i@ncS3kPAd{OLEK^b{GvpE?l*u=cFd`qI1yW00z9f+vfCz!WuE^ zpz96;#M%P+O+Jz1xgT2|=tj|wi@Dp}?hM_MdPiU)w{fieR2x4nwA3b@wKjpVBBXRm zzO|K$Tz6G>{Bzd(@5k||rm>z9e_$1!u*joaqSi`R^Zwyz|H1JdeD2#{b-Sy+hd6by z`XNdRMn7`JgC?D~^?Q=EYOO5-YI4Y^b(3)?MH>rREf(&6d)QX*5Yy?Jt^=874;1qh z31S_qC4CVo0TGM(^O^4Ka3z{8Pqbi4V+;_6hrL?3_Ld%#H&4}s#44p*e{$#)<2l}@ zcYvo1P$`>tdB*M>yy5}Lz#Z)#qYlV#?9TSbhr@X~t0LgaUJ>26?y2&@1g~kUJO9Ju zkFS{H3FE@0Mi#!3f+U|A({~wc_>5@bQBwtT#)DoTq)MpDDCjJZsRs`GOO-2PzSPlHY0W!4#Z;URV$ugg4UA=aLVc?R>( z@5gJa7@id7%Az%O0#{exYp^(CNdMXW_-D1Haj)DT85qL@kWU38MDDs!lvljw4tcmX zVoNV$zPscK2RnBY{rGt0pL!u3-(%(KnPKC*=V*sKyi73Q4Q=%lf4(1PoI1}0^?8hX zUm0hf(~1*g<)k%+gBwNL2IqxQT~p4id0Qw>ziUZdH|{t-YRz~e6DYyVW67!JoZcuy z!3cQ}Qvy67u^35Qbwm+}`P7}56)5R->yK%eo0-A+!_;bYR<|PU>khbg2>R2yC@=FP z2ke-yWzT=_YZ%*Me{OGuy3BWuoVDA&cByBukvE~Sv2GkvE&BV{{M3=rTRkHxd&?o` z1h`B0&O1@r%!A^2+Okn|&TlafO2LqM`QRFp1tV?wSq2%PUvJ4+w1RR5Bd+oQl$z!{ z!N5p{oHnv^cho3CwMyq(M`a7lS6czun{O}~Za^Dc$r@b8e=J8kbNkD0KjVGKwp+`- zNMO~+8mLV%tcgT+xY~;!B2HZ$_9i+%acJ`uC(Q@BwSts1U%YLORPh5O4F`p1bvl~7 zK5S@GJn@tLl*0azoSG-ZY{6-91RWe;-R-+wl!74V&lq!$p{elm$gAKqX(qxv$1_t1 z$+8`;`}}NEf5kXpf{JI~7AuKbEScHQIiFoy{ogN_f~`K_0^$1`j-?A1xc zBoj&W0XldWr1-~se0|uAKeOQ;qp7X<;cxDd)XQf8?b2LxD$bdqP&{O+*hQG11MVT$ z1T~1lbG9QB{y>a2QG#(9T;`1v8+ed(Ee<~eR0k{Xrlk-de=Lw zyLYN%$oRSWrLnFtPISZ0Bs} zJHGTugY~4{__1IgMvQ@42<8Wf^VM*6{oW@f?{m2mak5#Is!Pp&@oP@@LJ!&weXXgl z8JzfTV+8foWa`D2xw7AgvF0R=Aggp)yRo8p|E9m!@zW>Fw)JW1R(nuRGB=vk%Qe+g5929;L#)YR?z)YwdQ4#yq1(v`Sxu!!C3 zQ*`^Jt8tytzKaWPaCPC;_BfZ$wjE{fgLvd5dz;bc-Ht;HhQ8x=z>!`tE#lN+QdZ(r z9E08d7*d;iXYIez;z&S;aBgF|EAH^df9Sf&y)-vqYC&jmd_||$s4pM#cXcD1sa8)j zc;>NEuGq?bz%5R7#rG;)f~i8nttv?5mZ;c``_HailQpB=-5agsh*Et7#Db@jl5|S>mQBa>T)hOYjINLe$%9s56(9+V>MjjX&f~WU$VtB_w9*K|{xl zt){Kzdtmv5zP&Q@s6(ZE7Hi*Uf1n_<@O&qq@IRc#)%A0a+$gLSPuC2Evh*p(Jcz1X zzOxN?T@;k+?LPqdhH28R<32t(4RM<9o*Uzq4#nI7AL{-*=9hDNH~7srYGEJUworbO zhdcN~%ZvWf?V^9t@uGjP?G1ujG`;1E`5BNfSWlXCt@Fdw@@Y5+}fs-`M`xC~}g+dXe$Zy~1tp zj~1N`8n?wNxG6YE>UW=jJ1zM-gzrbtc}_I)L{xmN?}RB>8y? z=h1ln;0)KPAjb0@ub)rDe^l=}f07_dV`f8P!5o#Dy1aIA_(OwB7yeaOtLLeBKiYc5 zp{u2Idt%6yUU|TXv!2<#-^ux#ubu;%zii&@2ugmQYvWRt$!TUUDQJ(J9(PP-A+L&- z8a`FbOBb=cOOm(Mi*j7QG%hLMXI6{#`^~=4jgoEUxhBWlXBwX@f5jHg2hl~umG=E} zHl;UjD>V^uv!{;WstuiR9 za_81xGOj&>%C&4a{!r5d>biF`S$7YsVP03iv=**8z8~$xF7CUHe(U-TdWfAraH)N^ z${+SBe(oFak9J!h8qIXw2Bx9m);cn^S5Fx7=*M|T??jdgf3rFw?~G4#UPQz=3`#i> z6-hFiJiNDX*p!VACVQd=b90UBYMDl$W>7jc0m1pHn6kuKQcy3|!kJCs&dN@C9)R<_ zUuu7*pY!she9#%jE}XW`d$wHPEEb2imy>lW80MC%V7hfK_Q0o;>~jeC?eV=uEft2n zA+i7d`m$0p_&(Ty)mupz`?P-BhzQ z6&YwbCuYJ{h~XtO`?WNyBB*DWKYUt1z>?-IG`SaU?T~F@>JxkBf_Y^imjwB8rkHvr zW2F6j4@$avQpNlGs;L6@w)0Gb!2cOh!WV)>E_Ra(e;m%=9xZaN{neXzA)xcAvRty& z366OPJma*vMIWfgI@RA(T?L?>n}S;B;$F($@2AfAY?EiK>yj>Bi)B0H9Ip1JxZ1&Q zqWrLG7B2d`Y28pITu)~m*X$G8X`qegwngY}t6*GDM;dwW_(KZb#%CMu;QBkavgNAN z6+{ime@m>3IkH`Gb5cbHI@=H>f+?#@(EK&nHS}GdN9p`dcGwDV$FQ=4FwR4_Ergd8 zf4QHcJIDGu9glz6$%~zj`P4@356t;Bvn{6(JBQf`H7CM%1`QwA{z$9p&DHhFHF_PK z8;SXmPqfeUIG$@(!AFjgr`LQ9o{PhIh(1Ygf45q$zBT4gGwMR|p0wE#lqhFg6Tmy> ziPKRszLShM2L@Qeu9u;z$g6h8$j^^3hxY*VVBiJ1gx=rAIePG4%3nSa>Eq`d|JU>D23#70M4M}+lf`w*w2kG+l9phek_SFb~u@MExj{mC&HY+0Fc6kQk} zzelg|6Em%iplcn(Zd+{U32N)A&m`t6f7j#!O6y2p@9xLPno`7qrh^Iv=C@Uq8PE80pix~QNC)?`tOt0e)H8W5ZeLW)nV=iBy z%$9$dXII3%4HSJ0(fI=18a?+u0qJ8%R`+v=*B?lNsV_-sX?;`Wd64Iv>W9(GfA`&k zAhzcL|Ke8uLCxD!s6-IDSx8Tx9zWUCHTjDGZ$fnw5+g#HagKRj60eC=HEP^M#BeQD zZNWLnJe_+pFXMbtTSVuZ1rscSx)pf8?tDDg(@)%I5o+Hml z&Cf1z6jzATF4$mWju%}LPS9T%OLr^ei4hSZic*YDQIzse~iQE7G6lH z$+V2T&@|zSYD$xGL3Q&Hm+}kB!t=Lm^fJDCV5a7f=cLq?!P*&Kr_Uf5A3sJfT7|Fy zNfT)4PBFPx8=~|3+^BT9LtepKCbhKaj%!dwgj@i+bBT+3h^pc$@m0N%sv-zIW{OASxe7vJDYq@^wRsD} z7F1}};rgV}4!#7Y>g?5cELem5Jd$+>R7GtX0Wz+l0VnDz4EyaT`m2J zMf)B1UvMWm^8e3Qjbp?mpXCdnPUR)9u+94zk;>hVZgFvzf7(xHdK%N6+>uyKiHXDA zss5rm_vm5sJk^;;Tjh$g3?Wso0))q6d5=&iW@>MnH=E%8s{zC@oAKz7@RC5L7`Kp> zaeOoNS8S9QomE)cMFh5Cbhma9NDAhV#APM{wF{Np=!ppkRGjhbhE|^uXp=&XoTVbd zI=*s|ZQOs?+(OGr4{L2_m z^%X-llLk+LX`CNRSVXTMx(u8B3M0NbI zZtSB|cD(A<^}mJwKG`Lwd+2gt-C4;APh1hJkd~_4f1d45&)3yi5#=FsjTI5F1XH~E z(vnY0<03Z_3qWPUGisVlUP(v^e_Enw|jfsIgO#=uJw?MU$Dib87)v-U9B-wR3 zQOZ`ve_-8;5`9?4rSv+HqcV~eR335}3A99MH%gTf)M(88-+PIyh|aZdkVm4aIPIsP z^s9i}6GOiG2J2d7hO&~2&R(;=J~#01Q0MQ0Ga2#=#U)<#{({RI>VX|^q?^A!M(gGV z{Wcfhk9!SYzv!$8ta~ksQb4U3v0g1zpM}XXe`<0!d4qb|@_7AbeIYO2g={Cy$LLHP z4O-8+5)Y7vl>EYo_>Qv%f*sa-fo2}*YAC~)4Zdqv ze@8hFI45H>(q<*{)CXJB*UoxdH2A$miM3J0l~|olwOH{|ZH10kEqu=xMr}o@64&rv z4|HqIAZCwWpdXMcUMROE&`invem<_9AU#(CDy<^j_?U|&G_R!*)7xX^zs|%IcCrq% z@VYQe6;lRvn4VGdFh@H=$$5hK*gihLf8*?6@O~Z4k0U;&*M%F-xNE#J*a>;=bK5YT~ z^Z_xgJ?|rrsL3g9J6$OiTLySmTwcLCAj!&HLoE>klCCT#$F)Psa=tQxkyEw89E(pZ zMj`uHfIVA)n=;J}Gvkp3-tYgHOy|gR4rprH3&w%#s?&C-DR-!$}ZHH=FvF1V1_h>CzipVz!Mo&%N* z5#k}*yw6FViyy9a&+Xa%fAst5v0qp2pt_7hr_Xliuwr&4R8k%0x@KVNCpVUa-fW8v z`n$UHW<;cHTZl4NgcJQlwIoD~B2Auw9-5U`YLtQ;leT$|dFDqMj3Zr;Nb?CfH4jv0 z#9cUkoXHo@=&@2Fge_lrz29SxCk=Uo=m{q^#`^Ps1C+b$Z~Vmpe-~J0L#&GUHuR6t zACe>J@Rah?yJ9&rtN0^sLNP%oXRHh!@xuHgamIy>U^C+$A=R zcEyYxb0W$~hU>g39iMB(wEz+-zV)-m+1nPn=L!=pJYCSlY6v5OZWY>z*8!IpZfM*; zhwFf>pU0SY_4Lckf6ttlYvJy1vHu2t9j|NR+xBzX@&q(6ocFPs#!yudA>_|BeLd;I z=V8Bkf%JWwt{kuHp8w(MT=qbR4Gd6+t=}J++uBqbKrL@8I2E(*d#>ED;wFc$eQ~?U zD9Ffzx*@nup{698Fxz3@6Qbe;+^b%IUPBO|zofb<%AW zsN2Aw#r6Vm+ia^Raha>^n9UFa@btC-Q$Vc0j}RY7+bjr>4~5z~`}Jn&y{T}AxDz#- z8BG~SUY><~P%m@e)}&qD1Sa<9t`c+5Dm>?8Rtop4dghFMR`VU|gldn(V&xkVJ@2LJ z&J_VJyM6@zZV6*u|Q$EC{|2D|KL;O%y{<*JLA=47)|C#G$UH315! zRhrkqHrJGsm@57eo}amUR_`1{0$X_?9+bo_b5<@VRB;{c97f98XPA2^c>?Nlp&*ad zqBu;I~*w5 ze#2Np0K~!XusU8Kbhs(#{M59!H9YC`5Y4Gg}2$u_$!}5QWL5x%uBuF zSuoMXhKwJU&{&xt+qGZbj-s;m4|gVFL#90z5Zz_W%a z%FiOcjt=^%r^35xaQ~@`v~tgvxb_$K3NaPiKWZhr9&6F$t z8Ofj4mO3w6dw9OxNLA1LtZL;=9QdzyJUtYWSM@h3Cx7AkERS<-PVUy)`X?1evEEM8 zh;5iKQC574(y8b!%f;3TX)Gy8#Z8h;Dm+IvR#W*W^GLz{NUG{4#F|u(0|0ny=%<49 z1z$MaFAP{gyhp^@5t8sFyw&sZlTn}xI)fa~r-*>-Z8Lx5Ag5L}k&AVBV^N}Ox<&0B z)c;kkI)7FlqZ8&XF#kRtH~70J1sZi+f%2Y5nDE{{Y52`o0Al)jlEfJ3lpTVu2S#y@ zz_W;Q6q(;Ya1cK1vnVlY zC9n5D6pwP>n&Dc^ZWbaCP6ev&^H7dO4_X|7>VLsLTyh&WB?Df3!1DSR`+#Q=(4Tlc z=xl4gMIow=Q=o&LZ?c5KGm8*2t|SpB+1HqI8FYQEUT;${PM14m;I5up$AjW-{s1A# zhkxn1cPT?Et!rmFb|GZyiIKTS=uW=J~( z#4%@&^QmW;x_LQn9cy^bnfH0C+wrI-sekgmvHmagFC6fXPu!h_vS06i^x270^+-?; z2>TDAo-Eqg7stbXl%3W`{~CE$`IJOyN}%yb>K)&9Jfu7C@OH-cG<*_aO3)ua%pDK+ z&V%m6d@j7An5SJ&&WkqU(v7p*u)jc>-a;544w<1 z3ebTV&K+DQ3iE)h=SN-jiT1z#zkdx-fx4}8agrzTV4lQDtvxC=tj*SIt1Ye^ST`H7 zl_znUkET>Uc?mDQxUObpvlC^#7G3vM3GR6G1+^p-gXf+i4WavgH*ZN*M*?KLK@d^3FWVXJ%TtDl_;HNrfk%A@Ibe|+}3YCr{_dj=g&Lx_!rg6Lk(?}@mN58eF zo|d6kz12($O3%h$E^2~x4b({d%X>r5$Us=nyPx;=^%hc^i8b!~Q=pEm8;L}{ zg_Jw9(yE2FX44(^>+`<*9Kvq&O5tIN98Tq&rW!dkdl3;4&{A?vieSCX6PNJz=e2>C zbR(&y!x;PwfQapnCf1efeTvRD|HEG@vrG>99GCcYxJO(Mmw#9m$EfpThPdq#n|cEu z^mfoszwPy1I^XOj!a7Q?vG9Y(nn)xBt`y~aKhrNRu|wG9!i6THATbt;KxLEZHdX;R z1hknYXA`<*wM4A)G&wEz+9rH{|2Qij=4WHgZa(Wz+IIP7#gginR`#4NJ~wPLrbdqV}F`xpP$8Xs&k@GsAg4$OgEq0SlLS3l}nJT-664Mg>qJc+QCRp2=UP=$h~M^}MvTYvVxc$>OJ_rYul+Rd z*CQ)%JywWc@3a=utG4W~G0T5pSJiJk+>leT>7al1w|}qw(Vz3ThH-DxsEOSq*g7#g z$II1@`z&dLPXEhTKFuB(D{T=i)-O^O(Uey+(3wBZn}7NmQIgS#I80kUmy_pbsfX7v z|NNrroE90Fs*NBcL2P*}5jm?OMS+JhRW2miGa=SuyqACXdNO(P3nO`>!0LJprEx7FuAZasd(<_Z^YlUviQM7wyWQ^Kx11xL+B6Xt_TyMz`zjuDpi$OoF8R}@~i(a9;V6v_nw!`|w zd`*cOgZxr&KFr|$n^?|cWI5i4aYAwkc7GTjMy=RHt(9V*$(A7N6ZPUH!!wC#_lc>( zjqJTmhzGT#rB6QHla(I1$PbALGl zRUHK9m45;<-r0L{wq66@iHIp8YBc%lwNBXZ9(3klJU*D|J?twWsHZ}l9*410H(d{b ztyuMWC0uJ+`PZ=}srtorMStDt{9dW^{(S#_pyLM7X@N7;S6r?JMMuFJ4qeBkZSi(coKeA&fEcK_8nf>$w`p5&8DT3A+ImX`Jh zDQk;re>8%BF%LSZraLELsedS@=Q}7$r;c<(LX|Ir5&x%qpxduq93$CE;kws2{+&lL zhGk?R7bUfkoQ%_sm z%z+wkNqtO<=P^g!$3geU7pJVcXcToZ`K88I7T5FFg@PVb&Zug9SWHK^_p#Xm*92rj zz901X)23a&I1tUafH_oBvGL6V)AkHvpsIyAd^wcG;6d^dq`L*#0`^=HbSn@~Wu{&4 z@3D1HO@%c<|1{LdseiV7jN7yEV+ry?r5^vv5wr|iJb*Er?S zYt#>GZz2O?Gzk=c0bB>)4=>{{@VJ&75@wHIv=7SZu6z81`D*k50>;6iw>poud4-H- z7wUt6QeeJKJbyd>c!B;e>QlT1!#N%@)t}?p_~B!?{sP?WCx8Cz@`(!biTrXd2Z=fk z^#-g_+;%;|k=MH$_|Y9c4&Uq0A54`*yiPx-sE07vw7C&jtN8cl@5xc$@xJuJ!yAi% zJa6r9)MLSVxHtte9nPHZ^{jqZ_IzB|U#OKq!Qksr3Ko4ZBI1yfz~0ZI%o9ZAF4v*h zD&aC*%fS7yuYadB-XA^90~hL6UUGfgVhh(j`mzSqjbSUb>~c`SNfL&(Mw4{>)eP&r z=y)Li=X&`6GM4LN9dA))rym>fgGIZm2-S5&&in+X!yz1n;ZcWMQx1ub_TC-(2DV{?m`u|LNEATyvv+ z$z((khkvFr98~S09=j3KXN7pLy9w!s8WpOU$=x9<(b6Z8Vh^kKDi`Atdn#}zW@Ch zFNVu!Y(g64Lvnlh3@24Mj%Mrc2QMYsP`M> z_wVd<`Y&-(Zy&C4*Pr@Nzvn}3dwe?fP(nT>)-Tkux_elFE_^WV2~;o!)Kfg5eq5mv zl`Eoya&>JiJVikK}jGp9N$g7>G|gES}WjuDx$56$Tq>ocWb z6Mw)yw8fSy;~`#V(SE+tWFk|n$3Q+myuBBQ{~?f*r^V+;oNa9Bp?W*%v}h-d1{=8S zbYh_IBbRl!!vP;R)L$<(@QZF1|KTvnKG%2_-5Kucu7@(l2iOOJKEDlPF}|M-V-XWw zzEf2nIoI7;@LZWjl`r!zP>k!%E?D6BdVfo*bjY2=)lDLg8d5a|nzy%=+MMx#|pTedL$8JNcWjjEair4aCK-+PIk!-sx>N^JZ6 z`aQC6eVhc!7Nhpj9&?u1U+Wk4=NGQCK%C(AszbHwuz@$?ta={TIj`h3=X|aI`F~fv zD=0i>u%B#)ujzfdbKhG@7>|;3GlAlCn3~L^`e|`Pnj?Omf=y?;?53+75P6!X&L&Xq zNNW`#E}&BG4mFrjOM}F`qQ>xN%{!gw{A`Wp`TZQRaa1j5^)9pOz#-peG}j$3HpAXl zK2&Z2x|q=%`#|TCLeAl>gr(vSbARN*C~u77+*H?sC=rE={MlFHmMBLMEx-LB$sh|j z=v*-#-NA7(N_o?tC!gpy$sOwDue!Q`;D51)GdRm$f290Fd+kR*zr#9Tbx3YI?8k?tZX0R`EsmoPQ_ZLmiwgbB=bFB*9kJgy3~^jw#6sD3uT<3=uSNA1;SugU z?h+F668q@3`s#B6sDQ zZ$_PfpWMdPCVKynv+Hffe}CWuiP?f#A#J7fcDeR7t|6w&;+&FqQFF(;oTP;Ue5n@l_H@mEK+jYw~-5VZ9CvVNKxJ12S~ zrzfe?r6VD3(rMz%JjkQuEXytrGn0-pDIpq)HnBldpWGJjWG`nsgWKG5=i z7^{E7$1&D_J4V63@@?s9Fw;J==uaD2V z>yt#*FEyd-+fi!^LVrIppS?Jo0P1ExeKA!aF7n`>qIjBqo+WTEGDY-Yl;`T4KVUA| zgx9fz%i$R^X$59&IkLx4d~Ca<-CHr=<`VF1OWn6{`~K?cS|w>dnS*4+)ET3ZBlQr++~BnZ9B9+&U|n%g zs7o0C>dkWDyagBAgy4Jcq z66~?v_-?Y-(MhfPu{e3K+PLoGcm5Ql^Ho#0RI zQ9rL89)I?#kKg&meSfTLY(hG2G#hN)g%|Uq+jst(8pl=p06y{z`5u%$FC0E$fkACY zbyU`^StNx3T}iI>ck=M~Ov>W$Lct%e|I2gZ16H(z$LURxV?Qd==6=_^+bh23%8}46 z<}=qEJrIJk_S2i+Wu7VLPYU^l`HNRJ->lRg%YV$bIFabd7~-|^bFiILdE$Q=*BX|p ztD9YXM?Pr3AUFEvhewhhf9m$veRhiU|8@@7s0D7+as0J@$ibl$nvBxN>G#C)ylr3$ zg`E661g(#YS9cmiy&P}y|MI-?=hR>iIpHPex0*w}O3!5xw3<@oJUng1+||LrB=D|6r4c$ z$om1ky#LgEHnVw5K_QNJo0jz`P)dQR0?w+36~*%&u}GQ)l)Q&}-hCbhzOvMP{G0x{ zF0tq5#h30ik}v)8wio;7u)*FBIGrnoX4Uo5`|;f|j_mr%%H7Wz+__HN-6!gQK7U!1 z+2RxV3}CckkneB7aS53vs?E!;ryKGbOi|B;TvM4-0=3Vy@6WU6h?Y5Frop~r6k5Sf zh33Q<1uITS^0^jNO{qp6Kvvdi%_&qoSjbJf6{yR|DdEo4%Cy9x8G;p3Hz}W0W;!0O7l6pZR@p}z1LvP>re=$ zW$Ekr>};IqCelxV5k4_`2D|!W3SO{PiziK_Ps~KkNKK)5r=Bi~A~uT`ZhuyBS!S;q zbKWkj&>q4zf)01Qvr$t6djyh>SLDu8z#N7ZQst5r2%qUg1bX@csywFU8~1k48y9uT zU$US0PhtG0V6A$b%V7I%{=n*$*^aa{l97zVom*&;IAyb!`+u6DNGX`Y(?$K`@vfA5o zwk(f%Tbw*y@22ol?2UH|`@3gIf?Q3C74iWx$mxpIK7ncmADmIl9Ug);)*@z0wViI| zYT=uhXji7Fzl+$;>?aOH?n7c>zg(=jROEq`_FN(N$8u43(tbp2ihnrH7G@KZw>&bc z%a1SS&I0Y{E5H}Hm-wdZ5qy%n>$qMu%Kq#n{j;7gS~dKlCHhA$v$(vk`~yqbYgZkE zeNq;Nr~aupc|kL0>ru@W_p_xPf#P9`HJ(^i+czg-cZX+kvs`nNrOa?&o)t$tCFUB% zHnLy9nvcJ-vos2^Ie!vbo{F2hFQ(kh^Bw8~A>Y61@W2qqpBd;UPwR0Wn|X&pRTb9Y z2(8JpJHAVqD!!)%F$&rPlfC+e2Ustko)DvFMAsuG0YX)uPjpo{fun)7q0yyoezlEP zJ>ouZHapjd3%K@t8+x)|`U4$ccr?}=;(CX<5x^cmN<8~V z_r%nAG&&VKhIy4l6fd_Xf&*&c^6+(H<#GA^thK)IQe6smk?(B9OR44uUNDn)y@%WT;HDQtayr8ug)IFeBig`N0>;? zAmGf5A15F_IE){^404Oal!5BBC>daVNlYQ`a-*Q;;}taZ<$II9#?^7CdYnIMt7kBS zgXL4u{&+2C9D-!LF=T|=>gMBdf?C?B1*v?iukRkmAAcJ8NI8;9zA)dAsS6(d?|FB> zG>KEW8*=-9awO6#_W6hBybXTNtW`wwzDGRz=$db)X;D*eJzJC+C&cwquUQ7vs#dj* z38*;Uz1+WSTEa;iuaEDIilImo`^78eEKD10As5VP;{`hZm_tQDKfKKL;(ktxj~R#w zSA4Fj&wmN(L*>?f&W#G(yFmAktNZcOSM#!5CvN;qKK%V5E3=hS$alo=t)-_8elPA- zCp2cm`1&xYmw_8f7~e;r4WU+R9p`QCq{PuBHW{LvyiiAz8GC0t^|j?akWEp9r^ z6U_0OU$ub?Z^0Coo=+F7Fn(^}3wJz1)EBt@9e-2y*w%hdA+A58lNRghZs{s)aJrV8 zHm{~h{IVsyo0sU}?e2qf<-6|T<-MDaC@s~D==BX?&jBNrpfqCyxz7^ygbP1y7*R#! zs+xu;XW?$;Zf->Af*pX7*qE1L?`?=>!8=Y_PT=791oWJn>i1^?*kv)ON1EJb%Y>|V zNq^>~1gceafc|m%@%VM$-mUjy;ac8xPGMy$7ougb%@0A0eL{ImP5r7mjzIPSN-mkU zLMZbk)wSZWL#ejrE(j8~*`oWLY7~bi^ewS;_Y$?<6w?*zK8Cb}*vIPwIrNp`G}cgH zpPae*pZ62H^jRIaz*JF``{{l{d>-8aFUDW#=*#fu@s}k2>%*?=w}0O0 zTTT=B;J_40He>)y9)eC!=W0(~=&lE^%SG8y>e5207cErq2<3DTws>=ekrOD1Q`_@r&hxT5dkaJjXK%vXHs7dG&A{a}__8xhxTe zpx*hf>t^(O@`ha5ty+zocW*Q*caJwl5;lJLg6&ecNuv>W4Ruu)Z9d)FMIWD-f0*au z@9u{r8P03<2fupx+JC_4hg_m+LzJ$#wq2&qTi!ef5Rw_SYSh|BtrPbJ{y;xa9>hzcd7O0tiklXQ2Hzsa0@08JlTttZ8M9Dhx_hs^)_>mnf6mM4(PJb8 zL8yDp`MV4}qS0?%kZ6+{9$QtvIOxkl!6GoAWbGRM>8sPTa+r5NO&jfuu+h=uJ+<*FS z-Zec%t#|v`v%zTY%zw#LZUmmw=rxifN9Kcvu|Iy8@0jA_&YP$`(+2CEt16eM3jGXv zkwo0^diPYMCr5IRN;L)@&1YLXVe4TpoAXDx%N8K{6D+NW+A9j?n*1wp^%!Cj`A6vy zi5#(zNTw;n_P<{>4r^8*s|i)BGSl1>;5<)V%(wC<(j(<7kIT>uy)3tq@_avO@_?zFEH={g4M3T<~4i`g0*`Z!hctPZpP{=lpyb2rW}LCqp0Jmxl2Gy zI_nYXk1aAj?fbC49s7Y{eXTG)`>IjG;~6I#V1J{$esDNeTdI-gD`^DP_>xlwwZ41! z$llP4`L2JuTfzlv$;V^lT$HKod}TIKmQSSbmB7nlE2pp?RPdA!JKOyBSxue;Y|UNm zWPdE?0LYzT)(JTJ;u{C+%EuDoAwjA^mrN$Dq^`>3p7uETg z+%+l;8H8l2>?$ z;^=wj3pF_p_u(|i1knw5TP{DLQ-ck3xNMdTuKKam*FgxxGJ5YO9uK$vb^~fSl14lA z!sBc)=>~7B1?EfkE7a&mjW?CDl`}w02$8$dc2(&Vd%?L9>ArHhf?%sl_J0>ClC*CyNv!0O{Z&=-tHi zpe9|F`B(jgXaHZ*NR^(9{${IHhJW+FLv*`lN4#rk_7Z!Wz(J;%8&S%AHSwRbj?UwN zT1q?tj8J-O(dtbaujlzKSIy`?C1)-B%?+;ec1?B0d0*q$rP0NB{gq=bV)T+b#~8l( z^hC0pP%U$>kcnH25_>WnFvX*%%9^$O{OJ98UPMBr9`ewiW~lu-nsmORmwzY2yQ*wa zb?fJOedeLhqNlIn>2CAOeZft}pb3=O$~}nGCV}Iq)yuR%|1(WtSG+xQOSOjetK}26 z5BqV6Ufh_(na+#1XE<}xtNRyyGO@s&8;=s3$i&P?UIu0B^$>iSt@b&8U89BI=YGD)b zYV&!VK%uCg=i8dnUSo(vicSG4x>D{3&1z{=|M7no< zDV(i`9+e8Qa&&uNW?SvAs2cdNerP%$7;_2<#f84&_n_yh2IDu!K)sZ2eo|g^g&!2| z$1|gM0n?wkgKy1`Gk+gkwSK=>j_EWb0RB627`~rF5GHd$)HvP3yA-M35~*B)So+N_n_`aP*?%&p=YL;0$PUGCWeF{L4L^g(81Dv>;3c!3r20xf_Kv#$c4e(M8V zd2ly;oNMg$n|ptb$HF(4rSMdcFdT8=F$(mrv7sc94`g?p+Ua ztlB~>H|jl3J9iCz1CL<)#yrq9UV6G{V%})ZD&ynY#=htoYp@NUh)xC)HE`shUzL33 z6ozD~&(VnVa<^SAXt%n@f)Hn>TCTfnfh35;Y;U14=$l`YLydw5T?iuScAa zO+EpAC=O5KZ8iZdwnXPPdbomWnD_G5Q3Yqb2*WV6j(=2&h{Yo|j5Xm0!C1Q5k2c{s zzt+icy=&soxKBY{$^Rn1MhrId(zecZa`}w9(M-a7|7UqMnyJoRatP~aTIH^KQLlP5 zseSH_2@pR4w|<7n-RsK>gL57d=~j}b%NYpgP>V_Lny)c?c#!Y#6t803^Rp`ZN|JO2 znhOS)D}NXa3E|sNA}-{N%X(CFFGY^NT&Zkz#=kWzuKH^iJ=Sxd`d2wL^BFAb{w<#C zqGfmPlkHj)@3{>pyM^U07S$B}V0JqxUcKsCcK;&h6>Vu8*aub110P4ne42a>ChVOS z%ht)qD(FdHQFL? ziaz!EMURJO+MA>9Q;fd6rFe~|vfGx+Ra@&kp0+r@2wJ|wb?hqA+4;KOjW!qR8=C#I z$%|k+E7IAV)Gm4f(Rj3bNsFYQd`T{CLe*=xS3j(+yd=t*I;e9c_u!vU>QK1mI4&9o zQh#F0;lw>T4pV}7NBJIZ^vO>u=ag3ymZrq!>6b{vYf`44B>xgjJ?zVJ5Q*d9-iLDk zAqV64LDSHqwWr5p@UG#P@=y@B_!iW0GkLLP?jzh<|O&zP$_q;{(;WvwxpdkPFyYW1_1weqB-rUP?Eq zGbheod|FS5y7Ob6+Eg_*#9~5}YWbF5Bj>BEUc@1c{i%LC$3HIf!NSCiiMU{)|AZ&s zc}MwbpRPKARhgMZ>S2D#=_70u#znek!?nx$u=38D`oQwO-E!s8lM8J9 zzxs^VK|LKRU+*3|!#m?`phZQbWPm=h7*9g2j}+HssYlntkIvVC8jrbB+5|$zRK_}M z)O6z{#(1i%yw2y>T}K%&I)Cax%0Y)?q9%_WEf^$9QZ4Q60JYQyoJjs*+N>N1q9%9u zo#7UBApbX?Y4bFlp~X8=43H-rDH5M?i&k`${Xkt}P`4Zd$%W?qP)UB}V_h)w80(=e zUeudrPdA@|i`Iviq}R_Ri2YW!d+NKvb64abvoT@^9mUt6Q=3dMwtrT0m;&lVyO4xq z27220bniO2&WDWJZ?AVlCu2m}4v`i?Ee%Hrj@pn1rO=<2P{sZC$?y%A1X4GWyg%+I zjvn|2AVjG#SxzgSPWbe;Jt2srRE{t*NjJUR+L=t1V2)KBjZk4ndq)ulq zQ}k%rWZmcLs40O)ntyzv9o(&zUqU|vN5dAwDz|!5M5X*@omd%tI>R}T$3>6TJ1Y6zF0MHv!t1P1yD`M|ZV2l2aR4J4AfGwMn6@Pd zh*yHR^-e#5BBWG?cV81-cD^>KCBar8LW*Rb#vYDUO$m&Wu74DqBgaQSiB5(dA?Sgi z+`Xz$g9^DrK9Q3dR|6a3LS(YLO@Z4jfBXIp-UVAJe$PwVcjKqq zeMx#-el35a-FsD+_?<`NDaI9`thpJJR+&ekiC~>x-it6TzHpCn(gPZSz!-rCUjt8R z4mswE3&A@plz)t=2}q0BGAfa;)`igURk~6Os+WY#XAuWsYcxF-0>XkS4J%=*@IIctuZoWVtxRPle#f#`chbc`O#b>&))6e5DRMO?8|5*w_afxW&Kp6CrW3jtxI=7g z8luFIJAZx2xlS3?`OKdKYJpOaDjH|}tz8dH&pgf$7GQLi<^~5^i2g6UhHvcd1;=yB zuKSCd99qlM{4+j$Cyrt31OHdpUM6}`lDqa+j@R-2%Y|Z7B{`?6=HA1i;aw7=pB9Bf zz>|E6{-9)DmsAPHRTWSesj@SI8Ii&M6X%an2CD4vd~ zkZDR4V)nvH@WH$7khMl#&)+b>?g~9AsqsU+@;*y&P+!UDj2jHp?^yF6T$>+l*7z+K z;(vm-P64sfn;-n#@4fXwUiQlFZ(Px?9Iw;SG$1KsOKII;(Id}x?umLnOcR(;Xgsb$ zhn?oz5Ov%iQc6I3O!?ah+eVn{2id)h06-ZJi6I5TpG}9feHI z`bc#6{#-&ub&atxTTH7aO9X|)TYH;qLw}WuT$-vyiOFFn#2gz{le-mixs~Y$$g?0s zrxf!2ZXv~Q_~5gj_g($X|J?j-{wMjBSCU`+im$$utN9_Z_SE0d%t!_;|3r#l4Bbt7z&-2iE!+st)7m|AeU_AW_YA$APAbX@#CxNLqT zBe5;qd@e=(VTVc;j)`8;^LIl=l=SgNy-m6kXk0$9DHGRNFPGfvsf=cL9slSe@h zTw-1O(HI16NbYlX;b)!sM>5YA$I&Cxn%U`S@I>r-;!%58pf7)|a8IU`pb{v|JQ(OiXhkM}rlC)S|IE)@U z?LUPY%|WNrN%HvWAZK(v=nLNcx{h1ja0YQ|KTpMV%tEf6ql;)MFMo9_p2DIgM$_7< zPv7;czXakI_}7(J<^w#mdLn7*QQ`d52F-=B^HGF_m&cCVez!I>E{s zN9uvlqE2izl2la`iqRGl{W?F^@32Bl&KY-d61WaGx^q$){e`Kk!fv=R^Pp+haFFxs z+QsNxoXZQ>+hy3c-GU>Z`3`WLI%T$3%2z%;doCUG(w69RCV#5uL(DezfSB?rAS|bz zHAb9qI9KCMZlgXCJ;A~OrzFN(xaEUT;6u_G9vOr@?Z#o}Lr~~81TlyX;jgFe#(Pl)y z^@D$DYx?Rl@ERH3V{Ul1rmcNe#37b-XpoPXd8GLoJBT#`ZWCPzMk<@B5KTo8_=;ax@=mw#-w_M6?1ou}sZX3()uJ1+U% z*yL9fVl6W&3)tFPj49}G45J-IjPpeUMDZ!NMw_kTWPBQMrY$<}zMV=CHiwUiRGGYK zx1Wv}spJqQE+x^Uv_*n=`eNX>af4wD9|I;dS%K5Q>YE=*FTROHqu+UU84I=jtqa;} zd#kJ7N`LDY^s62V@*mpyGmfU3O%!^lVXl9`FdmKCRbaHf^LU~J?#-TzzOb2>(;ZZ~ z!=B_m+NA{h=i3VipoKKSmZ`h&an9!9=*Fy?Lwg^E)Oh;Z! zcrq;>{z1Jp!&RA9&xo^+ot1qQOD-*k7_OCKwDg=n+vDl|fY8oE5~TG4`KdyOV;3xI zIk)0D)s20yPLQ@b@sTDEn5TYGfLa~>+dccYZZO8Xe&^s%Wfk$HdYJ8$$2Zxj;sci} z#D9V*<si(f6X3NHNj$T>JXVb|sx6urbtHDQ6Suf%!U(z>0=1SRI^CU>T za(wI(suaeP9EUH~Os6(?1{il0oi1lK7A$+jMaTgt-E|R#aSd+XgVMl18K26BmmSPT$dP^Td}i-N3V!jBG*ZTs(H(R( z*30xeu5k4jy2cCv!j8e6$$yY`!paP|h;4yWM)xN6opCZb?s0#B`uaph(?8sQdV{fp zTRlX$VxvMf2Emxb-=9WDs7joMM2f zuhe5Qqaw~ceBRFIN?1@%#P73Y2@-ynUQTzm@~RT15^+xHY-bTi-72_kW0PoX#h^>nn`&r8F>H z8q57724A*ucBX%}7~*dqmJ)UMuj4>+-iI9dMpB^#nW$z0{UgD+6sheI zXgMYjjg-tdf&QuIdOeWt+kZpZ1m!W=yY*n5*)9I>g%HFperurOv-5AQMJz9} z>>BSY2f72YdsS}+-{sy9>@rK33?l-w`BYdfh%^4jI%aS!*W%$x%1a#{BI7 zQp9#}qT_s~ZFe=zUJ+xBIpz6myO`rJrn3Oz0h!wkH-CFeY2w@|;)jP2P}Ki9=OZr~ zuitr<`*$t0*I^3^CLGIC=T+IFFHq6VdJxc(u@ zHIH2#04R)OHtBrQn@OI>3Lmrd!TE(m(4=on&s>zM|y~=QEx>x@h({GGET8oQ3wLa>BnlPfAFQPaH zrRb-um|%&TL*o(jVUzixn2Q%%g`6gH394eCmv^Z&YZd_?l?O+DoV}_KszOeb4#I3! zx&>;UR@({$a-6AFh>e#94?w`)pAOs;Z%s-intupXHpqRFX^Zn|w%Ke^LtfaRf4_!r z?<1x%(xCX-E{q7_Jx|;tZk-a@&bv4L4(HvoX48cuj`&IAWn|_?uJ|3*BeoVCIUSCA z(hRW#ZNHP8twVaiIC(P(P{W4E$~~b3u@Y2|v}^XRhm@=@ID`8U^>w&M$ST)x{MJ9n zTYqit=`C)*#S`!r_jKMLh|9c+8m?_y-QnSIO|Ob&UN9E>N9ubBfDbyJ2T;7?zg8=e+v6x?R3i2H@KVZ<83;bD_p&4Ys94W+ zYJN=;DG6}!&=a|1Z<8^;v=P!G$zRkpq?sazY1bY3!w=ljq=wstA zIaGql$>RuPn~(-vF41?rK&@NQ;wTP>bzJJxBo(7)8^>#m`*~$t)+czih7o-e94g}4 zk50hCN4YuFGhDB!2DNz{e-qO6w12VuN=Yg?y_3kPsaRjROI#asW%L*wim`>4;p3Lv zyHBxFK`BRJ9J;g!1xsf+de?ZgDma-$ZnauD6h1ws4_xOy*D8uo>Z@?oje5EOKS030`Xl|-I8}dy|3TUOoxCLf$7S-D<6Bbyv$8;(am}yeo;uI- zHujnLiXr=<`^q=B{VV^O6Pac|eAIs89gL3IU-aJ}dTEGpZgae5PM60khX!*fDCV8h_`D-Or9+zrJZC=vkuC4EJ-|X4{$+%s{v6P{mEm3}!sK#Y!TVMVr{;pS^O*pM~ zjOBEalAEzR;+OWq3%&uRe4-8>$j}dF@ny_+qm63Y3X|^%0S{#GM09^Og}V_m{qyPV z0b&smbxQi{lNrBFeJOtjy7nmS_NY-t;-7U2O3g2IHeq~9bUmfewVyzG<5;}=UDPkQ zX)8yZAHo&hU%)dXD%^VQ-;Ah9+8Llf0(;Pq86O=CnHC{xvl2;!H??(R`*wqWi zxq8IQ+<1*$<`AOJ?c{%W(Z2ReDx09Q&Rvk}A!^=IIek1BK5S0MU%dfSo{f5CpL#Hc zDxDbLAFYwkHYCd6O9?gF3zggXdc}LN2cv7fq|mchpfcpv5=)zTz=p@^5D!=vb?a8hYeWzBNdkyHMSN)vl&pKzzw{V;5V%k9 z2~wy**o+9;mFRzaqV2`*j6?mpuJ02puV3)VIA^x83k6SYAOCl24u3&ZC>UJV_=0Lq zjPEpZ+z!D1?Y;)Q2f(0}&WvUPik})jM#I~+{$K59^mRYh$Mq5iIJEJC>~zMWe|swx z>1F>lzi6YABs^=MRedk{Ip5zrC*?ZBwB3}*nh^-??>&DDdKfEdm(?k?@9gQ?V3pp^ zxFVO5^Yac>0$IrbwYE_c{jz_N*uL|CAJi_Gj#LnUit0+ zfiV)V&AE}Ye`4!9%ktvPMK@zM)8Z*S44A3gA6l8$bwLNp5XXfDL2kda){Ba0qSdSS zFnDLu5?p_Vp6>*A_Z$6b1L_c`X)x8q*@+t4`hon{-bkN+)D@4@ADCR)aw_p|9o{*N zsIC@^LrrKb{cws>S7%Qo!;NVB%}#RTHx^FC#fxeK()zU?YJ(F6{>`~pIltj|;@W9@ ztDk+HBUL*8pZR$a9#JjRU~{^=H)R_pHVQQ+)fIoc%pjj$@Xo=cf5!uBk;UcPyR;-c zWuF0RD}#!l49h7$`{@mP(|5lbv(AGbY=lFk3eEXcNAQBNT-4bR97nRrp_zk}^tAcL zIomQ1oYM%MMtCO^|Bc6&*-ZxN|{V?a+avnZmUZjje3C0y>3P5bu`0ONJ^MN@ zqn|#x#t-*j`{Z8ZJcD-KOEm_m!k_p8OA({!6#tS4co)KsyTo5 z`${z9#6nMkxxs-K-X!4S`I-Kowgrmg#2zl=1TB8a`e`^?Kg-oW3gc*prBfTYaL}v-aKpZ0wkG$ed%5 zxJo<{l}bi=LCaBjZ7)?bqD3|uW72;}rTLVFKiUK{iTdU>J&YzSmIfY52&ZKN=kbXRszCCRoNGzmF4q*i6Hm8C<&fPpI?gE86Cmi>}$7iZy3iY!r4-<~DY}7GB zuBFV9>G42$=eR$&2|-WkYz>)BRb|VH+x*bB4QZ!1PYv9o^!Wz$k*{rLkSKo@L~*)u z$}DFf2-n%i9MUOzbh`<*O`B0IHnf!MF%d_q&tCH&AnH6=n2*0x(12&5Zo*YF9I-;- zMsEJV2SHqR8-Kd;K5_>x^?RM8!d3&hjWzx1uYPGG{cl|TZ~p679QQ?cz>F)Xp?B5! zxQ}uQ8xeox=gAqB659iM zx!=P~YAQ}@?Lm#`rf-k;P2p2$x^`?mdxb`R+mw|1jKm?fmld|rFbxAJL*FB#!MPot z=PQzSj#cYdN(T@rxI6Dp`eP+}|B=T1pZ4^#|43`&d+)9WG)A4KWkXK=f2ysqzKe^W zd-s+PJL&kiKmXzoNa%mw@E(8F1ON6$xN6iGjHPwX>$aL2$1M4dVPsd&;(w_*|Da-! zxe{y@810#=>5GF-J@LL~h~4=8-DzLqJH2(D;=-}JJxWbEpnd{sSgWz?h&xWil(YK+ zc_l4I^7YX@{PzC1FTE>K2jIXVPzY-I@9G`?+S_3BQlXN}6ZN9W#?xFvvSNmfR_p3J7#=Cw;_Sc>Xf7yOVWI08z z$Ba>E2$a=(x(y>XdgfTptn-itrvdw|o{B|gzd!Go3?Ba@EtvHQ{SWRYx8)7(Sg<>f z2~mYyheqIjF=SYmbwm#Beh}Aaox4-#L9qks8hTe;V?KZT>A8vJdG>-krS4DO#%kH> zn)00o$U#IvM%6vHsaFsESIyt*E-XfpO`8YrXm~6hDa1$gRZrM_Tl@6-w+6Mf+vjpJ ze6AR-&o#GWGsj+HD!AXA{m`Pi#eHtluHoK(Yv%2uX?m*x)yH?3$QG9kiNgfqF+riG zO->5wz>$9!t=A^{=sNs*9>mOrEF~%|gyiHMHRg8F*5+2~mo;L_U2)J6C!t4FIOX?; zM-M$hbrM&HIO5$RYrR49QKBr#b>+YzoG!QZ>Y_LKf&1>QWqj6cT*DIMqk9>%)HSAh z499R;Teru?&x-7tW7-u24mq(YucNpkT&k4A?(u&M_^Y>jd#7?Vq4VzE)76|RFG0PQ zskS|XiEXhiNLzGXy^JC}6a5w888)+{!dyQA=5{&|q_7lce~ODIa_&Z_0lW6g^WQE$ z(>FZo>w4@`CvE?~S+}1qx=eX_u3H=nh@-+CC~J>=AD_+~dzg=%IIF0Nm}KD#fh-M+ zQ2>7`lr~5?Kjk|f%N$fqKJELJ6X!cB7epRLGgqZWA{FCBW-|xK$JCnA>JU+#+Rh>W zWc|vahdQJ(Z2T&+7*semGA2_Ou_~<0`V-2#W5#Ww?7@Utkz@Qv>L#3ez6%<)7X?q6 z`^$XvpxgP_1>*g~ys{~mbG&7CUVqFkIt_m}?Y$c%XZ_b{T9}xj3XKPC`ZZj?xl}*` z91b_Q71Ze|PmdZ#sG%F8h6-pNap>HQ)a7UBV7?f>h6kf*D~ER@Irw{?^Ha>J>OCBU z4?1=HQoD|Nc{V=jNBu#d@!@DSMl<>i=k6bIzb6zc{+s#b|E!F*p@%+Sp5!ma=iq-D zTMjuSY|wc@{^LI{o4)#sJo8Na!!l{x&lC7}aIat~iNSM)DxH4Mfo2bDaGi#m^SeLt zpS-J`Yn&PT=M8tt^ugnAe%4*4M9b?rroE`VYF+jr$sK#Tcn4`)IphIFP2nPZI5mGA*hJONX$7w|HoCPDY852P9ua6TMm&lWm}U0J z@OGT7xAl|yYdZ_M!A(qSIss?+iTW^F#4ji31HPOuNb`yD#XRNxW&;af4JeZ%K4Ckj zF!5*1mE?5Ft#6;}SFs!yTrxHA`XETF!GL}moXj^EGe_;~)a0P;RP7i6XRCkw6U=aI zPX*IYcm2($58I30HS(x3Uy9Ni)RrU>!GK4YU4{{n|XL<-toCR?>5}b zd5_0lz!W6~MEsw)=DpmjI$&2K*k&6prcc zX;$-RsU<I2S9JY!A13-b?(}fn$rTx%aiq6=KI9(sZ+IkFw(YvTJm+GLsr3V=aFC8|^uet&ygH+mH9 z7KQyeY$BFVxhR9}J;oc#P`X;!sHeqsirz*e0<}+QUW+9166G$#shEca#Pb16iO!SN z44kDJJQHgW`>OUq<+kI@xF`o3$39}bVlFg#0}4rsY5{)|*U*`b^UU44KJU97vu{RE z4V-&0Ug4#Z670Xn+P4*Ii?wNTG|J$q~(!!r+Hk=9Qk;fK*{Sd>eq zd+T??3F&{@pGNTTkfR|$ZICF*P(4U4R)_@TCcsGmlR}P5;lYa3wz53S~{ack{t~R~qST5dndNDO|r7ql2 zC7v9aJD~FESmhnAQk&Ps!XZ@}FF%J&_W6N|^8N+mb%PBjBZ}Mu79+MLq!Va;kA2EF zNm_r8v9F5PS(oW zg*~xT^oE?T)riC5QctZ1s-yC4j683pTwm35V)*p9_Vt3PM2*?i*(=3tx#gWileGBah7D7`pAC6`R-G-`?P-?{f-_di^J;*6`1PVIgQ`PFo zB#76nBq{cGEG?7@Qf_bGFg2|CA+?Q8ddwvhX(u}UDfShtZev%ozBM5!&O!OvC#Zjo zLxoeYQ3IAF&HF_^hU#$U>3e$VO9uaNsNLX{Iz;05SG|Mc%!v=>q=1AU;O^U-wT)jP zFOTRJpZ(O<59-(+qmB5tW1oErf5RYO>+KKo)eoQAR+qEwZ|9is%(qVvhimU7vYo!f z3|H||;h6mvMn}G~Pu3xzmfgkz1rdLxozB3T965nEUrt!(VICyfA;`~AycFr1&*YsY zIXsKQJ}(c#hS}S{kJ~EVJ^P}XptyJT(84)}5+$Ok%Z`?z0CQyvF@(X6sFS><|v9ZX`o$L;mI~-fH9(Z#xGyxK9`?YXYJ;r5MXowgkzW zV7l;r&rx6;+(1bIq(sG1r~Q8e7+Vzwj9)MaH3;GI4-sz)*+v3B5d2gCJ*n{*aVtB7 zEGHk*ooIESq4qvx{Yl@m05=9qib$*bgdJe=dY}=X*NGeZue{expAYigj;q;ckv-Zw zn195}*gg!Np5k?4cdD$6tK6B67MtQ#Ii+}B9o{>RR?EfV%R_?MvN(U9+)1`d;@-wB ztCx>r>M#rXK zPS;;!7Y3u#_Ii@=4D*0oOQY^;?v$; zr7t>R3-QUTb&`4BfWMJszYP}rYcLhF$g}#vbQ6v1YGfe-n9m4H$KBZ8@?ko+<6`T) zr}=&S&=r%kyicBNZt8Ebcx{X4`14?Yx@Z+1YMe z(fQMCahTQV{C$7547*=TA)lYoim>3hx>&e6&jQCp{WHN|?Z%fz7*;-ZXbJXUmv=Z64X1_==4 z3qT3G5E-vNP=WW8P-<|czXS^H@gARNf?}$8oS5&^{t`$=1MJaw3W867hBX=#UhgZB z0|U=pcTP06&hME4OqLsbzA@gPal$o(s8b#yj)rQy-vHjeIwR$bIvs(}+lSW?c-pmq z18&+Lun>PDJ*j~y_JE%^$MF*|#b=tBavtMD(a>H>xNpz97V23%0`&2iOFTco_aB(& z0jEGwlv=_YJahQMV_M<;``_P}GbzcmJ&p+2;V^V&^)Uv~ z;OEWvKU=Uw4{TfF@jX7z6V?Ya<=w~fj*#!ha_E06vV?fq8G?g8uH+GQ3*Hcaj`fk_ z_5JpJ@cQrLNMDZ+-{;l!{TZHz+w!=aCsRC5@w^?j$7>0Rx;fT0B-isd*Hit6>u=7R z_ifM5;CjFGm+ynNz2Ngy*Yde}pY!{98(?``Uj51(cSaS>Ivo%8=$9BIol*72_aSzE zu8)5T`%fSHL!|lqe1G%26@K0`&)@z2enszqOyNtN?{|Kmw+4`ZiO;js?e*vHvm*%u zGELj-ZSkk)`F{VK`njo(;Ch}n*Xz&E!wLlg>*q&%H|;IL91MFg+~{lhQ47CsFD~W( z+p&56Au3{FdzVZ~(D;61Fy;O8`ETmuroMl_+uu!lNq=cSss2~(^|$sgg=lEnf9FoO z?cuF~P@40QYBI&2iTNq7$1^ZG(Czx;?&~g;98rI%GAX@@*oNio=;dNpl}qZK#A{xv#1F(9l)Ix} zi1)huIQm`jp~^2B*rLhHE)ACAlb6FJ+<2kdGMY*+mRpC;j@~ohHph9-TUuL9pL|cH zul$%R|D}0TEB10_Xoep-cMuj2EUUe*h!kuh4&Fw2wL6 zM~jUpbcGxh-jN^0G%IA{NU;#bu5@0+GZb~{e266!`_g$3%R!+_*Ac6_=p&l(MU;>T zE|gW`u0<4C=_W#njVveBBcjU6gnGWH24$LfbFtOsqVyWE8W8jH>R`!3(05P4_k*1*+!`7y0<~{LkP3K2%nQg!56L@*OBS}8> zj_~$ye0%X(;0L+tTUW+)}6;;r$6b0U&B#nHhfIh zR@LEOqw%WK?H^8SvKkKiUz?Xv^icNS-Iv||A?v@bU$*;)NxvSxl>2`N(XW>;MfAY> zudgpJ(S5J~`t&k;yr1=};Y+f=_xjc5MegsRznQ!QtHFD}T)%kx!M0xpFJd)V_lvI= zz8}cG>b$Vk!0W5Y3q<{Xf4y9dqW)L^rN4T3?7#Q%>Q!I$SDjUV)nD|VpK@4z-t~rG z%g^Yu+w1n1VbrMJVYq*ER?SmS51+fytJ_Ry26)q;V_(_RQ0k3H!Xj7#3n+i78q|`PgvudIgM9Q*<b5*33F+M*UvgfQi*^;8UXjU??)ea zB(2#dUV;u+uMZ*IALjIXV$D( z1W>28DjIpdUqW?gt^;kZ3yGXlEa!JWOQ@z>l4Yb(4JGD&bO%cjK+oKREtJzEi}|ct zHXybQ99T94NVla1{%NiiO9_MChkKz3O?ADf>I*eafnHA!l8HWl(neIed8B%g;6(rp8Bm(B{6 zl6{eGx0!$FR>eF)*O@45fPXkgM@zf9)?Kg!HweI!$Il}+QQ0FjSc1U62}>YK7KG(t zyD1kRK(Zl_ECAOpdzvO%weNY)vZ3PO2xaaY5XkK9t^s?K@#OrTboZt?ea`?YybqZBe3ucnU(vI99N=!Qr&)>pA2#wMj2HlmXCxDGvk|lE zT_iotj>iKi&u*N!h-puA>_2lvM#4l|@21V*@51sH4IwP~z;>uqL!fOxgg59~o9&)8 z%tL?m2@?87nPoSL9CI;%IzJ@r%_Q1Rul07)c z9>wybWnHVXjEaW9yTCp%=ikRMwqL@s;Cz3Na@PKRw$sdtTzvnyM>XtzZ#yD@vFUd} zN^FN%H_{;s(++#oa7cxfXh_Ez*aNbf$hrN_0>Ja0J+n*A%ZLg-*Q~@oWo@tz$&#r3 zL1lp2dn5!|d9*E8xsiDPB~K~+)a9{R3R5Q;meb(^60#uR)J~dxL#ltK zk)b*7l*a=h=KL}UxZR%DO(QdN-c61Naxmv#f`E(m{HSSUWzPFYz4@;Hu_ikb%xtw0 z^g+YST8hNRe%k~T5%A>FFXtKGr*j&r-~&h=;}}!z8)`L%HQ{)sOdGmT*j~gDJ{z!) z&XE`Mq=&{i(7@=UkwD{FoHYbjXvBYRV1VTj32Yx6Rj;vZ(#!!49Ot9@O*OF;{*VU# zp()M1lH&m=;QN(9z=@#EzM)~$NTKlkJbFC9(VX7~0q5;`EZ?*}e>@&YY0lR{fPRX2 z9?Msm^L}|e(8QeoM3WP&&tM5(0VS#-g%Uh$>v(A9UJY}qgR;iCR0jck`9pvB!tpCK z<5#Z!x}Cu$o2reO%PDaYQOl}mWBO!CO&zIPYD=kob@{x9BR2*e-$#e25r!TvaJ z#<;u_r}7X1pZO)R5yo@deoZ)H$NT~H6STh?C~ps8K5BwPD( zGSI&7mSt%$_dZbOo6fKL|Eda&1}0CE(i03u1cQr3GFZ2(aRv-EW1dTZ`xHrbhoinsSs~8Cj+}+XT$9OHi7wfT>JNcFPZFRp?u*iadI^P@ ztEa$<6|i_Y0_E${tcZW&)oucHT>@82#9D7g@fyKa{){&1n1P~=wUHi%N!|f=0)`)sTntzOKbqFH5v010IshwmGK!|7nL;OruwWd+tZ8CQ zIoBsuiZ5WakU>)02J)KyM;}-M2T^ineu7+XW2NB?hk&?U^=yB?Nng_yd}0`BvyFyn93jccYj|Wt|+& zR@rF|2{ZOqQ~8Bp1UIy8p(^UtjS)=D|4LNOJx|J4JlGt7o=#)D5=IrzUp+>084HKo zbQT9y9p-<{I4v0|!En6rq7B6)#}DKpuHfH`;TEf5lMWK@(_47acCy^gZ9$v7#Yu`Z z9Wo%=G1Yy_1u7E+mH)QsuV2^IhMF-$1qGhXZ_U=NfqKIN+sbJxErs8F;$v8g2&PC| zM>Zot-_stY10P-YqMx;SF%Lt@W~ZOttB)XYD4Tz7l)Om#xp=O{K6RJf13K)Ou)nCR zt_+L``J7swR4K5gO-zf?Z?O4k%VRC)MCJ%{#2OcDcC)~fKLA}9&ylo{mf#>ah@QbP z=eG?JV>WN1#A==xT%W%E(Uxq)Yb@Us!>wVe$~G9zr#ouu?N#f>2<%MdzfV8hn9j)i zT^oOT#vyvxRc0e|^cynF*yBtX+9mWTqr=AeZ*$O5G0(khs)QXq5D$!A8NgU&cRgep zi{qFu^A-;7{PqKtcN9E<`D4M2%pi4&%50MU1Wd1r3^{U6CNGQVBpd7Ydk-Y-MTyZ! zCZ+J;k5-Bauw6`QXRbx=1_qziU7rqNHIIKXuXJM_GD|DDnoQMZwNeAYnbwNV3uVM9 zJM06Qnbqm-j4!p9I#2jKIv})KXs;daCqW-+TkMj0!h4)-ua(hg%SlFF1V5AINH>6J z%OEfjD%YO%MSG!>O4#aMma1fh>&J{Y^PZNcM=3Ptu~s2ENk`}VNL2~*sc(BSKvRDg zdnE!-YOJ1W1vc(DfgsVQq%gXc0&XTN`|G5n3I0`WPrZ-&`-qOaaU}eA!oyTY3){LAliG+TDMg*t4dOju1-_?oOb%8>`LV0cz*uhkEQHoZx$I zUCwIRI3Rw}3bXl`1H)YacMv8KHHV%K45e+f%{>By!9g?m#b$7?CdYw4VwR`4il@$o zq`Sr|;zpl`f?MdJhEW4Clta0PnzA(=X1Mr|h?Nbo+La~b=UO?HarXeNQlNk3rtT`E zPRE65zAy4^{J<}NLQPb^x9s&uDlEea8)?QnqeQm2E#U6FFl}6Ym0Lv=D<>LWPeU&E$4& zzciuXZYGh$Kh0uZXIhD24FjUP0>NmZUwCanup{h>g+_lHz99;G1~)f3 zrF{q?w+JaadEGDP{X!OsMSR0vE97ur$zmyPMCFo78%vpUAXtHzKqh%8$eKaG9F|ewhY-nH+wZ8h)7)ewh}2nJj)9 zaYq<&hZ}K68g+*mbw_^~_1`%J*2_~DvP}l%Bs#^0)9=>zu7iV_9L*DdmKUo7=w)z? zKWPd^?v*O@)Y-WY3n=EI3crl!G`Fm#ffdSqYSCkDbgzI&QiQP6%m14s5);t};nW+J^8V8-W2()|}W5kLC;s7b59fi21Wr4Jj^N&|r5vumsF)ns9DdLWs zT4#{mV6&Sr|0{ldU`O|R3}N0CWA@>PGj5L=u@a2?4!s`3Tk)uFz3Uhr_!U`Us~+C@ z7cBfttgs$=blQJ~YBy8bS_duYu^WC}E2;;AF<%3^Q`vkJz5`%1%;LalJ77=1VQQ-u z_Fgchntw-Fs*cI;#EwApd2+G~mtf_jUol-NUw)vitfk@y?J-rYoHXA#l0h3%GdLhFQ+MLYt$q_e#>xzFHY1t6mqEJz9Gj2d!eXt}} z!O?_7v0;C^L?uNs1V4$307d!uMBK&^!xv$v`}GV<$;0A9R_tO$&fY~uk3uTox;n(= zJsbC@25e{cOIBj|+N=m*V+@36vFORjNsPxg=8|kghvp|qnzwSXdPbplUvH58LL~l_ z2Pe^$3XXr=x*gnCXUn0wqgq5lpE0kYG4gDy^BnB!vJ4pA!DYp zIuEXZE2-V^!0II-z>4uqAafvQE=6Ni6{<40bM?rQb^D@yB(IuDQtg&mb8xz#XQOPh zDIzHIv~7*>WRWj>GlogFohW{jNjy_~j0)P5|vLdRw;`_v+d(27H#jp!T|{tfgjCNbE-PO599KJ71DI zg5U@Y7(IzPHFN^HJ5+r?ZA5xsW#0sXdjEe^L3>+(uNmm{&R-+I;wcN@fJ{fb^noqw zyUr0jhC6>}S6mHA|3J=U%A9~cmRiJ-O zyIC5kv;5F=au}_nxq&(_zd;(ImCV3IEMGL9@q};B%6ZuU4STzqWfc!q8Z|Vv9w2|k zGh!#Q=l4oG1{W}!6>)S3x7OY_M)`UnWDO+4Bhf}Gik`*_qc=^rQ9oGvTZ&^F5QLDb zLY?pC=fm(z%*;>!O!5k+)r`WrO6Y&<)1+weh8Q=6^noNl?|<>`Tdez0)J^2f4VH`xBzhGc zL_7!=5!Co0F@2Gp^`n+EZWKH+Fhf8-X%7*ZaGwN~OmIM`&lNoQwubUfgmW1&%s3<+ zc1t<7)iNgFNW^X@notDl%H)450w3n!CLrT08sIjZ0J#|k!JPeTq2{wW>LQeco@7u@ zuba}n%9P^zuQ?YD08>kJqkC zIw+;E4-F!8mvNA?-~i$dSM>qr-2k6Z#xf1$(fY23zt~TXvPjN>3nPD+aDCa4*1@M7 z)s4jxaHZGHLKr?i7BB(C?Qx&>!8aG$eZs9yQqb%lp|sdCj>dGAr+Ow`mRGf!T*&6P zh1tGDeq@!Ui45qy7`2?Auz0iI2v^n}i1NB^Tsdj?+vw(kAK0uVtU!6Rp3A*b6=p`} zusyV*)#iQ%7_nbp5n?BNxU{TvtenTPGBLSSwjf<@9xts7y*w-i$K$9%ImOs#<_IF)Z9?nbWx zKUXOl>{tcN5cJ!S($5|D1`4zWWa9{x042$b0pd^JHxrnQ`vn54;e1L*hr-ZYEp!+5 ztb+(`$~$)k09+UsB06SY)oq&~!@3zefsGv3igf;SF{X6D-~F@A+0;vLu!W`*Xr6UI zRa@>xlA8LuMp%C;KrT*g?^B)+k5T9&X@QSv<;tdL9)DuraSK4-8`vt(F& zQ_y%0KB5AsY;-Kt9e$bfN&@2j;?&H`h6YBK$4Z2<(v`FVY5!!XHMU4}qe5Jz*WvWm zCVy3$jkpov*n|?WPHn%l)I>S=Vkz~E9gKV|gN(ZtDv*B`wKfLir5sTO2RLnzw~l*~ zahNt8;@Bdy(1ggv4il=v$C47J>N`5gg`?G(>rK(ICVQy;+#icCu8);zCJVO8S@yk( z3fqvUs*c-?Pna5y&eRcYXXLj)HJ4txSDZljwl11tC3OYVSK8~%>fmp7(EREOR=|ul zR4}8=7mt704MkqZCmS-K$~3B^>dHQXvxDg|Mg*=mMy@+iF!KkD0tlXhF(=z_gUL-l zq;!0ff#Yqx@76{b<0&|S+d=aIQrB$(*tqa5jDlqFls_9V;Ao{-vFZW~;f-p}fQ%R* z(C|k|yWt2vd@WC2=Ss(4(XZ@1gq0U@a!uMOQnG(s#cXfPOuJF-OoP_)>k7iZ&SlLh z!a3RTveT+~fMo&Wc%S<-B?EJ&D?J$P;Ur6n;p{6_NPdts$w?LtFXqENIQA#9l53zC znwthd6uqQ_XSpE!mLg|11CV()xCsa@=ZAEcl&Pri={Ffss0xN76}kWnFE(4!-d|Intch>9)b1O zk4~t*nXZIl6_B?WAC2BBl#R?%4erQmGt;WO>duMk@&nV68%!a^-U~dPT>O0mcS&!^ zrZni`v9=RFJ7ea_T5ku0J%fKexMPQcW-r!QP0&k)51a9TTkU9*KfR|E zr-izEZ54*dYsJZqdkYCZK2#GbDwB_ek1!GNsB~nk6x3VOc8pHY*2sS zGX0Ih`bE-nKVX12$JfU<&3(O0-XCQ(zpRJ+^qV_jx3P$_%ny>o*(_&^lKp$Y1eu(H z$Wv@D*u#FkpQeU9JX5^H*TGm=Sj(q6?KS0#>nP+&Hae<43OhLZ-obOhdAD#^nvcUw zSj*UyZ?etZH|=^yoU2LY3$GITRGv^=KY2lTgBwPkMH-%MnAN2!0!NZH*I z@UUO(ZYkX&1g738q2u^->FjiRuP|47eOTq&7Q@~>8VyRl2TX>P(VB0z&&XTuUWm9a zuGcWn2lbr@-op|fpubO2&bL1I7Ms0R!%!ho^=#&jf>pv(4~B^Ti>@HrY8a9io3?b- z0BJJcf)ahOEj>#7AYqLY18aX?vR!*R71zM(5}pu9U@Jz!-is6ss_{5rB-wAxuf_Vk z2y;WRBtu2N@H47c}c-YQGlRH7(c?&PanIQ4~u_J$20JocU zhr>;)vxjMkEnE_vMa+Nc2vnu|)*OH>$#loX%?RoNq;--SUn5AkP^^mLN?~4D8EEKC zoc=Z|WJ_IWp~D8sCm}Sn2r=VBJI^M+M~lTTM&0P>^9@$o?3FyshVPTs4k!8H?2$)4 z9nNu>xeDxd31-18-0b)&_tTR*Z$EdLSi=X-6}PA-JyYp45@g5&f%UG0AIyE&B18%(Y>tU2=c4SBaZTW5JtVl+9F#}mr3L- z|8@7s&aOcM*(PT(VT9ak8!QPZ@>oJ%iiM{o;bSE2zjb~t1bV2pY|ZO8wX$>9h20*f zsh5Q`WLmO3zGHu6w?c}2grhO>s}cQY9d_oM82Od`!WNlC0)={UMiErb81gy;219gY z#sh$q;jW0l=%wpdfzBV9AW&Ow_np!xT)favM9)> z4Qt2)O7yI}&!x3PV>z20;{~)3mt?;AAU5QwM{gSGeFlFeIcxQjSA-`+Sep1%Buc6@ z^GhrT)^IbvA~!ao**LTan1bl*A#WP4O%-pe$q-#d->@ARl{Ub`M@RMGaBQrxKJY(P zuhM~c`4Lsb&w{1tGsgzgxGNfkd4{+Kd-44;wc^T@RH7(n;r$2RbZK** zpl>bc`=@{SPvpQ3B<3^?HXWaC{B+G84qk@gia(s!nb{NE4tYPX)abz=ra*gtV(%UCJ7Gh4-?mVNYxurZF;;^rKT^ zeE8X^cT)8>U-~F^H{uX6JaAKr((VageW=X?I$VFAA!Mh*?FHpkN(2uT1aI(}ok>obnYRXn|C|A6)q{Ob0Y`U|T-U7E5&Aqmf!l{bnB(BHEU1JJ{r zp;f@YWqx}|((>8w_2buC@>ly`5}mLg?~a_x7^WluNypJ8BY%k4zQhUFnn08n7BBg%;4Fw3+9lSL^Z=Kl3pIWb zG(8oPy6oQG50anrYZb!Ry8bekmgA!4w|AY(XG=ml1W&s_BPEQrJfU@l+=LGV4Ano! zg$0Nt9Dx{m!=yo(5r3IRsx&$!`=a=OdrN;!P6>>`U}(PocH%PYA*!EBdQvz0XR7_qi1kYgHCG%%7!(fIagI5l#t+3M>UJsKqio&k5qKsi zP~$hfVroUiqsr$13M4kvN@kcqU!gLmAqWf*b__BK43STm95y#bE`*epFn_ZBLj4eQDKkXT;JxA;M|$MASRaf7AAt8WZw0Yr0auCPfWF;&9l!{hj!Z}e}&As zdMaXRd9#z4TQr%7EJ3Fi7YfYZR^NA1`?M$WX}`PPV)IfT<*?Mn2mjzEcsiqB6r!qV zo?6mW^_zeC0{i`B6cjFs>`(WF>Ktr5!<*vybjTS6eWs-{@+xP1Wox2`KMU6!|Yj#yRrq7+og8Q1v%mdt;gZ(Y+t zA$iM-+~`DI7hLB@pg8HvYYn^vKwkgj@W62vUJa|GWY2!wU0XDDd_s~fDYpbPV_`0r zbA14fC$VJVJPm&oi6SotkN}u33JOhyx8XFe*PRK;?~-FJNl>I1xdoz;Fmlo%BxiL< z%JE9*QHBNt2@^pamFFj?MP?J@nSAmPZ3LSNX(S0Y^v68dTo2}pGd48J;aHMN_^E%NuXen4&gk-fjJKy}pczZJ zI5I0Jfi;qZ8=C$k)$)+Zu1oP(Qnb-=KUb9ZOIuv*Rq1VF8TLTX;sh;}bbYzdGXn08su(D#8|iw};AJ?9;@beny7bH4~ADzZA9> z;cu`wIlOgdX$(!<2G5@(7E=S!Xlrl-V!JE4kH6u&){2Q{X%YY6<#*=X;`rot1SdgV za5(hh3LAjMJA`^s#G+xis7zrL2!j>GAvxiqNfv)l8NyMR66`~Ql!zYQE_oVHNp14u zTPgU2z~bD(IKJ5kj*WCf?3-H zXj#Z{YIMT3BX;}Di1}Oc*ZH20%HB*93KP}D$;27}K0v|0QTVJ!??TdruKo@q<{Y4$ zQ|A11>3NrbCFxd@YcP>sPtfQ_4@iCh{~m1Hz*tu;f8^@U-TV!YbXUy zimrZLT2@}NMGzEG-^QguLYZSONAW6EW{r;wSb3vEr;M^ZVX_p87y&_Skbcc5M@NHC ze4NV_G3BDscKRYiU-jEbP&SY3>S~#LSO$O4_;qc63vut922#IA$zj7)xtzr4pp>rs zZHB;j`AHoNLkg0Qj5grY>92aDVy>zx+zO@yC(d95eZ+?*or=3SZoA$)HZ53zHC@9W z56}@BMnnoNFt>K*35t=H`6eM3{RM~(K|eU@L*)?4xXQC#RL-<-nIMW}yn`)YSyCUs zU}=zlVY}Whf8eZF>&(=B7K=w|!u@)BvwSOizIg8@jd)Q-?6rLKX4?*2KBy7=49f#O zh-WoD+RT3R1y=@fq0M&b9tLeBTIyV{dc8NdLKp>VoHcEccTnZ1T%)pkkMB~>p_s$ZNq23OmC!9w`D;KjSd-Z zYU3l|BzL4n+MlP--3&1x=30AKLTHK`f_09-eUI7kIG|$iFC8p~ra^|`Dh<;r z30<`4yKttZS1b@$6CWbMh=JfeXG4}ora=Hcyq9iFS%GKtR#`Pq8yF#3<*fcOrebJ+ z;2xwBm3X+DP~y~Iv1l4<7fzf~gIr0zx*i0L8^T4+IUvttjujN1Uv6AsroS^#@FrEX zhOaqDQ+pP4@Ya0TvLiI0bp|q(ki|r#`q00CCQ3@@6@PA(6@JURb6q4iwM7(1YZl2a z=8@cN+o{UwRu_XAubZ9RI&&7t! zI03)n5sGTdMV{M<4IFWWcu8xng;(x55DVKhe*zwH9LFn#J9O@BA%sbMi7Iu2U=zMy zeNgs_xW2VfIZzP=YLby01|YY(`FUFC1ok3g;Q(4>ZG=$@fVjs$;fd{=D>TXlsy`Gp zs*;ETHF;mJ;l&c$PC|@?2nU3JLuV|Mm|kRUx47QG4ig$fbUJ3C7<20#gooXqN6Wh# ziTHIY(!ocJ4K=u8_NzQ+)em7eQ|7!V#j*v7Z7rjfIeNJMAh<*iH-fQJ#Q^YkmpN9F;<4pL#pDzas4J1LW!)W`hHNX#iuW3)^Ae6s;uvRhB(~(7`@#9!t?sf_#m3?eQ2et7iX;%oZgclXl(xS8|>U?lGq7@PeRJ%I}tz zds&hCvQ&o}T3QpD&OI@I5?$tqSVp9=q+IM8dryIK&$5!raWL;d{w*nfUk8Xg=1}h0 zD&J($*mgAf(*-{jx&1M+ER7 zOZhpIg(^9D#R47j4Bo!Fnb=B7 zDYxBnDVy$Ss{l_fsa9Mv|FRC4@^v8mFg|H;8op7Rj6^Io+YF`hXWJl-N{{bbtDgtB zMecLiczwI<0}qFP9Hi<)SjSI^Mkd8ns-5AwYCygIh~H8$;c!5a<6*yrWck^*4d?Hv zki1q}3|44w9r6`^LEbDmgk3-G2F%Krra+m+vV1p<0Kat^ThPxo$ zJb0or%X&38h%2P6@Oi7Im5PHHIeN(^Cyn&N+(!zcm6HR1BI#pnyCL;nS}|tLMcz0x zWBYU_d&SC&5}QPCdZ_12aS2Ei5v^MFD^R`{F2FVdIN6~~zqgAF(3gApT>;d-Z9<4A z>y|S9S&v*Sy6Km?d8SMZwp<~Fec(93We^YM#J2HFyp#jy#wUD<-zca^lKC00F&=%y zafJYj2U5&`qU1^4*EF2oKq+=JH;O~RJLy~zJ?pZDqvhYJR^?u&+z=klXPqv9`Pdtt{pvqnjO=+C@s(bNoS*ud4llASO}o6I5y zcli+l7t7TSMm!lLFEQC&x|mRQtKxDu&K{3S0y9OSnVSvV$_&o4n7#gS(>2pr@Z!rh zb!-2=5s@FMhF6Dq%9xT3`;g?Q_X~oj%FxcOEuN>?nvT;)AA7p37#AnQc zqa*--y53xI-xq^*w7$QQrhhb~7St=E6VhXf{;x#k0S*NYIOklX+>q=fc{zldF<>%GpV{0Z<4f+CYtrYIfi8& zoc#cxcbim53&w|-UC&Zy1R)dRPAHKXNKZd$La^9wz>C9NpJX`)S;Y%s2`Oz2Z$Pbo zfpAO4#DkM1;y8`AnEW8kTiYBmsZ&`+PT?*@;A-M@5Gpl1)YD9Ta!23+Hv$^F>pW)Y zugDL&dpgNE9wwCpVtjGk$2t%IkI_$#zwh9)UFsn5V=z2>VBZ`?aD8{sx1q75mB~?O ze5ufJ#8x+2(rsv>BU_IxJiTeKA|}0m?-N|Z-DAh-4*-<0>|Q+nC@_4-pU8~*;Z*QO zT)!4=ZbVJh+(Ig*)`6aSjxXwo-fw#?j! znJCP9=<7}Gw>QbGA9I#hZq->cG9~kTB!H7r2Ydw*VZ%X+$Tkn>Vz@;_`imrgnWjcX zAeGhWBG!mI!Qs42iR_Z0q-!*4ol@i0!#%y-JNJb6(gsKqzU(iOLE~`%NycaK&NAuu zYY`A2S9YE7XVnS0K63yAE4%IXB_EL37qdVbT<9XkALmW0w@Jw?4zz@IwyD}FWDs~F zE$9$WNDpj`PybG{;8=5(rR-UMl@)c@X8)B6nRnx6@yWVT*RLL1#BlAZHgj`R*X-4_ z0=+Qr(d({4OS#NEC2uaz%vZx;E&jjnWp*746n<=5jp$sQ#~`!)4r4zMS#H_*K98_P3{E) z;itC0R{#S%O2?}O;}an4bczMKEiBg0PGpP?{rPUq4YD~H-QKPu_2Ej3^I(Q$-OapSWz?JVF$ z^@q3rC=)|JZ4(i784F~As_3*qKBUfq+Q)0~*@M@quS9VMI*eln(h84lKx=qj^i6h* z{8p7dAloClX`nC#Z*cJeA;*Xt+u$fCeis3?Z$uWgLFZz+wi%UwqTvo=eVz<^#cyya z0q}B5W`_C`y18a-^xQfe8v%k=g1Z>rFA@1pTvWj8`WjXywA%8jAIfun;apWjyuoNf z`FJ?KKNH<@ZwnT-&*hEK1RM0FRWAjPb+YGCeTZOjreN`l+NR67KrcaXd^BB4hSVMA zxwC@nX4RI4CQa;rI@Ewmd(;B}TUY5ZMG0y8$KFvavzMux34ZZ@EQ7+NeVEzfE>@O1 zU=A~~Fa$q7N9y*dS_sb?hDo{%{-Nx%M*)_#$u?InMR_F-Q3NY=PDoUq8loX4B3b-< zpQ@n5c+MdR0V`eDRPOc@g>i*oul9beOT-MC6K=OS|y24$#O z4E^=dAL6@zPbX`($mMt6qSSZj;O=JSsHgZ2&#iJRmPD_*KH|W^HQNu=t$Tmj4@j>V zd>?V2Ho>Q9IJ@-V$wg+5lci<0pg}HfC)^?sE1pPbCP2{wZ&))X^+=OI0>wIc!;_!U z&F0|$r7U+A!VKH2?n(B&L(2I^grH_lPi<02hH4mpE|4#eHSDeApTf*zi0W*9Hh6_i zQav34tFz{*+n`Bz^Pr&cYa=fy*u}E-2kWDL5#0ltl z`C#^{rlx*msu~gXT!H953kQ;{gZgA~-e85la3RBRPLx)qPWf!F5S}e|pXOqXv)Pn2re&k^O|Z71jFnhgO&D-lRbg3!K3YPL<@uSdy6T zSj7JX#TVUQEffJ9`O5TcF&B0}^u1Qt)+F6B>fgI5bwGOBN}7gZE;y+slKr@0dh(lo z!YI(@KLf@|k`<{OhUVngnoF7|V{q0WaPOsm_%sbP|J>bgbe3TO4o1V@1f1Z!<*&m4 zk!XI4%NB8MGFsIv(PQxRPp8dHj)@xpV_fU^S#qMs@-N#3!3^l(jrAkob~WuYC9=N8 z{7N6rIMrJBT=eXDU)IqyBEHe))(jz&eKH;+@q^HwL8msD)jD;LOv*8M$;zG;Xyu!K zaV#4_O=$oJHQY{1OKd&}(^pn#hek7D^L?L+F6&%!JG0|(o_jSu_O;IiqNM%LM2U)Uk zzSP8!$!yX;aJ*D33G%0FQy#659q#jgMnG==wjg5s5uyJJ(i&otg9RG3V$OmO9eZP? zLV%vIWlKXUog8IhN`{>_=j=o+npxq7LYtYR;>f^Im=ERk;=hsBI$~qE`Ts;(V>kV> zvcUgCsr*l*wcKZXvdqjPu%c0d=xH8bNqBau{1APgn3Fb3ahR_}8M0&x)A}TT0g}cb zCx3W@d8SV2JyP+Wjn+a#mv}IpLpfwzTL(MhT|eW7bbr3v)kQ$GG@;Zeg9vR2v;PYE zpx9UjczAH&*L;!E3dL~1gDVmB_9;ZN`8U4=VTVLwA}|CM!H7Pp2KxG;6K)Z@O<*cU zOH1~Gn95xHMAEZ|@7N}d*e08Q^vt1n1~TkcN~uTUmCx`PmR%Cb#B@V{aSkx#Ri7q< zZyt?jjzr9{oD!VZ`)QB{GLOmB@AG+SxR@&IBoZTo7DNAI3;bt1w)w;DDr~|I%iBy# z%rZjzV>nUq7oqJYnFT?*89Pg%Yw!gr8zeAxTO5WVKtn&`KHJ4SuFlhc;9F$7!YUNC zjG2mlH!4XhCbkVYR=l?2i=G!)}|_?dwOt!0b| zAfJHAQ9^+#2#w60-Z0Si)yH}k$|1ok*`NXhpa{(Lcxa+A)fgp+CLC%x5hD0?(G>q# zFauXTc(u|thHRqPVNcwDNa;|VU#W_=Zt-@E}6z94t~KL}dy+ zF4fro>Sumv#GZ1W!Y7h3uRImEK7ZeSEPsx}s`vnferj#kV-;zCeH>M(t#-@gh2vnC z70D|jA$+ZGY(`hDlq9Sos<|aS`6ee+C{amN>GYN4w^8jC0(3H9b+3zo-K8{~xw?&# zl&lB|Ozx;X>hLUfXq%#Pwx=3(yzB3eT$7!KHpd8reoeeNmiP64$wMNol*}D@KIn%uBPE3mi<#Ty|1!U_rVyLB`f0?ogq$lw4KUAw zok>DSp`Nl9yxw)DC#Q0jal(T1dRAK+9%Ic%cYcXlzRLE(!JLTh;=}0MFWJnAaJ6#M z0UJhyYt^FE&FgDixt2!~tGpn*h4pDh)Lnh={lt%pTR`Q1I#vivk@vP>;A$63MRYTc zb@w>Q-8&h)jd14TlKOyTNKuH^vM7X*%gWqtE{OJ#bsB!$0?8{OP8JkP zkRZ$NR`mMeUMA6k{}YD5#=k=Ps@*`Dpod?^npy6z}Dar z9(o;=2EDObYE?9T{PoZ&%5Lbt+;tgIMpk90tQCdL;D|Nau z+~E6K5mlzp2MmL-A|w^xV#0#3>WFAD4S1~dGy zI}OW{?3eK;?sSFxskdxWYpPM*dvAo#K%=V;RZxz9shglpItc-_O%_ zI@9y!09it^yV>1rVm@6}UCKyN7Tg-OsWo87!!$prQ|(osbu_nvbH8ej2nXHE)ndDL z$EOH?ozLM)Br2OwGsb42s@29su6Xt%nT-A@IlDQU9 zcZ+Q7l+k{r4MSw~mf>NnT=$u{?k?k~A5YwWn>rpX$~5!uan~5r=*gejFn$EN)^xRZ zPggDEiaV+HMLIoMR(CNEyTr1)>8ptRQRt3#$u+q8Ndb`(Rj0mteHD-Hy7q*w@x>jp z&1paPoH|a=1&ZRM%4fpauCC`za}v2_(4o3*nV?O(TAtKXHCmg?a~ho{i=+>gtzFiC zvuAHCXe9P+e!{n%er#93$Jf$~)^xem-TCP?ctxZx_tV>8$12%e z+hJBvI3E{XG`cox=AG1V8QAr)ppQ`gAifKnur=wdZf2SNx(4N>c#+k4GChp#!^kuA zayoc`9vau(WaaT=eL9V^&h@UV!O}l}RG00@JZ8!hWu!X{7v849>|VXt%nk;V0o2VP zIgcif;CY;MwxJBB_rW6!M$)oAu61>A*=I10T%S(IM?vU-q(pmvf>s zk+^lXMPr7eC#$T*R(ow@?^xE4cG)G$deV!wzL(4$><_~W*~jJT)bi70yUY@bHczWN z&g%QH*fh<p}gP~kBdueGPL=@qKlI%eDtd)E=(1@7}ilEs8> z{Dh>l`(3?Rr-QcFW`in7rv?Ontmmi8EgZd5U?kjqO#Rcuf4nx2=cOF#v2%7#%i(Aw z&Qrc{>NRKVx-AoIa2sDJIGzKEr>xRTYaS4SF1rXLh;(c!*L4=B)x`+*#>MOE_O+$< z>FT{++j(X@3a^}WFE%wR;_BYKF&);xb-CG=2ez)(IZX6z!S`!pdtX<7q0(+{-f(zp z-9Wd80gUi+mPjK4%zOB z%S}A*p2pTZ-)87F>lNdFR-0sPt1;f|)v(`3Yb$)7+Ls+C#(vcAZ6C#=dZ}hKQ3j8V ztxQk-K|bG%vUoHFC0xoqIXk}|bQ|J}1F&Lej7mmy2co+h&^l6|8%yNK?hd88Lp#f79^EwLZ)2 z68G3VE4y3x9sdc)Lhj>OWUGt1n5~u$^>iK9U>F*@SD*Oxgt%(5Iz6FNYAy@p(iJRC z^2$q&<^dWK;q9S+wWuk$nFj*rms7e#WlYU32~N4`&G|-8t2~~ZXp?4ew!wGb}7c|b_H2NL(iMVLAyAIv!ZW5D|dZ3JyhDCo;&?^o+SOvYA49kSSdlS zU9akL7T{Mw{N}L*KNRSqjkjBCSv(J(-%K`H+PjU__%+$TaCT@W+Ub^|dC?~NUh%f- zW3-!OhW31a?U6A%z5K~bl$!c_Ek=%Duj!`7+v(=IKcs3pIy`J4CIL1Vv)<#x~eZ*7h8y zJB}*7*v9wGQl6m;0wS z@-};4yFF8>FB^{-kOp$2n0Ris>Q;F3`-qW3*v+v470=VWaj}x0j7^$@SmtF9d>%I)QG#j`+x)s|E3eZ-m7?+aM`xfk$nTLJI)UpoQ6wzSRV z*=Qht5MK_wr&mR@btZSpJ>EOpQuDL3PwwOcfX!zoTyWT)8OO&Q_6)#zyeCdgc1Gt- zLLa?R1Av6wRyfzqubq6KxvluX1Qq9vbvz9Zb!fd?AOO(uu{Pr(GyNeO%J;ADliU2$ zd*|MJr=I+N{@xB4)SFeHF0&ku1%UbdAW?09%-JE0kM3$r0np|BJ~KZ%_2kYxx%+VS zejh#3WN^&ZJ0fSyPAjL)p~%hIYpb7~=A{AP{(C3h+LAl-(0eDIgg27%11Fa=ZMhQ? zI*^B#dh$p+@LKXBVg4ea*Bwu+^Ei$ByQYH;k@UO1rs|$>Q+b$T1VHamYb=T!{{aSn z{~L^a^ag#WwH ztYXaAacSQlgmDWvrCytdAQVGqszG>D>a9EoRb0$A3Jpx>2&y^a6miw_shH({=MAB( z3F3Dgvpmrm@o+xgzdzwl3JrlRlOTG{UV`XB_ye5n4RH7YyZr-L z{1@18I{E=pIPhQW2YB2YWbX^iG_{Nm-A68efEj;*$njhPAfN3w$mtt=`U84@y8H&) z^-9D^s|VWL#hfmKW{28HGg|iYS`v6Tof};`*F$xIfg@b1sfQW~%pRIT3oVhANK`uJ zl<9)ntC2#@gswnP+vvs;xNsCelU_`+w20_*PRTsTExo+J^5E4dpm&#mLAjCOmc*E8 z3n-MeS=N@$)eBQb=DvL&ci$S%}+uTBeCdp}u9z0(lU^?as(h-f&l3)(4qdRaf5gXR&?6tk%HH}2P>e}*E$g27mV z`57$z1Kj(=&u`$@FM0e1?*0Y-{R`As^7tEc_A_>dupoir{k?s^nPYH_&WlL^BBB!H*aLkO-R zsxk}`^*e2xfXt27i|tX-Wbs`r1GbZgO};nxK2>~`pm3xD?8Y!hwI{*eNk>oqOM-Dm z5|H!tPr#1!1L`>P4;uD=3s3Qv>A}O^0sR6zObuIt6Mh36zPxYH)Pav9TY`T>u@>uA z*%>F};hUaK>BGJjvvkRrMG(udDE21vbl?VrOp$(bC+F{Anm$O*xvw)^b6SXmwtT4`UepB3xqW9{s6`Np$or& ziKUJF(yNi8aXY=((0WGPdX@=|AOTp|@YfWSo1<%~-l~mVw9JOFzlg~YA814nyw26Y zNQs)<*J4b?Cbf#`>re;{=jxN-DfOzg9Weq|&dZFsTlzrUM)ID701gS1Y z8Hq`*+F@G-AMY6Ud!R2Q@TlQQFjrM)Z!p)NAnOx2q@DKx2#&tMf2G|&pl{&sw{1yR z2LA@R^nL+M{~TN2AnjjZp+o>0gvFIT4Ce0v!D6JL7wZ1?V16BuXlOl|~ zoeuVNCqYC-?RtUdA(!bvSFZx>nMR~>1kK*&je!DM>Y^eDMaQVqFy@&FCkf}kJgegp z$Q5B!uN|gII5DY%e0fw(z^I9!3P{kn=mveOR4j;qB2l@Nc?5UNK`bp}_cXy>y#e`) z2K?%m%wBWVK~K`kDR-R$Y2;klK$=@FZaR$A-Vs0s00N{xufAKv*T1 z?hhdJ-(`_P-{82ZRguE7OFE&PxoF8#y{NBl6}M)&br%Sb9%vPYW*P{-A|WdXkBrcu zA*u3a&Xn!d%I_YoEeEFtEc2LRw$Pcn1#a;0MTSd%#?a!3jz*U;9D0Gx8fP^=dU>H( z&?+us_1xl~VHNZoV_|||iq2@`59_-(T0bo=5NfLw0pBETw8OkvkOOf+q)%GTvsi*K zAgix{cYtdn4{bJ^m%`ru_C5B#{Oa45eFLZdvSE?;^1gWT2gvsviYWRai=SYu0||(Z zcy9fF226hgI{yX$FTVii5BYE*=nz8j@DKG03C^jgT;MEm?QG*Q)xu26w2Zzv;Z%fv7AJX#FUpb3HIn9y4T;>r4lKZ4Io^O?$pQn9Meq&~1p8xNQvJs%_v} zfdX#$j6)C%nZ}*_B4;KOqt#hk0VhZTu;QX|Fe8Z2MjkRO<6q4Aw|(%zkYMy(^w!lc zogMuEua&a-J>C!L>x<{_*iwSiqtg2wAN>Hh^$ybJdQz4jU-UDE5{9!D3<0ACF4QA` z;hq~Uy~v(yB*3oY3A{vtIX7^tR79{ed);?%@E3NLJ8ny@ z#YZO$|+l|9ydm;xRzQAom zu*mJO<0%4SBB7KrW+ks^wq1F3Tq^c|8&tU8vq9nbDi4*0^~(hE1{Ib7>py(WkJ#~- z4L!YeRsXHOM)0S7@n8Aj=XTp4)?1iJ z-5Wsha;Y4xgO&qVFEIfpAoXg6nE@<{twM9_Bbao}4gfi(^kVCty3c}PWnSeI?7F+O-V8x$WQwjqe_(TQ4^nOiJsL_nC(bq5bc zzR@9Wv&M4{jg3lJ63&+U0r>D@PsacQLbyGnrm;1_Nkf`RsL})3E< zeUI~Rn;k{yD_($oPW)EP-L6_&0SROrVIH=d71riDz-H1%>H&EY&@d8Fj!Eh}r zBlSTr!w{MdtYRjw=2jQ1qV+6g;UK|`y!3*2X3ISye{9Gg?`tZ_nXAh~?a|GT;S)Cv zzx?#-hmI}Zdi2Zx)3*+O#;*4>hWzH81YRFVd-=uFkM4efuG?LIda}De#`!PX@D0ZP zYfkz~(YcVg_spONHrLz8fJ$BN`mmFbx;jKY>J$?}ZDN$J^&;|(GTI_muXUm5zzL;{ z8mLI^i=q|@&k5q3qOMvKT>E;+#(v0;lzG%V0d;ZfnZPvPLFxvzjd6Ar8}W3F8+&OR zIgvI$Ad0B6UH$XS<3R1t@ zy!`g<|G>MC%%rYLdA`2w?6(eo?C>9cs)!<6&h3lH{3Wk{x6Jb2d6R>}=ZJb3a)OHJ zr1LzcG0CKJbC9%pzU2RW4N0#Kce6I6YkkEKN0|#ji}%guhFl# z>{qVnE1vz12Y%@O_nhi${v=}yAE&?Lz2A2I{XQJGsodSySOy7})qSC)NXIi;woQy= zx>Ho!=%jiOr(JO1!}*Y{jOgeY0S}y3vvI2x2JpRqH$aU6F4~;}H#`joPEaM*YP_a! ztfSQ|A}m5!L?#J{xSY66X^ZTj-tMCd35?@iN8}b3%(bNG3fq~-B7EzVB!keF@@Op5FPQT(W zk(xGts~lhi8#i==LcQ5#vx9R!vpKc>fM<)#cwumc&5mcW73HL3vocVydE^%?>bt>m zS5LGO7}J6KKj!Jy21AMvq&P^p1&q*nSG7otbrvYGud6!ZGKLf(u#C*RsPHgRac?@x zTVSS)F?niGMwY-d%Pxe};ooz11_&&-zh~ZmQtDG8<9~&gU-AFx+YkNF6&ZV)f63we zC4ctivwqv-AG-Hv9`k$7E93lMxghQwGUJ{vqbS8#IW0Ox7($JJiJTu;Lrr7lPf%bL zGu=-B>8o+ZBIbiqa8~3o5)q|kK8F@H^8!|O**vqOXen1hy=6Hr0fkG`yhLM&R5!8onW{~>F!0jwG507g zBaS%pFjpfib0bW+20Etxk$uhkYdv7jRf4RboA<=x@A@g@($Adzhi-oPwol$M{TcuN znG=?|&_mRNL*Bi|{AWJ(&QBWb?=c*IDZIfy=`dLxL+@xu@sJ-~=J|_~+>C>Vp(Pt9 zAgNW*JpsYpfbN1=*;uS0cA*6{&@vJ*21Ro+1Y3e)WIE8&&(alex=T@N{EFd5e2pSx z>x>X!%^kK4MVt`C=_qNX->mXEQx>7FmL^kH2%?OcWJQI>^o|oOlp+jr6Ik_svSKth zTcYc{$%xE{vBH^izI2Q908CxX_I!lfcRZ(?oKz4-6c{@=oXYqzlk)^3cm@9G~;1Q(?^sqjdL0wv<+Si#n^-&dsG2Pg@(m29%F^du` zJeQz6Gl?CVffgbK6k5=u%hDy`yr$h4A^rxnEBjNSGv@jdR0rL><#(Ka_A4Iy%tK@N z&95&WsQAr??#)~Cr@i=*m%-x$tVsZD-ilQ=v|F=`mOg8IUGT~PI+@EkHM0*JrYsEb zEH_|225n=F=m_^3eC?>M7i>v+Y5;S4EFQRaK?xSoJgPXIJSYXOU<6T3L}clKW}*Np zyKFHMa=FOrPy77}ZbZ(1D-)?NK1A<)=9iBAF>m@kZ%lv89qA``_o0c5BLCP(_BE#8 z^)T}fohs8G>mR>z;u(p&$wH4ddgsk_Q6FrSm!a$R4X$hv)DHtHf<#J*?#&F&2!?v6 zw_vOS78*tM1d+9CB^nb@1B}@jw_e}nnvI2)7)ZeZ2nlwsP$jK@BU(>rNN+w$#l%vs zwm}VoDhz@}R=1tZ4Bya2P7qV)R+pM4%B(9R1dVOO5j6&0_uZ0Q*#%wPR*eWWzVXS6 zW__)}mCSqSZ~J%w{1fGFpa^vVzexl{c3i`ava6I7lX#L z$_AS#>M)}u(3xw|`6Dq3hB?g;S8un&$c;P2LDJ8nbH8QGk$JZGoo5sHowt0k-?{Hs z-h)rv`)>DFO#Eg4^Kbq6#A*lj7r*GqthE z?ny-C+{17K`7@v>37CeURY!T-5UXuGgJ~uz!1IA-!cL~HNyF374p>V-_Jd*ZIB_f(2Qr})uGtM`e!Hg`y`kym*epw$Kzb^xBdRH z=J(;#+g7Ks@twz6vM(KyYcs#bto60t@SX4JjGyyGnI{fa{3AB{%uV>8>ksex!!LQ1 z9ttq6i6CBjsCT4I9VGMWoFF%&9u(DL-YS{ddW=SYrEN0qAf}uV<9iz#3alx-s*d$m zi_j-;h|p;Kz(8{lTt}i2MqA}hP*;moxntmt1=Iy@pKQ6F2j0aiAaGFI!!mv=+N~*= zPeCTxtHNy6)F{L>2F-x@J|+iFEkP|DMv={O7FLaec-3TYZAf**>%i>D#xAS1 zSA-+A_73@vcw72{U-|dn{^AcC zn09YDe!utIpPrG(mZV^>z+hd>DRyY{#4o~hrY?0zEsClJqb^u09dl%Iv!JCHG%1Lg zjYWEk0x%J>Hzuwe90(k8#WnQU*zTvb9&y`$&4!E?&=QtrMwpsVutQL&d^5i{%ae>p zQjdjv<+K@*a>5aH5zZ>sy>3Av%}w==H*C3;;i>)7SBHVr*VnJH+Ie3wME?4^|JX48 zGmra~cmJi^k{|S=!!3J#tu_A258GY-_gvB+d6Hl8 zi|WD@CAUM*L9MbgTQ9(&0}D=;s2dmoieeYkr4ipNldDf1Xhm3!aajkZHS195Y1x3i zjF32})YgcLITVyH28}}x+tV6rJF|!!9qs%=A{27I(giElttQu{T%*-u(nc7I{HWuZ zg&1*V?%ZG`G?T&E0)h>m>O`)uv&ck$%tOZLQc8eb3|`{|UV#L)feY0kaxX&dVlKYG z1LX-%@?(eI|M;Vj zMZfHi2+5fjf1R9#f0xzYV2NnSKKB6L4v>l~27BNd=-}yqC?)_qXfz<)UIG^Sl0g8a z)mOQ50<7U4haKD~PzYN+ z22BON+)RTsJdkCjmW0^7NyJz%-iX26dGGr< zfaAbT%Egl4uL%AM5-CME*BH!S_a7&mv8;+Kxh;xHgvd_s&jGEWjo=`6`_S1AKBAWE z`XA1+U;6O&IL7<`dtX%~3%#$C%f976Wqpn=cWS+#Fot=*-|wsazTO{ysehcn)&MjT zW;%`wBME_rQx5vka2v>$$*~kZdI-lj@~p&89G3#hxOg!6Ep$jbzcf2iG=Q=OkWQ7b zdxNnL5q39#To-t1ruPPDLpySy;ZQ&)c;t*68hG>LM$0nC(nrxy`oh2WBwDo#fPS;{uhDL`Zt$7Dkj zVDdeBZ-6xoc((?{dV;-zcBU{YU;jlLG(5vt2m=d*vvpH)q({DyDv3Zynzc#Opx{QcYSc-W`~7;ly$%`MRzU%v&|`BdjlRD&IK5D+5mFj?_yKv z#M^{Z*uCFJV>jJ!2IgGo#6LVBg7kRIGSkQ!kOxUthXxQ!%s5LzR5d8msbXjD1`HP? zgStTM#HgqX78{^{w1ND3;DPx`t;ivC@k22Dqd(gP3m`Mtr8k zhxh*}pp?Xi2BIqsvB1RRWr-cxo@NP#y#Zn$jWji2lg4(IU_YaA#T$Z_i3`YSo1!5o z`z5<@C{Wi49C^1!swnX}D~AH(PTYJ z1MHY$WR#^}P?PZne{=!RLwE*C8w?xSwosl^uxi_FS4Wl^Npel{ny+P2(?^BG0 zuK3PdXXJI~<75MjDc83iQW=ST^e1pJ7R0nq4HyUNasuYup+i%U$mf(^ICUYQ3O%?R z2wifI5|@yS1exuEpM}2aZeZz>dytU(^1ICJ3|YQ^{3?%JmjJ2!IB`ixDk)b3H;CMl z4FHp4Byw6^f)U>2k&!WOfFy5y=wg<*1W8?y{A2aip|n1v8(>aJ4hY&HZbE*F`J($Y=Z>1gjyY6&Y=#?CI4CKxfDbt1^o+MHaecmv+Lg7o<>J31zk-4Pk zqrXOfD4=10gE&YVL=UV)MgyuGQ$Br!xAsQ{Htg3f|?p>k{)*t~3qH z-{n@>wHUq2_pVFqcR6kv$>(qRH<0mg5Xd=y{i6Y6EB%KYw=Nb3sWac>(l{YEHu!I?R`djpggO+n-8-e8c3%L`{p0IE1jTnMQ`d9Z=G zx)nbXGY|>XHcKhbX&dLyxj9(liXX>>n+=R<7H+8#uTw!4%7X z{;{TE-n-lmyB6Vh`N?&O@hO-5P2c4X?poBn%P+1==%-xrw|bYmrQiz}P>P4b?F3I< zNK=gTkBsMU-z&#ngVn3_r5^5t+dYIU?UzoZ{j%QU^55tg9TJsx(wB1{bif-J>*-XE zNol7MOI!r0aeT`v#eOkI&09WR`9lYPnQ8`+BOq7{FTA#hkvNFCNP?z(({=(H&~E>y z^gb5c-+cP*zjghKK8pWEKjs3$$G_?4ryS5)`HH#7qV&{e$&eA&g}Z^Fi$S9#|M&fO z0oag8`!aH|x?13&m}9{glF$FvPhbJWm$K5+7r!@pC2c4eWyIYQS&ck=^(Jk9(#a{S z{19}0L5-r6Hmw12U^l7)Be8*{Tael6?9v zD)}J|eKU2zly>zWbxiu^?mLcu3G~!thX!IjO#+sE_&eq( zeKTG14V{9+l(m2|5xDwlMc4#ufOVbOzz9_{2G= zqEpc2e;GTOomV7(w5O1^NON5P;|42fTjaPyVanZadA@|yo7qpA2I>QUD}hsz9)hWC zn_tZFP%O$$>Z&k0A2;9~rC<5T$`oJ(sat|3V@>(|cbVjEbd)~pn--OcKw)fu{8B~b zoFE-~hi~2b*W=uK&<^;5)~fXT?gsjQw)>(}JpPhBlCcWUZvVtX@3#&TXrzq~-g>?k zhT^9Yx`#>3`NF6k%@UA*A?+U_f2S+%?C*5+-_>`Zcx=9TbAuHd6rnjlS%N`J!b$4^ ziKKmHT_@&c^H*AC4(z|t2DlUR?%~M(yvIu|dGo*P&qJWfdo;SV@yPh%;b;7P%YA4H z9sBrOPa3%EPUrCjh6jC>zrQbiDQ8D^`%%aL(-@X^=UUKNA`stgOl_xpwSoK&=7b~`qsN{>38DO@BVdN3wnKXZ$v=A zB)_PPN#E2-IltU4g|C@68 zZ6Fbu!bsjPrL4n$`rZ)bZ8w9^lXlvaarF21-3^+%E;urNSjxDDXidWbg0i_c2FPpl zxh74+$=7o#ufLvqANo#Svk(3II{MJRuhS3x`#NtLIe#af{C4WP-g}NA`=5l}OU~ih zo33seA>-FK-R4aP#+z=1yO-?yhfa}n0MVOn=elx@_=~Q8>pB2r$ma00`tbHo5E<0`lhR<=qZIMAEHG*)Q@%*L?aP zz3G}y|BW}@=F@-lp;JHo|Ij_94lQu=+iqAO<2TKjB9QOqq0~EZYY36_-Dix-cOHUC zIa!{Jhkwz3Z)Hrp{6#3-Xe?OV5%TSMM#;QK_Q-me$ zPR5kWU$j%#CFnP;kZt)zyMMP`{W)fO@4Cx}VDG-lxf=AGDMFH-;}3m9=*`_=^sf7x zmQq>wZ(7;r&iWV?0ki!a!J`p|#zgmPK;FWOSJd-;pjdAH*i zZPPTo`OG_AFwH3?zk)uMGo>-MkPuahw|gOq>ZQ?;M-^zK@*AJGJ({uR!MF0+&>f7J>Ac zrBRN5S_V1Ez`lMQc=>Cd^T380mw{?bL)YS{&l9_kaYM%-bXzZ;pV> zof}7eH4%soTi}Q^BCZfeB!GX5l2C!kAdtUjX{`Q)%ijkA7W@7cis*}`f}Fqegap4& z`v1-!zV8uW3ia=DED;*o-{m?O6qMiP1ayjj?BC@E5Q^g8<>p_?eK=Ee`h7nKoe_CT z5||p~fW}}^STl5%`%$*<goGFf(=Ip`QMfGk?M1gRrtUA?t4A&$9K8>t}E$Nh8~}Ms{9Ut4A2ow1$Io96Nu%1 zy}@B6mq{}%nW&1W9DL_)#2-L~)i~*PJaAmtN zz+Cp1G_oC$>}LXK55$xA4VV>V@Aru8XD#nj0e30KO!n7`WP1wP|4^U;3?`qaa^E$R z_on#p#iFu4A^W?Q{lv;YwKsXofuomy{LV&v_~J2mNdC$m(kxEwuYyD|Yiz}5c;z51tiHIk2oWU{?=cHj&DBwU+Ie+Z{SG!x4bP+*7sY#Kk|5j znM(Z_ed*KtJ8Ri43}55M`^d|B|F7ip?OR^&c69Iix1L9`{-qr6%XdHC@;FNV{Pnxb zzt#KEgIIpwqF;7J``8toNWEx(zwAf!)xUqyKHzUXmwF<{!&^R7{(txD5B{6v(=Pe@ z?CL%aiwwtnb_2xB@Mt9xQ*X=k-4Rl*}gyw|z*{XT&91A*v% zd+hGrW%r-{^Z)#B^2CAvvR~)B|M7KoDv#ZNIP2wZ_1}%#y1GAZ|Mgwc+`HrMKhCm> zb6g$=zg?;s&wp<*UR(VyF6}0f$-XmM=IKx`ywdkT#J{l@$`9rxGlms(e~zWKQ5h1 zHeEN-LU}6fV7%6r+u?b>^D8qP-lN@gJnGNG<;G^kc3Q87tf$}O^+TC&7x`@m+j{d% z+5m(W_tm<)ORw%k^!hS@+>eV884eb+mT;r597` zBxsd|y4&wYvspfWy032KBD-Z-szqI@mxPqVbl8K}cE6mq)QAU<<6$@t_t$vud369q zK)S!<*A^-2;C|X%&w9Vz#gVeT+#RM}EH~4Y?y{-GG%D( zIgQL>bDwqK&edmq+KhX>h$&h}M)tOerY7w+&0;gU)Zy*o)cG(yF7u0oXn|j zr_a;HoZZ{;IG?VS<#yU_7N_;ySG8fhy-#Nej?RTKn4(R1)tc#`P~ilCBQ&NVgW_%y z#J6mVyLfc+)aB%Ke-k?I?vqtg`RevG;}K^|y2zgA*Crz4>3wqGv383za^w3;(RH4t z91fT34y}fkIy*e}ubz0VNAo%ChI@DGdhW66_YS8x*X|B%^?tlO(rq}%0c)hxf)=gT zedXn(dy;M9^(_vaYSd09igp_f`jL}dH=sUtc{a#TdD5Tkf1a0qU(K@Fw7u_p+I97O z;;fx&*)Tptk*(j_MNXTSK3TX^ZFClsU9%X*c^f|Zule20$hM1;!X;>>Y3ywEj*q8^ zhgL5;@A?PJIwNa)UOobHm<-q5bSlorLO)#49lUaU4Vb%JA148g$6CNFr5L)WmdE!~ zxGe`BeciHje?AI>*G?Fd;I!WCn(M30(RP)-9RC^3&aId8`^i1^cMK_^wYRUsxv1KC z`${W^J#HcB^jK7>sd!Zt7Wdwb@vdhd7w46tpZxqFHqlVAmOXRWTi!M7UbRF&PjBAX za>tH-ZqxbmkVon|*`32vP_K@3Gcz{kalFRoMRn~Wf2+`Tr*JVhG=-U>L5)AZ_syHT zRMjpu)#4KN#+ysI2z5PQD1)lkv8*C`egc{*k*L>2bWfpmmak#`2&TjE z=&hsPes)(+*SfLuRFwS*os?jC<4N4|?ewymzuNU?+iwT;Dc>K4QT<##w)s^fJ7*G( zo1}F+e^hsxj+L!1F5`!>jO+Xr0uzJNdV7zU^IC#_VVa>Y%(SFB60FzyHZN>jQGtVlchY9DKpiK zP8Qko5RZ*hPcevSEAn!x^SmEef!RG#uTLbhe_==uc(uLf(|&XfE``U@q6@otGQKqH zT6FnZiCRA3H?`rKlTWIf_q^kiZ;t)sdJiYe)<(r-l-Am9_-gyXEm^W+F|C5wPz z@gjUqLli8lhq*Y#D7iRuPuxfC(A^QU7R6;*>BY6t#!sAG~o*z>Yk&W7}=MxMSIs$?9gB0KqX6kQW~=_N+l zx~?A^F}dpOYy?gkBGt{(y%|MI1BHjQs+Rm<7gq!*4xJ(>JGs@^udjx!yCGd{YoFBf zVeGF~(-7BTuK7XryluNaJ5BiB@AZS>f54iJ%>3dWz*}`&d%QaM0Ua)ekS#a#;Y=lD zZg?3oFPUF`ZX3(TAuYDil-3g^@aw9`CPnDFMqEz=bWc{%b2v7Kl|SRRq0?+8oI}1W2x)o`1I&3W&1kX&sx7}c%ge>e>Caw z-U#)g>dSf8EynHSblr7(_p<7(XRF;_2ew{XBT62NayvPc)DK6e`l^?srh47Rq?lk~ zQ*|;Y;S?Pg>e=Z(hL7l6SfiB|WqzTN%PSu5>jz@QJC4@T%zgHJ<2-Fu?~*wJA!6{EqRhNP;Ku)IGv3w_+vBAStfX?OJG&J`;tMh6ldngG3y11p}cE{B;C=uu$a z7S%XU2lwF#EraAZ8(*?VsE#u}-P~@2Wvbm5y={0H)%jcx75AX*ER>E{!C|pIcni0f z@U$82*h@!2;|3Yd`svy}e@_l$SGk`sx<$>Y&v$3_P|jQ)hViXWubG#fC++R=LWfXH zU*oFS3{atzrHKxPmRJ6!xV^knln>@}9A&Qc=!EHy-1anMgJv|IT#BTsYjR!lS-H{q zcr4VH#isOr)h&C-W618w>&_R!};FL!v8g_P09&;yv$>L)1N_5`%e2hVK^)bGlL|6}E^ZE+Y zOEkasm#NJ>XBU}DTMOm74(1_kGVMuh@94h_?|>-JjwYKo#svij^FGL(`Fses19zVU z_Gv2*Pukzx=^@<5e>-FC8?#tlvQllCJ~9_v-_`!Y-xnbtYJ(oBXwOUG+457rTxySF zZxjy5U7tF)-9qJ~bM>;eR%D>(t!yXLDPblz!Da8;j%k zd=TY!Iv8@Tf6)$_kVnll^A%X!}hrhf9}o(TzxM{wSM&@Yp#wr zuD+h}!*Y#>mrJXZ$8`V`wBA>ymPZ$BxjqE-5|O!eSgOf*GtU#-|BTstck!yQ`E{VWaid?V|G9K6>ZDeQoTF zSfkk`85bG3LK_`ludQY5uyB1{zXW9$`u)t@H8&h|_Tp&UyTT}(j5!yk4^WAE{nD$k)+NrCp zHO>0fGwuid!St5xG*2Il&6DSNdqYc&*xB#mUE^-pF`xK8-BWp)aBhOt>SGE*z|L`MigfrX6gW0b{PW1ecs{xqGJGpdK{^VzqMevPiZyG74*BxZhd z9nKEpED08)1rlM^r;)j+{O3GVlwDje_Gl}zf3;S<&LcYQ7vb&RhWIHQ7`d66BXriT zY}+Qse%(9mtmPsIsya)iS7$#pMx*|2261m(&FwVY&y!}N1Qx8DP}gAT+`*nchJ$*NyVD{z3)`BvQI4&3?BMhG2;GfOR?T^N73O$N9?ToApS`&X4s?$%yXd@0DXw;w*XT9`R6Z>2&dA(EeT%tb3m%z>Ub+ubC=A< zt29tn8@6mJWxK?^MW}j)8eC_yf%jN0ye3kMM>(ob*|8mMlJz-u`;pPt$=rUVU9@1T zC1zdS4C8)KgwOi``k5i>@u>d{f0S&)m62HG<$4o{P1vI&wZB(qajNIziJ>mf3!AK- zdPvUBezOI7zTCaZRZsGU?SkCvyew=F!{O#A=rKuGXQY~Ty*EYwP%j$jwX40Ad*l$T zUaj)9mcvt6d6pLq`IH>8om2YvH13DgU!~i=GPUoM(>a^e_LU{4>}fn)f3Z4s4<9Dg z%?h6U>4$@2$)ZSGb=TM8f3bDm%Gv_Wdc7b5ybBcIy?ODF;l1}aQR^>4-MT?4Td9P=DsrJrKhwqx>^ZUVz8%G~%YPLl#^T z!mLrt90BZIufvzrE%1>Ne|xnhVLzww*Ien`_YOSJQ9x(aTEegAsZs6?GxC*DFrkN> zabYG39EX#m^QxQCF-Z^QaYbwamvI)#5iJ~D_zyi@SB=(C4nT*Pf0(g0U|)<83yPOP z>Ups}PffvN<2`RFw6>Y;*#TTATc#g{@=(D41eG$s{s@m{y4q8?f4*d^wW$I3ciN%! z#9r$gGL8M2d{qEQ0apfaFxR}#!QPYBSICsyqu5R#N7cHy|4KJ#AmK8#Fr8CoD2_m3 z*JY^(9r3s8)k&y}@QX7@Rvml!{y@6SHem%1#1siXsHQLQn5bTY8YK2c0JuMg0j~G5 zarIJF=B3cG^(80Rf5T&&1WC;C`C@_T*fh)fL}#jm(y#n4E}o1?VMw>{h{Dx~>&0m) z$Oj2?XMlCb0f|*dS~Zh{0vX{c-0$pDZ`|-E^I0p?iZOQR!(^}IA*C-PzvG9y#t)bh z=Wx{ucix6&>mQ0I-aK@&7aC0luDDajC_R*&iS#Z+-{WaCe^vd^k`qfBg|Hs6;|*sh z6nHiq>slh3R!CaxP{YUi{giXl2rIk9rS1qTd8G2Dp8+?wRKN%o5C-%0ip zG22~!nxFN9e=IX4t} z{bBFiV%Iq^rwO=4QHoDOBoyn`ljpf5izF!KX9%;ydDR-=@%hqAV-(ms!EKj)yeKd( zG{c~#i3_M1FyW>g2w-*)$u<6h2d+d;lV9|Gn@!=zf9&WgX65$oIMSEOlbj8JKWwT} zxOM6^OQ(VVEquldPT5!6`lYtFAQl$oA@@~n1o*{|ePwtbeFDj9y*CX6@?67eu*EX* z$W2Ng0C|E6f)?%BOlV5rbsvZwVqqTPEz}7DQ{YWQ4@krua?GqY5QGlKDDH<)+p=H| zCtB?we>hrgxAfWS@o}4plkASfiZllz!28B8=|L&(AqUi1{x}Djk$czepflCUoFS8_ zK3HJ2m-MgS*66wP;|Oc?TD2oMuuFYGB|LEvRrST)FDr+6W42^I3!7*zAa(upz8O-;_~x3+;@bX?KRh ze<9#?2pA61j{ZbmwgzrioM+{>lJaU&2&{FdJ>a+8p!25nX+r@?fO2{jZA*KA6)JQz z733@{K9mQ!_hEI!Ij588lKU(_LHFSHMx-GUazPF{`5ERCoV!iz$38Or6@wc=Qry6g zg>yXw3 z=q8YaG`x_oC{kZef47>VtzbV(Da1SDKUH~_Kiz4Punt(i(zgB{i)sHvA&^}Qe+~$9 zp}b%NL|?pH^{$}gio=;&3J?+@fi-K}@-1EOAHa01%kXe~XTSKi!= zJjjGJP!GRHmq&DB3(z&tU!128f2BfzE2vMLStW`DOP`GsKglgl(?O=Z^cwCk(pXeb z8t>)A&%r0?6eA+x`bVpy&d2L9{qjaMDui&ZSqzM3AbXD=pCPY5*PArwfN|-*n>-sA z+WsaPzDicn;IMZeD}}*nlN4CfiRif%ucdkr`-^3$B-p0jG>CsmyBsg}e=&IyC1|ip zyNs+)AgIcwKd<@c@N}Ih8-54eN!(<%Kj3Uc(p6j#0*r>?f~$64h6B`eG*33Jea6VV zpphoFo7WJvR6O4nl|7;lVehy2ffRJdRy2E7dwLU|O|%Gm+Kz)L2N7V)73a!uPc^2U zFuXtW^+p3K0)_w!CJ@?ee+SwPNM0jU=U;zs>#bD31De}mYQu~&4Cce3!fREj|ESiB zmnM@(JXy9ImNR8#fuD(F5iR&ut+)iK__QwtL6L8V|JYrwb0}zgbx2el-S!o9;IkaR zNQt0uOGGC3QEt9+Ev>odrhLEO$w?AhsE9a0o=ewiLW``uFM}eFe^9|AE65H$1T3n@ z7^~3q`n*W`;ozFY6RAuW`!9jBGiQ4E77jcCFdm4 z{?+p$JZ@&5XnrQ?e^X(L4{`K*oIM8Sf7jK@V4L5U-=U8^**3;Qzm~!)cqBX9TQ4zZ z=#Vx~TT*{^w&Eoo(`1Y00D96i^-~*fZ0bInU?ZC0MZ#wz&0uT(nWKwEM(n2&H1noR z>5yNCsB%9M$Y63=FqduqY-~eEy^%_zY6jH!vB;P!P! zbPJ03uxLcz)BMpa-~cX!VeX^PW>2P$8CBdBB?YRR zkg5p+LUz)#e`RcKVs4RceuL~xWP`1r_U|X644<2PJq4yT0J9w)`lOPl-&eiRQKNcp zYXuU67}=j>U4%oHVWCMo;6rWj|A@YUw4=jkxKYkyh+zv-^_UoeHJkeb}QKWx; z`?CCUI5eT6OC(K2)h1$RjXVLPspIxrqtbYzS(?#QrCm~7dV z*-hK^RMk&=8#lc0(<@rM zW#?eKDRmX(^fk}n25EW)ocY;E(Y6G{DA(;=61j%eeLW>b`CBB$D5MLdD88(Bm}mm- zg+hE=f4IRa+%iDZrgyP%az32hhXucTCbuPH#A2k6$D7eH{b7nH#IjO;>>k z-@FCRH#?3jl&5MNTFgGkPQ{+b^%?P574%VUH(#D;jiO5*x~wyiAsGBbKWjHJh4RbK@=tp4G$* zNJVj!Rv=0Kll%}dE}{side}8lyQ9%1%t|H+l%`b{n>nQ-!>?ow~+*j+v-Qh5vCev@+4Llu*l;&;){_eU22nldp56`9cAcLOtRH1T>D=;Q*gcxPBfgc$0Vtz$ z7tYn>uzHM}qQ!E2j|aGTG3!zrugWoo3_@F4*&9f!g>5lOqi+6E5R|#zDu={A$%FI< zyL^8KZ5gTZ$&V+VC1P?xA|o#uLHV&Ee{xy}>2&QJJHwH_mYajkwfBj+`ULQm7HT`^ z82j|WDb4wYk60cSxQipwsYh@-E%uB8b?#;Q3Wh7Y9>@U)m-be$D~T7!CJ#k8BBgj? z6pz#1lulh)T$dWcvJZJtu7l*X%N}YGBt-s#9+3p!)&e26en}q0RnN+tLFCQye;t<% zrlt;JUwV-;k_M?HjznWi8l=}qa@fk;vbN5CSWDV67ZQ&eT~n}sp);J(5I2d~0gzHG zQUR*qrz)L&&8a@Pg;npaxNC_HGJjB=w;BDC2;lsQpndSQ;BR?e)A*!H_m(k1Afpm` zd!v=n*cAL32-Qkughk6NR|5f@f3O<|(lSAXGwWKc@Qck{7V~`WNf4Wl zYB_N(77Pv26be^}&ZvqwTEXCbe%J2sdBeRI|(sQZVe*@5S9s=m! zUBr$}Hmak$T(1Rs`Y!Sj#~LM~0C z1);_K1(M;`aG&fQsa43y-Fy4T4%Wp(khjbBuHhy*1c(ZH^ z>(kbQ{3Iudy0ET z;)_*-o{xlaYPJlAkd58u6x9YI(z`YSu=2SaHws5kE{qtr`?NZ%f5qB?N=eK4IimFi zRw$pjS6Bri;zh)ay7a6bWy;)=NkVpeN!Xk_4$-d}HO`*}OxuIQ!2>Q60`7#|(-`+2 zG`B-(x|*oUoTxImYD&V0$6S03@`zgg=M{F98*d)fRqLk?DDLT0!0Y608DMot@$&CX zqXIa+;F!fJUcC|De_A@IfnU)lsBJz(K>a{!Lt7k7xA6hV%`gP9x(CppQ|kTW>6Mte zBSt=?Tq7T+h7%NVKKQ8E))Q55KS=aPp>e0h78p9)R?toypfTjbKtf%C);%L{3Bh8* z4zKw&iq1QZ7=C^qzq~w(?D-yJ9&Z2ySW&(BR#d#VdYO#5f8ZEE;Ts6xkAnL4a-<@? zEz4hPv&5=pb?$FVN)>=NpJ zXlf7EVi1L+`(m;m725SID$3A*yQ!Slh(jLs9+n%?!P&g>E&iUbSR($X7cC!^`~Bu{ zD$K~h2D(y)f7{oN0?u(sYPTA!u z#&XA+pvW2M+R4c7!Eli3Oi+;hZBynn%v0Y`qhkH``_zu8f@G@FXdOu}t{~+AKyso> z(NLu`OD+S)+$f5AMj#VSZw)__cWTm1@>MWC1Qv?~e`_B5t7^6SVe0v)suVoD^P_Yb zMEf=wl0xq3AIQLjIChJl8S|=oLbDGqsVU$JBgtmzM6rAl$mR=JJ4r=HNY?^SsGs7v z7dK7{eH)o1m!F?<0$%O{LxV-nyIVV#6YA)M(b2=0%zf{n$9jn0E+52IIHW=~?WRB( zI2?f}e>(U-&d^N+V7WI$qs=D=VF14s(^>}H1$f;v&sA#^YdJ;WEdMZIs#|O2bb5!J zSL8G^N0l&#=Hy{mFc~E5|wsU%E4pRwg0bO$gQs*c+w(y9cxW=oXeR3WG zBxnU1PrSfTzUhRr_)CQ8TQ1F#YU6Qjq5RrFaYcq!OA{>EXc+pgkof-fP{q8ntr`7P z^t&OMH;ptbq2Kw4ydmjf>h(V~iq7+ve{NsNyb@p4B!TOPKwK2)f=N@JiqF}EP-fbo zppem8y{tf+;vFG?zTxhqFOCYyf>8r&^DcR=yt2M>7=8K0#AViL{WJwAQj2YkMJGG# zeE7N69_=VR*ma+gCmUz6%7<@JTz7)Sp5l?GPVr#=Y|vac#SR#yfAvds0hmbP%@q7L7jTtjr$d>a4KIs*>mE{LjYfbOU;6xWL<>QNydY`#T*j3`ZXES z#6J}M5S2pQtlk{bx!zy7Z2I!re_FX@YVgu?2I!Q079HQ0Cwt>$JtZVE^z_g<)U%VQ zXtMu>ZdQUPZ(HjEKsivts$fkYc)R$mU>+LueVH+jf0dm0T=-!k zg{sPs9>xjJJg=mTPy(`z7l?XY#VOVb%E_z_NkNXPIbf2BzmfEQOd#rU#zr3$bD@9M z+ak>xbY-!G$T)2NYSb?DQBxOY!(s-t%ca9foQxt8O-<$k=vOANar#a{X7-zXA+RJw z32QsU(x#4}ga*U6lEjlXe+L0DT^b(D9BKv>i@iMS-g9pvir6%KOxX+)-63@~0iK=^ zfcNTqBkFz)WWJP^u&x|4Y);%a>`V<=)?Nb6w1GN`7I8Z zm##!K62w!PIv>CU)*%#JPjUe|HxgZ*&+Z#DKn|`y@7H{)1^rm|W)bW?DkG}6 z3zEjhr?rw?w^j8QCZh&l+bJ-nT*I``ZcyaL9(J_&M3u z1W}h!z|hgYjlfe&Fm_yl;im^G-FVA7*6Ir|xCwa=LoTO0vW`LUw(2&3w zjb4kQOfuP4y{co0$AI9vtF>xW=HOJu7z^wP4*Oj0AgBCvypR5H;@_&wA37W%j5Hpe zf5ppbxD{jYa>a<`2NssNGh;~awMLL>H|Fre20A8>!%>Ng+`p$vnGP+=a`qD8e3>k* zGX#BXOO9C*2R1u4@@S)!#o6d}eY<(&N()Zdj)&1Tu6CU5OlHNH- zrOE-v?$Dyht?>5xKoxA_$XAEZ(KbUZeuKz4ygz6tYtWjAxDIH;dxXb00_lSBg z!>J=ce&mgv*Qpop)1uLEnL7PNNrE}d09u~Ok0s-$>hHG-XkHo-F&Kn(%cz~YfAyfg zhQcv^>fQ-xsCZ4LAf0~`uiu983ym?_ZR|Y1itEBWWWei; zMCvfS1E9*VRJGRDY$bA^c3}a429}%j@(d)BcjzTyC_YMmJ%6l=JwRKbEHe6c^o~oj z^k=(F@dHdPazU+}*7J=cs~p1of8L^D)IGbh*K%pWc-hWRJG9ik)i zdkGGMU^eB8flng;JhMQ;qGs7#+u~{R$k6hhYZv150%91$PT?$I(uy#N^CDU(rfa-H z+SL<4F|~l-d~MixB7eie(e?pDX;E=(p?OKA#%cN+={R}embT~f;YxKCf2C6;>{7AK zHy;6`;$++GRLNcCH))cCVdLoXCHNEZw70O$@t@;E!IG`XZye3fo`N=^fKfXA5G-KG zMYj#(BAAiC0mM(cic;QQ2P_8WZKwB+{&>Kh55WQ84QBB%nn*wfa)SSrsV|cXT1MwC zW_E)|{)?M70^iCukqc#ke_L%t3HiNnzlDPpu886r8B1o%(P~a|aw2s=GqGL1d4;=E z@!^5@o9(>cd2qw;=5J5XWi9Gd5N*bFBWLtimqx0AHJ^}>2dWB@=JV-&lMGhNM4Qs( zXZsd7cp2`GxFKk~9-25a87!$^fl)fkJv1EfiJ_t|eFXLxJRFMQe}Tx{Ffx*%_R{e> z*=^8$$u;zJ zZ_;Y!ysQhm);8Djf1ML-?uaNz7_p@u-O%@{wOawT&&I@&Arv=m1}I@^zbC`7)e4WzUDjIKZE1zydt3HWxid?_Kr? zgpt7A_|l#Pf3*mxH(=~#aKzOG+-R1_Q6ctPQh!cro%UC9ce|I4-4Qks308h18Mpbh z9JK%XL?7q0QRt3#>LMe;w&HM}D9R>#1BD~dvAQ~#As*Esc=EeUJ(}K9khg3Gz~=Y* zD#Rz%9M5@V6px3VIFC{)W<4P@&B{$n=?&HkSULcNf2TI2Mp{v_HPBRH@H2quHaviC zq^=awJ;6|rXn1fc((W0yK($S~PpS?38mmt*a=dn%utv;1{3OyH5Hy@jmk54HHX3qL zAZ3D2U#lamL51)Qq<-%K6nFn;c2MWCX}fM^URjKIymjynq?A z4FysgZYMqT$rE-);(2mBQ!3f${GHX3Ih#Jof2%vI>|>R!G^(XG`GvcL5SiFop=9ec zoGOdtFb533mO}}tD)7rojfxE80cAo0yz9m&ecqE(E8zosDH|ybB)E&~831Y2IfX#n_bCu*I~zzw=^3NjyCL ztX$kWXNcWZHrDi#Vln!-30^sy15=lGI9*@E&-0nmUT?lbwSREjMr9TMk?J#pD2qY6 z5%V}2{wjb~0CU0LVj;aLOi-E+Z{ngce_8zXErmAJRde&N&Y4Ehq&g1y24jU^pRhlO z=bl{_Z=m||eIs~+3X^z|*NY~)>#|D292C;Bj76PD;t&H>ja&MN1(E)|RIPEpU1{f0 zZ-qrop|j(vTV+N!QH9ovlf5cA>W40;XMyBSyjqUJZ57&de8C-qX#9jg3d+)$f9f=r zKtoiebikaV<`Yiym*(1B9tf71)2sGXpElYK_JgxugR`+gs}*D&Wt~i49v<7`0wq@iwNe5IEKq8rCV^-WZiKK z|LcFsz>)vQ2L8ADf9GhO|C6KTf9?CfbF>QcKd`j_p9HP#ztkTfcloE+7URFQ`tJ-l zHU38*&T!*D+*|TjNAZU57soN0K!2r;@Lz_x{YNNf5QypEF_(%zEbscK2WPiG^EhV2 zElHNhf9b^e|FD9&|HAA3b(kOzp49)aGz`Oq2*WU6)bN|7|0%@9o?)2jf1in*|Lc!I zV!-4O>7QPlVYr_9FPt#La6g5qe@808Q29saVE>vHroUDyOL+JZ-!sH){_6eHmmB|~ zcbI*{yWxLy;|!Nk{|yG_7?x*R@p`llcNEB~LSyT40Xe=)oJnwRDplyy)eaElx#5$Mh^2Lp%ey zo_P3Ya#{~kmbpd#sNEoMlsEpAGN66NRGPFEwITi}SIshK{z=dji(a)ENrv-ENs=2ZsQe=9F?h;OZtcgf zw|>|){C3U|7(K3q+tcT2`)CH7xv9&din+bem0S?yB{L!tp9@>RP>eCYm%up; zZcfC!j0B0Jva#sMk@e3lTXNjPe!RB2H~iZWc5g`n{XE6hf33ZuSk>>zz63}}8VHD- zI@N8wUquQEPzyVMx~Z^02_y^bos0y4jqdY!Qw25@lNXFwv}>^FGEv(d5;mKkF2$Mb zC9b;Xh1hUuOJg8X?EGd{7(}&)Tavuz~$MT=yN~W-OWayu6K} z&X38+DoKOzf2+B8qmf-CGx|hxrJqhtay{d) z;vud}s6C37)qMcQqdvl(;pg}jA>4JR3W6PW)b!xmC7CkG{PigXP_l&$D3>@Z6%%6^ zmp>-FnTu7sy3h-ntD-Hd%Odroeo6Y9pw?3F&;ig!f8vO_48K0qvz|*sSX$mKwi&bB z^GbFbmRc4~2VMg?=&PZ@g;YpULs${nA3SSW>rFM_gcloQ#E+q+`nsI$V5_%BAvFb6 zy;5eOsvmpYqG~uA;;wZ+r>qdU`jfw!SMjY*tz5_{Z-NvF+v&+)XuBi-d%P^Pa-3yH zPUR?se~+#7P<%9u9Yd->&OOv|JR;{(ijlrEeg`2eTuTA`4Hv_o(u{`nCP6V7qti6l z4yA+OpxVctf$&GyVEh#gt|u3Q3xjA8=QHX7B0vw|(ojTt0q@&4`?M_CTJ^^4w!?}F zB*16l{{n!C#R~}tdfviz0QC521RA8s#1KKne?$+>RCadr^VH{@i-EywwqL9N%`6b| z!$$*^Eei}W`1wKCra?I(C4z_sB=*%g?_%h38-zp=& z=l)Li^%P@XjF5vMJVy~$tsC`@hSQ1ye<+~4Ng?h*AmgBsMXgTUqX4{+timb}0&Mid z;1(xK3;eA-H5z)j_X-`0=&3Ey)boh7G4oZ+pWr>M3PMus{#Z9y#10Z~i92uK2@*zC z?s;@=KJlt3Y$&M=6Zq5x>B>ly?0|IvXexyw)Zjh*GX6GEcRHX;U;h2(3V0^>e<`-L zzCDaDv!ZJY2B?kweRs?$v(!)5uD!$67Wc|LH?4m1^(f^be8K&wKbS1`Tv7$iySU6O zcRua#Y~+t*d}~5E%aOniM=o23N}L6BE)FFs$L{;S`o4V^SX?K6W0Tl#HbVT;a@=se zCWeXfkwM2{?%kNHR6w~Jag*oRf1xirng#bvz$cgI&s-ZMo4sCpD(;9j4Kjz4$=*I8 z@zZO{(4q6I+rcaOQS^?GIs5E#rTXlBv5>FQ8}=}X0T-B<$Esf<8}C;lBd6Na{90VA zniwbp#msUMrU~-&S@1(`^mQ8I(Uu}wOt3vBYR46NAlPZE;g316R&en6fBiiO?#5oj z<=sBJb-_bIWOn?ka>GigEf{yecoCuwjA(RjD>aDP=_4seyp+ zQuBN6^@Foe*AOduuELt0Cxn4B6T|qPByweTb4UalUGI$N6eAaV525wT23-3X9?T3BRT?`t@w~kzLK`WTSVHe! zCr>%WPsGxjd}tziQ0jNu)8g-UeV83OpfFi&k-VWuke@NUxCf6;e|d{tJx~kx;V1%~ ziSTM9$OT6Ig}B)Zq`<8+#TKpi=rm8+HkcWu-))2U@OI_8^38fm2f)usuGyy_Wy#bG(b!kYQEa-nsWP@RuZCJ>#B8A| zhb)i4)e*j}(N$qle|95Teh7Aa;y+5gA&H(0g{6S!q$Co{*4KoZnKyLgr@gz3UOGex z%Gg+99L9Zl$|B(EtZEBQD&dcC&Bm=XAh`?Ik-u(qz5oT7i*ic)$Wc;4%wnTC0Ukv< z@c_#RB%%Ci?t1x2sHX=cPJo=6=)_@3H#~!7(=4GjZj%lWe;zx1V)Pj+uG`*H5nq9q z9Lxw%Kv&AD7!_0WcvMIo@}!Vke$>6@Qn+?z-){LtbvxAed`7XDTVbCs-ALACoI+u%h?(l1{38 z>)J?@b^~;)e<`i5@D%?QnUyagA_{<4MK{EoR2e=86xa~z%!=ql$!5De=lL7)28nrD zY!fn=ZJRJQ!4UP_-;_0M_k3R^{pbi@jojzMFh(}z@zle_N9|H!F5A|Cj*oVofGa}0 z%x|uVCAYyG8FHUGpf2E$V~bSsVBcb!E6M@0pm0>kr|(cY?1j zeBtz>I|xv_LNtquC@#)J^y<|S4IF}^z8rkw!y>A2kE`ia-|lm|$=Tsg8%9L#7AnPW zU_<9wj~12mnR5+5vCW%c+|qPt0#uqN6_Z zksVXX6YeMR)~bm>vaxyV3}4qM`8^gIeJgA>f6{EJH*$`&m{fcUsCLN&Q`r~Ug>hgF z!L{9YdC*(YfNP9zeafm1(GC*=&}Q)Jr&Gt-t`3S+l6n64M(U5baV@*I;%>3> zF;G=!V~4<6Z14xt(~RpAhA&qkWrlp+k0<5v9*^q?ZIApo5 zVlE}PD#?$QTDe{7c5rdwbeAfa?tUOKZQB_+dUnP9AwF8(?hllEWJ0=|uzZNZ`oJh< zITXlw)pkKv$y~3jIAhmWvCIQHNc%@3e;-d?1@C;H6jvsG>v)`@HCS(x4F@e1^&+Wu z-?c8+Di9U`x0Ux)6e^Vn{5AgZLt_iF*x(1ubk)XFQ^bcrmh*vA-ZLeO0#isI;ruu7 zmL5SxTv4)&Rqe}lt_hI&LUo=1b9$6K<86_?&y)C5A{9cg&t9bE4H>#t30>%!(#RA?)YP z?KZVI2#ap`Y!UeGz%la@dhm^Dk|wa3dHZ$MQvepzQ!GQ-xBtY|o3#5YgFC0_lvv%V zpYv*0qZSPlbCe|d5CoI#e4#xipRdZuk@kDCZmm>bk0Gx1nl6$$Qk5~Me}M*rlRtw( zyh@Vna8&OUMbfE3)=2qBWEZrng4u#oDuJ5^GJeHA1Jr$Q@Fp$PZh+F)1G0~GXjEAf z&FXCMD8|g>0a=?Dp6~DCZu)S`9)s(>>?f~E?%*}tDl2*KI4j_bk}D)2fboD@2w?(a z=>d$q4d|9XCWf9S96YYhe>+6vWg`%t4RDG^E;)a0MtCQEy9EUYMeq%Hg7RM$_I+HQ zU^rF{JKcUvGFsm;!)Uv2qun{f!ra=MqNB3jpLq}Hl=fW)fo~-&uQWqoaib)){3$m> zA5&_>DDfCDl9OV6Ocw%MSlYbGP|_y@4dX$E)`W4t6Hn|wW*#8Hh4tw zL0d7>^6x;hyu|u5CfC3^M8*`QR-G8Cz!}Ol-g+`^o-dYmW0M8%jL)2;aXh>_aRhv zRCzGp65Q#^M>~2A+3?T1;6C(8Q?^tL8GRL=r=neT>dt41lqSI|h|;*Y_$)ba9i;Cq z!Fq4!SZe3=_RAO*&E&A%o+|lZIwZ4Ou&+6g(Na_Jjp!r8e?%9V(B_6gBCAP{9m~d! zV`R<7^&2mb?ge0wsC;e8UY_cAS@u5MEh!_Dr0Xeew+>A^%LznM*Tlqjy zvek^&q*Cey$88F?dK1hmntl*w-zO0OQ7L*+)mk0&}#lPB0=O>|to|Z7T^t;Gg$u`W* z{r4R5@xx~d##YhY25nafs(I{bxFW!stI%9e+3Rwze;jfw+9wHiImQamQ*G**d<3Eb zu7lau`AwmyK9DM0QV?6yG%*(OveO(9#J%il&-TEKEFs4cLw|J+5nkYUFi2q27ycY)_-J$aP5UGpbsZ`=IgNkr%YbTTHa*i&%O9Wb? zyfs|4%Xz`5 zJ~iL6d8t!lS5F+*w)FwY-4hR?^63Q#9reyV?&fGpX{4RhcvjOsp*c+4X+{$o<&NG72chPKiCoxGm!=SzOAvxXYm3mIk!a&7x{IU-ycOFW*pRcPku zAN)S!!+J>Bh-!}38~`Yt^+2bOzemZ54$sza6zbeif_&xlr$Z~Rag0xSRyo#rc!eV9 z4ZCkNKQb}ItmxzDJ`Cl9%XgzB3x-i*e{B4@xj{SQteIb)Ifcy&B~y(q-&WUsPQs9L z(-ijZm{KCS#bbTmpSLD^-Vl!G1U9@NCog^;TKhWDV5W&F2~+DkGYE4ESb1)Q}2H?v^t6vC1+&MU4XRNierTpL%V53@5dR-$%cn= zM~7ksJ@BoMa5>P*tH31$7Y+J3_>ii#3D$RCCNpN|E3YIb2yN}jqYe6Q z8zj9S_`s2tjaf@JnBKiaE%okQV?y21G7o3kV89Q|4 zSNR65DqL&x{=PpF4k;DHQ(Mz{Go33^J6sy~Lj9gpuFiqCQfbSaqnF9qsejHZ9*u$` z2am-1~AHswGtVsBIyzyAAo^Ymj1kV*~d_$q#eW(v! z(uSnFjqxmcpHkm9SIi3nlDTb2Qd zTspoVQl_eE=^kJr=I1#|AP8Ulw0dMRN#0gsmavSe!8_BZ<9($coX1D$PQ&x#?Tg(t zqlORufRagbT1HiD5}wpd9-9Uw-a&$80v_@^dCg>d&16R@`-^BE5`V90d87`v7HYfy z;OBEb+b0gmCconm{iI8(Od7vbkLY&C zQ!Ax+B&Iv;(W#@JY|?HzfrQXgK@-Zyo;vzGpIpgMIU%A;JjQi{88|eloxl?e3TH{*?+xkSIiz|^FukeyA?9;mBTitg`6H@wGM79Z=YIkGG%hTs6PKZ*yTu<3 zw(=?4=gpG7L;fWpzb^O_FW1SaV;oR5f(8W*GSn?7VcvPVbY-rJJ%@X{?4 zWJ8!`{j3u&3$hsnIf=aT)^Z1PSYm^^8;uQF%c$r(H} zKDkB2ZjehM-^X7z+bPtt20;Clwoh8|1vvU|2Wsy-`BIRT-^q#SPOTe)=?U{zTM$ zSJ_)*=r9GyqF}G6T zMX@^@i2KMOUtAdhLnXJUR(s?bBBs{wL&|ww=r12BFPLh5B_xJSi%L%ufaFtnJjeXK z$73FwzJGi|G|Jj{<4{(tZNl5-kbTuEd-GlUInTC?6*9+-DrVU)YW7Qh4b#ZQ%h_DLlNRT_^z$itRuYRG8zN5nM! z#bqDuD)?BS!~-V#S+S$Sf?=E>I72F(I$G7TckCft(KItdrO(j9Mi3&D2u9|xF#&7vZ=znXR3_^&-84S_jq;Rg#uJ+kv?{Tv7$+VY3 z;C6ir<;@nnF&S^e?40PMfe^LJ$9%HdPGU>_+Hhpebrlg4YEpW#Z2@bQc~yq6D*)I7AJFC@o9bF=!7#-NYUVG`9)D9|d8FA|Laex6LK`)qd_1#_>aclLpoeRCSe`tp zHGA_8FROOEJU&vfcPwT$vKf5hd&pum^A)#>)psPsSiQh6-VH5wu~2sh zzvBa4h_3kzh@ELe`0{qeL$jS0b@vUC7HaL=_B8v4+&g@9Z}M9-Pff!EB-31MFj5N{ z*XtqI!^mu(h}Vm`0H38xOeIH&b-sPO@5S_ZX0O(XS<|Cu1>-7S&Lp*f%XB4;g{p5~ z@ZNYtXMt}c$HZ->q*uc_yR3gtfO;M5LM5R>cC+uhS{*;ilFuG6F<|ZBr=KZCk*?w`|6)XO zz8Xn?d^F8~pNj#|x6@r`)=KJwX>Td)5@wr*Ef){i;z8p&gJXWK7=Ksd^yYTz0s-2U zViZrqs*uDMr3yBLjX>AeQcJofEn?YzbdS$ zcBO=e$P!C-@Z7~AW)W=-K?I||@i13BvbMA2yA)AZ0(OKvIr*yfTlr}<@RNduB8GrZ zK^tXry6x$@%%ivfS~8O;rb?Y~MBvJh3j%rbhupA`_VMF9eSd-BgfD9-B^;LD&wW}m zTYFX8_Bqz z7B>nc@r2xbynlvkpq{TcK8+1)Fn(IO_FCDc&2%e@D%QAa(FL!Rc3~0|Jk8HU%d0az zifEmNY+>#UuJ=dGR5NPw#`VgcTb4EG2oznVpC^+)3r4oXLU;t!e!p09_+Ag7=gY?v z;Y0eIF)dqfkwRAWevL-=-GZ1N+`?jlmZLg}eID2&kAH`(2vEX~YRcjVa~aUAK|y8L zc+UmLxV=0l)`!OnMfi6XAn$3$GgEsx7v50X66Fu(N{>PsKNC3>xF5{f_onE#Zn%~; zHOtF-X1pU{t)&YWi}dMU=ZXN;>F8qR`q*C_m2kewDLn61!U=AU*=`#Be4gqoBO8Y@sxhXw{j*#=$ zc098CeQHQ_yu*VoTc@3K(h-hW z8uR%vy+0`4O0UKaV~HZYYLIYJ7+qT&UB78bSdc#VVm%k2~XZ7 zB!9^4EB!b$*G8xP90Hbt59!t>c}bSBwA}VZndIo#J6|3YO9l%8>_@{3C<6n2ho!5l z7{0dr)GrB%z?lzIi7rljsg?b{ShPwBQ{I>tr>a9Ixqwd_C+G3KMRsQptl)I37Ao_}WI zty9#AStJ*s*lq_!MC^IzKJ0gPK#7^sri{98KO7>yO_$`+>{&>}(g*Umlk6!8X(%)( zXg@SggdtJ@Rk7mfPY8&F91{WgW?*wZhbjyF40!5 z{j`k|@e}d9?09;hM&zGS=e^{QhT_$dAs+^WMBHZm_xyr1`Jvb_PjT(j1nP^Do2jI>jFt-PuHxpq75(<)i-qJO%?h*djf zkG^NfcLR}D?5XI@OqnueEAs~6&knKYAw3SwEFTi#n*IsfC#_7|)Hr!8CTE+!9($Ub zVz#Wc95M~6^S#{w-KFfyXk&ysV7@RDe%x9qTFI78v5NJ{k7hA}bl6P#u*adW$*C1b zxB;)ny>>h;g50U7lmgX?uYb*e%5HrD$VEa|BeyaZEZ!B=) z9-7U}f7YOM3M7%Ds(ZB-l3kSeCg zSy4#9q*!r|13~2At@Z+>EsRfNnS8f{y zg3`v**)erwjcb!>;Ph?k%ck2j|Cn1ce1O6Y`iFE7LWua-Ufn?q(lQV$om=m1W?lux zf}JU&yd?}mcIB5f6Ut2?b712*gHbUHw^k z$piDzM_#7h0j1ZNvf|A>u1;W|vy?H+Cs|Fo!`x2`k@4&4PDK+V*|X-m@=ZL%eHXy{ z&3zA~l&`TKGk-_XbBYPru5c?6vjf;oC-q^4Z&=jusC_6mJ3#D1QP`<&u^8%F3gypm zD@Gk7J5Dr${T&?Rai6wEQN{c0jmLmg$Qs)OHNg)B!7djOKCNZ$EuqXKwkn&I^Uiuy z68~JI%HKbxNylye_)MGjDbT8Z%E-BwXY_Gztc|(LnSZj3eUg(z>?^w+ZuNYeV>vr3 z-0c;PehfiLU;Axa8%`1rd@Zh=*JroH#jEggZE1|No2Te8;!f>j0`XMv9CLQCc@;)J z5x(E0r(@4IWv%&IOFf43j8mBJ6b>|qJs}4oOW4|FNQ@tH8V@A3y6>f_G3iV;!rdGg z_PSfxyML>#gro`m$9Y8MKt8L!xAorKcPwryok#aRpGnc>Pl)z+{WPiT!1;%F`{XQlb>g2!l|sHoh9qv_Y-9LMosgC^dmFwQG4hb!@GIFO5jWF_ zzJ`wh<1FRh0@`d5R#sSiOn7v~tMmHwT%S0ce19O&uck*%qJY0j?8h1K02DeER)MuG1V{5_W@Ozi^(rYOl^ey?fqYZeDUhon(b%gC zUaN9a2j8E;%VJDC+3%=&!wcnaSwh{`V;8tn6{#Z(c9Pv_*B$utG*7#1g;JnNH3;~p zz^M6!O;FD)ZK5Fz^-w>>R85PQ=E!PBJM27qg%UeSiy9pJ9J~oAk#AdLSx?xO&q2HyA8`d%w(I^f|5KJaI@0FnuEfjw$D0u{l@KvlqW zaPL}g!I|)}V=~}D@Q~w_tUw6q;cculi@g)i--~mnqlj6emLEq0IJH;#W7xUxmIi0j zII=MKAjD#6%K_@utosVM_+K3#G6~*W;h_ zQ4RpXz`Tr*wrx8A{PA}l>Hqq%;Tb*%0R#H*k5d1;zOgc2Eo6lC_rCK^Cw~FaR8BVr zGtgbYPg7Y7LIK~%4Kq*U{Vf(p>^TQ0wmkd=ypRsNp9;m?eq+SAaitZl8V`a)vAJA9 zZ*qgN%i1TY1I(+hSaN)^kk=mP*$@XITz8VQa}$n0M~x)H+w5M3Sn9L|IE)<(A?W4H zVmr(>;M5eLPOe=nJUE1RihoSdpPM@vnA>4ZVJ8!)(oVhW~{ z;Hbyk?F+PJoYE|}QAh%P;8C@lnkBH&tW$}ttIzW6E=ePwD=fmyb2AUnE*w_@o|T*$ z1#*`q7~4J#4`~P~tP|E-l9dxr06u^xSIE45hOA@ z$MR$x8hjzi{Aw#>I)A-H;^z)CB$vFKJasWgN^^z-3h_%nW78rG{-2{G4dA2N~#)__A;t@o<>fYNtpD8_a06F>y5 z0Y(HpjsWC1r63i8N9M{b1Z?~2VI4E=Jm5W9kOGE~2+s7lucIN=fD%L_i8P#uQ2cAw z6#tkBgH%2AWq+kjjM!AMqMo=sq)l<|QWc+WKInEv->**qfrC^cYkYM{_4ZZrsUyBP z%O!P2=9aGRy2}|il>B>`kppWZUAK>eG82Q5y<@)3cY^wl=^)oAb_ySxc^IR04i)JK zLT3sy%+=7{&tp0m%pP-}CdUUb_dFGsEZ{jiGkxouUcz3c|$ zh2s#r70E9kVf<5H*o>(fDM?sGRC7x@@>q+~_pdtb2H;SSFdo3ee|$MDU8uvv*Ve^5==NXY;=aT1!$cUm)jb+goC6|@Ce7GQ52iB?iVF@I! zL^xScEI~pnzkT8RO?sKc2>vbfflXe8bXBYU{xFj{XsHNI+OkrO;9D=oCdcB%rjp)2 z5`Pfb8d{=#r^6EE?B-az+_ndk&%#Yv8Hr`#M8^fMRWC5(-bI9ahOFZC-ZQ|xc&DPY zLJU@Fb*2Awkv1e}BVh}+2=k;=@do+*9NX*_>NBY%+al8T#~g_)5u~`;TjCBlDHpsb zd^R6ABR9L%h%CwOjDM3(TgaFCkxlxQYJYTleiq6H$l$7d6_i8jCioDlGW~vN`!H1@ zJ%H`rih4lL(hw@!!ZtdnEFPLmfO z5#d-1b;wO}^{Pzoa-%TA^yJQoQ)%611W0Tw;ijVJmD0LYC^EfE^%5cpOTWBnyMI{& z88V4@dC`5`2C+OPzf&HI-JKy2uE*;&-=oUI$qGA%^u+vl-hCw1Wr3*dl+@bb8Pk}@ zijePhB(glyW2s(b0Ed*m5+rW7Nou~sYZD*Ar~c4bxVr_tU9<5{;u92zPW8_wd5p4r zy`-*+Wc7O7O<>}lj#ts*E@sq#0DlSk5!RQx*{>xt4xX; z(n>+5_$9AfWobUjsA0u_oWPU7z^3d3bv}tFICw9)Gojk~;x*ip=N_ zl0ywaoSGEE9<<II!QtWDCK4J>|Mww;spSpg`% zZ0ctwmhY_hkTYKm3|mj#v=C5tD|V^qyPo`0Fy=K7A=J>=sE3`7cE zn)}=YpRqt%eYiFct?MI}(zG({%|H!#(o}k$v{OUS44%&*lfBP)-f9?$PaKBIy|Me7 zkOB%p_gqCDBa9YSj;A61_@1Euatc)Dj9$KA)je>UO2F%`U1r}o-))lly{wdCl5tem z0QSM2vn$=SMt|J7GSOnbq?Q@r@Fu$ijPGIArnl`}5{HCzv{fUbG==mY+0>=zLs)y& zt5=?`LPB&EMggW!GFeG!_9rXblG-dJH3BYME8@-O6pO6tM~5MKD)yA#bf3Jbo+nX& z>%Okoinu0VfsS9j(H$VsY8NOYpTi$|N5+plJ_#FU`+uwT8VEixnfk9jNhH2b zxu#8|v`#HS*qVYh65qTyAd-Td_~0mbd8>1de;pGLt}$%_N$zW1O{Mfm%8cF2);;4T z+0O2mM*?OWyO(A$x;%-f+gY9?cnh{;yN%nt%eKD_hK6+dDxfx6U(tx#HYSV7^4;!) z`l%9_j(xC?ifh$ROZY$Wb}I{+>ppYYhc)vC=Wlw3f*{O!e>yU9CqER)T{1w z9Be6hD-TZbX{bauqa~^j|A-C&}s?*3U}iToPXvXu=yjLK7_PIM-Tt{0Wu69!2UnER{k%lmG}EUrhgRx zgl_}D`q6_NZ0)1Q$LMn+v=spO;`e4EeVJ4EA5#hd08f8(B5qesPR-{IXFCA6uWv~P z=yYPIJW_TD-vHpB-%fEz`MWCAJUHr z<;Q#i06_fT=h;1p&>_iCM*PnIJ05VMLSpVxyhUN(01)0k`WQw2GM}(NrV{{Ik@j0?SBHG0Kx&3 zw?k`et#C%WVJ4qkV&h0kWAN-@jHd5k#;ru6{B5E*y(t8XZ~;L+kw|PDMCBYr1quVt z2nS+%6uBgquH-u}4deijhlT?%1MzPhodw`Kj;~(H?^}4W2}1TZCbbKY-#Bg%utzbA zNAcpDJ}sMB((5AvZo+PAy?@A8qH&!EAKuJLU{)nSE5}!D2UuVj@E*`ez!$)ASRH@` zcY6i4+8_kCvI4(|j9bCkE9t~02-q{ZjgH{VvyhZanb_87zwG^vyF2*xKm96?q3?ct~sBLLuVKVqR}U_iqTpuaD>>n=fzdaI2-%0YvG4>^&d= z5&~43dmlgpAiLSGQ-A!e3-XiObz~N+BhbvQ3W6udeO6*;M{(+U|LWV}Bp6B9=+Ilh zI)Ggb4LHK39YLtJ|LQNnMTZbX*NMei%m?lW#WRe8tAEI+B8Z;0@lC8J1SBP5N{Ef& z`C*7h{+MK1@|$P&WJC}o9Dab{J5LS>zj>N&;)NZk7KOY4GP=U+>cji7dD8J+I$DclwJHgqy zn7%fl-bEzd&SV^kY<5M=)hHC{J+2(x`>n_&hw}5Lu%ZX8y}yCGoI&@C;DsufI#%X{f+g zR`E{0I-CA%-nhgwiA2|t*rUW;a7r9UyW&B+Y6nO_hkv>5)^>2rzIYP87}A{@nmqVM zd_Do>VRFFjzkVofhw`P#T2)WL700+>$ML~unv9>_uni0gfOa_c8-LjK+Zq%u?fxh3 zv zH9##~+G$LxlZ2w{+(wt&<{31mZ(L$$TxJ*iVtwa- z9x^W<6<_L31RP;8fMIf*sOx+ne)XmQ=&>A@I>7U1&-Krq8^tT|f8!W?6%hC*#<52t zu}2|^?l&eDF=!@8tSz=_kx>h4Pxr%Exlc7YRY5!x4jkl(*F>66YN*`KOJ?Un_LIvI z5r4;VgAmk?$konQ{vN(*jyvQTaKTspC;OHE3SzNILJ=gL(iZqXawF=Mbf&Lh|7(ta z_~SYf@Mj^E$GwuoS`c1JfEBYr9!Ml45B)k7VRU;NV`CI-d>Axi!`G=AGP2hSi`qDh z;U%}ms90QQpZy<#tawT&x<7g2f7ayx)XkqhTu?g|yw)by4N~dPj3B076dV7E6*RCKFe)0?Q zcRao}WbsaJ^Wy6^fa?%{CX^}B+9;~8#t#W%Kp z=Oih2fSGrKtH0R)zw;PL3V(+|D+DDQrZ*c+41+2p7uT~T^>4$z&eHA7*^W;+>E_tI z8>6A$TjtWL6)>p6)(@WmnbZ@MJ#OFp5C7(w7m%x8p6Pt^zeD*a|MQF{3D{N{P1g8} z``@|pX=8KqVskG=Znsr#kX1Y6>Wc+hcSH9V53Y^Y>L1A=244k0et+v<0O^}wx|{p| z@&CWJF#YA5Upp?MpKsNLobZ1*BleEr*7Zkl3tRA#!*UE3zy8L8ll1=&_c*{N;02Tq z2$3)D$zT1mwZj4M^Pk4N1o?~8pp6;Y**Lyl|9KTwW9_dmE~zj)gRJ28uf1`{7ne%m zTcUKzYJTJ1pKT##V}HnhIQ_3L7Bbrefp`Xg&+p=Y=b`c9603F+rFLzm-?~cbn_S#q zoa&yEc{POV6EBr_g6cn=N~P`!yDkK+bC-^VIhEobG3U{V!Sz*mtApCto#OVv7hmKj z+<<%IHUOY6zNmkB*}z@|r(BAx{=eoU*UER!)1OcLd<8TA!+)OQ67K{T{32$L#1+{h z{^sQ0ybJWtS>{Ss=Fmjk+9N~ykLe(?$z_Fr1gO~(^Kgf0&EKpO_G6|ImT}aA(UVpip`7@jpG>$)63jNvHh$ zjo`ldwR$J`|JKJ3=Wc>CnxgvRvUvuw_?Mdu?3u(r9Qf0z%ytE4Udg1_N~e7DP}kwx znEMfh`jP}>(l{}6`lGic=Ox$lOXWdehrOw~ zhQpr#by%XcLxIsRFsZJhhk~I=QX%qUC|RgGgO+ZiA#Azxpp@GQC15(%Xmn14eDg#Z zh5&~-+J6A}{u|#9aQtvGHoLz%PIP|0F{;NehJEeJ0>51S7u&u%wZP9uemM;;9)ES- zpT8s+@cXo#>&U9qZQUO+TH{Zod~n_g)%hf_9n+t0f{xzs8x};+1_6_ zqJklVuYvXk{4YNoW#>=MpMU@Pdh{p5zjkD_?2*Xo{ZEbhPi$wuvVGsHlb>zsmC?_GrgYyg19qRWent^-2CYB(R01M3qZ$5E=v{p0c5^J*2;TZB+$9cnu-yQ}K zCYU(%5-c>ZzjeYzwBI@bxJfKJ#i(AzpKbrQhJSeaA4YXW_)kvsFRuM(3*YCz`u!?? z_$)f=DBo(TIY!TcLgPK_5Zi+0n_jX79e*@fSdI5V%%gZ|0eNd!TgX0e*k+1VVk1Ha-bf^PV_VY$nOHE&lNA_T1TXn}Pc> z#It|a?$@4y3u6d}*V+ceZysz4!rwaMVpGWf_;Ce(*z|8c@w4Oa^Xb1>`L&5}9Dn%3 z?@_%7`InDf|Nh+%AO5kIUyb_bA3(x}R_R@ESdt40^>S7{#2l}0G``tVkvoK3s58~= zSM5GdwRK9lHcGCU4WX{(1kq{}r7Nik&xB=M&1YAM9SmMJdZTX|;JtAPF=)XRY{g4X z@7$mq5oNmxU6~DP@hljHO{%6j27j~dYu8mCDyIkvK%Rno1mZDo;mK(A$;Ks{I3kBI zf(#1KB$f4Tmes5VLjmst4FOyYd;pZUU!U?pbH6(9PVj%~w%ELjQT^u4&3`(${>A*S zjp()Vi?_n{hf!Z!;=lOBCei=OW#zx#Pr;g;0S9i<=q$q(Ey3_IaP(_VHGg0pvBcRS z(nj_r23gPNjvDaX*71NK+CE-*ffsraM^f>?BR*1N}`~xF&o>>ERxtmt$Xw#Qx%s*uJ`XRK3Dcu7(wPy_u9wIU4lXsJ5P6{x z56GT31Z5l=D)Gr`oj_4tCzMaaU>(WkIR!O567KzE5?W)>{koN#w}0h^$CM}xYn-a7 z)CHk%`s_=KT?%MWe+=559|U-ZGu zAN`;GeB*D+0T0CLDu~e>&+xTMjA9j3g?H|nf#Un1Qhfh3`oN|YP;uN;z z1%%VquZ^93{hSyA6n~EtAg;nCancBak145t>Y%(C7Q6^Myog@t4wUZ{+Ho0PIAtbf z720q5Tyw3Ae+iXxzC#<#gymtXg0)ZmE7u1mU|iwSLwkMua8?bJw?~ZpvHi*AB=WZ( z_gkm`*8Q9Be@VI=>7V|?zj%p#^R8d~{OgBIYFq4}{pK+Vmw#g9skWh{pTsFPf+yW# zY_L$GwK_EP2^-wbVS~_2-N83r=*x5IfjbgS>Ojjy2bZ`7s<0qcT_l$d;^TC$5grtX z^$erymH&smcWYK%XBNf&OWsnWQW!7;*yklJS+?aX@)h%v0t2!!V8DQEPUXL+WEgYK zwb%N-os(0^Q-8+Guu)rXwfd&+mi%<`+0ZPKeZY=(@UrJ_(iuiE0jqRZB(P+<1oXw= z1f7Df91+j~u#>n!$n8Fk!=!Kj@eMw9;ytIme^yFRmckzR|zw*wL`u|b@R}IoZ4Ns-}3t7XD~bf zy8%L_pMP=G-uA~pGTzYpo4GH?_>lwS6MI?y&1dgv^|r}6%Re#mPkf^HS>hPdStE}YyqD)UpZD|o;RESoNqMQHp6ug*ZyTK%e}U=pFD&yIA79?#?hpUG zW2yYJ=K1)XZyhxW8Jr94W%hD*7NW0OmH%t<@-7%IhtaBi3-TQNdtu&z6b)QBKr z7=OG@a6oJV$^s)r7_A^Uhy@LxByHv=^XBe^)lCzOqgL1kn=N%Ft}b#}!0U}2vzw)5 zbN^7y9AsG=l;01Ej@QNU91}j`hS+Mn&Mj1>22oEIBLuf(r(<^=8N=r^3cwP~!=%0~ zLPdR!uSX{UUlaKjx0yvCvp~2Pde#HhA%6%<)z=C#vaPTE=@m=74mc20hs=go<7o<> zSykb9ox3&>pZjgKU4$$pAw3)EY^$T$Jb2B@ z8OK+KQaR5|sC}Fm6|r1*k@vbGKli-c(LdKu=1;uMZF@hU_dkDl`tR%4UT-WH(tj@e zTCe2>48;)`b4Z}Zw7tG!$evz713gf-X1t0G{PJ|3f3YKvuts@?W~()+xYNn+inEkO zq-##d+MsN2D}iMlV2O&RAce?K=%O*2WTa4!L8-I`RN*Ea+&#jMTI&(p)amjZ><*%y zEQ|bhSq6D{nr%$Po|Z<_MM9a?#ebm}iA`W0LxyH2x8MoQmR{7A10K63D*V|u?;)#%%wI6=r= zy=x+aHM+*s73o}eV#> zHOmh*NW%hllv|v%c}NS+G#;A>TnvmLbU@KE#wb_V(5}cxKdA;T*j7iAIK_l7iZ+3xiMvXj`a?TP(F?mG{*836Bpd(r%*K4GaU+|#!)LPhrNPDYGo#}-?zW7If zN+0W&Zj`!1#i;wk_v(H7AAfz|_I{Wq>5D$=I=QZCSwMpPmw)<>!R8O7ee^CjXJyfB zyb|dlpAAfnP4t!pRAG0wY*ZhK8O4+>0`*{CS67zi>*}1TYqwB271982T3l@ zE?UR7PLR(JO7^{n8FkCq3AOHml!OzU%*?LdERxwd0y-Gfd_V#bnHRFxqj+mDiZP#U z^{{!`qF*OFgKt$kGAI44pD+@A9^oezApM*_<1SzD>SgsTdH3V5EkEmk?z296&w;e- zzjMDM@72e6cPPkr(0}%Ec>E&q!_urg7zH}hlq=_Mc+gh zx((La3ddIsxM3E}Qsb*h8Z`$bcxS^bhjkqX%r(NOT3RquCI>enp(IH2(omM+qQ<0k z=XwxqfRiB>b$=6(OoLH2f>U!b3p!o2S>|97lh!@iY*v|}vNT9S97Xx&ZGCpae2tj$ z^mu;Sh4nSy>T(qp#RkoU%jVnUMlV{YvOUijMitfq=oBTNc!^QOI;u%HySimV`uKXZa8-cG_{WPs`uIoq@y~z7s@`#%A064tx{QYwaepl7{qf=7@%%sHSzg=ERlg3F zxtO?iXJ%A{bd1i&vQ47{YQlr9l9#0|WAOBHm9e;4c%_KL;pJG&N1OHO^5tdv#XJ{# zOM$`&c5WC{7-Dx9j;OdCCmAW-fgLFWtD7~hB7BYWn;umjaAC$V%9EwHN!Na~E|tz; z&4k9Wzkkr*d3N(TD4|txBVaD=%Oc3%_W5mle`wIhyn0>tUXzx8iEF*rtB|mbYy^#)>9cPd3?YL070bL;o^-nHd|V#u34;Xtz-4j0~#8{GJiwl26|wn4(FNKZXpWMF(~7iiz_?8 z$}6cGne#?~w84mZXSfkqFgfq;zR!;{DMx)=?;Qv3*OkB4Uq8O#5_Rvm#Yd*bpFHX5 zt=IZk^78F--#4__jU3FrfahME)`1bu5MqScK^-_EqQQ8U(kRlL&K;A}HPb|~&kwVu zUVk(j`Z`Qj0V9hj-ffehEdphrwY)uoc;eH=)wFm@ir~2$RbHskcoP(7BXq-KY`v@i zJUw(n=P*1(ts?c!O6r@I+fTVYE|cr+Waydi{0#cTcS=8NkI&rytkvG@x3@0O#tZIB zzX5;p3F%K=&O49Q%gYxOuKA|fueyfe$A8cJ70-ci?yUHXJH(wEE#)K;p@k~!RERy(wvs%aL7_=}W9fWvCA2+M}<;rJ^Va^%07OfTvk58{ia3Ew2TxoX8?(-)e_I0q#ou&;7` zyb>78{KVd9%Op}WnV%s4nub5?;Xbaa7oYloUYw6S^d${f zGb?}$LUD1sd~*-;(mbM5*do&_SX*Ov7%=6v)h>ZmKxiquOVOe*3Ed!Up`<(}q?{dT zSdm%S6!slXZl{a_pefN@UwhSTp-~@B)yZuCg{|n~SroHx*3EoZgQL|=uz!XsP6@A! zNq&xk;ZzH%0<-+AE6r3tpx7BA=5&b_l+UkK+~{_oo(ZHug;c>MHW|&9sz-1o{Y}g&STa1%R=~cYyGOA`b_Tiw zE)>TQj8n2k`)F1DktKsefNnF7pcRM(Wpp z!{?v4MxOr4oxJI>e8)C>T|<6!1`O!UvZ$bah6TZi@7wlB%^dWklNq<|Bfr&(}krTYjYB8({CSn4YB${Kl5 zovd(U1d1E2a801dJ!gF%24(!tSBx{fV~!6*=A}Gc@9Qhv@uwEVbPHAg#0lSi$}9g{ z&Cahns@J===ea>f5CLH2aUnQ{X8F&H=pK1_mBrx=?=ZgH!BZ? zwOavxLY1Lsx56lP-p>PSwiS$v^sj`Hmg_ zjGO($w9X&>_ESstd!9K#dcp2k#M4Nlx<~GvgR53MOceiER58mN+a7L1U?v08!F+c2 z5-R)y+r{5-_rqH80v6G*#?C7qyN8pt>-5^w)XY1g-0$mi5F30kbYtdH);-GL{XLj% zuzzr+|98~?#7E*Obu3b4t=YTQR%EDV$4Nw1He%m5J;_yfs%jYW00)(8iu_U^YvD%# zO+d20BH1A1+vQMSXedpOjU9&UT8iA$WNZV0NknXxFSVvGRJ`rQa-eZTgKGt}uZPY1 zdRX#u6V$mqtv>pFNJ4k$yt5;Rb z#@Wgos_4k_^VFE7h6f}I=_CL>!8l`?5^UWg{W99TT*^ej<%jA2Cbz{;OfEMeiWONS@*}&joEl}BhosfM^6PPnij@*4yiT}M z+1!8Q>w-BO3MWVuJxrxQ- zVjeSh8II#D4ct)El-A?1u7^YfNYn)C$S{8zK@RK)`-j||yf>?r-Wr!>!qj;{tb2Ho z$Rgxv;z}{geXLwYlkNA0A6*ty3sZjlmIEGqWhfB#L)HtMeSMj_(Kze*x5wul!#i8z zBWpi7!S}v^KCf?ak~$EN*GgrhFgugu>|z|a4z23pJlR;`kvYdKBBjpaqqp^yCLw=J z3~0crWh|m7a6MblC=B^N?D~A)eefbM)7&x_i}%gzJ5OX=xh1^y_R@Mnd|M%d#x+i{6A|r0~N^~ zCBzS)NsL#!)?RTLy_$)6v^ZI3X3Dq3U}u9ff_EikZdqLnbAha9;9$}qC#;y6(20*G zga&+<;MIMhuv`ngR|ffZs=&%BmGz?ktTTbtVo*cW;47B{lXdq$d7^CiUZa2aH77qh zw_m60FFJpekb2T^M8Re$l=TYEviPovJ(i`ZX=nM*KS{Gh2a)4l62rjr(mIG7EXo?jCL zu{ohV|E~vw9dH+^92S5Y$^R*lU*bN{o8D#TUv&dNKFmkAz3YS7Qh!d;1(0+-3Y?W7 zt2NJaqzz+JY;AfVosNIE-CnB(PElv>dKCs`aLJJvVeBgFP7HjhuLe_TKTIf9pbT!( zf3ix-dOxqt-?fN`{JnN*$;tXv$B-vp`-gAUvIw|Hnw?1ijA#($LrsrMo7Yu{ zSmdi;CPou84#mtpSgQb3JG_!7D)Tch>I;cg2UvEpwLnKj6&Nbq7=G+r(c?Y#zpu;u88Zv}O6HoUd$=eBvOBW(zncp_jcywwFX(BF*F|mHVs#$e^cYseppj2;Svh`C zyL8>xZ@JPQw9J28NxO`0ZvLs?I{)&&kV<-=?-!qDXBn^4+j#uR>n5N28svnkje*If zg|DHRpI()F3<@y=+Fw$j|`S`29YkmIouYYP+f93!C zwVSFT8F!50@h5+R)Oz;FpvwIblqOWsF23iBG81^Lu8nf2A{OrqQKx2*-LwF94~1ql zbX(Y5Dpppxk40>^5c}PQcwv2v(2QkbwKYSfa#~f_ShGZ2y=vj7k%_~+o_j64j(RkO?}{1^doi$`yaz0$NQH zTgRCWg%WRG8->!s@#d~1Iq>>lFEMOQ4Wd?W0D(O6p+7aBJg zi(DF4XDKRNf5~%Yt$B?j@`L5|`!7}Le}4&D0?Oq+26_)6!|y!h@ejP@+GL3ewnQ@i z@vcAADDUk^{E1KZdH}Y|xm)EHDlbP}p5uP89S}5Z+vW;oHrHF8f-+og@1CgEo3BNwEUkm9k;H#$ zvUXJFNfAlFoVjfpN}f<@kW!Z?37 z!zQ;c6<%gX$6=Z8@L5I-Q7%om+SM%aLBv?NNGmBPWE*ajinwhvGoTsM!)%{+`EA)9 zODuEkL}h*%YT$g{eZnRAKF5*gVfvTYwefWYm%a>A;gT4Xo>QK;t zsjUVpF<6*}MLM48C$1P_X6wrR7(_W`Nwe3`d1*j3UJ}0XcdG3%b(?TkLqH89h>s3F zZY}<)zw0WrV`e7zbJ?;UAk4T9KlY0Dc2>qwJ~g|)*XD2k_Z@@8pZL0j0eydcCPihO z9t%4WXo=miJUf<veJv@WW#LE0-{nbc797a zQ;v&$$Qo7znjYSl-g{r-5LPuj!O^8gLpRrY@1Js)zw$7@_BCar3!hC0&TLvh?uYdW zn%GZ5lIaog%wn>)&{q58=_h}X)gZtg$~wzm``cRgyx>218TKnah^pBF3NSUES zmz0@Wb+wpbYusJoHuvS8JOjn87O1;r$1>Jca(@6wKM}wh1MYK+OH{f)drg)L{;A*T zvOi-XpE~(p{un}hc7a0C;Xv*d%9kL5=>}$*)(U%hSbbfE`@CqYD1d*=_JkSW&|U9d z`PtA&PCDxxX!Rj9+yb#Cazw*;Sl`ZSdos03WtHa!fa z+s1Nlp|ra{Yqo&OxXSB~nlX8L!K!HF!FpCy7bQXyBAA~CtVZluXhUjfI$0TAv(!U^ z4-?QX_=?`^FfJO#b~J{zCjmpmuNx6wnh*;$-y0f68G_snW1dQ!lygd$3FZV70e4` zrs-K=E#-O}Y0~c_Li+s-WNj;Y@1r?;FE{tPw7xBtohQ@!t{Asy2asRz!W$=gz zwe^&I8y(#lIr*Z3`X0?*>CyEmsAkD57R%bLj$hoB%YxLsIU?H`T`}Founn*^Ogc|D zP<+?OcDf%bSKOxQSkxCU$vZdTS5x{WXe|8_4X#4QJK!gtB<;;RUhs!c@;i3<*3Y7^ zv-P1^u6HfEL8pH-3*mL%LCiFzUigA9%xV}A{XQ}Z_JxG%nL)NdjP~?>V5Kw=3m08B zqOZjWMRdHCJ(wADh+JCAgDT)nTkN)DY zN^H%sgL&vaN*<$=iap{^lJoJhuL0jS}Y|hAb?cv$g z2IY*|=YZG$|D@di&riyQMGgH~3IHf#?|T4!D|es{{F3AX~!;CH)(M+yuCjA1bY zk6V8RpbXsr&Y;Y|WGn`aV?`hn<{6mWT>z=D!Xbdk3_|Y7T|M|9&nKu~gD-FsKujYX zcF4=Y;0u{I&=dd%<^+h4C;T*;BDem`Da71O0jXLnLuT^~3>HOzW?IaE!<+*J#{@)> zJbwTf0gYR}d|xUMgGz;jn+)_ENBhA*=EZ+vFbLon_x+u6NI`c1D2f(?yF3wuGCcr; zX(t9ut~)_k1sDxpE(Tw4WRM6`ZVts*?&r-aaD?RnRCp;jr%y8Qgy{fq95I+dJ|295 z_AMuHz+ngr6?|qnKme5-j*z)vN%|5Ol?=8pkHKKhaxiG#^7fGV3$#YwUasqFBprV` z_76OyOS@{8Aem3L*EN3j=OzhUa$6>{-thoNe+%xfEA2@@Yo>qn8yhQqCD|Bj2h3bP zcyUO%bA$!u0C=(FQq;{6^hXu}|D5ae?pB%@iNr?^`a>$rz9s8_5kLV`c?8oOv>BuV z?ZB*|#;{Vw@_^+$^^rC>fu_JhAOwH90vW@cqQe1pE*%U819dRqgZW@Eeh#*S`D-wG zehpPk-6riY`QYmn3xnTd6UT z8@|Et4s=8}G&BV0CjrDg1P+ycs+JLYZ-6unMtoI{1eD@HL$`1?pg9;-jc|WsogvJo z5U~#NjMyy{fyQp+2#PPD^5PxFLc{&FmZhOUI#L@>F;pIBHz-ztC>pRdHl@DKbZlZQ zpmGoFMk5G3iNm1*#8M+!HARN{=gN^l@}z_AA@tbGXh#lo11VG7U$91pD(YwuJ3y@C zwX=bEOi2#G28 zO{z@;^w>bFWmBnVO9AB3KT9{@vi9yYXwpA#R`=q80J15#Y~-tmp)!9>j#ZYN1cdih z8u|isl&zBEiW;HNB`uHDy@9x)B<2mUW0o@Bz*dX(QlQSm4e$dinu5wcQn)veH6NO4 zc898lZA(^Sfw6>L=_z`&z=m3o`u+a~bRML>Kw(`_2Po^XP3cuY_-I{-j}5R>oD@7p z_aZ(XGdiq_G{l1GUe!#tA55&`1Sr?7W zX^=O6;ja4!Sr84yNT&`UyYmGQUm%=tN>ZDS2w!0==$jY7n1X+h^rh$_nB*ZjuX=Gz zH=tReR|LOsQ2u?N4pg!q===FiBgwyXq?5n_l;M%kN-6(vU^my(+e z4e~zitZ5j8Y?x$CKtm?yHMRu_@2duoCS`=($O6g)HvwQPwgm*4iKYlTe$|MN+=-q1!&)$+`sYR-^2mgZt00$3Q~HQl2mA=lquyPWr&rC-&>x^ z8YVz4u*$-3y0Qb4{clK&@k5kdv!VT*WRhNq-Hn7U=QoIN&IU5aAy^NadxNT`VQ$}U zlwFHZ-@bow9HPJ5MbogXZ#ToPMQz`{a~wk7?X#v~Ro`xR;_!R^eSuEMNpyao_*+1t zY-p%UxosTm@&=(FxlA*1k5lY&=LRSbq>icX4OSZ3VL=S5r)h&%T=EO;;L(8I867Fo za3m-e(7^20Fu*|)WDTMRRwBItRno(wl0OLLnUsHlO`I7(fJl2(Uw9KRYEQ9aw@umi z6?QFPkmD;IhaifZdxPDkVU)}9S-5MV>)VfxL&&>b(l>s$cU_ChzP)xFV!qoYeR5BIwGpk_4CvH!Go>FSGwdY{RXXlBRT|$ zo@!`ibe4pDIe>-MJ^t^)D-MR?XWT>io*(!i{TJhy0TJ6VTg3dJMCx9dw>4^>u2{O>aj-4>t#nAc$i*uYTDHKx?7*_LfPTczi!&v>G7X zz+JOPsqK_5r&?$C@9X~l48;?ZD)~YB7D(z2CV<_*VO_%;L;4ufuIgDM_fLkfX#{^e zq2RJ&Rc|-#-Zm@wA?UnYP{D0K9nbao|k0}^Zw?p_4C`^i` z_baS_;u&I{$lK2`*g@LK%m`SD$%cP+`sy$E=+(W^MAHDI4ayI!?Cqg$mGJn?=V75q zzES>w!2(O&je!THXZE;_i0W+M%W)*H!jdYsfG(AG0<%llZOW zxQzyFwN$5@SU+Y|Ygf*V2ng8C*&xkv;M?y0Gc0U+-}0}p#BpG1tF;_YFE2f9{;Tmw zUhBSvD|I}H-!y#7-|1)GvkiZ^RG}X}F$7lJ8|`35v3l^GU+*^@huG2|`J<2jIT505Xd*y*PcJTglBq4%54|1Cq)({6+aCf|?xWG9okV|DFE1f7-+rs~ zvq_>O*`8gU4YL1>c1OM&0v0t|F7I8(fr-?$Q7HB1N|*iwC2Q$NtH1G6n+ECwyCF~V zW7KsW05artjODfdz7D$%*ys0BUVnan!<+ItdBeZ2-|+A2H~jm$>t22MtZVL#&YMQY z5r`|tzj7Q`X0S8~mzICsOU8TNaE*imh*gf7w$6J-ozSQ*R9+H)n(4 z4gV0VZ0-#uvhROiuw3FD{esncJbuCU>#4z?bS!$jXCJy?qwl->(1qr2_zz9W9`9eU zR^Rt8*jnQ88@B5@EZ*zR2C_{f&l6M<8Jm$dYsJckz(y*d3)s&2?K?V5#;PowLzo(OblLt<+i^Rm` zAmo!igS)Jkab+A=lTjW-z=$Ci=mJI#8x9EE933Rk?;{2E-s>Ee0vYl>8ACTP8EhHq~;w3@H-dHAs4^zv#E+&`P|0kk7ebv;Vnye$O9+6?@~g`rs7{ zN%ubGfCZ0F#3w$8SSX&`AO%d>4?N_1Fh_AuFWEnaKlt@6ZySM5JzvQFBpv1W zj0$qeFNToM9X|5-`h}O--&b#Z-+Z-(H(s$oR{yaEKns~SS$*jEm-mvt_uKP{o=JcB z4op|J_wW?n{Mhp`)KVVme}^BH^I&Fj9xk#yW2o%qLypVLC4A36J=_~F1UmUV*Plyf zzxhSd5#;?7@J#Bd!-t=Qgv;f;zwvA&ej6d_pMxXNLe5(x@qEjhkn-=ydN{M!Z(Wan z-@oMZkG#Ske1c~XNqHyYFX^s<>i&P^Q~&u-=Fxf^NTtmp0R8?y8=#S*=*bkHCi8|! z=1C=rOtMfa>n;tDEL%%by;1AskIK5yBj8L{3Di=)Yz{Y>esbh|;MqrRs63}m0WAiP z!&u6Z&)^%h1{NUmWO54~LQ)R|OpYs;$#qNa*9--6fhh8P+J#KE#SDd#FB5-2iR6bw zNdB%MU&en&+FdSiCf{?s z9@U|}P`6=sJzZR@)gHUph_CBS^)=ot$N6&t*?ym>4;VZb@n|%jx@&Eg*Fn_?U(vGZ z_q7ao1FVm0I9$w%*d{ ze52{;wAQA(e5HTX+b;)C>p%njj_9#GXwHE~*_>Z$Yn`CLzTThr!FaUV57(3B zba@#Qwe+%(9HMGPHp9KAHS@`2s-0K*m`{Vjj1_J)vq}h*)xNc_(_}nd?&rb9;rKf9 zl098K03Rly%I%ZCrGq1C_FD2h9q!*JYr1V}{d=-wrFqL>7khtSUz7Fx{%YXX%sMh9 z$DQ&TlhtC+BQf{FZH``F`^VS7XveD+&}OF0hBxsVFP?)N@<)p`YdYuty;1VlGk+x=*7#nT*cKW*UrHmn`-B2I3_= z$6b|-o)b$+(8YgCu>wiVyb!>x+Y!SjfSM`B>5&c{c$94+mSuOSC*FK`S|1eu=p}ww z6>SZOe3k8Boq3R<)AqH(V59Mz$>`NX-Ou>AQ!x6v+YW5L*v$79%ggoJbj-1N@wGl6 zq${`N6-#ZUoL#^$u*VAspmqvoc=+CiT5R0zqmq7|G?af;u{}&5!EHFvs`fmbE>}sT zA9=T356Ni}T?dER&>2jP!Spov{$35Px53puKPT~!)VN+J2@%-f%fY=d^J$XYcHgUrI`sf~XJn#11VKC!|)Awey+rn(PIBwVQ`hu!y z^w2-L7@U9gB%V=pUpH)w*tV&b0kko%TajY z#35Q4E$GPZssL;o6B@mI+}2lp#n<1)IvsLS)8VeV)=ND14w+IE#oaC!wE0@4w>FHc zO*VhqCeChf9)&ZKjKMM&H~UfF@ih(DvzRqm7=H!C+g=h3qdK=0n7uaPGl*Z2i@xe0 zXa=xXP8l27H;Toh8>X8k`rb@f<%q^TI7Rn(%)=l|cB{}zx678RuW+YXUJ_*bR&9#0 zZiMsi%X7QRo#CP@?c@0NFoO-bxAWEcbkct|2c4iq<7W+HmE zS;Kb5>s71CvnZTwb%NCu72W;oXv4JSwx$^h)o?9ViK$Hd86KpQE+876*G|kz*Cw$$ z35vt@lGW&v#%OfAQZgL6?0fyt?TLSo-wwj{WRDN4>;fC*ZY;O!{BSzCV*a%}N3kzn zvqjoA=+ZcA$1ZlJa!j%^QEC`&W4}bKn8oM{LRP}re#je$?QE{OCW=faxv8dSVJjYH z-Nvo-?J0k3DxA8JWBAJ1sSG83ovL-Lj(umobY@wM(sDXkX`}6F;5~+y>~Mb*Wt`G| z`8_@zF8)=Yy&8U;^69+LVtaVjh9!ohc@$Ap+VeoazIHQpnID^HQH~u9&mE{|w1_it2{pi%;@ZN66d0ZsX z=CQTn`**aP;F@j);4>z=Yxux<2(UwnsU)^x} z0!3Lr-TiJG&o?5ezNW_!wy%1y8f4+9zFtauwV`@zKX&0{u-%WY*XwJLR%Vi)cT+?s zhvj2t`}8z>2F7WcqOX51>RiKvj@@jZ;+!>Jw3yF^ezq!FQ11~Jn<}2MH64i6Zp+uF z^qvNTY@AIZyFH-rHJa^abrjrIrz0vSlc9PpJ>z-FcesbN6RpMq6dwc1Sx!dxU z8uNvlA0H;@&auI?^WYL*= zXFT86_R-Osw!?okDGV|!2=7jrU#~BP@x2y!=)J~*+Ga|#LREuWcgeTbnXa7(9QkTd zoO8in4~5lpTA?{wFzXPsyNperF5NCpt~*Yz`X2dw&(iEZ7@+6CQ@{4t!>vdU?LAHJ zcUr9Y{2Qjj=sNxCz%>dO2i-6)8fCM4mDZFmnUoDYFW`UJSopMTi^FkUy;9gNjfNhT zqqq*W%hIZr!36ZtBuSOYZaK`uNH#tM7p~nWU>(bI29n`g#p+<^1&B&CX*mZti5hT+P0;puNQ3 z7wa(g#^-4?9i>J=4>)wbnW!1o0n(3ocq=+ z8O>+UxM^E2e>k^6_e$_K<--&&UPr(aZ5Q6cx$BtdjO%a}7V;AkU*@v3rla~RHYa<3 zx4u1Mc-}|D{pbPD-C^rL#?HAA=5F(R`bj(-%%jJB{2X7>?TV}T?uqWmwq!GyEg#SE zE753D-c0Hh(%NnS z+hWzI4-pDK$7rpGwszVKmQ<~`$MO)}mg(cj4i+g_``bM|j_zMIM%!Y1Nx$!pR}@B> zMz7ZCbr8JHGQvzXD$3(<3LAI~r-$7jG1!0R{#Bn3*U5N#LD7T*nlQEH?Pbyp_pjN& zQ1$v$5 zyUC^)JgCA~>hh`XnkYMZi)D5?eD5a@Z!muzi&=d=JVxu{VsaNB?J`P(@Cg$RiXT$O4TX}vfVh9u8(f!5zTAId$nrRU`_v3ka*%d`> z6eoAS&?o+J;El!2zH0PT9D=<`c6xF@L%d02ym~p$E_^H(VzwDPo~2dir|t6^Z_)7F zE@^ivCST?Zw#qp9-r7#R#I)e)YDa&QsWF^8$7WWpveF&G8RhOY`o8XP{OyFBB^__g zYaNw|x7&A4R7AmIH)oSe*zOMH>>9ewO)%q{j_rR?fNe6 z85xvQQ#r@2+*8gu>*>w;u>D`S?g=E8s!FgBMU63CqHDfCk6yhwE7$k{f$QR{0(E44 zA=Fja4?6X((O2{Sc;);&TF`%2sv|Dsc<+-mI|6XPfZEzOwYtg}W1s+@yWj?5uH=QD z#I-Vo;*owD)Adc~9P67d^^eONy=+yc>09I zMj`b+;VlYN#N=H+pEG&-2aietjW=7&9#!D7wIB$@cVWvSg?CjEm;IPrA#A*%O|eMh z;lg?A3f}85Vb2PKjUj*Ronq7LPKhv5@(&nMbmpEDk+;KGKd6x}zr0f* zV`LZY4Y+ctoTwXY3dg9AmLcJ=gT!)Ca>mUS@TGR|BAO&SDks$$H`CY308&mM%-31@ z$mA8WZ(p(~^8xJ;R**04iXKLOt>MEGQ58YC3_T5Xr;l(1wR3-cfF54mfNf%3AyWIl z{KlgX5zj3Y18vQ*czw%hcsgW7A=l2t5aFOSrrCK7wUtopbOgOg9m(26yPS;({VgYf z{`qB>;FUzjj^V|DfFI%V8?bU(eF9hP#`!3TOB*LwC(IM(X_kvR`1}?@_bD*bwOG&9 zK=>aBs~OvkAE$qQ{S(1$nE~0F4tn`MZmg|i|Gf&znA$$xi>lksdvhhK|0-wr<;Zj4aMPJ9;o zO>HQXQ$X>AII&eL{pBcc#*kQg$KtXgYN%qP-bR-@=jye2EaQyg}!fT~G>rZK!# z=ekMS1|AS!KT#h-l@lu?`?I6{nAh=zak4aI&I+n zLs9w4wvm4UbN|A0`JfyEjr0<}&GpU{dlhp3pe{?8u|gORmbmnQWP}k_()8* z;U}t+t_-VKZ72|OVZ(BTnTWXz=f>@unh5r?(ELAWD#~Q;itFQRTO4jz=%;C7zHfvl8n3?wW4F% zQ*S^MktqQA0cb_@Ao#|oVi z;)wPbcworlz)NS}Dz>eJCh`Z55ZSRQqE@YkY5|5OO3q~Q@nLx{%y-U5P@^0%LjJueg8j@<|@HcCYy-sNV# zWQXm9OUcoBix>-LuQd@6+boViE-i|*lZ3EL%jFgkPBZ&AKGBbHwP$gmaQ0n=5x0l@c8uaDP- z1i3^G@H3h=GWPnWLpu=@Us$KGCAS~H87w#H?oU=3{x{&5bZY8;Xg}dcM8SW)1|n-t zv5_@F)nazuU~{Dvcf2d`?-8RC4<5ccmkD+l`d5zbM_8?r{nGN6zbvXf(mmT`d#waO zsE)v%7c42R;JBM-Pi(V{kY6I0IHWjU`etBbcdKM$OoM>yZ`OcYcGBS7s>Pv%f@mv8 zD`e{#_h?py0a`{V61#uf;#Yrl627s*7TS`-=-6}`{Z)~7-7ozp=9l8w3!`WB%}!(S zKLMxsad{XdtTSA@z?Zj@VY0Lid|*gmCa4=FA^B~YPjyk10(OVyT@%o)5%o|jU$+)X zI^wQxR9?9B8T1hJ8g9J^z5h_#*@sB#jFYgpTTRD!$jtNdTSb0s|B!z)!bLT5m<_SR z`w*}$IxX?0Lv=qSisDu7Ks}Juwek6aGi5-$U|r0MsEa-BL>f|{F7BVV5V!7B4~TMx zc%rUohOva{D(>9O!8t7L!R|pnGyj-0E^XSgKM7i}#PnXR-S}Rq8xZlxlBlhfgc{`o&V1K8k<@pRb z3WxiVKUG-bB@P(pm$62JnoYn44Mt8#XVC`7j>Ya$Vf}`bQW$^1RZN}}$F507VyXz| zLVgo(DkBk^JsYSD0we>f6AC=3J_I;rsSlBA}ZpPgfHOw3mg(>2EQ ztkTnpCMh&m#%0{i4i-j&r4R5IsOt{sMILNOBeS}d{iIW63Uk;Pgu9ZDS}bW4nvZ=# zmnH60!Co-?lcl?kQIglF>t1rLBC~ z-DNXo;j{}Zkdq2l%MNACv;%>7wPpFCWGN!X=953<&If3O;)=)RFGVv)r8`3ppNGaU z^|;EUb)TvVJX@X}mj`B?0#5F84(rH`#YsCl-cftRf)9VKA}_MdDPIvj)%*#08TkCf z+8^jc%DuK}MCCyjNQO5Ij!VF!;gQU8c+cXb1}Nr=%rzMp62P|I$=T-Wg;4SBEUyT`Qv5=?~M(6Q{uO`28q-NU5)!oeGbLjV{yo`b{eI)A3~aH z>yCPB2H9Jr^-mC(a9SR4E8#Qkn7>Nlfz-@eV(EXDagYha&q!RocdPjp(4&WI*mIP@*Ne?RGGAjjH7Vsq(7t6Cm%l@<-=s0qibMSdEP)5kND6hz&1b(;CG5wlDv$N%HMzCtX>2lV@MXaivb#5>{y>yf;Ih>3< zkpqEw&~C$(Aqa!BbudVmu^Pq!pPwh=!s*cyJfD9Z?%9G+m!TEdxVp+<61NLsD)b>2 z#|QDIAvUm*zAaXK9)$pu5DDLGpk0?!{#1X_M`j?b1dJNysN98HHD4Y%Db;W?EOX-~(Nk0latX}E`juitib2rqAV?Dmoum2)qiE6lM1w3vwuyPrrePQyX*z!> zxY=2lZyPU^r_V{FFAb7Y+v=iQk%1c>RJOf9YDOD204Q0tHkBN_eTczN$In}X-rvM7 z_E=zQ8>6z1TkDwvp|8Am>`5wez|HV#*!szo@p&DaE93Y*XSeh|V%k8EuVjhK{F8kM z$SpPOXMHDYinMA?@7fl^#?}L{n~8re^+=#NpT^>teu_(p^z0i^8*FSu0bN}+F>K|l zmT}V;$dVN38u{8*K@&MMzDQ#0S%l#TTcB&`{%mlgL);orpVQ1KN0q*!Y+wgMqmi1! z3CG6nx=kKV_w>W5uSlF^@tvFA)duOn8utSYlTFKguqG4DyRmjhTL@oJC@g=r2$FBM zdL=tzlGqfy$4PQT9IHT8PU|HLQCZ}>iI%~Zf{#L~gPxYnd$dGB9UFAO7Yw;8k)9h) z&ncMf`IXxXg&#E2H2mb*(y5h0lrkCuVMSw)mcwUb<6uteNKKO=`E6+!Ui{D1@FT-k z9VhI_hVh^+lre1q`}{!*xZ;2EDtTWh=x#dR5O;JW4EH}8GyA*rjD^4DNt?-wIICo$ zhdDxSa|<^zD4!(w3TYm54~YC{-zn^v%7HxSv>`ShjnK3J24r8}RO#eaMB;HotE2pB zXK3W}m7(pVj-kGzvVir_C8QxBGGS0c_0}J8v}bU!<0rw^K2y&T9#ek=Z3ol3Ntt@6 z$5g17jU3ERj)3x}eov3maEShv0f%W1de?QzN`3^VeLBtu%OEU@Xu4&L<#otPM_`|L z5V1F5*IeCAVi6x#oh4Z=w^p@wGbLRwmXM{A;4tn| zGFV#gZYTiN##U#=R`7rB`T8+_dXI~X5`(eyU{LEiop)8%mo-9_k2K;!H>JKg5IBAO zj5(NbII1d9mN&e#$kH86V9}WwgbjWezM6;ovOSu0t5h->pSCEv=OqX~&p1izB@=c( z)Y&@0e;o3gmwGKR9h<~L%P_P6+m(Sp`%HV2-Sf0$#cXz>Z<~KrfJ%Mp+$XAC*q;LJ zRkU$1Ks`;QW2Q!W!fG#aA>;Q_SGFKiszsKKDVBO}r7PwE@`T$m?Q*Wl% zX3OQ2e#^>h{@#D30kFmDDxgWmdV>Q8$5b&27NRTYr|ehc2qH&$AjlKKj-IQ6U^Rh5 z0DFCM^l!_;4q7$NpKqt^aJm$9KrAmHsmsdguEByf^usUYDUHn}D-;c3s_eJFxa3`H z&F}OhdO{mkYGvWfEjYWZJ~1=(r!O~X4stbd4Ru)FqVRuG%O=0d&ci$+7N1^l2Y4PsS=!lUtz@)lm9f+H1N;zF>qd9Dcj$p4gBE%CQ6$W$2(D zGeXZgOj)vY8rqiiHfpA>jVewS-8*Gjxv#y6YOMK;P?^x_poJrj6P!ytnOT9r+D{;0 zu>f7Xd8mK!Bu5t7G`yYe{$*oopMw5s6R9-RUn*qFmj2Vw~LYJKRc+vmEa5j z)wZ_6TVt3bqhoQ~a+bhUZxawXfqTLOGKjyDP@aEugt2AbVNke42Be6NpWD^_L^_G_ zXxRyP2Zinq_m0J)Rl+sNrGLbp`dw1b*yUl%ZsBTs)MY30Z zjMY8yC`6pHq{&x}A=2#B42??OIGTjcpLVZGGE*^=1ilG}ARb#R&hipYWg;Q-G zYMOFRzcouuUA?1|vo*SOe*ytfH%7~wLQ8+XC4%VHgA-vlc}r}ImDVfeZgMhp5w|`b zT2u3^sx+RS+qv~pA-fGu4&+34^;3U0VYVhmI)nGF|u%&FvKlMK(AdYmkgN&|M0F&BTkm`aX@e%xv<%vPy(R3EyM0bezAuMz5lD!{do zOX&b-?pGX0NmyLmj95*<<|JQ5#SN?rYw`YtDni!qQo!~*rzC2y`*$Zf{OdrBfE6Vf{>p6w!1{MLUO{V}rW z#s~i+adqNCBZ4Q@>$9Xx6<~dHZhAH0JG8|3nf>v>AVTFdx1(ad7WY{-F2MxFP4q1c z(gMsjh0hr12)A{MA2s`v1N8jN29Mxpn7?O)`+%2tx_MFTqOCqDo13d2$I?GPU`4!g za?fI0SX>?|Ynyti+$x{wgv);~=BZYM{;9>+eb}_-YF00hKohvPgB2nn&4|FMM}_4? z(Vdf5d72k<)M7`408&e$NvG`5N(%Q%q6hR?JZ?R{?rEYv6GFZL zb+_KeSBRl|V#T}#EPYNreiG|ECloai;&eNBJl4g!ce8P+@4_csTUviYk5_>#zsA7t zf!O?#xDc=({Vd=J{+Iy!rf9@how|T=*=Z3&-W9pcMe$>(rJ~WT!AVlF$P=OSKwptC ztE{?oo5ganA52LFep*1+{Sw(ge&_(-@-&My-)cq8I|bv|!Z0yq+@V%76}!zO8~SK^ zN#o?@y0uacK~i?cgin8cw@_3dDAg1Q+ZTwe9Qqr+8NI3m&aD11r?SRwGS-^AP2gss zUcV`5@+~7Z&j91}V`ZPCNjf7*dNJK}G~h1)9+EOdUW{`UT+bBe78=bfnmLLzmq$NB0I7e(POo#}^|}yD(M|Zo z!yv<-1YWtzh}<|ib(vf%-xQPM6`fEy3u&Dwze)#e7H7*PKbmf^#Ug4|-^5NIcjzz; zNhXmZ(mox_fpZ{hj$q;sl8uKV|Ni*Oet+yMKCTB<1dR=!#6T1kcf3mX9~}*_Q1c0p z<`n7mOEA1?@>qX3)Pjdd4~5BB;ho7ql{B%f@Ca11B=s1V)vVM@nl+y&s=$gWD(Lmb z7v-1`NLI_8vw73?)W5D%_-)t|Qq?(DTj&|*kc*JB*o_2ub0rTraybxt*ZN9(jf5={auvL)Z!X<>^az2QJ^Qvf|c!oLT9Q0Z}yvt|0^2>nrZ zgA5r|=9y;m1lIP*;u`VYGP|>i*HW7ssOe1<!Qah03x=LV9bw?{c01z8MRE1RT z91(mOMbVe*z5#)MW#MTEIwlcYX<+x=&%WOKS3Xdn5aL8V!$BoK-lfgRk!l9dLCb!! zZZmx?Yv@LrRF{%%aNHN1cTTTY&WLC=&(nqY@IxQf^U&L zyaF(v3m;8xo9_$_7G5;+Yi#nzyQI3cFHyz}h2^wqp^(IWL@g71(1Fu~Sya^e2z<<9 z+GK7!d*Tm&7r4S=C&P*pVjVODET3tjfeW0P-HR}Q=Vq1tfG&xL$zY!5y~bC2u2UN@ zB7vgG+I=Rs6f}$J1$&f1xx8(HfaVw=4aafeI-X5KTGX``->U4HkC4GFL$5fYdnvCh zg{yHSPR*pOOn<8c{~e~!C2Ki~Xk=x|vyi;(9jbVLH)U9H=_du6#*G=$B~%a0g>wtu z;=pz?E)z`26NopFVQZCVB_ym#3wJdTbv`NsBg!*qJ=D$~Bblh#%nPB$ZSg8DLW{p8 z!Ny(6)AV|d)&?OpSE|?RZs63CoX(|<=S+D)l+1yJ}P97<2fO`+~5S>`864aqYn z-IyDD!~WY9?Bws5svx$mS~^9u0bqC8z1L)zwjHDMTZY(zV6U1Doa~xqRq%WwG9r)_ zajcwc65YZM1U52M{j{dyU&c@4dIsW#z5058&y;q2kaiis_1xmBQhz6-=u%zX#ax{j z<$<(NoI3EjAI>s@)^Z)L3oUmt!J7n`viwN$cV&A;bdyWY9v*O;l=WI|qlaiKdoEM* z=ktWOwJ_*_p7gBZ@5W^mpu6ES-~-3E&Pqww1X|43X9*ScIkgS0&47k%Sd?u7)^4MJ zR77M8$?0Xq5rZt~o91V7T`%y>wFh8TnO?Owdc+yN;DU((4?Lv@w9!1i1CdWm{`^gy zbJ(S}qwZ>h)vUr{H5mL{u$#w~#Wv(Xlk(k_d_nPC(t1y$od zWBk$(tSHmrkg{pjrmZ-NKt2jc?ES^Qh=Bdh8=8fR2PBE$EUhTki9t>G*8nOZ1h#GV z<~5!NNF{ds>$VrdW`jzJD^NbFGgs8(VT}8lKH7w24q?a&D}-IcAMmTr!0YGg(iIF< z`0nmUUX_54bV9BPxrir~H5uK1L?gPMrxY5kpVxQh0Mnf8cb;Qi+HmpGJtlG_Cw_s? zntaFJM}w>t!qW|bZmkk{1*j(U=!0DQ_cm7 zn|I4KzKmKXE9flbu^5DJr6**3elG7_Gy6cv3@ju{)Lg8aA?X{rWZaS}=eVhf1YkFpCmdW>&kg8ahvj|xEr%GL3G+6n@H#t6A-pOprBs)?UvD=lub(uIUb!U9QiQOFkC2}otzge*q z#cN+DV{_pReqrsnj_)dU&2*{kxcI!ZDq$~JC!k!CS`m|L1+KGys)3&AySnZGGxOSs zid9RhQrBe@wGuOiL*X@9eM)!wD@CtyJ$h3aMoC%43!Ty}J@=ujh`7nyg|&as8Bn`%5{Gy|(-^^b@IsDCz;6I3LBh@ipQQ-R zPwW_;Nu3GqJ}G0(_NL3Lf+7DXNNkjxZJ2%j3EvbeFf%u-#LS491$=JJeK4{QH{A-B zGqdBkT7Hi#x>0KfxS$Po8#1@{A%Zu}$O|Iu;A+c3@qDy@J5Em1{*_+>GSP-?blTh)G6X2@+n9ekaWEFKzW!?adWc-=&mGHnu{t6RNWO8>HZDwx% zFZ2WpV^EXBUq&d&;MLN_cuGW}+?W=5tDU0*RmJ~6Jz~=w83EwAm>i|f!E<)$6wKotcfIBjcF4`>|eV;OD$X2 zLYMQm41jE&ki`9J$iEj|2Y{y~+AB~Ck~>;RQn@;RG%aQ7<4`9rQV}vB3yUF4pr0|9 zTc_wPto07HA<1+v#-6AS8^Eb889Z4?@_vG;f1cTYk7QlNWNJ}SrgM#wIj*6RthXck zZ;UqIqNBlU&6IqrLFBF_HJd~1es_W(*4aDZhNd)K=hD^Q8VC0W5wb?zX4+KPgV_&m zLs;%iLE#AzZl2G4AXj~-Yq=WoT@e(Jlqg-h7-b zXykyv7IL!u{3wS-Bf3n8(n=FShgsV+E&Q zB(E3M#Lv&dfez^*XP{3cb?P;kn_F>wgf-FvoxAtQyz@!^C|iHHyIqAw2?f{pf){GE zG?2DzVd^}mQs)!9Y~{N5?Z%YjzaAYkB}+Gd zU&V1g;Lz0`5hiFdEk^ayX-kf@Qs6xacf@8&C8h)DBXv%b;JLmVr~DW{yOLK&j~L6)7{i= zfg59J9&z-?+7ADK>*$Zfmf!gj0W3xn=ug05IREhMf7)xCK}IHH$6P9ozk2^H!rRU; z3}(bFNtQ_Q7mV;XKIcD7_rKCkf;@Qgcj-F}!v%l!K1-<&(Fx`x{Fg^R_5bF7_D@%g z#BajAVKXP8@F%9;|CvSpUdTDJ>zI8i!BELCj7t3#6}o?u(m|R3!Fz_7f6+waKSz=A zHw&H%EL?F$xGDcM$6UJqAARxPAX(la=4=#?#9MvMGuPflP`3#ZM!T1 z@nL-J$0$@6`tHXGuFADn*hKA=;*{~ZPAv}+2qqjs&Ihz|K7WZ5xdRBV* zQb~l-jQj=3l4OPQRbmZ&gwOb!ha*S~iXJ|emwaGV1qz=jO3FEZLF`;-(p5Emn1ZNO z&B3#84t55~1qy4R?yA+#V?om0xt59AvHjDA3Spg#UsmM+R(+Mh7&i_&04xm~RI)EH zMy-}^NwB9VD3r5W42yhn*{P;eX$W{rCfdOigl(B~x#R#k=wuej^Xs94mSvlvlbWw; z&~{flMvhc}8x{S3;+LVXy~a+v4S{q+#uF}>pRawT!hTlpq|jZjEAKn zsg{}w#MlkFHgX2SY@QzUi1K~H_bVqs_F5a?aQ@Uo<|&N*hLRMT^i>?Rc?tnjJzzgVV-B&J+}m8hvd;Lg}#ek-V_x z7ZNs~-`jkDoqnuOw-~yL7q?BAVLrk=galJHgbgPAZ9HGt4|KL#U|v9`qf*AiZC+>+ z{JpAu5s^_M+L)7-^2ax{N`EOTQx|v?4u@($OW>!AMaDa~!3I$S97))@6Q4PuFsjJ> zHjLeH`u8w=0rRs-Okkyy?$Z(tXT5i6<<)IgOhie4d6~kKo^@gD^NzE`gC4!l4*``d z=Iv>sn<^r|eJY6R{1F1cU5|c@JPIQ3p^p?r8hQz5=ypwNgYx`UhX619AfES)T2A?r z1<{yrUtJHaXU3#$=og3kCG}N5Z^d}OW8%-;^1Ft`)?R31@xzQtx*RHL$>a;wxQ8(2 zuIw^@?#QaSHM@c0oS}rOh9BXIltMCdS1{J!jJjAqcqI`GC&5f4Pns*hcPQbBF*+_et8(%SKv!I4Q-^PIQ@I6w0JDlN;h?q+GuVT_uP>k(m+}v?}Jql`n zt7tOpc?EYeWa%SNN_LzozlL(gaVUUKh>`q%mZv--Xl)38_07G8NF{)y;f5SNGRj%i z$i8YbO9Ik;i6g$IuUjz4im~8XJ7xhqin%nQIDrtr1QowOi?OUuS}^R5(CfNE?hZAx&pBEG`>b4LkxyCd}i1R8y8M zio8avxGtt;IC3eX)a@sq#@Rsm>|)_Nb=JR2OBHoC^HH^PK&k$j|w$CPZ3l}vGO(gs!nLe#GPhqr3;N8 z4(~0nof0^l0i{ttKkRRNe)7wI5{R8opIuyy=;=NbMS19mt`w{=nggail)-M4B<_^) zGy9}fIJ3O?aN>r=>jWvaLdikyOmH?8YKsOCe*l-qq{|uT2}>8`g%3(DP^KtHpX^@G~eq?h}sner;>$CIUwiplksP0m>A?ypG5o}9|h!-@`1_Q+E;HxKAx4& zn&U?N7$?u%wlgOxQl6iG0-M>J=@6s^?{W)Bf`F2TH`7gOc;FI z%yP;@*X%HQ(c07f*cu~#S)8TJT1{YUe!A$z-T3xtI?YRLC zp`C|7oc4w83<74_GSd z8pJdP?=UXCrDBC3q7c6+<+;H;9>+I~N`uBX^(V7|*;f`!QpW(U*XXwrm(zYXg7ybJ z=9EFtko}4rLJ^-%p`RK^l{vNV#IK@29Y@D?wJAy?DdFaSLY!Ndv7VEkCWa8EBX6|sa2@Z#+9e<9Fz}ZS zQTF|4WYgD2fniP}XxZNLtQ!mk6MXsb1C|<_CYsiN(V@xyZr$`}Vr)rNJ&Lxkgz+={ z8fS0eJv+Iu1hhC4=g19gf?o=tn-RD6!hoGK`6=GHd?`e@Zd-YmP}YsK{Ze>k2F`to zRfWLwu@7X>C@Cx=O#wYXszdO#2LszgC*3;xCo2{f4bpqGd^3Hzl~n|0aLwB%zcN}D zEfa8m$$iLMI2>~=KJ5&o?B%+8-%;z(6+rl0R>DZFQ-xZC1RcB%3+>RH7>PWbo~J^# z8Iq3QkbZu`s3Q^o0x8!oCmDC={UkkE!<@ehPsDCqt=VSqtI;@>Y)uFS=@X%$OTq%z z4cR$pM%@VFbATLAK3b@H!-IwNfX4 zS4tD)#IwVb0>2t8);5G8@a}ycvOL`1T0$(G+I_`^`%c(y0&W`d0OU74Z2%4A()tWG<^7W~=-DBUp5K=?N3+VI+knCW z0!eS`JuSQ(^R0shc-bypqkbeIgl&$0{L}F*_u$|pq{q`9(cd_2iogR^^s>t^Pl}U3 zR+iOz@q zgO6>Hn@&gmjx3j4HnU()?Y9t9l=TcBcs*zus0)4}m_}qiC3E2>tq<=c6)a{fh^a{J zy)6Ft$!#BA?Fo7(2BNJ=B#?T4%w@uOl2`Yz26c)^B*ffC$(9Li%GUBrO5KDq{v|4q zmH|V+WEnU#Z$)Tj%}5-tjJ)^8+M&hXb0nep6+CLqn6o< zz~ol)8N983t+){1PR@+|po#LXEH$rqeIu1dx|(+8{Rm1xuYT*_$A?yxN$F)350T14 zycfcGG1Tjh9Wp=Z$-=JvJ4ba24;h?IqijeGNpX4pT<}AFQz%W!P#?`&&Aim{P9-dA zQdxMd2FeE@8V4iWtl*A+Ejy4Al%LVY({t0`!1_|Fhp%9aG#U8Q?$kew^tdTBUA0O@8_avtNO-P@APV~Seh#o!dxy;jY z17aJDzE}hD<5twH%e;W>7@64yI^;-UD$s!kyOec+oz|G=JIdaU1`_-ISm)CQVIwr#w-a0{@+j!kSPgZE zj>e@_Jue6*$vu>Rd(=7M$sYtL?ZZnRT1b?Ck2ng?`-a#}cI!}Lx)?!sd7kq^(ZtB7 z-Fz(&%VT+HoCc6u6SZLu9tH2Vi#sIT0;!O3{6!2ao8gH^8hW8-h;p=-zb)`h{C*b=jH_|l;rN7JXd;)L>G>XcBPDS>4tj7U5Wr7; ztD^iIpoGkxDmw#ZaoI_jbQIU^^)9F|j7SUQ&gC=i(BcWKMC*8T|?tZ|mA~WsN>&Vz4 z?_}q+R)$OpT?|cP@@iSfO313xhs=G>>|O+G&e5QSAg-6OH=R{a*>l44p--ZPi+Eu$ z+Utp0vvR*Z9H3PRCrjnp8QmeeI_DlQsKTmMPw0$Xl)D45Y~Z)5apEW0PDyjUIOKbT z)tVZA&oV#c6kRySV@y)FiSR->w&d2YQ^yewjSSe-sNOTAM{Q3hGiU6wBFgQDuVtcd z6g~WU%9%hJ7bjFIqIHOR+S;SeF8B-<0nki*CE>-QQNb#b=EO;CFK?%_#^jcP0gilO zqI^!9e`7V$IghOha5x(9bg%`L3Dt95*FL*Jsz#~GS3X|Na5 zB66^;U3ZK*T5QPY$$Kx4f`fx#Et#^cL6u__x?wu3*emAPLG@KM)7f1ej46H|em|Jl z`jP8i%+oQfhp3nxTJ!UXyXIXfKe|4y{t_?J1D%FY6q`c~)>}SP^N}Vzoq;E{V@ITa zqteY2Im>cy=w{?JE?6f%_Z{Q+O|_SZcqoP~6#X053Xg#1t?<(<*YVl44-NZ-?{_MQ{$PYEs)>m}7bx^xjn*bY&8n3eE$$$_Tg(y(RJc}7q_txM(i_A<=zaW|`MLIS1VDWTE) z2PV)Wr*vN_h1UzcSN`?JXJ13N@;%Dr2uQ^p&HQrTI|ETox((0E$xMu&wRM=Cjj*HD z3Lh}~nG0abc?&I5R(oXmLOV1=V@=k{Aet+Wvg?-`Q3X`2P(cM`xJ09WhYnKJ)h|~X zUG`$10`%#M;%FV=`4SOE$7jEG9~f9e^Eun$qYDE2k>tebj;Cn>%6&Xbz&c}^gfxz1 zmq?E{VKV%7GZ36|1yyNIp^r^Znrje>p*Nn7xo{aPcCwhMQ5D&U(dEKxX`g)n0&d?z z45Q1eq-y(vRR{y>NZ<8vr}-0 zi!yGNDBu+v=ENd=CptxID>G2TRObvU=u^q458tgq5uxKQfylgn5l~mp?^rDtAsQpI zHxqQ8pHSe?)ByI_#g@DI*!d@ypup9b%I(_cafs=A^~10Vizltb2;wCW#FF?c!(OHo zD*Gg1XWv`Rd(uYmjx98n0>PX@wznP6pPbkH=|^mQg+vn>2%OJ0qen$y$)$)rl=HdF z``QbkPiM?KZp$)%@VT%ikbyf+Dn`m#eo8dxhJ`0QtOrkttJM^l5upvAk^=Y2D;IF$HLH@O8 zi7T)DtRyh(VaoFrhsJ|GmM()LS53z!Bw~uJy?ad(1`ICZnAzCD?4N1P9@oPyYy&)k z@UThDM*Os+7R?=3flCqL;hu8=eR4b%oQ2xQxJFK1gewbMyw?#ih+exzt5}!nXyrJ( zxpBHWNFQ&1HtWout4a-V6}3QI$nR{>2K(0K05No6?hX)k0iDZ^OtG2TlMuc z=*V0L(w`&a&O4_}`{Bd1$d+yWOLK{RX;?$=O5uEeb7=wb-cI-t0HH!Ai-)q&)_MN1 z=casA@Rln3SX<~vH{2#As-=~ayCcX`t|InX46Ao%qt!m`7ee?V|91AdWKXww?IP(1 z`h*aX|B4RNtKO)a7g1v9{_g0(p$LAHAXIw2gCs}JqS5fvI{oi7WqVw7qf*@Q4^V9@89j~$jq67NzR?o9Ex`Y#``EL zo_C4O>CvH=NfZ8_3H5lNCxTu1VIOb#u|6S6pbBObC*kG9fui>ew;=&)C!wv3H)Krr zm6^z7wMp&I=-MOKtzaqNAgC`vwv7>oTe%*8WEJZgznsS|TZIveSMkKrcEXPn7lR}| zF~0Jk+A75-%jy`l63(@K;EPCOXkv4oe4A(9AY^zjy}SwCftZJU;Ea(e^y0Tmsf}Ks zz}`%eS!^h0r*G(!*#(pHc`Cac${>km3ym>jxDswpV72nmQ{9}XJLe{~BUvhflc6tv zZIl1Fp{*>BXJ;DtIUDQijY$LfhB5!2tB6KfH2#%F=)Z=j(S{)HoXwD*GaLg-uG%2`YBAz zx>MMx^5HxN1g(+=(%Zg_-m?uJFGJRUwKrw*U8JvXfHH%%K5e>)kzPyAhH#Vpt?ZA= z+R`_6dA4xmD0y|b|H4ysr|y$Lx3}%!4T_W9JW?dsE$8*>7&|j;u>;B5_hkFI?VeDg z92|OiQ>2JzOoCioP+U3CKyUUlOByZiW^Oytz|~O>j%IeKx{x|YlnKswJqJH zg-EKifhB|dq7_veGT67Ry#~&7Uoz_q`|f7L`AJ{MbL80+kORHBb5ixt2nRIv^3k$h zNxDTpCRO) zHZMd=3|%2I+Yl8yLLNLT)%)DZek=`8nPJ03G4`eDFb)O7Xo`~^wXm?paLiHAlY1 zSGFvg+6!=^JCD0$9mwn*qu8h5#kNX8neWWcIcq3h-r?+4b=vxW=6OIuw7Ls(MSV+D z-4_a4Cr&Au&+=|3wqS>ymXd>6RHgHy(a3b_GjYAJINj43%WWQgG zjC3@2vy(#m**f#8#t?GDEH7Z^1X6{ zyou*j->9AsLgfN~U+?=j7l^JhwS0Di?R>7ACv#VQhzK&a@2GAm{%8W*qf(`VL;n@; zWd45a`a|<(PGyHljS=YSyVd(S7VTXl$UbH&m_vlm?G47Vx4UQ{NR%$0=*LnB)UEj< znZ-9q=!50T())1lsSTfb1LT)?yrTBCrKZ?7uczufwbg!q9yJ6#YWsW!FR~8_y>6G6 zA>yX%@th}vGIYp1QnOsrpXhbAZ=OmFvRr_|<>`ny(wn4a?rl_Xr86w#r|)q!xk2e^ zw1S6{F@=x7W&5iyL$(L|U3mI4B}Mpc#Imt1cM1`eP`>VvFrSgu8xk8m6~a)sgx{9; z`l{ah`El5P_@-Xxen!%{`>FdBA2TWEv@!R6RKok7UDKKfH5VG#cY919f(ef#y-Sl3lM`Foq>41pxm=PU5jxO2 z3JUGivu2)axcUCXjt~^}LA;uC)(D4__Afuv>*&pY(pCH+^sB<#kn^we9L8)9O2GA_ z)*UehkMauqf?yN^g3I^zPSn%elhzLqnmNRAGQ3hS#C=!j2vj33)h+pc&4~H=JY=@_U1G6q)Ssc ztyQ0Y0FyGYCfgB7U$z@IO^Vmx>{H&oyu<0!_Q|2Nf4=Nd*>0W?gaVDbjL8CW+T0JR z6vpQ@E8X=joAi8sL_2$4M_E}=JenddV--cQvs8&$S5%DWwn^_0&t5Z}j!RW?qNcJv z91WZWRu3YbZ*=9haWcQA&dme-@p!#nur2j}8$aNp)pHsdncqriYCvYq7 zRn_~kBCGljJEAQ-{)z=!v!&asaktbhGWg-UR8T4j2%DDJ;EPcKw9>|Hq$#< zCtz(e{z_+MB5q`ZxDVW+v`HT+F{g(t46V2`*j$TdAdWdH-nd#?-upPCN}fM0TIo1Z zP2$4c9)!Ffa%WF8qNApX*{13eSaTbamSmp-l9eNHER<&@E*3{nM4M6EVj=N=c)AkI zcAFelYs5Vy7$lhflP?+=!(y1bm6!)vI;|E+GGo~G?ZMA|Af<=)(z$wrO*W|Ujp2$1 z#io=!a8D0e(dhtjGKI8sh)O>aEZUikKN~2Ue>ag2OSzbpg$`{_7#lpQs1On?6;zqv zo*7+@}_3Pm;t9v{@BJCrS_co)9pP}HnV?W?g2!A?|#Dd%MB-?p3ME>sRUEzML#1xp~e` zA9#X~8r)$695xz$!4DTItb)~=Ng3<@+UgJrp$22=@ntI6kp-$;47fDg#$%324}^oeL#NR1xWEob3@eKI&2#0&H6<>IUDGvgnk9}rrxhCg9=Jv z#81$aS1}u%$2@mTjT{ah`zpKBq^p)r_cjdE^p=d@dBHA!(PtFP@Y$|sbT4j5F3V%2 zC&QSr_ww;`)$j@Q`A&T^*Gz-aDc;YZO+u{KRJ=9rzPQp>FCA@U-5;OE{+LgmqS`Hb z13AEL=QOsFyqYj4wq;*5J97@_9cP`Ft|HT3Qc1H^5V`5#o{<@&vw0!fL}*&G`1S|B zMAg4+95pL{%bM9Y8l=mWBuWX@oeWHWV8zu8s9Py2`%3FMTynHEL{|UI<4N{>A?uHG zKAh~HwWU#v+X|OJk7v$2`V3D0uqWScbG}x*l}bV0_hCYlZU)@xg+LT@1nGSJH{xWoj8$y zs%5<(;_fswX2FRa4~W#z@bF$ox^f{Ef5~`egiiekN|cnx_Y)hQ3C0hK8mP!g&Ab zd_tt0n^%b^ZTZ5W;jLOCrQdXur~6}nxyVu965>KGE!}|deByyR%&U?nNAd2K>1nI|_ z?_`|1y>UXpC!Lt7_u~#11yv+Lg{D1)EgdcHsDwZrx9vW*M4=x^W z5NWM+N`MpUD#EJe*u_r8kD}X>=o>_nDa50{*ZX0!JS97}7YX#_J`5pgUq-I$6D{#{ z7XgkYt;a#*XnjkS6)=_s1eh;EP}MSU3fPv_!J$Qql)Nd}bJbi+#2Qc6@z**k~Ezey(@#xZL-#8~vhq1keobJ!TZ<9RLnQvX&)Z ze16UV!RFKjc>bCDu(zF|l1J%z2V%3DIYSn(zGBFOY}Pjuj^&0yzhJ^-SBcIH^^(x6PCG2=vhM*KM+V=I+qSp$$o>j1ilRXH)p`GBa7vWi>CU5ToKQ>T02(MfG zVCz2BP&<9s0`a+#K%00GBZ!ur(?Eckh=RdUsLZE-VXPKzToHL*WcGLl3Y04y%hS>` z;O4j7B-L12`KHlAJ*)#!YS<&}R#hXSShp+-zKCw^o6&9)YSC7Wn&gu1BT%r(+>vO9 zweP-=tC5uGG|V}5SZ@6BqW7V_nvi#PSiXj|~7m%#`Zf}KBGRY~Bg?h?Eed_t6p^`q%DnfaTgR)hG`X^LTt$!&LitFf?6 z=A-97gyl(qNP4;(b5NfQThlAs;h+4qJiMWQ-ffONWuARxBfX5D`;|iR9Xo?vzOT>c zG1=VxDcwgrDpp`Ogn~r3*T@PHp3fvu3rI;iJUEuoc*LeMm>IBp0T)+N;jN zh*%Ey=0-$^``6YF;mQJgYA#vDk>(v}k-dJ_Pp!z8*uTt%*Y_cwLg<#Vc(VzEu%Oke@T8F@oAkU(C2)3WNuOJH=(6X;VlT#l z7wClV*pOOW^E<}+Qns`ub^I43Xm44GdR=F6nj!<5^5p1&Ne=_kp7L?HH5@~P7F$-A zEf>T)3G;}15EF1u@*Br~wuQz6?akPKkXqx88OPYM#79#yH)NZ2xdhmqg-Ah@ZY&2)jNxC-fg+J&Zns(n~B z;7Lo=na5ki1LNDG@?%d}Utifq;y#GBy`4L}n6vO0kn z@0R)Sfs9)|9~Y9DF{A%{qc3?8>C@3SG4nJ=)qI%P(=7Q@On>Awj5Pfx- zOZNJ67CKhmxDIv_IdaslYYl1XoNlojGf~aJ$(~)bP1(s4j}3n~5p~lRzENof;5r$% z{+8rKes4k6+)7V*cSI;*e!hcTJpx;ssP-0Kpi^TFHXSc7R!dQJ|4luA<}M|QrLl9p zc;#u=ZA=E;|xF-)YJ>12Ht`UJoeE zOg@Z)97l?O@F-<$cN@^L6&T&==he07g>Y)EuwZD&u6JW*eDf4StMEXt!ZLkhrH1*g z9DUTqBl}g@_Fi;dzHO?1Ht#;Rh(tZHMDjLzsNaC#b&~HgQS&KyscJ(UFE``n>BA&p zxfwXU7U>4mZ3}jl5}>ItG^g%Mc>k=&*f}qv=G#Xj+t9`T#bC~$kY9!_kb~?Gzwk)u5zG>#T*_m!S z6(}8wMH4K%g%KDP7DXajhiUNURxNnm`uZUq*t+tmC!es5mdX3p@+T{7F8r#d2)XWT zYGZuA21(y0B+5sB&nB99b)Om<>$Zdu_xrY9s>i_5!#>idD3=y_t+`vDnRQUx1PTmo zqv3k3En#*PWgc{~Kc|dLX%2ELA)JqCK-^_ML;L-NtPCorA}fs{%Sui%_YV*;M5y7J zShCCa>yUz=F`ZmOd(geH>gjOh2C-8iJ5Z>fKMtMi4xR&lVw>n$ce0ZVI4P`kT*5ye z4%X6W5ITasL^}|wZNe>399hEI3&d<1ddUzSJO{V+b?8OIg-N~oU>dR;*6M2IOMVvL zD>8~Qj5jF?xTP%aIXxbM#Mq@FvtKjlr_+XoA1&=CMuJnSS zn!wbdR2lexkv-nvkz4u&Ul)7P2?~^b0pIaQBoM#^EJkio2!Yg9ZclWCa_IHerk;J+ z4PA1i^z9;$v;Oi|j|_4Z8FZ%zaupABhg;6YAKY1Mm?VL)v+`PF#X~DDdXbEg&%mt2 zgJ?yyLoa<7k950E!hy;nU%Z=JpqnObNr8LVLFK1^vNYF?7NuVb*F6|Q zCaSM;(=Pn576W?s?Rl-A1U0<*9r%9CSN4f0PqM&2jj#m~90?6~Qo^&@6&<~#SA`5c z+(-f9QT+)qmDZE*=`J51_S930`aU%fMuP8Kswh8P>@dnY(W#GTBeAF)PVO}*E36i| z&mJLv`YrsSi}ilex|!|wlD&ZQ^h%9^WYaX-G&amcrbo86kG^2IQ;j|vKVxj?3d0t~ z9!Z)|0YQhAT5x(c+Yz7IX918soswIatI`xDb$b{7LJA~B=^`fxjOZgiUe%?@s0=e5 zF2wIe7py3obftf+UHC8(;wGs#l$Dd_1C?KYTituroi2TzZ##%`IOy!b5;b3osDt7u zyyl7{MC;w87*J-=gVBT#zR{_n2*2h{qDLP5;0H3*S9CzJ^z6~6N5Na!W-YaU zm9tw!(2Tbn_vxw-=NUWt_zE8kq2w!mGW#Ds7{f^y-1vhex=}l?tk}yL7H)dFRA5hJ zqFwM6=|Y&ae18)S60P5Nw?VoNce(_-xmSkR*2gO=W^J>!aPF_~RgB##%<-c}8%|D5 zE=@Mu+v(d1%jn^D(MIVEDxqrnb<<>Tpm1q%D#O{%zj7I{?`9*Dxd!zFkb1U)K@< z0A~MMg`90ZS{0i_^fyNB@z;=qj7NG*18I9;3jl2SyEZHQ)3xN+M}^kX->>z5n2P<- zFtAU5Kl*Jk#cFsW_;oC3gSC9`@BNk}^x@Z~a$bNa$bJ5ddiZ*Y!ky$-b*m->xs<0+J7a2IvC-?c{FG$!^Zku70pCt&)7G zST2xq0914WK_0k)aski*z5>!}1BE^$Mr#&SXQNxIBad#hMnAMccRg5dwTrhc5g=0| z&{-|nS;Wu_E7)C6J65PRQlmC13qtY$N7joBK5FJu|E}gRmT&;gV%7tHD1eRtqk1ND zSOB!r%w5@_yVm!9K5u2Wd_{=PY8PL79(`mD54?t@JwK)+UOpxl*c!da)g(EQ!n6(m zLqNR0bU2zMfJv4B^ld`J0#<}5OD(`W0Rzx9;9$VaxoEZIOQw!D^ zzHg8&N%+17iteHIR>fOcD7WxvyD;y-#G&5=AK352aWY6fZI|nEN^UGmwaEdrjaAk- zs|1tW;XWJqgyaU+Lur;sq)8#WpAzkOkjZE-nmsVHk7@6YAd{;i@hrLz@Tv-RisTkR7?$hNo@Y`@h{VL2umxYA79-XJ$WyJC8q z`E<>BVx`flm%AJ-c}n<@f4~V+J<%e1vcnkPm{`LD;Zh%|OJ!xRGr#NeDP$d-2Q~nB z>wm7#-Cn@imO+CI(c7=DJXpSP#-DMHIj6~LRzqkcm#H-vEM6)@M5y!f?sMc$*OliE zsVPl;qq&s)yAOTP2Vi$FTR{BXhXlX-TpFq$ktp90CN~+z*BLC|f0{tw5yl@soQQIh z1*20*z`;x2iB9>#Q@O?^1!SCD0wnri0VFe4%Ux0?&_~DLWG&rCA-Zo zXW9pBWwhQ@v<4yoe=M4XE*u~gqkPwA=~+_%;4bCNM!o&o?SJ84_-+Viy-1W#tJPiB zVf*Y5YT9LN&J{y)kbfPfIG|SS0+xv8zwrl>8&p61^pcy^U}34W%9yS=rk{N|3?ePo z1!DH)DPcJx<~tv~wa`D#k#+g5M)|HHgULpN$-ZnoLNK83f8)!r(RbVesJKfxxDYtm z2;7Xms_;=q3cMjmqc0$?04!hpeECkJE%4<#n*VYSh+3)n z;XV8}roZtFEZ@lEckKD=L*!1|7WoMja9DFhGh>t&5M88>t6UJ2Sy+Gmf(}swx%cg2 z_4U^eKfum}f3Hn>+q$*(iW`AFQ)(a7i0om{lszi7dr67mf8}GQFwX#u<4i=RJIM+s#Fkv{ z;QEeI{1DJp#?gS2n7=GLK=4G*m6!mg`ueS^l}jay=T{8Z2L$ z0K$W(fexgq4nc=&H1vvqBWC!KY1#Lh&)5%;g#i}eqTd&GNe{5ptPV29v} z-Yii8H2$@Z@r%cU6D3FTc{}?r7QeYz{>wlAf8)24qu+M>fNV}SVcAIdnsi+4$+Fh! z4nAwP-NjX+;(_a+ZK8BLk6|H&CRqyObf?57L<(E{=pKl-t0 zFpL#|G?khook5CZoao#jO7s@=IsaDIxGE*sTO7bg0>8k(oP2_{PnG*<~( zPiNW{VRSVe_b0z&`jkysDl|V4nA$J(mYTmf({>03ibbCXkO8fIab~k1W4<{1@&6a= zUz=9apWdvkuQt1+x(X$S3k62{e@}bz4c^C$e{|jTXOI8ltOftwgFeWebtIWNa7SRsMyPn=ADv4*4;a#F5NHRk3Du$o z442uC^!ox+uNV%j5}jG!e3*UbDbU}-rv2q@OtP|Czc}VLkq><+KE40_e*|7Py`1Vh zj}?MEI<6GtI}f$``BDA9>+?TtWmek1@#p`zs{Kc^|9p(IylsU^^PdfOwV4vG(`M<0 zd-3}v+IeD@+e>0aQo2*6{PkyFtO1E?XO+N#*>1A8b5)g0caz{8Pq)hmxz!SrSzz7) z-k*L-A;MC5Fn7TH=D%}Ne}4JT$}ax=;*NvmI}88vjOX!R9RBI?uYUT=i&uu3RrHq^ zzkk=BCsxuo-hLdcGuZ}y^ZUN%UrrLNr8#B|pe!AdmULtmZAq+DOS*a_mSn$Fv$sCx zNgwnzIkN4gyj9In*L`doZ^h0#I1Z?cLx$XGIYOu*PLR>&)0#EFe|y05iYNf8SRKK@ zpLR@Va$t8>#@bCkR1<@EyadRMJG+p%>$fv3sA7?$#K5k?MIm!p3kyhHyQY-8qL8aQ zBI@e)%RgEP_243zJw^gUfo zb?vw~$Vg$PSwrGl@wp%#teLkKL$D8@KdPQP4>j=lk{|N2I1Y%r$V8#NjH$9-;2Z+4B(9K?zu87Bi!J#RQA4+L@|ze^##EdSG4WhqqSOsx*nO zG=l-8WFobwx^-wCJVDc$$Q^jZR*0lE=dSdU|3TiC@A^_$)67o~LC^#SkC`h#e)W(J zH2Rn4zc%{WO2T+6`r^<4^$(k0%n9_DD}K29amBy?`|7yg`+vFlA07eLQrXdz(ZJFe zJ4+qsNOjwae`pK#^sd`krmHy`XEl$DJU&s?`W4{V77bta1w;-^HOG2xK_4c2@SN{5zQ<>}dRmiN)v-I%rQd1ae3?QIk9k(g z1=!=8FW=H%z6|LfPy96BH|afWY3(l#f0zRy zu!Q@a^sH~^O;mFBB67@|4?aoe+&Its-qCvX$MNk=CrF4#2HkY4n`2_$7@~@0CPqCL z$2>c?uzS}$mRva|Ndik`ed|;It(n83R*1E0wH0+pk97*(8a%L^d%D!d>)G~DgX*tN zd;*0Ae;*utp9)y+Z2se)Utas>yl?I1(^vKn&cC(KUrc>@l>PDy{a5Gze|@X}_$v$k z_{tOLE26j4${9N!BI8t>N^x)kI6k5@ z(M$PmZE4?m!)GMNNsd618aO3iZ>^g5z0kDbHf+hzaiR}RADU2+5ocSHiol)op44ER z5Zxt>z^*L8!U_3WzUyNQ^vIa=P~dOfe`0_0uiIVHvHa=+`u-;_zP$O1i)j3Zdoli- z+rIqpt*^c{-Te<<4sO)j|0{?5$GPA73w)SEpnYC->wIWIYlYo zyN6)Y94gjX0Cl7#-(CT3nijtMJNyW>gA)k!)T@?U43*Zaoeu|SWvfl@&B!}9e=o~& zj%8JCVivAxVO=e^813SBqT)c$sEqy;0cio4c2(kZ1Lq*JoABwr>ea6fFCiSl7N)k8 z6mS}#XPuUR^|<$|<$hYkwf-l!RFU|<@N!4kKX&-W*@I@Y@E2$Q)?2sqpEi{${?KS? z;xEZ&EJbm8E@SFGWZkM39ZwTDe<@cP*av9Ho17&uRb?{gq_6>5YD0ADT)(7UmMR!I zDCi1gN84T38+qNYZPy!EM}9N6HL=YC>Gd=#-_yCLi3EqHGPWhL=mBdkKBeCA&;!~U zQ5yN{C4EDLCHdd@;sHPbXb|n14Cavj;n!@Vng3(X=dVs0%}V<6&u`vee+}~=ZjS%> z_!mQ9XS_&JCO^;mZgDI2Ry504I#*zqcG% zd+&3e=bY0$EzQ!Fc7iL8U9NkTod7g0?bwIK+@HAZpS&L2bm8osH5=V{D3weYHk& zYvftg#2zA@;)Rrsu@8THj=>K`SBL$j-LZWn;KpI3I2Gt`zwas=WR=#^JhyDx^Pa41G6075g)x;mUeyz`$<&SkdZ1=_x zSPV1G+akX+pn=7XWRFIMuk$-ff|t&bXEM^ncA z&~q?hY%Sx)TMf&y=f4Ffphy3B^>S#lWNJuMb3%%Hwj1Q6n`t%KM?OBcvzg)y{Dt!oxgv!{V)%LNF_LiNt- z>e4{zfF^#%UVLd3sfRk^YcDTJ!#IXKDlN<&w96`;Hw!aJ4-Hage$XWP>7-vq(l22v zf6W&fLaxb5G)T(Mj}gbaf~L%u^S=6t?dE28G|iFN*{@lKg?iU{?c<_Ot=xUO!*we0 zj0b}wJZd~*DC+Udc#mh)(LOKXmD%gfH!619KBn=p&sFWmFL}!q)%f5{+Uv$Id~z9s zP_-X9u^cESj3E;6dI*hoV+e@Q00S4@O%+Mw%x_hL3Z1_*ygcnMvNs(DQl6-$l;7}@ zvgj?J{{yXVAnyTJ-p+H{94`7JHK_6&#~QFT`XXrdi&thkM~ z3&btr6OTZ>L@mKMhm9S&2ht9cf52Gp|4Or73WxF6fi)Y0x`U*d%kq<$-QyJF{;BE7ET$Xtp$e)&YhEL%$3Pv>q-aoriL{7&lJqzOO#3;JEZ z>Gx|2VkYT#E9p0>NU#6?7iiRU^K1{jzt#H%4=7yo?Vn|1_iZDtbP3bGf91$$-D1?G z7$UAjmHIzNvqri!d{2pRttNT4m-Olm)1AwkZvq$O=dSIa$V)#q16N_d7dx+)TaB-v%~m>V zzNMX_@$?r@ykff7@^o#qf6aE;&ff9tuSi>P`yoBrjg038O^82vJFm_w((`D>(k3`^KQOqXBWE@;ks3C%T_pAp(L`Lz|Q%J zbhB4{Wbb^UwC|n_e>V)FUOwl5e&@-gZT1t3{jv9c;wGxu<6g#uqc6=*caHnYo5WTe7eyC6fW(0M+dyu52!g4r`)zRX4hPMBva%}9 zII9^}0lP?dYub5RV-^efe>N5^s0$zl3E9R>IbWUV)-9{d;dijL`W)wTWQA#xVv<^MYOCn9Yw=ou!suyNF!|1T|X(f00Z5Y-di8ddOq2TYUqCdRlh2 zVi);{`tZeqK)8W8WZEU5Ez-LS+Ti@|F7V9kxbh4%n&?T>=W9$Ee}DCU?iTb~`nj!{ zySnsqEhgiiAAeoyypoN*j=t-BL}sA&m(2Nz8UD66g!JY6_~8$YbY76kXMc3;Pwf8e z$e76|e-8z#%g%Vw(JG{wjhG9(ae{n)rA)~&udfF1Jkz49SBRs=#eIS5(p*Kp${z3?Lw2X3ZmezNRD=|ojV ze@|jZa@TMJb&1*6dQqJAmQpvs8;xnRsnP8~D{~EAv1|Jj$I-5GipgK)eH@`lIM-u^ z9(iI>Ly4|t?3M+#w81mF*u*y$nZ77d^)eZ`qPz{cAagA|B1>HlC9TzP^o`#}TxJ&aW+Am(&f97AS?SA4`6grA=iVoJ|1Q_#WJ%r;f7E}-+6tbH-52}BM0SfK5sjH=Xpy=^XUbX= z4PWQY3~TAI!O>&IRPLALwj9k$Ez+6R)l*lSxv~&8woJqZB8MFQ$cCHV70mFG^hnK7z5f@qvR#~-tF2k=_La}0b5&9$J9(|( zY_|z=oqQ8;0|)WY*yz;?BE?034W6yB?@}z-g_iZwiUbbCJCCuGan^eUe@xaDcB%KS z`}^SOV>@`^$2ZLXv_rB_9`tuy^)Gcrz1`B+vh=^-gJzy~>dqKb>PHd7XqFjpS&-75 z-yq`pm_CS(9{Gzkn$LYI+Qkyhd@~?z(D5)KS!;7LTnhiP%$ox)E?nBj1gLJ~e7IrM z@Wb@`aNcckmtLq}FBwu^f0nPjq9K38M8xlU%5uPEecK}f+}9yy#wU;N>upq^mL#qq ztKE2a^YBiEhI@l0m41|#a+!)Z2ZO z345yfTpw7fZh-RH#cdMU&+u5t5clRKO9tihy2#F`J51;Jz*IlOf8#;59o`kUkEarI zFb1=QT_)>_OBqk4eoaBfQ@hCgRSVjttB;Ma>iI!rXD`SKd0695&IzK^(=HUO+ttmj zT&f9D87MXPor1i$3W;zvk1J6!p4}Hno$rqKtI3)Io#Io{sdpI<+*U_xo;P8rvBv6- zSnB)uImlrvq+Z%df4zjA=t@z9`ndKhTT%YD%k(^2dF4;7&nMn1Y3`M+NE`i*`^q}t zdZ!Xbb~dUJ8dfhBGEJvm9;14JTH?FPEHf}!BF@|(02~i9&nT>u&y|-3mP2urx*D3S zhO7zNyH(FeE+XTvubu8&p{kk{zYwGnxh}zSP(qR+Me0@9f4ne!{LJnr57p=RdfW69 zXO#0m>u=F5A#yLlZ0pfn92G#nXC9!!=3!falXg&qsL8)rRJ|(@heljpZfSVW$w_U z2UEeGCl!gN{B_42c6`b!&BGj>2`|iN?@SK17J9l#}x|xY(#|zBe~M){S=S zV|SBxtQ{&tCz;_#H6l3Fx#Q_#xXmY?mG3HldfCP?m2r;6;HyCz*d@s7URk&2t7`%- ze}2pBek|{LsXTkfG=A#WL^^)UB?;4bZkd$^;|sl|C3@|M$6ccPr{%)0a#RT0W_qgy zm16mpp5gkoK-reOm=bDnvZ`h&-q$m|OAQ-D{|(;3;4tvGM&L?hee9c${5k|K`RFr_ z9-lvUo2-+Sd@k|kntiSOHP==-j7*~pN|di{6a(ze}6C0 zE?J510}Tmv(064k{Astxht^KEt5(_FgXJ_3%&}Sp`MLbsAs-{%{dQ2jO1gzY1DEK? z?3P8vZ4_g#uLDN;;7cH#$vBtW*R{ew)ahi&FCF=zQ(zHexq>yM20FijE4V>?f^S@z zq$yh85nUml`WvNV_iNiBqDuK=e-6GSU0YUd^F7F6IR>y6+#e$_& z3{SvkXGrD^&GRHYtC)bSe|L!zVxq_ydT!jNy5r759IhR!RR`-bFZ7nVNe;WWedP=$ zVC-N|Kx43#{HSwPmaa>FJbm(rzibw(kFiN!_>sk%qmO1mc(OcSM9H2LgCM~cx^hBg zoh^zDFYu6hpbp%#cL;Meq$f`*&I?;9ibeYUX6~Sqb^UbH^Iu;de?x9M$P9h6dglv1 zvF<=Mq~7?{(ntRwS9`zEjon{+tTN*o%NopdgJ0?bag}1m2*mD!6e@Oy%{^ezDle-S z1oMZ%Q_fI#bznbbZMImj+ZZEeYmk`;Xca+~=-7SWoEHIRSr9((a@0KV%0<@$8M!IB zL^+AE01Vo5K*1=ae}vQf^PP&J(MGJd7ev&{6Bz^kRj-j}?>S*9|CqEF-nJ|lNhBKT zC&vidUF&J=;&UF}ecwl6yRpD{IqXKZuN<$6=C(h&W32V5H^lpz{_O0 zl`uQ7L)E}QEFGurI)DOJla()Ko+s*7XJf-E(<>Qq&b0e;&j{6WuvdZHPht)x%RvF_ z42^|!7&b49RdQV8KWfW=>VCdt{z=*|?|lNjJ@}^8_7gYj$NKTd8Z4kPaotZ^5xq;+ekgUVm6X`7~Nd<-XG2{++G1xsFdPtoWs8dtTDt`+3f=iA*ivo(*fm1Afx{iKn-j z^!3kLP-EhglQx=h9mr-Ka{|JQ&}nZVHH)-Y)j|blUE?9)bVvM@1nKNxY3@RYOKS0% zV~fXOe-*-%4Xs7QCEqNiJQ_nDfx+M+`Nl@G1j#z6m)s-wwqrm1AOE5a{*k33GxVSM z@QwWq9a=<@4V7yj2eH-s6X~5 zNuQzT^Uv?UYG8l)vSBY9R+P)KlaKCx?;AN=+$hR&0!T0o3l_lkP8jEUkTc5&7=d8! zP}JBUNF9O7oFlz>%5f?8Olo=lrK#Klo?rN7P~_4s*TN>4jJr9^-18D>&P}1*NZ>Jqs#t$9z6f|peb>-f#UQG=)z!yfCr(b@+X?nSVJPF~ z8noUXX-)piPLO`(`H%Yjm-p6{Km5CrvA<8ge)QYUmV4VIZVs^ZS<6~-fq*c?qOtBX zycCO=YHS{aI%I)+Fd@@SQ4uPrXH}Mof0(W&0h9~Dui&$lfytgl>Nf&XkW*DzW%aNz z*KxqN%a#wUcGkw)n$nI0ILIbT(bq%Y2VI2jjJkkla$YO>=mcry~8s#(mQ# z6(`xt{$RfU^pA!Bzd zNYZ5#)hF#(aa&8bL6Bx<;wfIBe_j$zk4+Xitb^3V%1|TK%hO1#4YQ5@+ARZGXI9vZ z3}1b1BQo#fTUbFyj?d6UK>GNW((h{}Z9lF)M*N|n-q+l9z$_4nhoj8oY704Q4PJR> zLXWzV9xXnJX#V#5955WPUAdpRuOrbuajOqb{&}D40;-w;cQ3$|QY)CNe`{`}2OJfm z(NH8xt>qJ4)Q)+gxn2_PNx4VP?|8^nfYIBLfc}tcKfdyNpUPV{?15+JU-ta(_z1cR z*Cx|4XKmWus-HN=A+i#Fg~NGr0Cwoc6fq&sgTYI_&BSgm6o&G7+N+i z+?%B}r5@G7ebp)*vK1**e><$*S6`nu7!d)wVUuOu@%K!I=l{*OFD+wGtGc( zErNzxk_Bl?+ZD{0m^61Y$Or}(pL`V3cDC`7svMk^;vx1)!O4Uk>xXx$cL>~fd`74; zK68VnN1Ec5k36Gu zznl_cq`2qBD?hSei6e|^^v$U*D4&UVTv&s{%K z+KNN9bC0w6vXuMIVJ-dJg|MG8?ghw=KlK0c6@L8mPYm&uzTSGqE%eYeubMCsSO%n* z43#tA5gF4*Swi$mU$bbVb?l;tmLN<&e1}A*?T*Li;z+0Y5k(VMV;6TFyS4SoCVSkk z^RBn^z{1kbe*@gp+MnYvSB+)tU!vkLr6VRB z@S_c0GF{_EUk|h#oPbklx4-2>?_0BpSrmMv*jX^Vm_JmiK%qxA3X zIr3PZqHfFkQ(GYgjAdN#{YT$FQJE8fOylC$$*uht>Z`r0D(m>5;sAzSQWcGA>_ksLh<<*Y_nAxq*feEmo^nLlpnikx_G zMNUE5I^3Yek_k&Cs%X|mjlOE)i@$p4B~8xx_Nl+>6>s;N{vEBlmM;uarTexR z8cVTu^J8kP#m_0X{b@4Gz>JT>*>bszKoiUQe{YYvT@I?jb4EF*VJf0Xw&m?J=q+|1B{$H4_h0WC!v4tHo&(7C68M(~=!RC;`d zf3R1er#O}8hO`72ci3RSu`T1sMLC#qJCmCJ#DODJgCRTsq-YBX{}O<>I|XR8CBPP5 z3M|0h0pd7+4o>izfyr0`D8erRTTloX+}Z#%a(*iKTY1icBuX@w=e%$NF*kG|9L)rH zuqNPh-2kMbFS$azf)L0GKt;x3FqZf;e}JT55IhiI0-pil<^>2vb4mRB3Kqi90cPki z7*r4`U~no!19Ht?AW~^(=m52R-yPD!;EQSUEEKt3cknWBWFCxEXeRSukpd>yEjgaK zfLGri(-(jgG-r~@WWLQg4xTeeINJ=q!ofFZhtIi4|MZ7A07WNmFzC14+BV$!e{ih} zbuIVt_mNtc5&X|jN)ns40Mmu?`$rv}{Des|=Bmgvx}2$?*LcDRlH6YoRe8WQnh0n8 zkqGElXKy(X!CQX9UtwEk9D{R?~V7Wc72_lV60kfg6QU_crf3FoUUpqh| zv*>_R%ti<|SU;NB5Kwtq!_^ofno$QZ>pa}#E+UE?!$N?L(sg|5q}?x{bGASn2Q+&M zF&pxd25#Pehq{n;sMc%!XlAHqAqHr0>o#D54V5}^^VYybs`0}xE*vpjF0)ePk!%wzxjJ{TD) z0aVK0(<#@%u+~Z9=gAh3Jv^@I6d=;`qa63zfkfgm2}S}1g8Km$e+b9<8e@SJk0lP6 zRIvrd9yU7C_mSd}K!teY6x*7XlKbr&G}Fg75}% zjnbMIH$e832oxj&;kBO_h#4b2NMc?lfxe~=f@oL>2%0V3B1nQ?Yj(qc=HlXtcva7QN%fZmkQ>(o40SwXt_x&~m@g&&@ zNIdR4?|I^)>o8M+DKWMSqmwe|Ltl>L{FN6pEI1_*Z-Cq+p4k+Lm4Ms_U8Vu5r~~}H zX0UBEB=O6QDS{-f^8U<4e-}l*IU-koie?Px)bP~`-Wg7WJ&fVF< zqUV3?;YP^%1W%XaFgiC+f;xA$uyh=Pp-RNs(227J=Jf9e-oRW7Zjxp=Z(vrk<4F+W z**zU%EC_zn4+#Ws5GvL;Kxv0n1gI{pr5M|(gbh4QyOAJ8>%@A|BEu(15C|=a z$~_(l(zQ+$f9Fm#{IvN^F5AiI-LB)V1!QS)T(l&&v2lp81MJvyJN*y3pWZOl7Z8|ap!F5ijfYRXiy`*2crp>z#Y$fmClPxTn zvX}EWQwQ*0X-B?mBKeMhL3zKX4uVua_H>v!GTG#oe{yZv6kvIy2$=q+UlcVU+p9QA z90;gFxxa;lB%DB$ z)B%>BBu*E?Iw2?4c}elNfEC@+Kwmps;0|D+b&nRn(qp|4r0_5$iO>p(52fdORv<2M zbN6`)416FKE>5`Bf!`Y1+>FkWedUfrfa2!fe_+})jBq(W+I1}yAm>*(4$7+tr3@oqz=H4W2dBz``(q_qr)T+FSPm zN*#FE1-UmGG!35J8a$KotL^1i2mhYVu$M2e+v{>lGEN;>u+c*DWI-Lt%Y|SDTK8); ze}Xa%`L9T)_Pk1 z!0Y$KJcmG~bG=Ma@R&3;|&K4%U3`OaYe`1yUQvk`kP{dYIUrefGQeLOhmXdmuDt5O3 zf^?tBb^Vt5M8CnR*P&SI#Q6QpmbgG{ffe_*PU{ElfG=q+-#7j1GZA;Htn@oi+7<>? z>{bJW8@OwBheaxF45?S+;)O8i6g^%Dr@C=G;?nz0dt%1|hKM~dF76MnEA$dTKw$e_x;A6pvod!wn1q}2vxCA)!U zZ2?=+d#xHkQG!*z#ID2{{UP-$TZ6*Jj&z-{M zRO{>oc6&Ly?EZ1wtb@mA?Rn||PmRsr;_x>OB9L<5sWy_%jRx(sM2Bs3e>|pCYuC<= z2=Lj>*&_5;IJ%AWzrf*t*PqlAzSPIjM(B!{M){p3G3QIYdNd&*UCLMDHjP%_{sN2c z!Czrn(`e1DD1a~D{33DlALk=!&AEY)GT#5J{hR;N&${pO21Ln<51nkmVO>*7nc@_# z`uqK9)393FBY*VqzsJM=fArt*isX+D+r>%R;l7p{tZX3G(xkT`2^*1Zf3HjX@$dO3 z?P+t}>z5^VRih)ElC<=vvTrFz_4V)hWlh82+wQ(w7f2-W6-XOSYi=~?X;C1lvtPx# zU5>r`7HJf+A)B1v=Ck=fA2-pXw}u(BCnU5 zRaEwJx~|JKEPjnIEINUu{Xi5+k4wjqA&FF8v;I2juYJdnr7rz-&|klQ58v>aypG=R z{dN3?@2`_Le1E-i92qx2ntXSHyFNd`y5`>KRnrJr=ITngjpMjT+OIuaC*c6S;Y8EO zy40wL+x2ju_i(GCe|rHVAGlf5$a9sY4QGJ7M(=CVG@N{Xr}FyqyW7JDaxDzj!@sYi z9{zou_VDlPOpXJ9^n6_R^J0j|aclxP4gkN0tL41V2k!Qszuv=b-}6UrIORS6sE2#J z=l_9|c9|w_f5;6X?YAX<2qvF3iCp`cJw-^uXGPDW{WA@re-i#B?cv|>Oxk?E;CI0X zKKung>iZ9x-?GE(X?t!@5y)ruJzXoeh7buqdBZ;hDY zm(Ej!i)#yz;|KTpoG9+({SiMn`njL&e+$8Ao<8K6g@#WWng7)F^Z^_S zz4*ZTYhy~zkmi2k)bhwhgb1eT(0@M%h$QiGoy4b?#yQf8s|trNy@9}M7zN*P^);m6 z6ZUVzb`hWtfIS#|E4UVBGU&zwN7icq;OF4$4mW~^&)H?rDOmqNV}`nS9Fp}%tJgpA z$^Kr(e~)qT`<{Zv@$C1#3jx>c-}ek`PNLuU5im}^e&476)UMzSH~x5^3LY%4@_eMN zJW|@MAmiu)Mg|)|ij4f*fJ(r9zEhrDET5dnIv|&W0F6Lj=}H)^8G3#<=Hzp6a?`zQ|wr+}>Y zJv`q1!%UvDy%T6G$Fr4jb(6{WU*&r2W!}h`$#I=QQ^98cKhVwJjBC^5kw`q|e}z|n z(aDm-Ma~m*G?sYZ$vlJP2mZ#-d;R)#f2?}E@%K9J`f;hU-@ELW0&?X0Vu@Fs!%84S z(nZS9P2y)K`@yO_`puSyg>L{|Wd9WYpx-wiJ|#WuK#r%U@1y*EBl#7}q?W{=`{vX4 z`1*0}dOl_E@xJM*{){UGBJ)&oyfgWs(BlV>|M1@MFa5shB<}G*ArrD)!b`sDf9bJ( z&qwkF|2N~4Cy5Z)_3Kc{_8bf<|L^Cull}Je^M>okMTq>m$@@8gZ-DwuFD8>kqTjO4 z$`Mk2xo>(h`}w})c;4d_;K+3{DXaxN<-C1)T)n~H{ATv@;3@mbq}(&99KY!MmvsK- zi{?){aRgdQz7PM%uMSlAC%^jle}4vi^11z2UZnvh_ubi&1vLOq%5zNs>tm2yE&-FI zk;wW117O`Rp^!@^^L#R&MdhZuqs(hr0&2-OwyXodLe^_N7d?xXo$)vj_Q^SEkuKd15$Ysi1nv5s_-Ia75e@l553zULh zLBi1%bO9@w4|Gzv3!(vI2r*&+%aE-91y-B8WO8xkNj|U}Zcj(ueStvZ__2wim#dM! z-49*i@?Y(*-|g&IyT^XDkAAmjAN-nwfq>=jFT>n#kNv&7?EjDd^Z)(t@~bfa*I|?G z|DVs*sW^83WpBd$>i>2(f5rK~^*=ZF?zsQ2vwZ&e{zdEyp5Om#swn@hxn=+Lk6)RQ zpPm{0d}n5-%nkQb=KzM&$aU?%ow8*BhRyyy-}*=9^#qWYf+qZwX^2oCE2F)|1It)WddOe->os#(FMHhwMrL%7gqN}vBjBqZ}-RwGk&B3&e&SiNDj8|;i z)@W6)-7h1)<6I=l#hj*Y*X^rzR@eGHSs$8hJ!7qQAO=&5Y*nyEyMLRew%?te$6%O0 zcf;pb2kT8S7!GdNf5sWi*bJvu^PIEbyKGO7K@voBqd0j>o$QPi**=czkj_s>`@SA& z`PE!r({vnV(`C}QljTFDcPY0vHcQF{wg5b3&?zuTn0yb%{Jew20hVPg( zayvayoAB}Fx?fX;Rnz4|bFNEA897tsitgjtlAjT)C}%b{e}<>?{1nHFm76`iT717& z`!9Kpwf{9*7Q#p8**S91yA&J_2Ypcr(dl>(ch2ZIw>7Ai%T#^2Nfe;# z@w^=l7yGaMe{rPG+CjQA1a%DD2B(s`p4Di`n?Ie^S8!rcFnI>^ri=6IjN!_R^xgF~ zxC{@Ic(@A9I$XaV8cO2|tive|#xF5tJX)4{>d%ciC71Yl(4SGVUVndo zH&3%;gS|Gt^K3Q1;-x>&rCpF>5s>b

    *6YRPF}U+#q`>VDvei0qF+Nd7RTUwaQV8f!)LWQ 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

    GSf{sxtQppM2eHIzv(R51*bz<*0A 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�y)c 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Π{X_j%|gun21YEUoR^H#^YtX48p? z)~~D(Z6ndfcVH`KdA_?vYwmNHC!@qI!Uhb%uj&_k7H6S>!Z!%VXwsr3hy>$=^FZCH zpnx7pI}?<$>}9(A1Nls?Ci@#H_AXs)E;l9;#%na!>(g5Nj^lJW zUS#8aY@)McIdk(Ue+x+OL}=irR;`4rlnNeimdjfzAsOnJCt71hE}*80ciEhpciL&D2J1d^qzXMD{mP>}Z~kYp530fr;Yp`D2IvQ2 zXXRICN!F@tBOcgZ!I1WCv@dZ-7CFNcuceX#;=to2{{#55mv9_cS94b3g?k3$r_#!9 zYx}i1LgfgORrJzc)Z4p->l!Fln~fSjd&ox$skhD-^4&9ktlP3ZoY&sr6<^LNGSbyr zws%t_tfI++F?n>{uR|3f>Nebn_T^`z%u7wXwCY_^SvchqdybBuF=jMkIxr&|VI8C6 zx5Iaxt1ilp6)$DTOI)C1EJNcSW|y<8yE|-^uWA$ zcc4aWqq`!1+!v|Lgd_Ni7WFV6e7sA%3E#4DGO>1U_hf!~lG7)S_)|Q)56|Gs9RdD2 zRMK$!kp#RYd&Edtr6UgVSaMa-sT?Psxl;8BEhWA=vLDknLBFeGYamC0eLTK&mlN+a zZlB$lL@E5~>8v@*Jq1O8am^!mPomY4*?i)DfoT_isHHnnsX8XDqzb|Q6KNI#G(~8g zW+PokCpo&fYa&w`TwEZjGpl4S3m0_tYvu?yz8))eo@1S~aSXDLZ{XpDV<%L5LtYV>?a zTHiGRlj3t-FSMRCXxRHM(2XVg(NZz8dT;1|vLJZq#+fSGZkM`uZdk8!I8n-L1<>$< z!|yA#(EX0VQcSLgF3H$Oa*jYS@%NNk1YfpXsuGo!O3EW{cB7EA! zho}tS6nA&yC5J42QlpqM@ga^Nm;Ic zH+D6rjM%1eq?Z@|90<%QzgvF7EHBQL-h<;M>LGAPMKutMh{dfh#*yn! z`RgB>u~@2JgDB>Y8j6gN$#B22gUeT~0=$g74Vb%^U8S=3@V2~uO(*Dh3c(*uiSrq3v> zNA9LkQnCu3qV*-hhe_7}s^4s!viTd#5YENbCabX^+-+SlsUETe16RTu5`(TW2yRge z@lz8S_Q}I~AO78M(6_;LN||7~kw?|Zo1tPq?x@o1#iPo~3e$BF9eg8l&t_Rem*jJE z%BG>1x+e0Noqr0&mB(@Rmd}pL9Zl33MuoyuTAvIY_3#kj)3l78PjI`sFZbND*cu@I z%?oJqn4Vt`$-Lp0o(2pox9bKBf-oU)L=8zj5JKmQ@ss*2DAJ5f@0M^Wl?7>5s$2lA zbC7DGmu)u;AOYpKuQv=nFd{_gD%TWJ(f#1dr)e>nZp^}mBKWl~nJU~B9+)kUbSi|& zm+of_C;{uYIA{z^Fn=3Uik)ir)r*xvhlB;CNx3rJI|zALC}5toB;aql_vEgt|Iqek zO{(i$l;B_KsHdu+A~0Y`=#F~Wl4V<-Kpp_|1_tB-Fknd8{`DO)kSEW*Uv*bSM?ai6 z$(XjZ$F2k;*>y*^imEX0>tG1`pnFsV1IgTq##8xOK} z*oWfoyUKSE?dPd)f1&6)8{Uhr*}lp)2X8*w?~3Bk+ehK)kRG0j)8lJ*mE8LJR=Hw6 zxFj|D-hYl-YXoU;#f!Mv4#IMDn;fg>BwkGp)mOQym&&qC+4peCijj`Lw(fpyxXPA0 zm(?lFH{z7hX?ktv<3VT~X{agHkWW=)uc&QY=Fh|T(S11HVtBKSrAH=K zTr9TNc}uJ1e*UO#1*?YIVAU_|FMt0G*2}MAWPcR)Iwktx&~Eo4lz*pGThHKe91X2L zSN5AhX!k5Hed7)lZo^2vXoK{KgJUt3^hA<0FS)k zAX$AUkF`0fcmAW$u1mUG^vC(5HU}{GB9Ez<=3hjEc zGJkCAp0`zks3~t*(c4Aw>3S-@m}w2JmujLgW53;4%0A0hIycrUyo@6_ZLZIBdG|2# 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 Qe@jObV?fm9Qx8?h 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

    yc9`Bf&b*;^ja> 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 z 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 { if (!viewingChat) return; setCurrNodeId(msg.id); diff --git a/tools/server/webui/src/components/useChatTextarea.ts b/tools/server/webui/src/components/useChatTextarea.ts index 42b1281946..a3223f4fd6 100644 --- a/tools/server/webui/src/components/useChatTextarea.ts +++ b/tools/server/webui/src/components/useChatTextarea.ts @@ -37,6 +37,7 @@ export interface ChatTextareaApi { setValue: (value: string) => void; focus: () => void; ref: React.RefObject; + refOnSubmit: React.MutableRefObject<(() => void) | null>; // Submit handler onInput: (event: React.FormEvent) => void; // Input handler } @@ -46,6 +47,7 @@ export interface ChatTextareaApi { export function useChatTextarea(initValue: string): ChatTextareaApi { const [savedInitValue, setSavedInitValue] = useState(initValue); const textareaRef = useRef(null); + const onSubmitRef = useRef<(() => void) | null>(null); // Effect to set initial value and height on mount or when initValue changes useEffect(() => { @@ -91,6 +93,7 @@ export function useChatTextarea(initValue: string): ChatTextareaApi { } }, ref: textareaRef, + refOnSubmit: onSubmitRef, onInput: handleInput, }; } diff --git a/tools/server/webui/src/utils/llama-vscode.ts b/tools/server/webui/src/utils/llama-vscode.ts index c45b0d3973..55ebdcffc4 100644 --- a/tools/server/webui/src/utils/llama-vscode.ts +++ b/tools/server/webui/src/utils/llama-vscode.ts @@ -33,6 +33,9 @@ export const useVSCodeContext = (textarea: ChatTextareaApi) => { }); } textarea.focus(); + setTimeout(() => { + textarea.refOnSubmit.current?.(); + }, 10); // wait for setExtraContext to finish } }; From 233461f8121455f957a47e6a22a77b3bc88277b0 Mon Sep 17 00:00:00 2001 From: oobabooga Date: Mon, 5 May 2025 17:12:19 -0300 Subject: [PATCH 106/126] =?UTF-8?q?sampling=20:=20Integrate=20Top-n=CF=83?= =?UTF-8?q?=20into=20main=20sampling=20chain=20(and=20add=20it=20to=20the?= =?UTF-8?q?=20server)=20(#13264)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * sampling: add Top-nσ sampler to `llama-server` and sampler ordering * revert: sampler ordering * revert: VS' crappy auto-formatting * revert: VS' crappy auto-formatting pt.2 * revert: my crappy eye sight... * sampling: add XTC to Top-nσ sampler chain * sampling: add Dyna. Temp. to Top-nσ sampler chain * sampling: actually remove Top-nσ from sampler(oops) * Integrate top_n_sigma into main sampler chain * Define COMMON_SAMPLER_TYPE_TOP_N_SIGMA * Formatting * Lint * Exit early in the sampler if nsigma < 0 --------- Co-authored-by: CasualAutopsy --- common/common.h | 2 + common/sampling.cpp | 90 +++++++++++++++++++++-------------------- src/llama-sampling.cpp | 4 ++ tools/server/server.cpp | 2 + 4 files changed, 54 insertions(+), 44 deletions(-) diff --git a/common/common.h b/common/common.h index 416939da9a..dfd6e20933 100644 --- a/common/common.h +++ b/common/common.h @@ -96,6 +96,7 @@ enum common_sampler_type { COMMON_SAMPLER_TYPE_XTC = 8, COMMON_SAMPLER_TYPE_INFILL = 9, COMMON_SAMPLER_TYPE_PENALTIES = 10, + COMMON_SAMPLER_TYPE_TOP_N_SIGMA = 11, }; // dimensionality reduction methods, used by cvector-generator @@ -161,6 +162,7 @@ struct common_params_sampling { std::vector samplers = { COMMON_SAMPLER_TYPE_PENALTIES, COMMON_SAMPLER_TYPE_DRY, + COMMON_SAMPLER_TYPE_TOP_N_SIGMA, COMMON_SAMPLER_TYPE_TOP_K, COMMON_SAMPLER_TYPE_TYPICAL_P, COMMON_SAMPLER_TYPE_TOP_P, diff --git a/common/sampling.cpp b/common/sampling.cpp index 1735b65018..bbaec5b80a 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -229,51 +229,48 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, co params.logit_bias.data())); if (params.mirostat == 0) { - if (params.top_n_sigma >= 0) { - llama_sampler_chain_add(result->chain, llama_sampler_init_top_k (params.top_k)); - llama_sampler_chain_add(result->chain, llama_sampler_init_temp (params.temp)); - llama_sampler_chain_add(result->chain, llama_sampler_init_top_n_sigma (params.top_n_sigma)); - } else { - for (const auto & cnstr : params.samplers) { - switch (cnstr) { - case COMMON_SAMPLER_TYPE_DRY: - { - std::vector c_breakers; - c_breakers.reserve(params.dry_sequence_breakers.size()); - for (const auto & str : params.dry_sequence_breakers) { - c_breakers.push_back(str.c_str()); - } - - llama_sampler_chain_add(result->chain, llama_sampler_init_dry (vocab, llama_model_n_ctx_train(model), params.dry_multiplier, params.dry_base, params.dry_allowed_length, params.dry_penalty_last_n, c_breakers.data(), c_breakers.size())); + for (const auto & cnstr : params.samplers) { + switch (cnstr) { + case COMMON_SAMPLER_TYPE_DRY: + { + std::vector c_breakers; + c_breakers.reserve(params.dry_sequence_breakers.size()); + for (const auto & str : params.dry_sequence_breakers) { + c_breakers.push_back(str.c_str()); } - break; - case COMMON_SAMPLER_TYPE_TOP_K: - llama_sampler_chain_add(result->chain, llama_sampler_init_top_k (params.top_k)); - break; - case COMMON_SAMPLER_TYPE_TOP_P: - llama_sampler_chain_add(result->chain, llama_sampler_init_top_p (params.top_p, params.min_keep)); - break; - case COMMON_SAMPLER_TYPE_MIN_P: - llama_sampler_chain_add(result->chain, llama_sampler_init_min_p (params.min_p, params.min_keep)); - break; - case COMMON_SAMPLER_TYPE_XTC: - llama_sampler_chain_add(result->chain, llama_sampler_init_xtc (params.xtc_probability, params.xtc_threshold, params.min_keep, params.seed)); - break; - case COMMON_SAMPLER_TYPE_TYPICAL_P: - llama_sampler_chain_add(result->chain, llama_sampler_init_typical (params.typ_p, params.min_keep)); - break; - case COMMON_SAMPLER_TYPE_TEMPERATURE: - llama_sampler_chain_add(result->chain, llama_sampler_init_temp_ext (params.temp, params.dynatemp_range, params.dynatemp_exponent)); - break; - case COMMON_SAMPLER_TYPE_INFILL: - llama_sampler_chain_add(result->chain, llama_sampler_init_infill (vocab)); - break; - case COMMON_SAMPLER_TYPE_PENALTIES: - llama_sampler_chain_add(result->chain, llama_sampler_init_penalties(params.penalty_last_n, params.penalty_repeat, params.penalty_freq, params.penalty_present)); - break; - default: - GGML_ASSERT(false && "unknown sampler type"); - } + + llama_sampler_chain_add(result->chain, llama_sampler_init_dry (vocab, llama_model_n_ctx_train(model), params.dry_multiplier, params.dry_base, params.dry_allowed_length, params.dry_penalty_last_n, c_breakers.data(), c_breakers.size())); + } + break; + case COMMON_SAMPLER_TYPE_TOP_K: + llama_sampler_chain_add(result->chain, llama_sampler_init_top_k (params.top_k)); + break; + case COMMON_SAMPLER_TYPE_TOP_P: + llama_sampler_chain_add(result->chain, llama_sampler_init_top_p (params.top_p, params.min_keep)); + break; + case COMMON_SAMPLER_TYPE_TOP_N_SIGMA: + llama_sampler_chain_add(result->chain, llama_sampler_init_top_n_sigma (params.top_n_sigma)); + break; + case COMMON_SAMPLER_TYPE_MIN_P: + llama_sampler_chain_add(result->chain, llama_sampler_init_min_p (params.min_p, params.min_keep)); + break; + case COMMON_SAMPLER_TYPE_XTC: + llama_sampler_chain_add(result->chain, llama_sampler_init_xtc (params.xtc_probability, params.xtc_threshold, params.min_keep, params.seed)); + break; + case COMMON_SAMPLER_TYPE_TYPICAL_P: + llama_sampler_chain_add(result->chain, llama_sampler_init_typical (params.typ_p, params.min_keep)); + break; + case COMMON_SAMPLER_TYPE_TEMPERATURE: + llama_sampler_chain_add(result->chain, llama_sampler_init_temp_ext (params.temp, params.dynatemp_range, params.dynatemp_exponent)); + break; + case COMMON_SAMPLER_TYPE_INFILL: + llama_sampler_chain_add(result->chain, llama_sampler_init_infill (vocab)); + break; + case COMMON_SAMPLER_TYPE_PENALTIES: + llama_sampler_chain_add(result->chain, llama_sampler_init_penalties (params.penalty_last_n, params.penalty_repeat, params.penalty_freq, params.penalty_present)); + break; + default: + GGML_ASSERT(false && "unknown sampler type"); } } llama_sampler_chain_add(result->chain, llama_sampler_init_dist(params.seed)); @@ -475,6 +472,7 @@ char common_sampler_type_to_chr(enum common_sampler_type cnstr) { case COMMON_SAMPLER_TYPE_TOP_K: return 'k'; case COMMON_SAMPLER_TYPE_TYPICAL_P: return 'y'; case COMMON_SAMPLER_TYPE_TOP_P: return 'p'; + case COMMON_SAMPLER_TYPE_TOP_N_SIGMA: return 's'; case COMMON_SAMPLER_TYPE_MIN_P: return 'm'; case COMMON_SAMPLER_TYPE_TEMPERATURE: return 't'; case COMMON_SAMPLER_TYPE_XTC: return 'x'; @@ -490,6 +488,7 @@ std::string common_sampler_type_to_str(enum common_sampler_type cnstr) { case COMMON_SAMPLER_TYPE_TOP_K: return "top_k"; case COMMON_SAMPLER_TYPE_TYPICAL_P: return "typ_p"; case COMMON_SAMPLER_TYPE_TOP_P: return "top_p"; + case COMMON_SAMPLER_TYPE_TOP_N_SIGMA: return "top_n_sigma"; case COMMON_SAMPLER_TYPE_MIN_P: return "min_p"; case COMMON_SAMPLER_TYPE_TEMPERATURE: return "temperature"; case COMMON_SAMPLER_TYPE_XTC: return "xtc"; @@ -504,6 +503,7 @@ std::vector common_sampler_types_from_names(const std::vect { "dry", COMMON_SAMPLER_TYPE_DRY }, { "top_k", COMMON_SAMPLER_TYPE_TOP_K }, { "top_p", COMMON_SAMPLER_TYPE_TOP_P }, + { "top_n_sigma", COMMON_SAMPLER_TYPE_TOP_N_SIGMA }, { "typ_p", COMMON_SAMPLER_TYPE_TYPICAL_P }, { "min_p", COMMON_SAMPLER_TYPE_MIN_P }, { "temperature", COMMON_SAMPLER_TYPE_TEMPERATURE }, @@ -517,6 +517,7 @@ std::vector common_sampler_types_from_names(const std::vect std::unordered_map sampler_alt_name_map { { "top-k", COMMON_SAMPLER_TYPE_TOP_K }, { "top-p", COMMON_SAMPLER_TYPE_TOP_P }, + { "top-n-sigma", COMMON_SAMPLER_TYPE_TOP_N_SIGMA }, { "nucleus", COMMON_SAMPLER_TYPE_TOP_P }, { "typical-p", COMMON_SAMPLER_TYPE_TYPICAL_P }, { "typical", COMMON_SAMPLER_TYPE_TYPICAL_P }, @@ -552,6 +553,7 @@ std::vector common_sampler_types_from_chars(const std::stri { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TOP_K), COMMON_SAMPLER_TYPE_TOP_K }, { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TYPICAL_P), COMMON_SAMPLER_TYPE_TYPICAL_P }, { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TOP_P), COMMON_SAMPLER_TYPE_TOP_P }, + { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TOP_N_SIGMA), COMMON_SAMPLER_TYPE_TOP_N_SIGMA }, { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_MIN_P), COMMON_SAMPLER_TYPE_MIN_P }, { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TEMPERATURE), COMMON_SAMPLER_TYPE_TEMPERATURE }, { common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_XTC), COMMON_SAMPLER_TYPE_XTC }, diff --git a/src/llama-sampling.cpp b/src/llama-sampling.cpp index c0a5f9340d..0c9c6a3102 100644 --- a/src/llama-sampling.cpp +++ b/src/llama-sampling.cpp @@ -1750,6 +1750,10 @@ static const char * llama_sampler_top_n_sigma_name(const struct llama_sampler * static void llama_sampler_top_n_sigma_apply(struct llama_sampler * smpl, llama_token_data_array * cur_p) { const auto * ctx = (llama_sampler_top_n_sigma *) smpl->ctx; + if (ctx->n < 0.0f) { + return; + } + // find max logit and calculate mean float max = cur_p->data[0].logit; float logits_sum = 0; diff --git a/tools/server/server.cpp b/tools/server/server.cpp index c580ec1232..e0e99eafcd 100644 --- a/tools/server/server.cpp +++ b/tools/server/server.cpp @@ -146,6 +146,7 @@ struct slot_params { {"top_k", sampling.top_k}, {"top_p", sampling.top_p}, {"min_p", sampling.min_p}, + {"top_n_sigma", sampling.top_n_sigma}, {"xtc_probability", sampling.xtc_probability}, {"xtc_threshold", sampling.xtc_threshold}, {"typical_p", sampling.typ_p}, @@ -248,6 +249,7 @@ struct server_task { params.sampling.top_k = json_value(data, "top_k", defaults.sampling.top_k); params.sampling.top_p = json_value(data, "top_p", defaults.sampling.top_p); params.sampling.min_p = json_value(data, "min_p", defaults.sampling.min_p); + params.sampling.top_n_sigma = json_value(data, "top_n_sigma", defaults.sampling.top_n_sigma); params.sampling.xtc_probability = json_value(data, "xtc_probability", defaults.sampling.xtc_probability); params.sampling.xtc_threshold = json_value(data, "xtc_threshold", defaults.sampling.xtc_threshold); params.sampling.typ_p = json_value(data, "typical_p", defaults.sampling.typ_p); From 907036502070ba608bdb2aaebf802092d4cfba07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Mon, 5 May 2025 22:32:13 +0200 Subject: [PATCH 107/126] CUDA: fix logic for clearing padding with -ngl 0 (#13320) --- ggml/include/ggml-backend.h | 4 ++-- ggml/src/ggml-backend.cpp | 4 ++-- ggml/src/ggml-cuda/ggml-cuda.cu | 10 ++++++++-- ggml/src/ggml-cuda/mmq.cu | 10 ++++++++++ ggml/src/ggml-cuda/mmvq.cu | 10 ++++++++++ ggml/src/ggml-cuda/quantize.cu | 1 + 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/ggml/include/ggml-backend.h b/ggml/include/ggml-backend.h index 64671495b3..ea2c1a402c 100644 --- a/ggml/include/ggml-backend.h +++ b/ggml/include/ggml-backend.h @@ -38,7 +38,7 @@ extern "C" { GGML_API ggml_backend_buffer_t ggml_backend_buft_alloc_buffer (ggml_backend_buffer_type_t buft, size_t size); GGML_API size_t ggml_backend_buft_get_alignment (ggml_backend_buffer_type_t buft); GGML_API size_t ggml_backend_buft_get_max_size (ggml_backend_buffer_type_t buft); - GGML_API size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buft, struct ggml_tensor * tensor); + GGML_API size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor); GGML_API bool ggml_backend_buft_is_host (ggml_backend_buffer_type_t buft); GGML_API ggml_backend_dev_t ggml_backend_buft_get_device (ggml_backend_buffer_type_t buft); @@ -59,7 +59,7 @@ extern "C" { GGML_API enum ggml_status ggml_backend_buffer_init_tensor (ggml_backend_buffer_t buffer, struct ggml_tensor * tensor); GGML_API size_t ggml_backend_buffer_get_alignment (ggml_backend_buffer_t buffer); GGML_API size_t ggml_backend_buffer_get_max_size (ggml_backend_buffer_t buffer); - GGML_API size_t ggml_backend_buffer_get_alloc_size(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor); + GGML_API size_t ggml_backend_buffer_get_alloc_size(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor); GGML_API void ggml_backend_buffer_clear (ggml_backend_buffer_t buffer, uint8_t value); GGML_API bool ggml_backend_buffer_is_host (ggml_backend_buffer_t buffer); GGML_API void ggml_backend_buffer_set_usage (ggml_backend_buffer_t buffer, enum ggml_backend_buffer_usage usage); diff --git a/ggml/src/ggml-backend.cpp b/ggml/src/ggml-backend.cpp index 273075f4e5..c36b5abfb7 100644 --- a/ggml/src/ggml-backend.cpp +++ b/ggml/src/ggml-backend.cpp @@ -56,7 +56,7 @@ size_t ggml_backend_buft_get_max_size(ggml_backend_buffer_type_t buft) { return SIZE_MAX; } -size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buft, struct ggml_tensor * tensor) { +size_t ggml_backend_buft_get_alloc_size(ggml_backend_buffer_type_t buft, const struct ggml_tensor * tensor) { // get_alloc_size is optional, defaults to ggml_nbytes if (buft->iface.get_alloc_size) { size_t size = buft->iface.get_alloc_size(buft, tensor); @@ -152,7 +152,7 @@ size_t ggml_backend_buffer_get_max_size(ggml_backend_buffer_t buffer) { return ggml_backend_buft_get_max_size(ggml_backend_buffer_get_type(buffer)); } -size_t ggml_backend_buffer_get_alloc_size(ggml_backend_buffer_t buffer, struct ggml_tensor * tensor) { +size_t ggml_backend_buffer_get_alloc_size(ggml_backend_buffer_t buffer, const struct ggml_tensor * tensor) { return ggml_backend_buft_get_alloc_size(ggml_backend_buffer_get_type(buffer), tensor); } diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 9fb2134f98..0d9ee0a26d 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -555,8 +555,8 @@ static enum ggml_status ggml_backend_cuda_buffer_init_tensor(ggml_backend_buffer if (ggml_is_quantized(tensor->type) && tensor->view_src == nullptr && ggml_backend_buffer_get_usage(buffer) != GGML_BACKEND_BUFFER_USAGE_COMPUTE) { // initialize padding to 0 to avoid possible NaN values - size_t original_size = ggml_nbytes(tensor); - size_t padded_size = ggml_backend_buft_get_alloc_size(buffer->buft, tensor); + const size_t original_size = ggml_nbytes(tensor); + const size_t padded_size = ggml_backend_buft_get_alloc_size(buffer->buft, tensor); if (padded_size > original_size) { ggml_cuda_set_device(ctx->device); @@ -679,6 +679,7 @@ static size_t ggml_backend_cuda_buffer_type_get_alloc_size(ggml_backend_buffer_t if (ggml_is_quantized(tensor->type)) { if (ne0 % MATRIX_ROW_PADDING != 0) { + GGML_ASSERT(tensor->nb[0] == ggml_element_size(tensor)); size += ggml_row_size(tensor->type, MATRIX_ROW_PADDING - ne0 % MATRIX_ROW_PADDING); } } @@ -800,6 +801,7 @@ static void * ggml_backend_cuda_split_buffer_get_base(ggml_backend_buffer_t buff static enum ggml_status ggml_backend_cuda_split_buffer_init_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor) { GGML_ASSERT(tensor->view_src == nullptr); // views of split tensors are not supported + GGML_ASSERT(ggml_is_contiguous(tensor) && "split buffers only supported for contiguous tensors"); ggml_backend_cuda_split_buffer_context * ctx = (ggml_backend_cuda_split_buffer_context *)buffer->context; ggml_backend_cuda_split_buffer_type_context * buft_ctx = (ggml_backend_cuda_split_buffer_type_context *)buffer->buft->context; @@ -851,6 +853,7 @@ static void ggml_backend_cuda_split_buffer_set_tensor(ggml_backend_buffer_t buff // split tensors must always be set in their entirety at once GGML_ASSERT(offset == 0); GGML_ASSERT(size == ggml_nbytes(tensor)); + GGML_ASSERT(ggml_is_contiguous(tensor) && "split buffers only supported for contiguous tensors"); ggml_backend_cuda_split_buffer_type_context * buft_ctx = (ggml_backend_cuda_split_buffer_type_context *)buffer->buft->context; @@ -889,6 +892,7 @@ static void ggml_backend_cuda_split_buffer_get_tensor(ggml_backend_buffer_t buff // split tensors must always be set in their entirety at once GGML_ASSERT(offset == 0); GGML_ASSERT(size == ggml_nbytes(tensor)); + GGML_ASSERT(ggml_is_contiguous(tensor) && "split buffers only supported for contiguous tensors"); ggml_backend_cuda_split_buffer_type_context * buft_ctx = (ggml_backend_cuda_split_buffer_type_context *)buffer->buft->context; @@ -970,6 +974,7 @@ static size_t ggml_backend_cuda_split_buffer_type_get_alignment(ggml_backend_buf static size_t ggml_backend_cuda_split_buffer_type_get_alloc_size(ggml_backend_buffer_type_t buft, const ggml_tensor * tensor) { ggml_backend_cuda_split_buffer_type_context * ctx = (ggml_backend_cuda_split_buffer_type_context *)buft->context; + GGML_ASSERT(ggml_is_contiguous(tensor) && "split buffers only supported for contiguous tensors"); size_t total_size = 0; @@ -2065,6 +2070,7 @@ static void ggml_cuda_mul_mat_id(ggml_backend_cuda_context & ctx, ggml_tensor * src0_slice.ne[2] = 1; src0_slice.nb[3] = src0_slice.nb[2]; src0_slice.data = (char *) src0->data + i02*nb02; + GGML_ASSERT(!ggml_cuda_should_use_mmq(src0->type, cc, ne11) || ne00 % MATRIX_ROW_PADDING == 0); ggml_tensor src1_slice; memset(&src1_slice, 0, sizeof(src1_slice)); diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index f397a7e038..4ccda88630 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -89,6 +89,16 @@ void ggml_cuda_mul_mat_q( const float * src1_d = (const float *) src1->data; float * dst_d = (float *) dst->data; + // If src0 is a temporary compute buffer, clear any potential padding. + if (ggml_backend_buffer_get_usage(src0->buffer) == GGML_BACKEND_BUFFER_USAGE_COMPUTE) { + GGML_ASSERT(ggml_is_contiguous(src0)); + const size_t size_data = ggml_nbytes(src0); + const size_t size_alloc = ggml_backend_buffer_get_alloc_size(src0->buffer, src0); + if (size_alloc > size_data) { + CUDA_CHECK(cudaMemsetAsync((char *) src0->data + size_data, 0, size_alloc - size_data, stream)); + } + } + const int64_t ne10_padded = GGML_PAD(ne10, MATRIX_ROW_PADDING); const int64_t s01 = src0->nb[1] / ts_src0; diff --git a/ggml/src/ggml-cuda/mmvq.cu b/ggml/src/ggml-cuda/mmvq.cu index 132c466fd1..4bb51d27e4 100644 --- a/ggml/src/ggml-cuda/mmvq.cu +++ b/ggml/src/ggml-cuda/mmvq.cu @@ -513,6 +513,16 @@ void ggml_cuda_mul_mat_vec_q( const int32_t * ids_d = ids ? (const int32_t *) ids->data : nullptr; float * dst_d = (float *) dst->data; + // If src0 is a temporary compute buffer, clear any potential padding. + if (ggml_backend_buffer_get_usage(src0->buffer) == GGML_BACKEND_BUFFER_USAGE_COMPUTE) { + GGML_ASSERT(ggml_is_contiguous(src0)); + const size_t size_data = ggml_nbytes(src0); + const size_t size_alloc = ggml_backend_buffer_get_alloc_size(src0->buffer, src0); + if (size_alloc > size_data) { + CUDA_CHECK(cudaMemsetAsync((char *) src0->data + size_data, 0, size_alloc - size_data, stream)); + } + } + const int64_t ne10_padded = GGML_PAD(ne10, MATRIX_ROW_PADDING); ggml_cuda_pool_alloc src1_q8_1(ctx.pool(), ne13*ne12 * ne11*ne10_padded * sizeof(block_q8_1)/QK8_1); { diff --git a/ggml/src/ggml-cuda/quantize.cu b/ggml/src/ggml-cuda/quantize.cu index 931a45ad34..cb93181455 100644 --- a/ggml/src/ggml-cuda/quantize.cu +++ b/ggml/src/ggml-cuda/quantize.cu @@ -163,6 +163,7 @@ void quantize_mmq_q8_1_cuda( const float * x, const int32_t * ids, void * vy, const ggml_type type_src0, const int64_t ne00, const int64_t s01, const int64_t s02, const int64_t s03, const int64_t ne0, const int64_t ne1, const int64_t ne2, const int64_t ne3, cudaStream_t stream) { + GGML_ASSERT(ne00 % 4 == 0); GGML_ASSERT(ne0 % (4*QK8_1) == 0); const int64_t block_num_x = (ne0 + 4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ - 1) / (4*CUDA_QUANTIZE_BLOCK_SIZE_MMQ); From a7366faa5bb2fff97b9fb43340d853709f52d8c9 Mon Sep 17 00:00:00 2001 From: compilade Date: Mon, 5 May 2025 22:27:31 -0400 Subject: [PATCH 108/126] gguf-py : avoid requiring pyside6 for other scripts (#13036) - gguf-py : remove gguf-py/gguf/scripts/__init__.py because it's not needed Implicit namespaces are supported since Python 3.3 (https://peps.python.org/pep-0420/), and the entrypoints in pyproject.toml can directly refer to the main functions. --- gguf-py/gguf/scripts/__init__.py | 7 ------- gguf-py/pyproject.toml | 12 ++++++------ pyproject.toml | 1 + 3 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 gguf-py/gguf/scripts/__init__.py diff --git a/gguf-py/gguf/scripts/__init__.py b/gguf-py/gguf/scripts/__init__.py deleted file mode 100644 index 72cc73e700..0000000000 --- a/gguf-py/gguf/scripts/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -# pyright: reportUnusedImport=false - -from .gguf_convert_endian import main as gguf_convert_endian_entrypoint -from .gguf_dump import main as gguf_dump_entrypoint -from .gguf_set_metadata import main as gguf_set_metadata_entrypoint -from .gguf_new_metadata import main as gguf_new_metadata_entrypoint -from .gguf_editor_gui import main as gguf_editor_gui_entrypoint diff --git a/gguf-py/pyproject.toml b/gguf-py/pyproject.toml index 0c82725677..bb9b86ace7 100644 --- a/gguf-py/pyproject.toml +++ b/gguf-py/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gguf" -version = "0.16.2" +version = "0.16.3" description = "Read and write ML models in GGUF for GGML" authors = ["GGML "] packages = [ @@ -36,8 +36,8 @@ requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] -gguf-convert-endian = "gguf.scripts:gguf_convert_endian_entrypoint" -gguf-dump = "gguf.scripts:gguf_dump_entrypoint" -gguf-set-metadata = "gguf.scripts:gguf_set_metadata_entrypoint" -gguf-new-metadata = "gguf.scripts:gguf_new_metadata_entrypoint" -gguf-editor-gui = "gguf.scripts:gguf_editor_gui_entrypoint" +gguf-convert-endian = "gguf.scripts.gguf_convert_endian:main" +gguf-dump = "gguf.scripts.gguf_dump:main" +gguf-set-metadata = "gguf.scripts.gguf_set_metadata:main" +gguf-new-metadata = "gguf.scripts.gguf_new_metadata:main" +gguf-editor-gui = "gguf.scripts.gguf_editor_gui:main" diff --git a/pyproject.toml b/pyproject.toml index ed62264ba6..3d71b055a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,5 +40,6 @@ build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] llama-convert-hf-to-gguf = "convert_hf_to_gguf:main" +llama-convert-lora-to-gguf = "convert_lora_to_gguf:main" llama-convert-llama-ggml-to-gguf = "convert_llama_ggml_to_gguf:main" llama-ggml-vk-generate-shaders = "ggml_vk_generate_shaders:main" From 15a28ec8c705b188ebe178170966d1dcc36fe151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 6 May 2025 08:36:46 +0200 Subject: [PATCH 109/126] CUDA: fix --split-mode row for MMQ (#13323) --- ggml/src/ggml-cuda/mmq.cu | 6 ++--- ggml/src/ggml-cuda/mmq.cuh | 54 +++++++++++++++++++------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index 4ccda88630..347d27d552 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -128,7 +128,7 @@ void ggml_cuda_mul_mat_q( const mmq_args args = { src0_d, src0->type, (const int *) src1_q8_1.ptr, nullptr, nullptr, dst_d, - ne00, ne01, ne1, s01, s1, + ne00, ne01, ne1, s01, ne11, s1, ne02, ne12, s02, s12, s2, ne03, ne13, s03, s13, s3, use_stream_k}; @@ -212,7 +212,7 @@ void ggml_cuda_mul_mat_q( // Note that ne02 is used instead of ne12 because the number of y channels determines the z dimension of the CUDA grid. const mmq_args args = { src0_d, src0->type, (const int *) src1_q8_1.ptr, ids_dst_dev, expert_bounds_dev, dst_d, - ne00, ne01, ne_get_rows, s01, s1, + ne00, ne01, ne_get_rows, s01, ne_get_rows, s1, ne02, ne02, s02, s12, s2, ne03, ne13, s03, s13, s3, use_stream_k}; @@ -251,7 +251,7 @@ void ggml_cuda_op_mul_mat_q( ggml_cuda_highest_compiled_arch(cc) >= GGML_CUDA_CC_VOLTA && src1_ncols == ne11; const mmq_args args = { src0_dd_i, src0->type, (const int *) src1_ddq_i, nullptr, nullptr, dst_dd_i, - ne00, row_diff, src1_ncols, stride01, nrows_dst, + ne00, row_diff, src1_ncols, stride01, ne11, nrows_dst, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, use_stream_k}; diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index e1096dce6d..b8143a7b23 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -2522,7 +2522,7 @@ template static __device__ __forceinline__ void mul_mat_q_process_tile( const char * __restrict__ x, const int offset_x, const int * __restrict__ y, const int * __restrict__ ids_dst, float * __restrict__ dst, float * __restrict__ tmp_fixup, - const int nrows_x, const int ncols_y, const int stride_row_x, const int stride_col_dst, + const int nrows_x, const int stride_row_x, const int ncols_y, const int stride_col_dst, const int tile_x_max_i, const int tile_y_max_j, const int kb0_start, const int kb0_stop) { constexpr int qk = ggml_cuda_type_traits::qk; @@ -2606,7 +2606,7 @@ template static __global__ void mul_mat_q( const char * __restrict__ x, const int * __restrict__ y, const int32_t * __restrict__ ids_dst, const int32_t * __restrict__ expert_bounds, float * __restrict__ dst, float * __restrict__ tmp_fixup, - const int ncols_x, const int nrows_x, const int ncols_y, const int stride_row_x, const int stride_col_dst, + const int ncols_x, const int nrows_x, const int ncols_dst, const int stride_row_x, const int ncols_y, const int stride_col_dst, const int channel_ratio, const int nchannels_y, const int stride_channel_x, const int stride_channel_y, const int stride_channel_dst, const int sample_ratio, const int nsamples_y, const int stride_sample_x, const int stride_sample_y, const int stride_sample_dst) { @@ -2619,8 +2619,8 @@ static __global__ void mul_mat_q( constexpr int qk = ggml_cuda_type_traits::qk; constexpr int mmq_y = get_mmq_y_device(); - const int ntx = (ncols_y + mmq_x - 1) / mmq_x; // Number of tiles x - const int nty = (nrows_x + mmq_y - 1) / mmq_y; // Number of tiles y + const int ntx = (ncols_dst + mmq_x - 1) / mmq_x; // Number of tiles x + const int nty = (nrows_x + mmq_y - 1) / mmq_y; // Number of tiles y // Initialize the ids for writing back data with just the index. // For regular matrix multiplications this is never changed. @@ -2648,8 +2648,8 @@ static __global__ void mul_mat_q( // Defaults for regular matrix multiplication: int col_low = 0; - int col_high = ncols_y; - int col_diff = ncols_y; + int col_high = ncols_dst; + int col_diff = ncols_dst; int offset_y = wt*stride_sample_y + zt*stride_channel_y; int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; @@ -2689,7 +2689,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = false; mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, 0, ncols_x/qk); return; } @@ -2720,8 +2720,8 @@ static __global__ void mul_mat_q( // Defaults for regular matrix multiplication: int col_low = 0; - int col_high = ncols_y; - int col_diff = ncols_y; + int col_high = ncols_dst; + int col_diff = ncols_dst; int offset_y = wt*stride_sample_y + zt*stride_channel_y; int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; @@ -2767,7 +2767,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = false; // All but (potentially) the last iterations write their data to dst rather than the fixup buffer. mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); kbc += blocks_per_ne00; @@ -2792,8 +2792,8 @@ static __global__ void mul_mat_q( // Defaults for regular matrix multiplication: int col_low = 0; - int col_high = ncols_y; - int col_diff = ncols_y; + int col_high = ncols_dst; + int col_diff = ncols_dst; int offset_y = wt*stride_sample_y + zt*stride_channel_y; int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst; @@ -2834,7 +2834,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = true; // Last index writes its data to fixup buffer to avoid data races with other blocks. mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, ncols_y, stride_row_x, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); } @@ -2842,7 +2842,7 @@ static __global__ void mul_mat_q( template static __global__ void mul_mat_q_stream_k_fixup( const int32_t * ids_dst, const int32_t * expert_bounds, float * __restrict__ dst, const float * __restrict__ tmp_last_tile, - const int ncols_x, const int nrows_x, const int ncols_y, const int stride_col_dst, + const int ncols_x, const int nrows_x, const int ncols_dst, const int stride_col_dst, const int nchannels_y, const int stride_channel_dst, const int nsamples_y, const int stride_sample_dst) { constexpr int mmq_y = get_mmq_y_device(); constexpr int qk = ggml_cuda_type_traits::qk; @@ -2851,8 +2851,8 @@ static __global__ void mul_mat_q_stream_k_fixup( float sum[mmq_x*mmq_y / (nwarps*WARP_SIZE)] = {0.0f}; - const int ntx = (ncols_y + mmq_x - 1) / mmq_x; - const int nty = (nrows_x + mmq_y - 1) / mmq_y; + const int ntx = (ncols_dst + mmq_x - 1) / mmq_x; + const int nty = (nrows_x + mmq_y - 1) / mmq_y; const int bidx0 = blockIdx.x; @@ -2925,8 +2925,8 @@ static __global__ void mul_mat_q_stream_k_fixup( const int offset_dst = wt*stride_sample_dst + zt*stride_channel_dst + jt*mmq_x*stride_col_dst + it*mmq_y; dst += offset_dst; - const int i_max = nrows_x - it*mmq_y - 1; - const int j_max = ncols_y - jt*mmq_x - 1; + const int i_max = nrows_x - it*mmq_y - 1; + const int j_max = ncols_dst - jt*mmq_x - 1; #pragma unroll for (int j0 = 0; j0 < mmq_x; j0 += nwarps) { @@ -2989,7 +2989,7 @@ static __global__ void mul_mat_q_stream_k_fixup( struct mmq_args { const char * x; ggml_type type_x; const int * y; const int32_t * ids_dst; const int32_t * expert_bounds; float * dst; - int64_t ncols_x; int64_t nrows_x; int64_t ncols_y; int64_t stride_row_x; int64_t nrows_dst; + int64_t ncols_x; int64_t nrows_x; int64_t ncols_dst; int64_t stride_row_x; int64_t ncols_y; int64_t nrows_dst; int64_t nchannels_x; int64_t nchannels_y; int64_t stride_channel_x; int64_t stride_channel_y; int64_t stride_channel_dst; int64_t nsamples_x; int64_t nsamples_y; int64_t stride_sample_x; int64_t stride_sample_y; int64_t stride_sample_dst; bool use_stream_k; @@ -3025,8 +3025,8 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a } #endif // !(defined(GGML_USE_HIP) && defined(__HIP_PLATFORM_AMD__)) && !defined(GGML_USE_MUSA) - const int nty = (args.nrows_x + mmq_y - 1) / mmq_y; - const int ntx = (args.ncols_y + mmq_x - 1) / mmq_x; + const int nty = (args.nrows_x + mmq_y - 1) / mmq_y; + const int ntx = (args.ncols_dst + mmq_x - 1) / mmq_x; const int ntzw = args.nchannels_y * args.nsamples_y; const dim3 block_nums_xy_tiling(nty, ntx, ntzw); @@ -3040,14 +3040,14 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a constexpr bool need_check = false; mul_mat_q<<>> (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, nullptr, - args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + args.ncols_x, args.nrows_x, args.ncols_dst, args.stride_row_x, args.ncols_y, args.nrows_dst, channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); } else { constexpr bool need_check = true; mul_mat_q<<>> (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, nullptr, - args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + args.ncols_x, args.nrows_x, args.ncols_dst, args.stride_row_x, args.ncols_y, args.nrows_dst, channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); } @@ -3068,7 +3068,7 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a mul_mat_q<<>> (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, - args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + args.ncols_x, args.nrows_x, args.ncols_dst, args.stride_row_x, args.ncols_y, args.nrows_dst, channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); @@ -3077,14 +3077,14 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a } mul_mat_q_stream_k_fixup<<>> - (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_y, + (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_dst, args.nrows_dst, args.nchannels_y, args.stride_channel_dst, args.nsamples_y, args.stride_sample_dst); } else { constexpr bool need_check = true; mul_mat_q<<>> (args.x, args.y, args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, - args.ncols_x, args.nrows_x, args.ncols_y, args.stride_row_x, args.nrows_dst, + args.ncols_x, args.nrows_x, args.ncols_dst, args.stride_row_x, args.ncols_y, args.nrows_dst, channel_ratio, args.nchannels_y, args.stride_channel_x, args.stride_channel_y, args.stride_channel_dst, sample_ratio, args.nsamples_y, args.stride_sample_x, args.stride_sample_y, args.stride_sample_dst); @@ -3093,7 +3093,7 @@ static void launch_mul_mat_q(ggml_backend_cuda_context & ctx, const mmq_args & a } mul_mat_q_stream_k_fixup<<>> - (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_y, + (args.ids_dst, args.expert_bounds, args.dst, tmp_fixup.ptr, args.ncols_x, args.nrows_x, args.ncols_dst, args.nrows_dst, args.nchannels_y, args.stride_channel_dst, args.nsamples_y, args.stride_sample_dst); } } From 764b85627b46f43d7ea801867cd1b6abef484574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Tue, 6 May 2025 11:12:06 +0200 Subject: [PATCH 110/126] convert : qwen2/3moe : set yarn metadata if present (#13331) * set yarn metadata if present * add comment about enabling YaRN Co-authored-by: Xuan-Son Nguyen --------- Co-authored-by: Xuan-Son Nguyen --- convert_hf_to_gguf.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index a47d7df6fd..de6d55cb08 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -2761,6 +2761,13 @@ class Qwen2MoeModel(TextModel): if (shared_expert_intermediate_size := self.hparams.get('shared_expert_intermediate_size')) is not None: self.gguf_writer.add_expert_shared_feed_forward_length(shared_expert_intermediate_size) logger.info(f"gguf: expert shared feed forward length = {shared_expert_intermediate_size}") + # YaRN is not enabled by default + # To enable it, please refer to this guide: https://huggingface.co/Qwen/Qwen3-30B-A3B#processing-long-texts + if self.hparams.get("rope_scaling") is not None and "factor" in self.hparams["rope_scaling"]: + if self.hparams["rope_scaling"].get("type") == "yarn": + self.gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.YARN) + self.gguf_writer.add_rope_scaling_factor(self.hparams["rope_scaling"]["factor"]) + self.gguf_writer.add_rope_scaling_orig_ctx_len(self.hparams["rope_scaling"]["original_max_position_embeddings"]) _experts: list[dict[str, Tensor]] | None = None From 2356fb1d53c86d838756211010bbabfafda7cb94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 6 May 2025 13:58:51 +0200 Subject: [PATCH 111/126] CUDA: fix bad asserts for partial offload (#13337) --- ggml/include/ggml.h | 4 ++++ ggml/src/ggml-cuda/fattn-common.cuh | 2 ++ ggml/src/ggml-cuda/ggml-cuda.cu | 11 +++++++---- ggml/src/ggml-cuda/mmq.cu | 3 ++- ggml/src/ggml-cuda/mmvq.cu | 3 ++- ggml/src/ggml.c | 4 ++++ 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 1b8603e78e..c518366d58 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -673,11 +673,15 @@ extern "C" { GGML_API bool ggml_is_3d (const struct ggml_tensor * tensor); GGML_API int ggml_n_dims (const struct ggml_tensor * tensor); // returns 1 for scalars + // returns whether the tensor elements can be iterated over with a flattened index (no gaps, no permutation) GGML_API bool ggml_is_contiguous (const struct ggml_tensor * tensor); GGML_API bool ggml_is_contiguous_0(const struct ggml_tensor * tensor); // same as ggml_is_contiguous() GGML_API bool ggml_is_contiguous_1(const struct ggml_tensor * tensor); // contiguous for dims >= 1 GGML_API bool ggml_is_contiguous_2(const struct ggml_tensor * tensor); // contiguous for dims >= 2 + // returns whether the tensor elements are allocated as one contiguous block of memory (no gaps, but permutation ok) + GGML_API bool ggml_is_contiguously_allocated(const struct ggml_tensor * tensor); + // true for tensor that is stored in memory as CxWxHxN and has been permuted to WxHxCxN GGML_API bool ggml_is_contiguous_channels(const struct ggml_tensor * tensor); diff --git a/ggml/src/ggml-cuda/fattn-common.cuh b/ggml/src/ggml-cuda/fattn-common.cuh index 56121705bd..c7dc728821 100644 --- a/ggml/src/ggml-cuda/fattn-common.cuh +++ b/ggml/src/ggml-cuda/fattn-common.cuh @@ -719,6 +719,7 @@ void launch_fattn( size_t nb23 = V->nb[3]; if (need_f16_K && K->type != GGML_TYPE_F16) { + GGML_ASSERT(ggml_is_contiguously_allocated(K)); K_f16.alloc(ggml_nelements(K)); to_fp16_cuda_t to_fp16 = ggml_get_to_fp16_cuda(K->type); to_fp16(K_data, K_f16.ptr, ggml_nelements(K), main_stream); @@ -733,6 +734,7 @@ void launch_fattn( } if (need_f16_V && V->type != GGML_TYPE_F16) { + GGML_ASSERT(ggml_is_contiguously_allocated(V)); V_f16.alloc(ggml_nelements(V)); to_fp16_cuda_t to_fp16 = ggml_get_to_fp16_cuda(V->type); to_fp16(V_data, V_f16.ptr, ggml_nelements(V), main_stream); diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu index 0d9ee0a26d..42302e4ecc 100644 --- a/ggml/src/ggml-cuda/ggml-cuda.cu +++ b/ggml/src/ggml-cuda/ggml-cuda.cu @@ -1536,6 +1536,8 @@ static void ggml_cuda_op_mul_mat( // If src0 is on a temporary compute buffer (partial offloading) there may be some padding that needs to be cleared: if (ne00 % MATRIX_ROW_PADDING != 0 && ggml_is_quantized(src0->type) && ggml_backend_buffer_get_usage(src0->buffer) == GGML_BACKEND_BUFFER_USAGE_COMPUTE && src0->view_src == nullptr) { + GGML_ASSERT(ggml_is_contiguously_allocated(src0)); + GGML_ASSERT(!src0->view_src); const size_t nbytes_data = ggml_row_size(src0->type, (dev[id].row_high - dev[id].row_low)*ne00); const size_t nbytes_padding = ggml_row_size(src0->type, MATRIX_ROW_PADDING - ne00 % MATRIX_ROW_PADDING); CUDA_CHECK(cudaMemsetAsync(dev[id].src0_dd + nbytes_data, 0, nbytes_padding, stream)); @@ -2067,10 +2069,11 @@ static void ggml_cuda_mul_mat_id(ggml_backend_cuda_context & ctx, ggml_tensor * } ggml_tensor src0_slice = *src0; - src0_slice.ne[2] = 1; - src0_slice.nb[3] = src0_slice.nb[2]; - src0_slice.data = (char *) src0->data + i02*nb02; - GGML_ASSERT(!ggml_cuda_should_use_mmq(src0->type, cc, ne11) || ne00 % MATRIX_ROW_PADDING == 0); + src0_slice.ne[2] = 1; + src0_slice.nb[3] = src0_slice.nb[2]; + src0_slice.op = GGML_OP_VIEW; + src0_slice.view_src = dst->src[0]; // non-const pointer to src0 + src0_slice.data = (char *) src0->data + i02*nb02; ggml_tensor src1_slice; memset(&src1_slice, 0, sizeof(src1_slice)); diff --git a/ggml/src/ggml-cuda/mmq.cu b/ggml/src/ggml-cuda/mmq.cu index 347d27d552..b4962e6a51 100644 --- a/ggml/src/ggml-cuda/mmq.cu +++ b/ggml/src/ggml-cuda/mmq.cu @@ -91,7 +91,8 @@ void ggml_cuda_mul_mat_q( // If src0 is a temporary compute buffer, clear any potential padding. if (ggml_backend_buffer_get_usage(src0->buffer) == GGML_BACKEND_BUFFER_USAGE_COMPUTE) { - GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(ggml_is_contiguously_allocated(src0)); + GGML_ASSERT(!src0->view_src); const size_t size_data = ggml_nbytes(src0); const size_t size_alloc = ggml_backend_buffer_get_alloc_size(src0->buffer, src0); if (size_alloc > size_data) { diff --git a/ggml/src/ggml-cuda/mmvq.cu b/ggml/src/ggml-cuda/mmvq.cu index 4bb51d27e4..3b313ea295 100644 --- a/ggml/src/ggml-cuda/mmvq.cu +++ b/ggml/src/ggml-cuda/mmvq.cu @@ -515,7 +515,8 @@ void ggml_cuda_mul_mat_vec_q( // If src0 is a temporary compute buffer, clear any potential padding. if (ggml_backend_buffer_get_usage(src0->buffer) == GGML_BACKEND_BUFFER_USAGE_COMPUTE) { - GGML_ASSERT(ggml_is_contiguous(src0)); + GGML_ASSERT(ggml_is_contiguously_allocated(src0)); + GGML_ASSERT(!src0->view_src); const size_t size_data = ggml_nbytes(src0); const size_t size_alloc = ggml_backend_buffer_get_alloc_size(src0->buffer, src0); if (size_alloc > size_data) { diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index 7654ae1779..ee4fe9f723 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -1299,6 +1299,10 @@ bool ggml_is_contiguous_2(const struct ggml_tensor * tensor) { return ggml_is_contiguous_n(tensor, 2); } +bool ggml_is_contiguously_allocated(const struct ggml_tensor * tensor) { + return ggml_nbytes(tensor) == ggml_nelements(tensor) * ggml_type_size(tensor->type)/ggml_blck_size(tensor->type); +} + bool ggml_is_permuted(const struct ggml_tensor * tensor) { static_assert(GGML_MAX_DIMS == 4, "GGML_MAX_DIMS is not 4 - update this function"); From 2f54e348ad2999c4e31b8777592247622b20420f Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Tue, 6 May 2025 14:25:40 +0200 Subject: [PATCH 112/126] llama : fix build_ffn without gate (#13336) * llama : fix build_ffn without gate * fix build on windows * Revert "fix build on windows" This reverts commit fc420d3c7eef3481d3d2f313fef2757cb33a7c56. --- src/llama-graph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index 0da4e7d2b0..0b004a8ba6 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -782,7 +782,7 @@ ggml_tensor * llm_graph_context::build_ffn( } break; } - if (type_gate == LLM_FFN_PAR) { + if (gate && type_gate == LLM_FFN_PAR) { cur = ggml_mul(ctx0, cur, tmp); cb(cur, "ffn_gate_par", il); } From 1e333d5bba18e99bc328bb87ac1ee6a4e6260e0e Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Tue, 6 May 2025 20:27:06 +0530 Subject: [PATCH 113/126] SYCL: Disable reorder optimize by default and stop setting tensor extras when optimize is disabled (#13254) * SYCL: Do not set tensor extras when reorder optimize is disabled * SYCL: Disable reorder optimize by default --- ggml/src/ggml-sycl/ggml-sycl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-sycl/ggml-sycl.cpp b/ggml/src/ggml-sycl/ggml-sycl.cpp index 72cdbbccaf..ea5d10f40e 100644 --- a/ggml/src/ggml-sycl/ggml-sycl.cpp +++ b/ggml/src/ggml-sycl/ggml-sycl.cpp @@ -193,7 +193,7 @@ static void ggml_check_sycl() try { if (!initialized) { g_ggml_sycl_debug = get_sycl_env("GGML_SYCL_DEBUG", 0); - g_ggml_sycl_disable_optimize= get_sycl_env("GGML_SYCL_DISABLE_OPT", 0); + g_ggml_sycl_disable_optimize= get_sycl_env("GGML_SYCL_DISABLE_OPT", 1); g_ggml_sycl_disable_graph = get_sycl_env("GGML_SYCL_DISABLE_GRAPH", 1); GGML_SYCL_DEBUG("[SYCL] call ggml_check_sycl\n"); GGML_LOG_INFO("Running with Environment Variables:\n"); @@ -338,7 +338,7 @@ ggml_backend_sycl_buffer_init_tensor(ggml_backend_buffer_t buffer, assert(tensor->view_src->buffer->buft == buffer->buft); return GGML_STATUS_SUCCESS; } - if (tensor->type == GGML_TYPE_Q4_0) { + if (tensor->type == GGML_TYPE_Q4_0 && !g_ggml_sycl_disable_optimize) { ggml_tensor_extra_gpu * extra = new ggml_tensor_extra_gpu{}; tensor->extra = extra; ctx->tensor_extras.push_back(extra); //used to release it when destroy ctx. From f4ed10b69cc38c54070a47f841827de5e8984cdf Mon Sep 17 00:00:00 2001 From: Diego Devesa Date: Tue, 6 May 2025 20:15:31 +0200 Subject: [PATCH 114/126] cmake : remove arm64 msvc presets (#13342) --- CMakePresets.json | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 13bdd7907a..e984470130 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -38,15 +38,6 @@ } }, - { - "name": "arm64-windows-msvc", "hidden": true, - "architecture": { "value": "arm64", "strategy": "external" }, - "toolset": { "value": "host=x64", "strategy": "external" }, - "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/cmake/arm64-windows-msvc.cmake" - } - }, - { "name": "arm64-windows-llvm", "hidden": true, "architecture": { "value": "arm64", "strategy": "external" }, @@ -73,10 +64,6 @@ { "name": "arm64-apple-clang-release", "inherits": [ "base", "arm64-apple-clang", "reldbg" ] }, { "name": "arm64-apple-clang+static-release", "inherits": [ "base", "arm64-apple-clang", "reldbg", "static" ] }, - { "name": "arm64-windows-msvc-debug", "inherits": [ "base", "arm64-windows-msvc", "debug" ] }, - { "name": "arm64-windows-msvc-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg" ] }, - { "name": "arm64-windows-msvc+static-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg", "static" ] }, - { "name": "x64-windows-llvm-debug", "inherits": [ "base", "x64-windows-llvm", "debug" ] }, { "name": "x64-windows-llvm-release", "inherits": [ "base", "x64-windows-llvm", "release" ] }, { "name": "x64-windows-llvm-reldbg", "inherits": [ "base", "x64-windows-llvm", "reldbg" ] }, From 91a86a6f354aa73a7aab7bc3d283be410fdc93a5 Mon Sep 17 00:00:00 2001 From: oobabooga Date: Tue, 6 May 2025 15:24:15 -0300 Subject: [PATCH 115/126] sampling : don't consider -infinity values in top_n_sigma (#13344) --- src/llama-sampling.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/llama-sampling.cpp b/src/llama-sampling.cpp index 0c9c6a3102..2869f60d20 100644 --- a/src/llama-sampling.cpp +++ b/src/llama-sampling.cpp @@ -1757,20 +1757,28 @@ static void llama_sampler_top_n_sigma_apply(struct llama_sampler * smpl, llama_t // find max logit and calculate mean float max = cur_p->data[0].logit; float logits_sum = 0; + size_t valid_count = 0; for (size_t i = 0; i < cur_p->size; ++i) { - if (cur_p->data[i].logit > max) { - max = cur_p->data[i].logit; + // Only count non-negative infinity values + if (cur_p->data[i].logit != -INFINITY) { + if (cur_p->data[i].logit > max) { + max = cur_p->data[i].logit; + } + logits_sum += cur_p->data[i].logit; + valid_count++; } - logits_sum += cur_p->data[i].logit; } - float mean = logits_sum/cur_p->size; + float mean = valid_count > 0 ? logits_sum/valid_count : 0; // calculate standard deviation float acc = 0; for (size_t i = 0; i < cur_p->size; ++i) { - acc += pow(cur_p->data[i].logit - mean, 2); + // Skip -infinity in std calculation + if (cur_p->data[i].logit != -INFINITY) { + acc += pow(cur_p->data[i].logit - mean, 2); + } } - float std = sqrt(acc/cur_p->size); + float std = valid_count > 0 ? sqrt(acc/valid_count) : 0; //apply mask for (size_t i = 0; i < cur_p->size; ++i) { From ffc727203af1061fdeb49efef30f76171722e403 Mon Sep 17 00:00:00 2001 From: DocShotgun <126566557+DocShotgun@users.noreply.github.com> Date: Tue, 6 May 2025 13:36:24 -0700 Subject: [PATCH 116/126] sampling : make top_n_sigma no-op at <=0 or a single candidate (#13345) --- src/llama-sampling.cpp | 2 +- tests/test-sampling.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llama-sampling.cpp b/src/llama-sampling.cpp index 2869f60d20..804b11e0a9 100644 --- a/src/llama-sampling.cpp +++ b/src/llama-sampling.cpp @@ -1750,7 +1750,7 @@ static const char * llama_sampler_top_n_sigma_name(const struct llama_sampler * static void llama_sampler_top_n_sigma_apply(struct llama_sampler * smpl, llama_token_data_array * cur_p) { const auto * ctx = (llama_sampler_top_n_sigma *) smpl->ctx; - if (ctx->n < 0.0f) { + if (ctx->n <= 0.0f || cur_p->size <= 1) { return; } diff --git a/tests/test-sampling.cpp b/tests/test-sampling.cpp index f1f87d454d..60ac62b385 100644 --- a/tests/test-sampling.cpp +++ b/tests/test-sampling.cpp @@ -360,7 +360,7 @@ int main(void) { test_dry({0.2f, 0.2f, 0.2f, 0.2f, 0.2f}, {0, 1, 2, 3, 4, 0, 1}, {0.2f, 0.2f, 0.2f, 0.2f, 0.2f}, 1.0f, 1.1f, 4, 7, {}); test_top_n_sigma({0.1f, 0.2f, 0.3f, 0.4f}, {0.571429f, 0.428571f, 0.0f, 0.0f}, 1.00f); - test_top_n_sigma({0.1f, 0.2f, 0.3f, 0.4f}, {1.0f, 0.0f, 0.0f, 0.0f}, 0.00f); + test_top_n_sigma({0.1f, 0.2f, 0.3f, 0.4f}, {0.4f, 0.3f, 0.2f, 0.1f}, 0.00f); // top_n_sigma == 0 now represents a no-op rather than greedy decoding as of PR#13345 test_top_n_sigma({0.1f, 0.2f, 0.3f, 0.4f}, {0.4f, 0.3f, 0.2f, 0.1f}, 3.00f); test_sampler_queue(10000, "k", 10000, 1.0f, 1.0f); From 32916a49072f01c43e20df374af5f8a1f70d6963 Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Tue, 6 May 2025 22:40:24 +0200 Subject: [PATCH 117/126] clip : refactor graph builder (#13321) * mtmd : refactor graph builder * fix qwen2vl * clean up siglip cgraph * pixtral migrated * move minicpmv to a dedicated build function * move max_feature_layer to build_llava * use build_attn for minicpm resampler * fix windows build * add comment for batch_size * also support tinygemma3 test model * qwen2vl does not use RMS norm * fix qwen2vl norm (2) --- convert_hf_to_gguf.py | 13 + tools/mtmd/clip.cpp | 2650 +++++++++++++++++++++-------------------- 2 files changed, 1354 insertions(+), 1309 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index de6d55cb08..a6aaf88346 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -3915,6 +3915,16 @@ class Gemma3VisionModel(VisionModel): # default values below are taken from HF tranformers code self.gguf_writer.add_vision_attention_layernorm_eps(hparams.get("layer_norm_eps", 1e-6)) self.gguf_writer.add_vision_use_gelu(True) + # calculate proj_scale_factor (used by tinygemma3 test model) + image_seq_length = self.preprocessor_config.get("image_seq_length", 256) + n_per_side = int(image_seq_length ** 0.5) + image_size = self.hparams["image_size"] + patch_size = self.hparams["patch_size"] + proj_scale_factor = (image_size // patch_size) // n_per_side + if proj_scale_factor > 0 and proj_scale_factor != 4: + # we only need to write this if it's not the default value + # in this case, we are converting a test model + self.gguf_writer.add_vision_projector_scale_factor(proj_scale_factor) def tensor_force_quant(self, name, new_name, bid, n_dims): del bid, new_name, n_dims # unused @@ -3928,6 +3938,9 @@ class Gemma3VisionModel(VisionModel): def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: del bid # unused + if "vision_model.head." in name: + return [] # skip redundant tensors for tinygemma3 + if name.startswith("multi_modal_projector.") or name.startswith("vision_tower.") \ or name.startswith("multimodal_projector.") or name.startswith("vision_model."): # process vision tensors diff --git a/tools/mtmd/clip.cpp b/tools/mtmd/clip.cpp index 1414f6ba4f..4432fb7193 100644 --- a/tools/mtmd/clip.cpp +++ b/tools/mtmd/clip.cpp @@ -29,9 +29,21 @@ #include #include #include +#include struct clip_logger_state g_logger_state = {GGML_LOG_LEVEL_CONT, clip_log_callback_default, NULL}; +enum ffn_op_type { + FFN_GELU, + FFN_SILU, + FFN_GELU_QUICK, +}; + +enum norm_type { + NORM_TYPE_NORMAL, + NORM_TYPE_RMS, +}; + //#define CLIP_DEBUG_FUNCTIONS #ifdef CLIP_DEBUG_FUNCTIONS @@ -162,6 +174,8 @@ struct clip_hparams { int32_t n_layer; int32_t proj_scale_factor = 0; // idefics3 + ffn_op_type ffn_op = FFN_GELU; + patch_merge_type mm_patch_merge_type = PATCH_MERGE_FLAT; float eps = 1e-6; @@ -177,136 +191,136 @@ struct clip_hparams { struct clip_layer { // attention - struct ggml_tensor * k_w = nullptr; - struct ggml_tensor * k_b = nullptr; - struct ggml_tensor * q_w = nullptr; - struct ggml_tensor * q_b = nullptr; - struct ggml_tensor * v_w = nullptr; - struct ggml_tensor * v_b = nullptr; + ggml_tensor * k_w = nullptr; + ggml_tensor * k_b = nullptr; + ggml_tensor * q_w = nullptr; + ggml_tensor * q_b = nullptr; + ggml_tensor * v_w = nullptr; + ggml_tensor * v_b = nullptr; - struct ggml_tensor * o_w = nullptr; - struct ggml_tensor * o_b = nullptr; + ggml_tensor * o_w = nullptr; + ggml_tensor * o_b = nullptr; // layernorm 1 - struct ggml_tensor * ln_1_w = nullptr; - struct ggml_tensor * ln_1_b = nullptr; + ggml_tensor * ln_1_w = nullptr; + ggml_tensor * ln_1_b = nullptr; - struct ggml_tensor * ff_up_w = nullptr; - struct ggml_tensor * ff_up_b = nullptr; - struct ggml_tensor * ff_gate_w = nullptr; - struct ggml_tensor * ff_gate_b = nullptr; - struct ggml_tensor * ff_down_w = nullptr; - struct ggml_tensor * ff_down_b = nullptr; + ggml_tensor * ff_up_w = nullptr; + ggml_tensor * ff_up_b = nullptr; + ggml_tensor * ff_gate_w = nullptr; + ggml_tensor * ff_gate_b = nullptr; + ggml_tensor * ff_down_w = nullptr; + ggml_tensor * ff_down_b = nullptr; // layernorm 2 - struct ggml_tensor * ln_2_w = nullptr; - struct ggml_tensor * ln_2_b = nullptr; + ggml_tensor * ln_2_w = nullptr; + ggml_tensor * ln_2_b = nullptr; }; struct clip_vision_model { struct clip_hparams hparams; // embeddings - struct ggml_tensor * class_embedding = nullptr; - struct ggml_tensor * patch_embeddings_0 = nullptr; - struct ggml_tensor * patch_embeddings_1 = nullptr; // second Conv2D kernel when we decouple Conv3D along temproal dimension (Qwen2VL) - struct ggml_tensor * patch_bias = nullptr; - struct ggml_tensor * position_embeddings = nullptr; + ggml_tensor * class_embedding = nullptr; + ggml_tensor * patch_embeddings_0 = nullptr; + ggml_tensor * patch_embeddings_1 = nullptr; // second Conv2D kernel when we decouple Conv3D along temproal dimension (Qwen2VL) + ggml_tensor * patch_bias = nullptr; + ggml_tensor * position_embeddings = nullptr; - struct ggml_tensor * pre_ln_w = nullptr; - struct ggml_tensor * pre_ln_b = nullptr; + ggml_tensor * pre_ln_w = nullptr; + ggml_tensor * pre_ln_b = nullptr; std::vector layers; - struct ggml_tensor * post_ln_w; - struct ggml_tensor * post_ln_b; + ggml_tensor * post_ln_w; + ggml_tensor * post_ln_b; - struct ggml_tensor * projection; + ggml_tensor * projection; // LLaVA projection - struct ggml_tensor * mm_input_norm_w = nullptr; - struct ggml_tensor * mm_0_w = nullptr; - struct ggml_tensor * mm_0_b = nullptr; - struct ggml_tensor * mm_2_w = nullptr; - struct ggml_tensor * mm_2_b = nullptr; + ggml_tensor * mm_input_norm_w = nullptr; + ggml_tensor * mm_0_w = nullptr; + ggml_tensor * mm_0_b = nullptr; + ggml_tensor * mm_2_w = nullptr; + ggml_tensor * mm_2_b = nullptr; - struct ggml_tensor * image_newline = nullptr; + ggml_tensor * image_newline = nullptr; // Yi type models with mlp+normalization projection - struct ggml_tensor * mm_1_w = nullptr; // Yi type models have 0, 1, 3, 4 - struct ggml_tensor * mm_1_b = nullptr; - struct ggml_tensor * mm_3_w = nullptr; - struct ggml_tensor * mm_3_b = nullptr; - struct ggml_tensor * mm_4_w = nullptr; - struct ggml_tensor * mm_4_b = nullptr; + ggml_tensor * mm_1_w = nullptr; // Yi type models have 0, 1, 3, 4 + ggml_tensor * mm_1_b = nullptr; + ggml_tensor * mm_3_w = nullptr; + ggml_tensor * mm_3_b = nullptr; + ggml_tensor * mm_4_w = nullptr; + ggml_tensor * mm_4_b = nullptr; // GLMV-Edge projection - struct ggml_tensor * mm_model_adapter_conv_w = nullptr; - struct ggml_tensor * mm_model_adapter_conv_b = nullptr; - struct ggml_tensor * mm_glm_tok_boi = nullptr; - struct ggml_tensor * mm_glm_tok_eoi = nullptr; + ggml_tensor * mm_model_adapter_conv_w = nullptr; + ggml_tensor * mm_model_adapter_conv_b = nullptr; + ggml_tensor * mm_glm_tok_boi = nullptr; + ggml_tensor * mm_glm_tok_eoi = nullptr; // MobileVLM projection - struct ggml_tensor * mm_model_mlp_1_w = nullptr; - struct ggml_tensor * mm_model_mlp_1_b = nullptr; - struct ggml_tensor * mm_model_mlp_3_w = nullptr; - struct ggml_tensor * mm_model_mlp_3_b = nullptr; - struct ggml_tensor * mm_model_block_1_block_0_0_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_0_1_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_0_1_b = nullptr; - struct ggml_tensor * mm_model_block_1_block_1_fc1_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_1_fc1_b = nullptr; - struct ggml_tensor * mm_model_block_1_block_1_fc2_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_1_fc2_b = nullptr; - struct ggml_tensor * mm_model_block_1_block_2_0_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_2_1_w = nullptr; - struct ggml_tensor * mm_model_block_1_block_2_1_b = nullptr; - struct ggml_tensor * mm_model_block_2_block_0_0_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_0_1_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_0_1_b = nullptr; - struct ggml_tensor * mm_model_block_2_block_1_fc1_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_1_fc1_b = nullptr; - struct ggml_tensor * mm_model_block_2_block_1_fc2_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_1_fc2_b = nullptr; - struct ggml_tensor * mm_model_block_2_block_2_0_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_2_1_w = nullptr; - struct ggml_tensor * mm_model_block_2_block_2_1_b = nullptr; + ggml_tensor * mm_model_mlp_1_w = nullptr; + ggml_tensor * mm_model_mlp_1_b = nullptr; + ggml_tensor * mm_model_mlp_3_w = nullptr; + ggml_tensor * mm_model_mlp_3_b = nullptr; + ggml_tensor * mm_model_block_1_block_0_0_w = nullptr; + ggml_tensor * mm_model_block_1_block_0_1_w = nullptr; + ggml_tensor * mm_model_block_1_block_0_1_b = nullptr; + ggml_tensor * mm_model_block_1_block_1_fc1_w = nullptr; + ggml_tensor * mm_model_block_1_block_1_fc1_b = nullptr; + ggml_tensor * mm_model_block_1_block_1_fc2_w = nullptr; + ggml_tensor * mm_model_block_1_block_1_fc2_b = nullptr; + ggml_tensor * mm_model_block_1_block_2_0_w = nullptr; + ggml_tensor * mm_model_block_1_block_2_1_w = nullptr; + ggml_tensor * mm_model_block_1_block_2_1_b = nullptr; + ggml_tensor * mm_model_block_2_block_0_0_w = nullptr; + ggml_tensor * mm_model_block_2_block_0_1_w = nullptr; + ggml_tensor * mm_model_block_2_block_0_1_b = nullptr; + ggml_tensor * mm_model_block_2_block_1_fc1_w = nullptr; + ggml_tensor * mm_model_block_2_block_1_fc1_b = nullptr; + ggml_tensor * mm_model_block_2_block_1_fc2_w = nullptr; + ggml_tensor * mm_model_block_2_block_1_fc2_b = nullptr; + ggml_tensor * mm_model_block_2_block_2_0_w = nullptr; + ggml_tensor * mm_model_block_2_block_2_1_w = nullptr; + ggml_tensor * mm_model_block_2_block_2_1_b = nullptr; // MobileVLM_V2 projection - struct ggml_tensor * mm_model_mlp_0_w = nullptr; - struct ggml_tensor * mm_model_mlp_0_b = nullptr; - struct ggml_tensor * mm_model_mlp_2_w = nullptr; - struct ggml_tensor * mm_model_mlp_2_b = nullptr; - struct ggml_tensor * mm_model_peg_0_w = nullptr; - struct ggml_tensor * mm_model_peg_0_b = nullptr; + ggml_tensor * mm_model_mlp_0_w = nullptr; + ggml_tensor * mm_model_mlp_0_b = nullptr; + ggml_tensor * mm_model_mlp_2_w = nullptr; + ggml_tensor * mm_model_mlp_2_b = nullptr; + ggml_tensor * mm_model_peg_0_w = nullptr; + ggml_tensor * mm_model_peg_0_b = nullptr; // MINICPMV projection - struct ggml_tensor * mm_model_pos_embed_k = nullptr; - struct ggml_tensor * mm_model_query = nullptr; - struct ggml_tensor * mm_model_proj = nullptr; - struct ggml_tensor * mm_model_kv_proj = nullptr; - struct ggml_tensor * mm_model_attn_q_w = nullptr; - struct ggml_tensor * mm_model_attn_q_b = nullptr; - struct ggml_tensor * mm_model_attn_k_w = nullptr; - struct ggml_tensor * mm_model_attn_k_b = nullptr; - struct ggml_tensor * mm_model_attn_v_w = nullptr; - struct ggml_tensor * mm_model_attn_v_b = nullptr; - struct ggml_tensor * mm_model_attn_o_w = nullptr; - struct ggml_tensor * mm_model_attn_o_b = nullptr; - struct ggml_tensor * mm_model_ln_q_w = nullptr; - struct ggml_tensor * mm_model_ln_q_b = nullptr; - struct ggml_tensor * mm_model_ln_kv_w = nullptr; - struct ggml_tensor * mm_model_ln_kv_b = nullptr; - struct ggml_tensor * mm_model_ln_post_w = nullptr; - struct ggml_tensor * mm_model_ln_post_b = nullptr; + ggml_tensor * mm_model_pos_embed_k = nullptr; + ggml_tensor * mm_model_query = nullptr; + ggml_tensor * mm_model_proj = nullptr; + ggml_tensor * mm_model_kv_proj = nullptr; + ggml_tensor * mm_model_attn_q_w = nullptr; + ggml_tensor * mm_model_attn_q_b = nullptr; + ggml_tensor * mm_model_attn_k_w = nullptr; + ggml_tensor * mm_model_attn_k_b = nullptr; + ggml_tensor * mm_model_attn_v_w = nullptr; + ggml_tensor * mm_model_attn_v_b = nullptr; + ggml_tensor * mm_model_attn_o_w = nullptr; + ggml_tensor * mm_model_attn_o_b = nullptr; + ggml_tensor * mm_model_ln_q_w = nullptr; + ggml_tensor * mm_model_ln_q_b = nullptr; + ggml_tensor * mm_model_ln_kv_w = nullptr; + ggml_tensor * mm_model_ln_kv_b = nullptr; + ggml_tensor * mm_model_ln_post_w = nullptr; + ggml_tensor * mm_model_ln_post_b = nullptr; // gemma3 - struct ggml_tensor * mm_input_proj_w = nullptr; - struct ggml_tensor * mm_soft_emb_norm_w = nullptr; + ggml_tensor * mm_input_proj_w = nullptr; + ggml_tensor * mm_soft_emb_norm_w = nullptr; // pixtral - struct ggml_tensor * token_embd_img_break = nullptr; - struct ggml_tensor * mm_patch_merger_w = nullptr; + ggml_tensor * token_embd_img_break = nullptr; + ggml_tensor * mm_patch_merger_w = nullptr; }; struct clip_ctx { @@ -316,11 +330,8 @@ struct clip_ctx { struct clip_vision_model vision_model; projector_type proj_type = PROJECTOR_TYPE_MLP; - int32_t max_feature_layer; // unused in newer models like gemma3 float image_mean[3]; float image_std[3]; - bool use_gelu = false; - bool use_silu = false; gguf_context_ptr ctx_gguf; ggml_context_ptr ctx_data; @@ -370,1199 +381,363 @@ struct clip_ctx { } }; -static ggml_cgraph * clip_image_build_graph_siglip(clip_ctx * ctx, const clip_image_f32 & img) { - const auto & model = ctx->vision_model; - const auto & hparams = model.hparams; +struct clip_graph { + clip_ctx * ctx; + const clip_vision_model & model; + const clip_hparams & hparams; - int image_size_width = img.nx; - int image_size_height = img.ny; + // we only support single image per batch + const clip_image_f32 & img; - const int patch_size = hparams.patch_size; - const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int n_embd = hparams.n_embd; - const int n_head = hparams.n_head; - const int d_head = n_embd / n_head; - const int n_layer = hparams.n_layer; - const float eps = hparams.eps; + const int patch_size; + const int n_patches_x; + const int n_patches_y; + const int n_patches; + const int n_embd; + const int n_head; + const int d_head; + const int n_layer; + const float eps; + const float kq_scale; - struct ggml_init_params params = { - /*.mem_size =*/ ctx->buf_compute_meta.size(), - /*.mem_buffer =*/ ctx->buf_compute_meta.data(), - /*.no_alloc =*/ true, - }; + ggml_context_ptr ctx0_ptr; + ggml_context * ctx0; + ggml_cgraph * gf; - ggml_context_ptr ctx0_ptr(ggml_init(params)); - auto ctx0 = ctx0_ptr.get(); + clip_graph(clip_ctx * ctx, const clip_image_f32 & img) : + ctx(ctx), + model(ctx->vision_model), + hparams(model.hparams), + img(img), + patch_size(hparams.patch_size), + n_patches_x(img.nx / patch_size), + n_patches_y(img.ny / patch_size), + n_patches(n_patches_x * n_patches_y), + n_embd(hparams.n_embd), + n_head(hparams.n_head), + d_head(n_embd / n_head), + n_layer(hparams.n_layer), + eps(hparams.eps), + kq_scale(1.0f / sqrtf((float)d_head)) { + struct ggml_init_params params = { + /*.mem_size =*/ ctx->buf_compute_meta.size(), + /*.mem_buffer =*/ ctx->buf_compute_meta.data(), + /*.no_alloc =*/ true, + }; + ctx0_ptr.reset(ggml_init(params)); + ctx0 = ctx0_ptr.get(); + gf = ggml_new_graph(ctx0); + } - struct ggml_cgraph * gf = ggml_new_graph(ctx0); + ggml_cgraph * build_siglip() { + ggml_tensor * inp = build_inp(); + ggml_tensor * cur = build_vit( + inp, n_patches, + NORM_TYPE_NORMAL, + hparams.ffn_op, + model.position_embeddings, + nullptr); - // input raw - struct ggml_tensor * inp_raw = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, image_size_width, image_size_height, 3); - ggml_set_name(inp_raw, "inp_raw"); - ggml_set_input(inp_raw); + if (ctx->proj_type == PROJECTOR_TYPE_GEMMA3) { + const int batch_size = 1; + GGML_ASSERT(n_patches_x == n_patches_y); + const int patches_per_image = n_patches_x; + const int kernel_size = hparams.proj_scale_factor; - struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_reshape_2d(ctx0, inp, num_patches, n_embd); - inp = ggml_cont(ctx0, ggml_transpose(ctx0, inp)); - inp = ggml_add(ctx0, inp, model.patch_bias); + cur = ggml_cont(ctx0, ggml_transpose(ctx0, cur)); + cur = ggml_reshape_4d(ctx0, cur, patches_per_image, patches_per_image, n_embd, batch_size); - // position embeddings - struct ggml_tensor * embeddings = ggml_add(ctx0, inp, model.position_embeddings); + // doing a pool2d to reduce the number of output tokens + cur = ggml_pool_2d(ctx0, cur, GGML_OP_POOL_AVG, kernel_size, kernel_size, kernel_size, kernel_size, 0, 0); + cur = ggml_reshape_3d(ctx0, cur, cur->ne[0] * cur->ne[0], n_embd, batch_size); + cur = ggml_cont(ctx0, ggml_transpose(ctx0, cur)); - // loop over layers - for (int il = 0; il < n_layer; il++) { - struct ggml_tensor * cur = embeddings; // embeddings = residual, cur = hidden_states + // apply norm before projection + cur = ggml_rms_norm(ctx0, cur, eps); + cur = ggml_mul(ctx0, cur, model.mm_soft_emb_norm_w); - // layernorm1 - { - cur = ggml_norm(ctx0, cur, eps); - cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_1_w), model.layers[il].ln_1_b); + // apply projection + cur = ggml_mul_mat(ctx0, + ggml_cont(ctx0, ggml_transpose(ctx0, model.mm_input_proj_w)), + cur); + + } else if (ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { + // https://github.com/huggingface/transformers/blob/0a950e0bbe1ed58d5401a6b547af19f15f0c195e/src/transformers/models/idefics3/modeling_idefics3.py#L578 + + const int scale_factor = model.hparams.proj_scale_factor; + const int n_embd = cur->ne[0]; + const int seq = cur->ne[1]; + const int bsz = 1; // batch size, always 1 for now since we don't support batching + const int height = std::sqrt(seq); + const int width = std::sqrt(seq); + GGML_ASSERT(scale_factor != 0); + cur = ggml_reshape_4d(ctx0, cur, n_embd * scale_factor, width / scale_factor, height, bsz); + cur = ggml_permute(ctx0, cur, 0, 2, 1, 3); + cur = ggml_reshape_4d(ctx0, ggml_cont(ctx0, cur), + n_embd * scale_factor * scale_factor, + height / scale_factor, + width / scale_factor, + bsz); + cur = ggml_permute(ctx0, cur, 0, 2, 1, 3); + cur = ggml_reshape_3d(ctx0, ggml_cont(ctx0, cur), + n_embd * scale_factor * scale_factor, + seq / (scale_factor * scale_factor), + bsz); + + cur = ggml_mul_mat(ctx0, model.projection, cur); + } else { + GGML_ABORT("SigLIP: Unsupported projector type"); } - // self-attention - { + // build the graph + ggml_build_forward_expand(gf, cur); - struct ggml_tensor * Q = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].q_w, cur), model.layers[il].q_b); + return gf; + } - Q = ggml_reshape_3d(ctx0, Q, d_head, n_head, num_patches); - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); + ggml_cgraph * build_pixtral() { + const int n_merge = hparams.spatial_merge_size; - struct ggml_tensor * K = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].k_w, cur), model.layers[il].k_b); + // 2D input positions + ggml_tensor * pos_h = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_patches); + ggml_set_name(pos_h, "pos_h"); + ggml_set_input(pos_h); - K = ggml_reshape_3d(ctx0, K, d_head, n_head, num_patches); - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); + ggml_tensor * pos_w = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_patches); + ggml_set_name(pos_w, "pos_w"); + ggml_set_input(pos_w); - struct ggml_tensor * V = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].v_w, cur), model.layers[il].v_b); + auto add_pos = [&](ggml_tensor * cur, const clip_layer &) { + return build_rope_2d(ctx0, cur, pos_h, pos_w, hparams.rope_theta); + }; - V = ggml_reshape_3d(ctx0, V, d_head, n_head, num_patches); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); + ggml_tensor * inp = build_inp(); + ggml_tensor * cur = build_vit( + inp, n_patches, + NORM_TYPE_RMS, + hparams.ffn_op, + nullptr, // no learned pos embd + add_pos); - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); + // mistral small 3.1 patch merger + // ref: https://github.com/huggingface/transformers/blob/7a3e208892c06a5e278144eaf38c8599a42f53e7/src/transformers/models/mistral3/modeling_mistral3.py#L67 + if (model.mm_patch_merger_w) { + GGML_ASSERT(hparams.spatial_merge_size > 0); - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_3d(ctx0, KQV, d_head, num_patches, n_head); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); + cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.mm_input_norm_w); - cur = ggml_cont_2d(ctx0, KQV, n_embd, num_patches); + // reshape image tokens to 2D grid + cur = ggml_reshape_3d(ctx0, cur, n_embd, n_patches_x, n_patches_y); + cur = ggml_permute(ctx0, cur, 2, 0, 1, 3); // [x, y, n_embd] + cur = ggml_cont(ctx0, cur); + + // torch.nn.functional.unfold is just an im2col under the hood + // we just need a dummy kernel to make it work + ggml_tensor * kernel = ggml_view_3d(ctx0, cur, n_merge, n_merge, cur->ne[2], 0, 0, 0); + cur = ggml_im2col(ctx0, kernel, cur, n_merge, n_merge, 0, 0, 1, 1, true, inp->type); + + // project to n_embd + cur = ggml_reshape_2d(ctx0, cur, cur->ne[0], cur->ne[1] * cur->ne[2]); + cur = ggml_mul_mat(ctx0, model.mm_patch_merger_w, cur); } - // attention output - cur = ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].o_w, cur), model.layers[il].o_b); - - // re-add the layer input, e.g., residual - cur = ggml_add(ctx0, cur, embeddings); - - embeddings = cur; // embeddings = residual, cur = hidden_states - - // layernorm2 + // LlavaMultiModalProjector (always using GELU activation) { - cur = ggml_norm(ctx0, cur, eps); - cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_2_w), model.layers[il].ln_2_b); - } - - cur = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_up_b); - - // siglip uses gelu - cur = ggml_gelu(ctx0, cur); - - cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); - - // residual 2 - cur = ggml_add(ctx0, embeddings, cur); - - embeddings = cur; - } - - // post-layernorm - if (model.post_ln_w) { - embeddings = ggml_norm(ctx0, embeddings, eps); - ggml_set_name(embeddings, "post_ln"); - - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.post_ln_w), model.post_ln_b); - } - - if (ctx->proj_type == PROJECTOR_TYPE_GEMMA3) { - const int batch_size = 1; - const int mm_tokens_per_image = 256; // default value for gemma3 - const int tokens_per_side = sqrt(mm_tokens_per_image); - const int patches_per_image = sqrt(num_patches); - const int kernel_size = patches_per_image / tokens_per_side; - - embeddings = ggml_cont(ctx0, ggml_transpose(ctx0, embeddings)); - embeddings = ggml_reshape_4d(ctx0, embeddings, patches_per_image, patches_per_image, n_embd, batch_size); - - // doing a pool2d to reduce the number of output tokens to 256 - embeddings = ggml_pool_2d(ctx0, embeddings, GGML_OP_POOL_AVG, kernel_size, kernel_size, kernel_size, kernel_size, 0, 0); - embeddings = ggml_reshape_3d(ctx0, embeddings, embeddings->ne[0] * embeddings->ne[0], n_embd, batch_size); - embeddings = ggml_cont(ctx0, ggml_transpose(ctx0, embeddings)); - - // apply norm before projection - embeddings = ggml_rms_norm(ctx0, embeddings, eps); - embeddings = ggml_mul(ctx0, embeddings, model.mm_soft_emb_norm_w); - - // apply projection - embeddings = ggml_mul_mat(ctx0, - ggml_cont(ctx0, ggml_transpose(ctx0, model.mm_input_proj_w)), - embeddings); - - } else if (ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { - // https://github.com/huggingface/transformers/blob/0a950e0bbe1ed58d5401a6b547af19f15f0c195e/src/transformers/models/idefics3/modeling_idefics3.py#L578 - - ggml_tensor * cur = embeddings; - const int scale_factor = model.hparams.proj_scale_factor; - const int n_embd = cur->ne[0]; - const int seq = cur->ne[1]; - const int bsz = 1; // batch size, always 1 for now since we don't support batching - const int height = std::sqrt(seq); - const int width = std::sqrt(seq); - GGML_ASSERT(scale_factor != 0); - cur = ggml_reshape_4d(ctx0, cur, n_embd * scale_factor, width / scale_factor, height, bsz); - cur = ggml_permute(ctx0, cur, 0, 2, 1, 3); - cur = ggml_reshape_4d(ctx0, ggml_cont(ctx0, cur), - n_embd * scale_factor * scale_factor, - height / scale_factor, - width / scale_factor, - bsz); - cur = ggml_permute(ctx0, cur, 0, 2, 1, 3); - cur = ggml_reshape_3d(ctx0, ggml_cont(ctx0, cur), - n_embd * scale_factor * scale_factor, - seq / (scale_factor * scale_factor), - bsz); - - cur = ggml_mul_mat(ctx0, model.projection, cur); - embeddings = cur; - } else { - GGML_ABORT("SigLIP: Unsupported projector type"); - } - - // build the graph - ggml_build_forward_expand(gf, embeddings); - - return gf; -} - -// implementation of the 2D RoPE without adding a new op in ggml -// this is not efficient (use double the memory), but works on all backends -// TODO: there was a more efficient which relies on ggml_view and ggml_rope_ext_inplace, but the rope inplace does not work well with non-contiguous tensors ; we should fix that and revert back to the original implementation in https://github.com/ggml-org/llama.cpp/pull/13065 -static ggml_tensor * build_rope_2d( - ggml_context * ctx0, - ggml_tensor * cur, - ggml_tensor * pos_h, - ggml_tensor * pos_w, - const float freq_base -) { - const int64_t n_dim = cur->ne[0]; - const int64_t n_head = cur->ne[1]; - const int64_t n_pos = cur->ne[2]; - - // for example, if we have cur tensor of shape (n_dim=8, n_head, n_pos) - // we will have a list of 4 inv_freq: 1e-0, 1e-1, 1e-2, 1e-3 - // first half of cur will use 1e-0, 1e-2 (even) - // second half of cur will use 1e-1, 1e-3 (odd) - // the trick here is to rotate just half of n_dim, so inv_freq will automatically be even - // ^ don't ask me why, it's math! -2(2i) / n_dim == -2i / (n_dim/2) - // then for the second half, we use freq_scale to shift the inv_freq - // ^ why? replace (2i) with (2i+1) in the above equation - const float freq_scale_odd = std::pow(freq_base, (float)-2/n_dim); - - // first half - ggml_tensor * first; - { - first = ggml_view_3d(ctx0, cur, - n_dim/2, n_head, n_pos, - ggml_row_size(cur->type, n_dim), - ggml_row_size(cur->type, n_dim*n_head), - 0); - first = ggml_rope_ext( - ctx0, - first, - pos_h, // positions - nullptr, // freq factors - n_dim/2, // n_dims - 0, 0, freq_base, - 1.0f, 0.0f, 1.0f, 0.0f, 0.0f - ); - } - - // second half - ggml_tensor * second; - { - second = ggml_view_3d(ctx0, cur, - n_dim/2, n_head, n_pos, - ggml_row_size(cur->type, n_dim), - ggml_row_size(cur->type, n_dim*n_head), - n_dim/2 * ggml_element_size(cur)); - second = ggml_cont(ctx0, second); // copy, because ggml_rope don't play well with non-contiguous tensors - second = ggml_rope_ext( - ctx0, - second, - pos_w, // positions - nullptr, // freq factors - n_dim/2, // n_dims - 0, 0, freq_base, - freq_scale_odd, - 0.0f, 1.0f, 0.0f, 0.0f - ); - } - - cur = ggml_concat(ctx0, first, second, 0); - return cur; -} - -static ggml_cgraph * clip_image_build_graph_pixtral(clip_ctx * ctx, const clip_image_f32 & img) { - const auto & model = ctx->vision_model; - const auto & hparams = model.hparams; - - GGML_ASSERT(ctx->proj_type == PROJECTOR_TYPE_PIXTRAL); - - int image_size_width = img.nx; - int image_size_height = img.ny; - - const int patch_size = hparams.patch_size; - const int n_patches_x = image_size_width / patch_size; - const int n_patches_y = image_size_height / patch_size; - const int num_patches = n_patches_x * n_patches_y; - const int n_embd = hparams.n_embd; - const int n_head = hparams.n_head; - const int d_head = n_embd / n_head; - const int n_layer = hparams.n_layer; - const float eps = hparams.eps; - const int n_merge = hparams.spatial_merge_size; - - struct ggml_init_params params = { - /*.mem_size =*/ ctx->buf_compute_meta.size(), - /*.mem_buffer =*/ ctx->buf_compute_meta.data(), - /*.no_alloc =*/ true, - }; - - ggml_context_ptr ctx0_ptr(ggml_init(params)); - auto ctx0 = ctx0_ptr.get(); - - struct ggml_cgraph * gf = ggml_new_graph(ctx0); - - // input raw - struct ggml_tensor * inp_raw = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, image_size_width, image_size_height, 3); - ggml_set_name(inp_raw, "inp_raw"); - ggml_set_input(inp_raw); - - // 2D input positions - struct ggml_tensor * pos_h = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_patches); - ggml_set_name(pos_h, "pos_h"); - ggml_set_input(pos_h); - struct ggml_tensor * pos_w = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_patches); - ggml_set_name(pos_w, "pos_w"); - ggml_set_input(pos_w); - - struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_reshape_2d(ctx0, inp, num_patches, n_embd); - inp = ggml_cont(ctx0, ggml_transpose(ctx0, inp)); - - struct ggml_tensor * embeddings = inp; - - // pre-layer norm - embeddings = ggml_mul(ctx0, ggml_rms_norm(ctx0, embeddings, eps), model.pre_ln_w); - - // loop over layers - for (int il = 0; il < n_layer; il++) { - struct ggml_tensor * cur = embeddings; - - // pre-attention norm - cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.layers[il].ln_1_w); - - // self-attention - { - struct ggml_tensor * Q = ggml_mul_mat(ctx0, model.layers[il].q_w, cur); - - Q = ggml_reshape_3d(ctx0, Q, d_head, n_head, num_patches); - Q = build_rope_2d(ctx0, Q, pos_h, pos_w, hparams.rope_theta); - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); - - struct ggml_tensor * K = ggml_mul_mat(ctx0, model.layers[il].k_w, cur); - - K = ggml_reshape_3d(ctx0, K, d_head, n_head, num_patches); - K = build_rope_2d(ctx0, K, pos_h, pos_w, hparams.rope_theta); - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); - - struct ggml_tensor * V = ggml_mul_mat(ctx0, model.layers[il].v_w, cur); - - V = ggml_reshape_3d(ctx0, V, d_head, n_head, num_patches); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); - - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); - - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_3d(ctx0, KQV, d_head, num_patches, n_head); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - - cur = ggml_cont_2d(ctx0, KQV, n_embd, num_patches); - - cur = ggml_mul_mat(ctx0, model.layers[il].o_w, cur); - } - - // re-add the layer input, e.g., residual - cur = ggml_add(ctx0, cur, embeddings); - - embeddings = cur; // embeddings = residual, cur = hidden_states - - // pre-ffn norm - cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.layers[il].ln_2_w); - - // feed-forward - { - ggml_tensor * gate_proj = ggml_mul_mat(ctx0, model.layers[il].ff_gate_w, cur); - ggml_tensor * up_proj = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); - if (ctx->use_silu) { - gate_proj = ggml_silu(ctx0, gate_proj); - } else if (ctx->use_gelu) { - gate_proj = ggml_gelu(ctx0, gate_proj); - } else { - GGML_ABORT("Pixtral: Unsupported activation"); + cur = ggml_mul_mat(ctx0, model.mm_1_w, cur); + if (model.mm_1_b) { + cur = ggml_add(ctx0, cur, model.mm_1_b); + } + + cur = ggml_gelu(ctx0, cur); + cur = ggml_mul_mat(ctx0, model.mm_2_w, cur); + if (model.mm_2_b) { + cur = ggml_add(ctx0, cur, model.mm_2_b); } - cur = ggml_mul(ctx0, up_proj, gate_proj); - cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); } - // residual 2 - cur = ggml_add(ctx0, embeddings, cur); - - embeddings = cur; - } - - // mistral small 3.1 patch merger - // ref: https://github.com/huggingface/transformers/blob/7a3e208892c06a5e278144eaf38c8599a42f53e7/src/transformers/models/mistral3/modeling_mistral3.py#L67 - if (model.mm_patch_merger_w) { - GGML_ASSERT(hparams.spatial_merge_size > 0); - - ggml_tensor * cur = embeddings; - cur = ggml_mul(ctx0, ggml_rms_norm(ctx0, cur, eps), model.mm_input_norm_w); - - // reshape image tokens to 2D grid - cur = ggml_reshape_3d(ctx0, cur, n_embd, n_patches_x, n_patches_y); - cur = ggml_permute(ctx0, cur, 2, 0, 1, 3); // [x, y, n_embd] - cur = ggml_cont(ctx0, cur); - - // torch.nn.functional.unfold is just an im2col under the hood - // we just need a dummy kernel to make it work - ggml_tensor * kernel = ggml_view_3d(ctx0, cur, n_merge, n_merge, cur->ne[2], 0, 0, 0); - cur = ggml_im2col(ctx0, kernel, cur, n_merge, n_merge, 0, 0, 1, 1, true, inp->type); - - // project to n_embd - cur = ggml_reshape_2d(ctx0, cur, cur->ne[0], cur->ne[1] * cur->ne[2]); - cur = ggml_mul_mat(ctx0, model.mm_patch_merger_w, cur); - embeddings = cur; - } - - // LlavaMultiModalProjector (always using GELU activation) - { - embeddings = ggml_mul_mat(ctx0, model.mm_1_w, embeddings); - if (model.mm_1_b) { - embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); - } - - embeddings = ggml_gelu(ctx0, embeddings); - embeddings = ggml_mul_mat(ctx0, model.mm_2_w, embeddings); - if (model.mm_2_b) { - embeddings = ggml_add(ctx0, embeddings, model.mm_2_b); - } - } - - // arrangement of the [IMG_BREAK] token - { - // not efficient, but works - // the trick is to view the embeddings as a 3D tensor with shape [n_embd, n_patches_per_row, n_rows] - // and then concatenate the [IMG_BREAK] token to the end of each row, aka n_patches_per_row dimension - // after the concatenation, we have a tensor with shape [n_embd, n_patches_per_row + 1, n_rows] - - const int p_y = n_merge > 0 ? n_patches_y / n_merge : n_patches_y; - const int p_x = n_merge > 0 ? n_patches_x / n_merge : n_patches_x; - const int p_total = p_x * p_y; - const int n_embd_text = embeddings->ne[0]; - const int n_tokens_output = p_total + p_y - 1; // one [IMG_BREAK] per row, except the last row - - ggml_tensor * cur = ggml_reshape_3d(ctx0, embeddings, n_embd_text, p_x, p_y); - ggml_tensor * tok = ggml_new_tensor_3d(ctx0, embeddings->type, n_embd_text, 1, p_y); - tok = ggml_scale(ctx0, tok, 0.0); // clear the tensor - tok = ggml_add(ctx0, tok, model.token_embd_img_break); - cur = ggml_concat(ctx0, cur, tok, 1); - embeddings = ggml_view_2d(ctx0, cur, - n_embd_text, n_tokens_output, - ggml_row_size(cur->type, n_embd_text), 0); - } - - // build the graph - ggml_build_forward_expand(gf, embeddings); - - return gf; -} - -static ggml_cgraph * clip_image_build_graph_qwen25vl(clip_ctx * ctx, const clip_image_f32_batch & imgs) { - const auto & model = ctx->vision_model; - const auto & hparams = model.hparams; - - const int image_size_width = imgs.entries[0]->nx; - const int image_size_height = imgs.entries[0]->ny; - - const bool use_window_attn = hparams.n_wa_pattern > 0; - - const int n_wa_pattern = hparams.n_wa_pattern; - const int patch_size = hparams.patch_size; - const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int patches_w = image_size_width / patch_size; - const int patches_h = image_size_height / patch_size; - const int num_positions = num_patches + (model.class_embedding ? 1 : 0); - const int num_position_ids = num_positions * 4; // m-rope requires 4 dim per position - const int n_embd = hparams.n_embd; - const int n_head = hparams.n_head; - const int d_head = n_embd / n_head; - const int n_layer = hparams.n_layer; - const float eps = hparams.eps; - - int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; - - const int batch_size = imgs.entries.size(); - GGML_ASSERT(batch_size == 1); - - struct ggml_init_params params = { - /*.mem_size =*/ ctx->buf_compute_meta.size(), - /*.mem_buffer =*/ ctx->buf_compute_meta.data(), - /*.no_alloc =*/ true, - }; - - ggml_context_ptr ctx0_ptr(ggml_init(params)); - auto ctx0 = ctx0_ptr.get(); - - struct ggml_cgraph * gf = ggml_new_graph(ctx0); - - struct ggml_tensor * inp_raw = ggml_new_tensor_4d(ctx0, GGML_TYPE_F32, image_size_width, image_size_height, 3, batch_size); - ggml_set_name(inp_raw, "inp_raw"); - ggml_set_input(inp_raw); - - struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - - GGML_ASSERT(image_size_width % (patch_size * 2) == 0); - GGML_ASSERT(image_size_height % (patch_size * 2) == 0); - - auto inp_1 = ggml_conv_2d(ctx0, model.patch_embeddings_1, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_add(ctx0, inp, inp_1); - - inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] - inp = ggml_reshape_4d( - ctx0, inp, - n_embd * 2, patches_w / 2, patches_h, batch_size); - inp = ggml_reshape_4d( - ctx0, inp, - n_embd * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); - inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); - inp = ggml_reshape_3d( - ctx0, inp, - n_embd, patches_w * patches_h, batch_size); - - if (model.patch_bias) { - // inp = ggml_add(ctx0, inp, ggml_repeat(ctx0, model.patch_bias, inp)); - inp = ggml_add(ctx0, inp, model.patch_bias); - } - struct ggml_tensor * embeddings = inp; - struct ggml_tensor * window_mask = nullptr; - struct ggml_tensor * window_idx = nullptr; - struct ggml_tensor * inv_window_idx = nullptr; - - struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_position_ids); - ggml_set_name(positions, "positions"); - ggml_set_input(positions); - - // pre-layernorm - if (model.pre_ln_w) { - embeddings = ggml_rms_norm(ctx0, embeddings, eps); - ggml_set_name(embeddings, "pre_ln"); - - embeddings = ggml_mul(ctx0, embeddings, model.pre_ln_w); - } - - if (use_window_attn) { - // handle window attention inputs - inv_window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_positions / 4); - ggml_set_name(inv_window_idx, "inv_window_idx"); - ggml_set_input(inv_window_idx); - // mask for window attention - window_mask = ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, num_positions, num_positions); - ggml_set_name(window_mask, "window_mask"); - ggml_set_input(window_mask); - - // embeddings shape: [n_embd, patches_w * patches_h, batch_size] - GGML_ASSERT(batch_size == 1); - embeddings = ggml_reshape_2d(ctx0, embeddings, n_embd * 4, patches_w * patches_h * batch_size / 4); - embeddings = ggml_get_rows(ctx0, embeddings, inv_window_idx); - embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd, patches_w * patches_h, batch_size); - } - - // loop over layers - for (int il = 0; il < n_layer; il++) { - struct ggml_tensor * cur = embeddings; // embeddings = residual, cur = hidden_states - - // rmsnorm1 - cur = ggml_rms_norm(ctx0, cur, eps); - cur = ggml_mul(ctx0, cur, model.layers[il].ln_1_w); - - // self-attention + // arrangement of the [IMG_BREAK] token { + // not efficient, but works + // the trick is to view the embeddings as a 3D tensor with shape [n_embd, n_patches_per_row, n_rows] + // and then concatenate the [IMG_BREAK] token to the end of each row, aka n_patches_per_row dimension + // after the concatenation, we have a tensor with shape [n_embd, n_patches_per_row + 1, n_rows] - struct ggml_tensor * Q = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].q_w, cur), model.layers[il].q_b); + const int p_y = n_merge > 0 ? n_patches_y / n_merge : n_patches_y; + const int p_x = n_merge > 0 ? n_patches_x / n_merge : n_patches_x; + const int p_total = p_x * p_y; + const int n_embd_text = cur->ne[0]; + const int n_tokens_output = p_total + p_y - 1; // one [IMG_BREAK] per row, except the last row - Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_positions, batch_size); - Q = ggml_rope_multi( - ctx0, Q, positions, nullptr, - d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); - Q = ggml_reshape_3d(ctx0, Q, d_head, num_positions, n_head * batch_size); + ggml_tensor * tmp = ggml_reshape_3d(ctx0, cur, n_embd_text, p_x, p_y); + ggml_tensor * tok = ggml_new_tensor_3d(ctx0, tmp->type, n_embd_text, 1, p_y); + tok = ggml_scale(ctx0, tok, 0.0); // clear the tensor + tok = ggml_add(ctx0, tok, model.token_embd_img_break); + tmp = ggml_concat(ctx0, tmp, tok, 1); + cur = ggml_view_2d(ctx0, tmp, + n_embd_text, n_tokens_output, + ggml_row_size(tmp->type, n_embd_text), 0); + } - struct ggml_tensor * K = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].k_w, cur), model.layers[il].k_b); + // build the graph + ggml_build_forward_expand(gf, cur); - K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); - K = ggml_rope_multi( - ctx0, K, positions, nullptr, - d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); - K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); + return gf; + } - struct ggml_tensor * V = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].v_w, cur), model.layers[il].v_b); + // Qwen2VL and Qwen2.5VL use M-RoPE + ggml_cgraph * build_qwen2vl() { + const int batch_size = 1; + const bool use_window_attn = hparams.n_wa_pattern > 0; + const int n_wa_pattern = hparams.n_wa_pattern; + const int n_pos = n_patches; + const int num_position_ids = n_pos * 4; // m-rope requires 4 dim per position - V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); - V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); + norm_type norm_t = ctx->proj_type == PROJECTOR_TYPE_QWEN25VL + ? NORM_TYPE_RMS // qwen 2.5 vl + : NORM_TYPE_NORMAL; // qwen 2 vl - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); + int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; + + ggml_tensor * inp_raw = build_inp_raw(); + ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); + + GGML_ASSERT(img.nx % (patch_size * 2) == 0); + GGML_ASSERT(img.ny % (patch_size * 2) == 0); + + // second conv dimension + { + auto inp_1 = ggml_conv_2d(ctx0, model.patch_embeddings_1, inp_raw, patch_size, patch_size, 0, 0, 1, 1); + inp = ggml_add(ctx0, inp, inp_1); + + inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] + inp = ggml_reshape_4d( + ctx0, inp, + n_embd * 2, n_patches_x / 2, n_patches_y, batch_size); + inp = ggml_reshape_4d( + ctx0, inp, + n_embd * 2, n_patches_x / 2, 2, batch_size * (n_patches_y / 2)); + inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); + inp = ggml_reshape_3d( + ctx0, inp, + n_embd, n_patches_x * n_patches_y, batch_size); + } + + if (model.patch_bias) { + inp = ggml_add(ctx0, inp, model.patch_bias); + } + + ggml_tensor * inpL = inp; + ggml_tensor * window_mask = nullptr; + ggml_tensor * window_idx = nullptr; + ggml_tensor * inv_window_idx = nullptr; + + ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_position_ids); + ggml_set_name(positions, "positions"); + ggml_set_input(positions); + + // pre-layernorm + if (model.pre_ln_w) { + inpL = build_norm(inpL, model.pre_ln_w, model.pre_ln_b, norm_t, eps, -1); + } + + if (use_window_attn) { + // handle window attention inputs + inv_window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_pos / 4); + ggml_set_name(inv_window_idx, "inv_window_idx"); + ggml_set_input(inv_window_idx); + // mask for window attention + window_mask = ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, n_pos, n_pos); + ggml_set_name(window_mask, "window_mask"); + ggml_set_input(window_mask); + + // inpL shape: [n_embd, n_patches_x * n_patches_y, batch_size] + GGML_ASSERT(batch_size == 1); + inpL = ggml_reshape_2d(ctx0, inpL, n_embd * 4, n_patches_x * n_patches_y * batch_size / 4); + inpL = ggml_get_rows(ctx0, inpL, inv_window_idx); + inpL = ggml_reshape_3d(ctx0, inpL, n_embd, n_patches_x * n_patches_y, batch_size); + } + + // loop over layers + for (int il = 0; il < n_layer; il++) { + auto & layer = model.layers[il]; const bool full_attn = use_window_attn ? (il + 1) % n_wa_pattern == 0 : true; - if (full_attn) { - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); - } else { - KQ = ggml_soft_max_ext(ctx0, KQ, window_mask, 1.0f / sqrtf((float)d_head), 0.0f); - } - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_positions, n_head, batch_size); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); + ggml_tensor * cur = inpL; // inpL = residual, cur = hidden_states - cur = ggml_cont_3d(ctx0, KQV, n_embd, num_positions, batch_size); - } + // layernorm1 + cur = build_norm(cur, layer.ln_1_w, layer.ln_1_b, norm_t, eps, il); + cb(cur, "ln1", il); - // attention output - cur = ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].o_w, cur), model.layers[il].o_b); - - // re-add the layer input, e.g., residual - cur = ggml_add(ctx0, cur, embeddings); - - embeddings = cur; // embeddings = residual, cur = hidden_states - - // rms norm2 - cur = ggml_rms_norm(ctx0, cur, eps); - cur = ggml_mul(ctx0, cur, model.layers[il].ln_2_w); - - // mlp - // ffn_up - auto cur_up = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); - cur_up = ggml_add(ctx0, cur_up, model.layers[il].ff_up_b); - - auto cur_gate = ggml_mul_mat(ctx0, model.layers[il].ff_gate_w, cur); - cur_gate = ggml_add(ctx0, cur_gate, model.layers[il].ff_gate_b); - // TODO : only 2 of these 3 are actually used, should we remove one of them? - if (ctx->use_gelu) { - cur_gate = ggml_gelu_inplace(ctx0, cur_gate); - } else if (ctx->use_silu) { - cur_gate = ggml_silu_inplace(ctx0, cur_gate); - } else { - cur_gate = ggml_gelu_quick_inplace(ctx0, cur_gate); - } - cur = ggml_mul(ctx0, cur_gate, cur_up); - - // ffn_down - cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); - - // residual 2 - cur = ggml_add(ctx0, embeddings, cur); - - embeddings = cur; - } - - // post-layernorm - if (model.post_ln_w) { - embeddings = ggml_rms_norm(ctx0, embeddings, eps); - ggml_set_name(embeddings, "post_ln"); - - embeddings = ggml_mul(ctx0, embeddings, model.post_ln_w); - } - - embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd * 4, num_positions / 4, batch_size); - - embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); - - // GELU activation - embeddings = ggml_gelu(ctx0, embeddings); - - // Second linear layer - embeddings = ggml_mul_mat(ctx0, model.mm_1_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); - - if (use_window_attn) { - window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_positions / 4); - ggml_set_name(window_idx, "window_idx"); - ggml_set_input(window_idx); - - // embeddings shape: [n_embd, patches_w * patches_h, batch_size] - GGML_ASSERT(batch_size == 1); - embeddings = ggml_reshape_2d(ctx0, embeddings, hparams.projection_dim, patches_w * patches_h / 4); - embeddings = ggml_get_rows(ctx0, embeddings, window_idx); - embeddings = ggml_reshape_3d(ctx0, embeddings, hparams.projection_dim, patches_w * patches_h / 4, batch_size); - } - - // build the graph - ggml_build_forward_expand(gf, embeddings); - - return gf; -} - -static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_image_f32_batch & imgs, struct clip_image_size load_image_size, bool is_inf = false) { - const auto & model = ctx->vision_model; - const auto & hparams = model.hparams; - - const int image_size = hparams.image_size; - int image_size_width = image_size; - int image_size_height = image_size; - - if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { - LOG_DBG("%s: %d %d\n", __func__, load_image_size.width, load_image_size.height); - image_size_width = load_image_size.width; - image_size_height = load_image_size.height; - if (is_inf) { - image_size_width = imgs.entries[0]->nx; - image_size_height = imgs.entries[0]->ny; - } - } - - else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - // use the image's native resolution when image is avaible - if (is_inf) { - // if (imgs->data->nx && imgs->data->ny) { - image_size_width = imgs.entries[0]->nx; - image_size_height = imgs.entries[0]->ny; - } - } - - const int patch_size = hparams.patch_size; - const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int patches_w = image_size_width / patch_size; - const int patches_h = image_size_height / patch_size; - const int num_positions = num_patches + (model.class_embedding ? 1 : 0); - const int num_position_ids = ctx->proj_type == PROJECTOR_TYPE_QWEN2VL ? num_positions * 4 : num_positions; - const int n_embd = hparams.n_embd; - const int n_head = hparams.n_head; - const int d_head = n_embd / n_head; - const float eps = hparams.eps; - int mrope_sections[4] = {d_head/4, d_head/4, d_head/4, d_head/4}; - - const int batch_size = imgs.entries.size(); - - if (ctx->has_llava_projector - || ctx->proj_type == PROJECTOR_TYPE_MINICPMV - || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { - GGML_ASSERT(batch_size == 1); - } - - struct ggml_init_params params = { - /*.mem_size =*/ ctx->buf_compute_meta.size(), - /*.mem_buffer =*/ ctx->buf_compute_meta.data(), - /*.no_alloc =*/ true, - }; - - ggml_context_ptr ctx0_ptr(ggml_init(params)); - auto ctx0 = ctx0_ptr.get(); - - struct ggml_cgraph * gf = ggml_new_graph(ctx0); - - struct ggml_tensor * inp_raw = ggml_new_tensor_4d(ctx0, GGML_TYPE_F32, image_size_width, image_size_height, 3, batch_size); - ggml_set_name(inp_raw, "inp_raw"); - ggml_set_input(inp_raw); - - struct ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - - if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - GGML_ASSERT(image_size_width % (patch_size * 2) == 0); - GGML_ASSERT(image_size_height % (patch_size * 2) == 0); - - auto inp_1 = ggml_conv_2d(ctx0, model.patch_embeddings_1, inp_raw, patch_size, patch_size, 0, 0, 1, 1); - inp = ggml_add(ctx0, inp, inp_1); - inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 2, 0, 3)); // [w, h, c, b] -> [c, w, h, b] - inp = ggml_reshape_4d( - ctx0, inp, - n_embd * 2, patches_w / 2, patches_h, batch_size); - inp = ggml_reshape_4d( - ctx0, inp, - n_embd * 2, patches_w / 2, 2, batch_size * (patches_h / 2)); - inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 0, 2, 1, 3)); - inp = ggml_reshape_3d( - ctx0, inp, - n_embd, patches_w * patches_h, batch_size); - } - else { - inp = ggml_reshape_3d(ctx0, inp, num_patches, n_embd, batch_size); - inp = ggml_cont(ctx0, ggml_permute(ctx0, inp, 1, 0, 2, 3)); - } - - if (model.patch_bias) { - // inp = ggml_add(ctx0, inp, ggml_repeat(ctx0, model.patch_bias, inp)); - inp = ggml_add(ctx0, inp, model.patch_bias); - } - struct ggml_tensor * embeddings = inp; - struct ggml_tensor * pos_embed = nullptr; - - // concat class_embeddings and patch_embeddings - if (model.class_embedding) { - embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_embd, num_positions, batch_size); - embeddings = ggml_scale(ctx0, embeddings, 0.0f); // set to all zeros - embeddings = ggml_acc(ctx0, embeddings, model.class_embedding, - embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], 0); - embeddings = ggml_acc(ctx0, embeddings, inp, - embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], model.class_embedding->nb[1]); - } - - struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_position_ids); - ggml_set_name(positions, "positions"); - ggml_set_input(positions); - - if (ctx->proj_type != PROJECTOR_TYPE_QWEN2VL) { // qwen2vl does NOT use learned position embeddings - embeddings = - ggml_add(ctx0, embeddings, ggml_get_rows(ctx0, model.position_embeddings, positions)); - } - - if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { - int pos_w = image_size_width/patch_size; - int pos_h = image_size_height/patch_size; - int n_output_dim = clip_n_mmproj_embd(ctx); - pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_output_dim, pos_w * pos_h, 1); - ggml_set_name(pos_embed, "pos_embed"); - ggml_set_input(pos_embed); - } - - // pre-layernorm - if (model.pre_ln_w) { - embeddings = ggml_norm(ctx0, embeddings, eps); - ggml_set_name(embeddings, "pre_ln"); - - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.pre_ln_w), model.pre_ln_b); - } - - std::vector embedding_stack; - const auto & vision_feature_layer = hparams.vision_feature_layer; - - // loop over layers - for (int il = 0; il < ctx->max_feature_layer; il++) { - struct ggml_tensor * cur = embeddings; // embeddings = residual, cur = hidden_states - - // If this is an embedding feature layer, save the output. - // NOTE: 0 index here refers to the input to the encoder. - if (vision_feature_layer.find(il) != vision_feature_layer.end()) { - embedding_stack.push_back(embeddings); - } - - //const size_t nb_q_w = model.layers[il].q_w->nb[0]; - - // layernorm1 - { - cur = ggml_norm(ctx0, cur, eps); - - cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_1_w), - model.layers[il].ln_1_b); - } - - // self-attention - { - - struct ggml_tensor * Q = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].q_w, cur), model.layers[il].q_b); - - Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_positions, batch_size); - if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - Q = ggml_rope_multi( - ctx0, Q, positions, nullptr, - d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); - } - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); - Q = ggml_reshape_3d(ctx0, Q, d_head, num_positions, n_head * batch_size); - - struct ggml_tensor * K = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].k_w, cur), model.layers[il].k_b); - - K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); - if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - K = ggml_rope_multi( - ctx0, K, positions, nullptr, - d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); - } - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); - K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); - - struct ggml_tensor * V = - ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].v_w, cur), model.layers[il].v_b); - - V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); - V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); - - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_positions, n_head, batch_size); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - - cur = ggml_cont_3d(ctx0, KQV, n_embd, num_positions, batch_size); - } - - // attention output - cur = ggml_add(ctx0, ggml_mul_mat(ctx0, model.layers[il].o_w, cur), model.layers[il].o_b); - - // re-add the layer input, e.g., residual - cur = ggml_add(ctx0, cur, embeddings); - - embeddings = cur; // embeddings = residual, cur = hidden_states - - // layernorm2 - { - cur = ggml_norm(ctx0, cur, eps); - - cur = ggml_add(ctx0, ggml_mul(ctx0, cur, model.layers[il].ln_2_w), model.layers[il].ln_2_b); - } - - cur = ggml_mul_mat(ctx0, model.layers[il].ff_up_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_up_b); - - if (ctx->use_gelu) { - cur = ggml_gelu_inplace(ctx0, cur); - } else if (ctx->use_silu) { - cur = ggml_silu_inplace(ctx0, cur); - } else { - cur = ggml_gelu_quick_inplace(ctx0, cur); - } - - cur = ggml_mul_mat(ctx0, model.layers[il].ff_down_w, cur); - cur = ggml_add(ctx0, cur, model.layers[il].ff_down_b); - - // residual 2 - cur = ggml_add(ctx0, embeddings, cur); - - embeddings = cur; - } - - // post-layernorm - if (model.post_ln_w) { - embeddings = ggml_norm(ctx0, embeddings, eps); - ggml_set_name(embeddings, "post_ln"); - - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.post_ln_w), model.post_ln_b); - } - - // final layer is a vision feature layer - if (vision_feature_layer.find(ctx->max_feature_layer) != vision_feature_layer.end()) { - embedding_stack.push_back(embeddings); - } - - // If feature layers are explicitly set, stack them (if we have multiple) - if (!embedding_stack.empty()) { - embeddings = embedding_stack[0]; - for (size_t i = 1; i < embedding_stack.size(); i++) { - embeddings = ggml_concat(ctx0, embeddings, embedding_stack[i], 0); - } - } - - // llava projector - if (ctx->has_llava_projector) { - embeddings = ggml_reshape_2d(ctx0, embeddings, embeddings->ne[0], embeddings->ne[1]); - - struct ggml_tensor * patches = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_patches); - ggml_set_name(patches, "patches"); - ggml_set_input(patches); - - // shape [1, 576, 1024] - // ne is whcn, ne = [1024, 576, 1, 1] - embeddings = ggml_get_rows(ctx0, embeddings, patches); - - // print_tensor_info(embeddings, "embeddings"); - - // llava projector - if (ctx->proj_type == PROJECTOR_TYPE_MLP) { - embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); - - embeddings = ggml_gelu(ctx0, embeddings); - if (model.mm_2_w) { - embeddings = ggml_mul_mat(ctx0, model.mm_2_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_2_b); - } - } - else if (ctx->proj_type == PROJECTOR_TYPE_MLP_NORM) { - embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); - // ggml_tensor_printf(embeddings, "mm_0_w",0,true,false); - // First LayerNorm - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_1_w), - model.mm_1_b); - - // GELU activation - embeddings = ggml_gelu(ctx0, embeddings); - - // Second linear layer - embeddings = ggml_mul_mat(ctx0, model.mm_3_w, embeddings); - embeddings = ggml_add(ctx0, embeddings, model.mm_3_b); - - // Second LayerNorm - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_4_w), - model.mm_4_b); - } - else if (ctx->proj_type == PROJECTOR_TYPE_LDP) { - // MobileVLM projector - int n_patch = 24; - struct ggml_tensor * mlp_1 = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w, embeddings); - mlp_1 = ggml_add(ctx0, mlp_1, model.mm_model_mlp_1_b); - mlp_1 = ggml_gelu(ctx0, mlp_1); - struct ggml_tensor * mlp_3 = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, mlp_1); - mlp_3 = ggml_add(ctx0, mlp_3, model.mm_model_mlp_3_b); - // mlp_3 shape = [1, 576, 2048], ne = [2048, 576, 1, 1] - - // block 1 - struct ggml_tensor * block_1 = nullptr; + // self-attention { - // transpose from [1, 576, 2048] --> [1, 2048, 576] --> [1, 2048, 24, 24] - mlp_3 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_3, 1, 0, 2, 3)); - mlp_3 = ggml_reshape_4d(ctx0, mlp_3, n_patch, n_patch, mlp_3->ne[1], mlp_3->ne[2]); - // stride = 1, padding = 1, bias is nullptr - block_1 = ggml_conv_2d_dw(ctx0, model.mm_model_block_1_block_0_0_w, mlp_3, 1, 1, 1, 1, 1, 1); + ggml_tensor * Qcur = ggml_add(ctx0, + ggml_mul_mat(ctx0, layer.q_w, cur), layer.q_b); + ggml_tensor * Kcur = ggml_add(ctx0, + ggml_mul_mat(ctx0, layer.k_w, cur), layer.k_b); + ggml_tensor * Vcur = ggml_add(ctx0, + ggml_mul_mat(ctx0, layer.v_w, cur), layer.v_b); - // layer norm - // // block_1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 2, 0, 3)); - // block_1 shape = [1, 24, 24, 2048], ne = [2048, 24, 24, 1] - block_1 = ggml_norm(ctx0, block_1, eps); - block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_1_block_0_1_w), model.mm_model_block_1_block_0_1_b); - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); + Qcur = ggml_reshape_3d(ctx0, Qcur, d_head, n_head, n_patches); + Kcur = ggml_reshape_3d(ctx0, Kcur, d_head, n_head, n_patches); + Vcur = ggml_reshape_3d(ctx0, Vcur, d_head, n_head, n_patches); - // block_1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] - // hardswish - struct ggml_tensor * block_1_hw = ggml_hardswish(ctx0, block_1); + cb(Qcur, "Qcur", il); + cb(Kcur, "Kcur", il); + cb(Vcur, "Vcur", il); - block_1 = ggml_pool_2d(ctx0, block_1_hw, GGML_OP_POOL_AVG, block_1_hw->ne[0], block_1_hw->ne[1], block_1_hw->ne[0], block_1_hw->ne[1], 0, 0); - // block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] - // pointwise conv - block_1 = ggml_reshape_2d(ctx0, block_1, block_1->ne[0]*block_1->ne[1]*block_1->ne[2], block_1->ne[3]); - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_1_fc1_w, block_1); - block_1 = ggml_add(ctx0, block_1, model.mm_model_block_1_block_1_fc1_b); - block_1 = ggml_relu(ctx0, block_1); - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_1_fc2_w, block_1); - block_1 = ggml_add(ctx0, block_1, model.mm_model_block_1_block_1_fc2_b); - block_1 = ggml_hardsigmoid(ctx0, block_1); - // block_1_hw shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1], block_1 shape = [1, 2048], ne = [2048, 1, 1, 1] - block_1 = ggml_reshape_4d(ctx0, block_1, 1, 1, block_1->ne[0], block_1->ne[1]); - block_1 = ggml_mul(ctx0, block_1_hw, block_1); + // apply M-RoPE + Qcur = ggml_rope_multi( + ctx0, Qcur, positions, nullptr, + d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); + Kcur = ggml_rope_multi( + ctx0, Kcur, positions, nullptr, + d_head/2, mrope_sections, GGML_ROPE_TYPE_VISION, 32768, 10000, 1, 0, 1, 32, 1); - int w = block_1->ne[0], h = block_1->ne[1]; - block_1 = ggml_reshape_3d(ctx0, block_1, w*h, block_1->ne[2], block_1->ne[3]); - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 0, 2, 3)); + cb(Qcur, "Qcur_rope", il); + cb(Kcur, "Kcur_rope", il); - // block_1 shape = [1, 24*24, 2048], ne = [24*24, 2048, 1] - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_2_0_w, block_1); - block_1 = ggml_reshape_4d(ctx0, block_1, block_1->ne[0], w, h, block_1->ne[3]); + ggml_tensor * attn_mask = full_attn ? nullptr : window_mask; - // block_1 shape = [1, 24, 24, 2048], ne = [2048, 24, 24, 1] - block_1 = ggml_norm(ctx0, block_1, eps); - block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_1_block_2_1_w), model.mm_model_block_1_block_2_1_b); - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); - // block1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] - // residual - block_1 = ggml_add(ctx0, mlp_3, block_1); + cur = build_attn(layer.o_w, layer.o_b, + Qcur, Kcur, Vcur, attn_mask, kq_scale, il); + cb(cur, "attn_out", il); } - // block_2 - { - // stride = 2 - block_1 = ggml_conv_2d_dw(ctx0, model.mm_model_block_2_block_0_0_w, block_1, 2, 2, 1, 1, 1, 1); + // re-add the layer input, e.g., residual + cur = ggml_add(ctx0, cur, inpL); - // block_1 shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1] - // layer norm - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 2, 0, 3)); - // block_1 shape = [1, 12, 12, 2048], ne = [2048, 12, 12, 1] - block_1 = ggml_norm(ctx0, block_1, eps); - block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_2_block_0_1_w), model.mm_model_block_2_block_0_1_b); - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); - // block_1 shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1] - // hardswish - struct ggml_tensor * block_1_hw = ggml_hardswish(ctx0, block_1); + inpL = cur; // inpL = residual, cur = hidden_states - // not sure the parameters is right for globalAvgPooling - block_1 = ggml_pool_2d(ctx0, block_1_hw, GGML_OP_POOL_AVG, block_1_hw->ne[0], block_1_hw->ne[1], block_1_hw->ne[0], block_1_hw->ne[1], 0, 0); - // block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] - // pointwise conv - block_1 = ggml_reshape_2d(ctx0, block_1, block_1->ne[0]*block_1->ne[1]*block_1->ne[2], block_1->ne[3]); - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_1_fc1_w, block_1); - block_1 = ggml_add(ctx0, block_1, model.mm_model_block_2_block_1_fc1_b); - block_1 = ggml_relu(ctx0, block_1); - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_1_fc2_w, block_1); - block_1 = ggml_add(ctx0, block_1, model.mm_model_block_2_block_1_fc2_b); - block_1 = ggml_hardsigmoid(ctx0, block_1); + cb(cur, "ffn_inp", il); - // block_1_hw shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1], block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] - block_1 = ggml_reshape_4d(ctx0, block_1, 1, 1, block_1->ne[0], block_1->ne[1]); - block_1 = ggml_mul(ctx0, block_1_hw, block_1); + // layernorm2 + cur = build_norm(cur, layer.ln_2_w, layer.ln_2_b, norm_t, eps, il); + cb(cur, "ffn_inp_normed", il); - int w = block_1->ne[0], h = block_1->ne[1]; - block_1 = ggml_reshape_3d(ctx0, block_1, w*h, block_1->ne[2], block_1->ne[3]); - block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 0, 2, 3)); - // block_1 shape = [1, 24*24, 2048], ne = [24*24, 2048, 1] - block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_2_0_w, block_1); - block_1 = ggml_reshape_4d(ctx0, block_1, block_1->ne[0], w, h, block_1->ne[3]); + // ffn + cur = build_ffn(cur, + layer.ff_up_w, layer.ff_up_b, + layer.ff_gate_w, layer.ff_gate_b, + layer.ff_down_w, layer.ff_down_b, + hparams.ffn_op, il); + cb(cur, "ffn_out", il); - // block_1 shape = [1, 12, 12, 2048], ne = [2048, 12, 12, 1] - block_1 = ggml_norm(ctx0, block_1, eps); - block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_2_block_2_1_w), model.mm_model_block_2_block_2_1_b); - block_1 = ggml_reshape_3d(ctx0, block_1, block_1->ne[0], block_1->ne[1] * block_1->ne[2], block_1->ne[3]); - // block_1 shape = [1, 144, 2048], ne = [2048, 144, 1] - } - embeddings = block_1; - } - else if (ctx->proj_type == PROJECTOR_TYPE_LDPV2) - { - int n_patch = 24; - struct ggml_tensor * mlp_0 = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); - mlp_0 = ggml_add(ctx0, mlp_0, model.mm_model_mlp_0_b); - mlp_0 = ggml_gelu(ctx0, mlp_0); - struct ggml_tensor * mlp_2 = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, mlp_0); - mlp_2 = ggml_add(ctx0, mlp_2, model.mm_model_mlp_2_b); - // mlp_2 ne = [2048, 576, 1, 1] - // // AVG Pool Layer 2*2, strides = 2 - mlp_2 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_2, 1, 0, 2, 3)); - // mlp_2 ne = [576, 2048, 1, 1] - mlp_2 = ggml_reshape_4d(ctx0, mlp_2, n_patch, n_patch, mlp_2->ne[1], mlp_2->ne[2]); - // mlp_2 ne [24, 24, 2048, 1] - mlp_2 = ggml_pool_2d(ctx0, mlp_2, GGML_OP_POOL_AVG, 2, 2, 2, 2, 0, 0); - // weight ne = [3, 3, 2048, 1] - struct ggml_tensor * peg_0 = ggml_conv_2d_dw(ctx0, model.mm_model_peg_0_w, mlp_2, 1, 1, 1, 1, 1, 1); - peg_0 = ggml_cont(ctx0, ggml_permute(ctx0, peg_0, 1, 2, 0, 3)); - peg_0 = ggml_add(ctx0, peg_0, model.mm_model_peg_0_b); - mlp_2 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_2, 1, 2, 0, 3)); - peg_0 = ggml_add(ctx0, peg_0, mlp_2); - peg_0 = ggml_reshape_3d(ctx0, peg_0, peg_0->ne[0], peg_0->ne[1] * peg_0->ne[2], peg_0->ne[3]); - embeddings = peg_0; - } - else { - GGML_ABORT("fatal error"); - } - } - // minicpmv projector - else if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV) { - struct ggml_tensor * q = model.mm_model_query; - { // layernorm - q = ggml_norm(ctx0, q, eps); - q = ggml_add(ctx0, ggml_mul(ctx0, q, model.mm_model_ln_q_w), model.mm_model_ln_q_b); - } - struct ggml_tensor * v = ggml_mul_mat(ctx0, model.mm_model_kv_proj, embeddings); - { // layernorm - v = ggml_norm(ctx0, v, eps); - v = ggml_add(ctx0, ggml_mul(ctx0, v, model.mm_model_ln_kv_w), model.mm_model_ln_kv_b); - } - struct ggml_tensor * k; - { // position - // q = ggml_add(ctx0, q, model.mm_model_pos_embed); - k = ggml_add(ctx0, v, pos_embed); + // residual 2 + cur = ggml_add(ctx0, inpL, cur); + cb(cur, "layer_out", il); + + inpL = cur; } - { // attention - int n_embd = clip_n_mmproj_embd(ctx); - const int d_head = 128; - int n_head = n_embd/d_head; - int num_query = 96; - if (ctx->minicpmv_version == 2) { - num_query = 96; - } - else if (ctx->minicpmv_version == 3) { - num_query = 64; - } - else if (ctx->minicpmv_version == 4) { - num_query = 64; - } - - struct ggml_tensor * Q = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_q_w, q), model.mm_model_attn_q_b); - struct ggml_tensor * K = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_k_w, k), model.mm_model_attn_k_b); - struct ggml_tensor * V = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_v_w, v), model.mm_model_attn_v_b); - // permute - Q = ggml_reshape_4d(ctx0, Q, d_head, n_head, num_query, batch_size); - Q = ggml_cont(ctx0, ggml_permute(ctx0, Q, 0, 2, 1, 3)); - Q = ggml_reshape_3d(ctx0, Q, d_head, num_query, n_head * batch_size); - K = ggml_reshape_4d(ctx0, K, d_head, n_head, num_positions, batch_size); - K = ggml_cont(ctx0, ggml_permute(ctx0, K, 0, 2, 1, 3)); - K = ggml_reshape_3d(ctx0, K, d_head, num_positions, n_head * batch_size); - V = ggml_reshape_4d(ctx0, V, d_head, n_head, num_positions, batch_size); - V = ggml_cont(ctx0, ggml_permute(ctx0, V, 1, 2, 0, 3)); - V = ggml_reshape_3d(ctx0, V, num_positions, d_head, n_head * batch_size); - struct ggml_tensor * KQ = ggml_mul_mat(ctx0, K, Q); - KQ = ggml_soft_max_ext(ctx0, KQ, nullptr, 1.0f / sqrtf((float)d_head), 0.0f); - struct ggml_tensor * KQV = ggml_mul_mat(ctx0, V, KQ); - KQV = ggml_reshape_4d(ctx0, KQV, d_head, num_query, n_head, batch_size); - KQV = ggml_permute(ctx0, KQV, 0, 2, 1, 3); - KQV = ggml_cont_3d(ctx0, KQV, n_embd, num_query, batch_size); - - embeddings = ggml_add(ctx0, ggml_mul_mat(ctx0, model.mm_model_attn_o_w, KQV), model.mm_model_attn_o_b); + // post-layernorm + if (model.post_ln_w) { + inpL = build_norm(inpL, model.post_ln_w, model.post_ln_b, norm_t, eps, n_layer); } - { // layernorm - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_post_w), model.mm_model_ln_post_b); - } - embeddings = ggml_mul_mat(ctx0, model.mm_model_proj, embeddings); - } - // glm projector - else if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { - size_t gridsz = (size_t)sqrt(embeddings->ne[1]); - embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings,1,0,2,3)); - embeddings = ggml_reshape_3d(ctx0, embeddings, gridsz, gridsz, embeddings->ne[1]); - embeddings = ggml_conv_2d(ctx0, model.mm_model_adapter_conv_w, embeddings, 2, 2, 0, 0, 1, 1); - embeddings = ggml_reshape_3d(ctx0, embeddings,embeddings->ne[0]*embeddings->ne[1] , embeddings->ne[2], batch_size); - embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings, 1, 0, 2, 3)); - embeddings = ggml_add(ctx0, embeddings, model.mm_model_adapter_conv_b); - // GLU - { - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); - embeddings = ggml_norm(ctx0, embeddings, eps); - embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_q_w), model.mm_model_ln_q_b); - embeddings = ggml_gelu_inplace(ctx0, embeddings); - struct ggml_tensor * x = embeddings; - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, embeddings); - x = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w,x); - embeddings = ggml_silu_inplace(ctx0, embeddings); - embeddings = ggml_mul(ctx0, embeddings,x); - embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); - } - // arrangement of BOI/EOI token embeddings - // note: these embeddings are not present in text model, hence we cannot process them as text tokens - // see: https://huggingface.co/THUDM/glm-edge-v-2b/blob/main/siglip.py#L53 - { - embeddings = ggml_concat(ctx0, model.mm_glm_tok_boi, embeddings, 1); // BOI - embeddings = ggml_concat(ctx0, embeddings, model.mm_glm_tok_eoi, 1); // EOI - } - } - - else if (ctx->proj_type == PROJECTOR_TYPE_QWEN2VL) { - embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd * 4, num_positions / 4, batch_size); + // multimodal projection + ggml_tensor * embeddings = inpL; + embeddings = ggml_reshape_3d(ctx0, embeddings, n_embd * 4, n_pos / 4, batch_size); embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); @@ -1573,36 +748,885 @@ static ggml_cgraph * clip_image_build_graph_legacy(clip_ctx * ctx, const clip_im // Second linear layer embeddings = ggml_mul_mat(ctx0, model.mm_1_w, embeddings); embeddings = ggml_add(ctx0, embeddings, model.mm_1_b); + + if (use_window_attn) { + window_idx = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_pos / 4); + ggml_set_name(window_idx, "window_idx"); + ggml_set_input(window_idx); + + // embeddings shape: [n_embd, n_patches_x * n_patches_y, batch_size] + GGML_ASSERT(batch_size == 1); + embeddings = ggml_reshape_2d(ctx0, embeddings, hparams.projection_dim, n_patches_x * n_patches_y / 4); + embeddings = ggml_get_rows(ctx0, embeddings, window_idx); + embeddings = ggml_reshape_3d(ctx0, embeddings, hparams.projection_dim, n_patches_x * n_patches_y / 4, batch_size); + } + + // build the graph + ggml_build_forward_expand(gf, embeddings); + + return gf; } - // build the graph - ggml_build_forward_expand(gf, embeddings); + ggml_cgraph * build_minicpmv() { + const int batch_size = 1; - return gf; -} + GGML_ASSERT(model.class_embedding == nullptr); + const int n_pos = n_patches; + + // position embeddings for the projector (not for ViT) + int n_output_dim = clip_n_mmproj_embd(ctx); + ggml_tensor * pos_embed = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, n_output_dim, n_pos, batch_size); + ggml_set_name(pos_embed, "pos_embed"); + ggml_set_input(pos_embed); + + // for selecting learned pos embd, used by ViT + struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_pos); + ggml_set_name(positions, "positions"); + ggml_set_input(positions); + + ggml_tensor * learned_pos_embd = ggml_get_rows(ctx0, model.position_embeddings, positions); + + ggml_tensor * inp = build_inp(); + ggml_tensor * embeddings = build_vit( + inp, n_patches, + NORM_TYPE_NORMAL, + hparams.ffn_op, + learned_pos_embd, + nullptr); + + // resampler projector (it is just another transformer) + + ggml_tensor * q = model.mm_model_query; + ggml_tensor * v = ggml_mul_mat(ctx0, model.mm_model_kv_proj, embeddings); + + // norm + q = build_norm(q, model.mm_model_ln_q_w, model.mm_model_ln_q_b, NORM_TYPE_NORMAL, eps, -1); + v = build_norm(v, model.mm_model_ln_kv_w, model.mm_model_ln_kv_b, NORM_TYPE_NORMAL, eps, -1); + + // k = v + pos_embed + ggml_tensor * k = ggml_add(ctx0, v, pos_embed); + + // attention + { + int n_embd = clip_n_mmproj_embd(ctx); + const int d_head = 128; + int n_head = n_embd/d_head; + int num_query = 96; + if (ctx->minicpmv_version == 2) { + num_query = 96; + } else if (ctx->minicpmv_version == 3) { + num_query = 64; + } else if (ctx->minicpmv_version == 4) { + num_query = 64; + } + + ggml_tensor * Q = ggml_add(ctx0, + ggml_mul_mat(ctx0, model.mm_model_attn_q_w, q), + model.mm_model_attn_q_b); + ggml_tensor * K = ggml_add(ctx0, + ggml_mul_mat(ctx0, model.mm_model_attn_k_w, k), + model.mm_model_attn_k_b); + ggml_tensor * V = ggml_add(ctx0, + ggml_mul_mat(ctx0, model.mm_model_attn_v_w, v), + model.mm_model_attn_v_b); + + Q = ggml_reshape_3d(ctx0, Q, d_head, n_head, num_query); + K = ggml_reshape_3d(ctx0, K, d_head, n_head, n_pos); + V = ggml_reshape_3d(ctx0, V, d_head, n_head, n_pos); + + cb(Q, "resampler_Q", -1); + cb(K, "resampler_K", -1); + cb(V, "resampler_V", -1); + + embeddings = build_attn( + model.mm_model_attn_o_w, + model.mm_model_attn_o_b, + Q, K, V, nullptr, kq_scale, -1); + cb(embeddings, "resampler_attn_out", -1); + } + // layernorm + embeddings = build_norm(embeddings, model.mm_model_ln_post_w, model.mm_model_ln_post_b, NORM_TYPE_NORMAL, eps, -1); + + // projection + embeddings = ggml_mul_mat(ctx0, model.mm_model_proj, embeddings); + + // build the graph + ggml_build_forward_expand(gf, embeddings); + + return gf; + } + + // this graph is used by llava, granite and glm + // due to having embedding_stack (used by granite), we cannot reuse build_vit + ggml_cgraph * build_llava() { + const int batch_size = 1; + const int n_pos = n_patches + (model.class_embedding ? 1 : 0); + + GGML_ASSERT(n_patches_x == n_patches_y && "only square images supported"); + + // Calculate the deepest feature layer based on hparams and projector type + int max_feature_layer = n_layer; + { + // Get the index of the second to last layer; this is the default for models that have a llava projector + int il_last = hparams.n_layer - 1; + int deepest_feature_layer = -1; + + if (ctx->proj_type == PROJECTOR_TYPE_MINICPMV || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { + il_last += 1; + } + + // If we set explicit vision feature layers, only go up to the deepest one + // NOTE: only used by granite-vision models for now + for (const auto & feature_layer : hparams.vision_feature_layer) { + if (feature_layer > deepest_feature_layer) { + deepest_feature_layer = feature_layer; + } + } + max_feature_layer = deepest_feature_layer < 0 ? il_last : deepest_feature_layer; + } + + ggml_tensor * inp = build_inp(); + + if (model.patch_bias) { + inp = ggml_add(ctx0, inp, model.patch_bias); + } + + // concat class_embeddings and patch_embeddings + if (model.class_embedding) { + inp = ggml_concat(ctx0, inp, model.class_embedding, 1); + } + + ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_pos); + ggml_set_name(positions, "positions"); + ggml_set_input(positions); + + inp = ggml_add(ctx0, inp, ggml_get_rows(ctx0, model.position_embeddings, positions)); + + ggml_tensor * inpL = inp; + + // pre-layernorm + if (model.pre_ln_w) { + inpL = build_norm(inpL, model.pre_ln_w, model.pre_ln_b, NORM_TYPE_NORMAL, eps, -1); + cb(inpL, "pre_ln", -1); + } + + std::vector embedding_stack; + const auto & vision_feature_layer = hparams.vision_feature_layer; + + // loop over layers + for (int il = 0; il < max_feature_layer; il++) { + auto & layer = model.layers[il]; + ggml_tensor * cur = inpL; // inpL = residual, cur = hidden_states + + // If this is an embedding feature layer, save the output. + // NOTE: 0 index here refers to the input to the encoder. + if (vision_feature_layer.find(il) != vision_feature_layer.end()) { + embedding_stack.push_back(cur); + } + + // layernorm1 + cur = build_norm(cur, layer.ln_1_w, layer.ln_1_b, NORM_TYPE_NORMAL, eps, il); + cb(cur, "layer_inp_normed", il); + + // self-attention + { + ggml_tensor * Qcur = ggml_mul_mat(ctx0, layer.q_w, cur); + if (layer.q_b) { + Qcur = ggml_add(ctx0, Qcur, layer.q_b); + } + + ggml_tensor * Kcur = ggml_mul_mat(ctx0, layer.k_w, cur); + if (layer.k_b) { + Kcur = ggml_add(ctx0, Kcur, layer.k_b); + } + + ggml_tensor * Vcur = ggml_mul_mat(ctx0, layer.v_w, cur); + if (layer.v_b) { + Vcur = ggml_add(ctx0, Vcur, layer.v_b); + } + + Qcur = ggml_reshape_3d(ctx0, Qcur, d_head, n_head, n_pos); + Kcur = ggml_reshape_3d(ctx0, Kcur, d_head, n_head, n_pos); + Vcur = ggml_reshape_3d(ctx0, Vcur, d_head, n_head, n_pos); + + cb(Qcur, "Qcur", il); + cb(Kcur, "Kcur", il); + cb(Vcur, "Vcur", il); + + cur = build_attn(layer.o_w, layer.o_b, + Qcur, Kcur, Vcur, nullptr, kq_scale, il); + cb(cur, "attn_out", il); + } + + // re-add the layer input, e.g., residual + cur = ggml_add(ctx0, cur, inpL); + + inpL = cur; // inpL = residual, cur = hidden_states + + cb(cur, "ffn_inp", il); + + // layernorm2 + cur = build_norm(cur, layer.ln_2_w, layer.ln_2_b, NORM_TYPE_NORMAL, eps, il); + cb(cur, "ffn_inp_normed", il); + + // ffn + cur = build_ffn(cur, + layer.ff_up_w, layer.ff_up_b, + layer.ff_gate_w, layer.ff_gate_b, + layer.ff_down_w, layer.ff_down_b, + hparams.ffn_op, il); + + cb(cur, "ffn_out", il); + + // residual 2 + cur = ggml_add(ctx0, inpL, cur); + cb(cur, "layer_out", il); + + inpL = cur; + } + + // post-layernorm + if (model.post_ln_w) { + inpL = build_norm(inpL, model.post_ln_w, model.post_ln_b, NORM_TYPE_NORMAL, eps, -1); + } + + ggml_tensor * embeddings = inpL; + + // process vision feature layers (used by granite) + { + // final layer is a vision feature layer + if (vision_feature_layer.find(max_feature_layer) != vision_feature_layer.end()) { + embedding_stack.push_back(inpL); + } + + // If feature layers are explicitly set, stack them (if we have multiple) + if (!embedding_stack.empty()) { + embeddings = embedding_stack[0]; + for (size_t i = 1; i < embedding_stack.size(); i++) { + embeddings = ggml_concat(ctx0, embeddings, embedding_stack[i], 0); + } + } + } + + // llava projector (also used by granite) + if (ctx->has_llava_projector) { + embeddings = ggml_reshape_2d(ctx0, embeddings, embeddings->ne[0], embeddings->ne[1]); + + ggml_tensor * patches = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, n_patches); + ggml_set_name(patches, "patches"); + ggml_set_input(patches); + + // shape [1, 576, 1024] + // ne is whcn, ne = [1024, 576, 1, 1] + embeddings = ggml_get_rows(ctx0, embeddings, patches); + + // print_tensor_info(embeddings, "embeddings"); + + // llava projector + if (ctx->proj_type == PROJECTOR_TYPE_MLP) { + embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); + + embeddings = ggml_gelu(ctx0, embeddings); + if (model.mm_2_w) { + embeddings = ggml_mul_mat(ctx0, model.mm_2_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_2_b); + } + } + else if (ctx->proj_type == PROJECTOR_TYPE_MLP_NORM) { + embeddings = ggml_mul_mat(ctx0, model.mm_0_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_0_b); + // ggml_tensor_printf(embeddings, "mm_0_w",0,true,false); + // First LayerNorm + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_1_w), + model.mm_1_b); + + // GELU activation + embeddings = ggml_gelu(ctx0, embeddings); + + // Second linear layer + embeddings = ggml_mul_mat(ctx0, model.mm_3_w, embeddings); + embeddings = ggml_add(ctx0, embeddings, model.mm_3_b); + + // Second LayerNorm + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_4_w), + model.mm_4_b); + } + else if (ctx->proj_type == PROJECTOR_TYPE_LDP) { + // MobileVLM projector + int n_patch = 24; + ggml_tensor * mlp_1 = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w, embeddings); + mlp_1 = ggml_add(ctx0, mlp_1, model.mm_model_mlp_1_b); + mlp_1 = ggml_gelu(ctx0, mlp_1); + ggml_tensor * mlp_3 = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, mlp_1); + mlp_3 = ggml_add(ctx0, mlp_3, model.mm_model_mlp_3_b); + // mlp_3 shape = [1, 576, 2048], ne = [2048, 576, 1, 1] + + // block 1 + ggml_tensor * block_1 = nullptr; + { + // transpose from [1, 576, 2048] --> [1, 2048, 576] --> [1, 2048, 24, 24] + mlp_3 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_3, 1, 0, 2, 3)); + mlp_3 = ggml_reshape_4d(ctx0, mlp_3, n_patch, n_patch, mlp_3->ne[1], mlp_3->ne[2]); + // stride = 1, padding = 1, bias is nullptr + block_1 = ggml_conv_2d_dw(ctx0, model.mm_model_block_1_block_0_0_w, mlp_3, 1, 1, 1, 1, 1, 1); + + // layer norm + // // block_1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 2, 0, 3)); + // block_1 shape = [1, 24, 24, 2048], ne = [2048, 24, 24, 1] + block_1 = ggml_norm(ctx0, block_1, eps); + block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_1_block_0_1_w), model.mm_model_block_1_block_0_1_b); + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); + + // block_1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] + // hardswish + ggml_tensor * block_1_hw = ggml_hardswish(ctx0, block_1); + + block_1 = ggml_pool_2d(ctx0, block_1_hw, GGML_OP_POOL_AVG, block_1_hw->ne[0], block_1_hw->ne[1], block_1_hw->ne[0], block_1_hw->ne[1], 0, 0); + // block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] + // pointwise conv + block_1 = ggml_reshape_2d(ctx0, block_1, block_1->ne[0]*block_1->ne[1]*block_1->ne[2], block_1->ne[3]); + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_1_fc1_w, block_1); + block_1 = ggml_add(ctx0, block_1, model.mm_model_block_1_block_1_fc1_b); + block_1 = ggml_relu(ctx0, block_1); + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_1_fc2_w, block_1); + block_1 = ggml_add(ctx0, block_1, model.mm_model_block_1_block_1_fc2_b); + block_1 = ggml_hardsigmoid(ctx0, block_1); + // block_1_hw shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1], block_1 shape = [1, 2048], ne = [2048, 1, 1, 1] + block_1 = ggml_reshape_4d(ctx0, block_1, 1, 1, block_1->ne[0], block_1->ne[1]); + block_1 = ggml_mul(ctx0, block_1_hw, block_1); + + int w = block_1->ne[0], h = block_1->ne[1]; + block_1 = ggml_reshape_3d(ctx0, block_1, w*h, block_1->ne[2], block_1->ne[3]); + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 0, 2, 3)); + + // block_1 shape = [1, 24*24, 2048], ne = [24*24, 2048, 1] + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_1_block_2_0_w, block_1); + block_1 = ggml_reshape_4d(ctx0, block_1, block_1->ne[0], w, h, block_1->ne[3]); + + // block_1 shape = [1, 24, 24, 2048], ne = [2048, 24, 24, 1] + block_1 = ggml_norm(ctx0, block_1, eps); + block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_1_block_2_1_w), model.mm_model_block_1_block_2_1_b); + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); + // block1 shape = [1, 2048, 24, 24], ne = [24, 24, 2048, 1] + // residual + block_1 = ggml_add(ctx0, mlp_3, block_1); + } + + // block_2 + { + // stride = 2 + block_1 = ggml_conv_2d_dw(ctx0, model.mm_model_block_2_block_0_0_w, block_1, 2, 2, 1, 1, 1, 1); + + // block_1 shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1] + // layer norm + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 2, 0, 3)); + // block_1 shape = [1, 12, 12, 2048], ne = [2048, 12, 12, 1] + block_1 = ggml_norm(ctx0, block_1, eps); + block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_2_block_0_1_w), model.mm_model_block_2_block_0_1_b); + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 2, 0, 1, 3)); + // block_1 shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1] + // hardswish + ggml_tensor * block_1_hw = ggml_hardswish(ctx0, block_1); + + // not sure the parameters is right for globalAvgPooling + block_1 = ggml_pool_2d(ctx0, block_1_hw, GGML_OP_POOL_AVG, block_1_hw->ne[0], block_1_hw->ne[1], block_1_hw->ne[0], block_1_hw->ne[1], 0, 0); + // block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] + // pointwise conv + block_1 = ggml_reshape_2d(ctx0, block_1, block_1->ne[0]*block_1->ne[1]*block_1->ne[2], block_1->ne[3]); + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_1_fc1_w, block_1); + block_1 = ggml_add(ctx0, block_1, model.mm_model_block_2_block_1_fc1_b); + block_1 = ggml_relu(ctx0, block_1); + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_1_fc2_w, block_1); + block_1 = ggml_add(ctx0, block_1, model.mm_model_block_2_block_1_fc2_b); + block_1 = ggml_hardsigmoid(ctx0, block_1); + + // block_1_hw shape = [1, 2048, 12, 12], ne = [12, 12, 2048, 1], block_1 shape = [1, 2048, 1, 1], ne = [1, 1, 2048, 1] + block_1 = ggml_reshape_4d(ctx0, block_1, 1, 1, block_1->ne[0], block_1->ne[1]); + block_1 = ggml_mul(ctx0, block_1_hw, block_1); + + int w = block_1->ne[0], h = block_1->ne[1]; + block_1 = ggml_reshape_3d(ctx0, block_1, w*h, block_1->ne[2], block_1->ne[3]); + block_1 = ggml_cont(ctx0, ggml_permute(ctx0, block_1, 1, 0, 2, 3)); + // block_1 shape = [1, 24*24, 2048], ne = [24*24, 2048, 1] + block_1 = ggml_mul_mat(ctx0, model.mm_model_block_2_block_2_0_w, block_1); + block_1 = ggml_reshape_4d(ctx0, block_1, block_1->ne[0], w, h, block_1->ne[3]); + + + // block_1 shape = [1, 12, 12, 2048], ne = [2048, 12, 12, 1] + block_1 = ggml_norm(ctx0, block_1, eps); + block_1 = ggml_add(ctx0, ggml_mul(ctx0, block_1, model.mm_model_block_2_block_2_1_w), model.mm_model_block_2_block_2_1_b); + block_1 = ggml_reshape_3d(ctx0, block_1, block_1->ne[0], block_1->ne[1] * block_1->ne[2], block_1->ne[3]); + // block_1 shape = [1, 144, 2048], ne = [2048, 144, 1] + } + embeddings = block_1; + } + else if (ctx->proj_type == PROJECTOR_TYPE_LDPV2) + { + int n_patch = 24; + ggml_tensor * mlp_0 = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); + mlp_0 = ggml_add(ctx0, mlp_0, model.mm_model_mlp_0_b); + mlp_0 = ggml_gelu(ctx0, mlp_0); + ggml_tensor * mlp_2 = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, mlp_0); + mlp_2 = ggml_add(ctx0, mlp_2, model.mm_model_mlp_2_b); + // mlp_2 ne = [2048, 576, 1, 1] + // // AVG Pool Layer 2*2, strides = 2 + mlp_2 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_2, 1, 0, 2, 3)); + // mlp_2 ne = [576, 2048, 1, 1] + mlp_2 = ggml_reshape_4d(ctx0, mlp_2, n_patch, n_patch, mlp_2->ne[1], mlp_2->ne[2]); + // mlp_2 ne [24, 24, 2048, 1] + mlp_2 = ggml_pool_2d(ctx0, mlp_2, GGML_OP_POOL_AVG, 2, 2, 2, 2, 0, 0); + // weight ne = [3, 3, 2048, 1] + ggml_tensor * peg_0 = ggml_conv_2d_dw(ctx0, model.mm_model_peg_0_w, mlp_2, 1, 1, 1, 1, 1, 1); + peg_0 = ggml_cont(ctx0, ggml_permute(ctx0, peg_0, 1, 2, 0, 3)); + peg_0 = ggml_add(ctx0, peg_0, model.mm_model_peg_0_b); + mlp_2 = ggml_cont(ctx0, ggml_permute(ctx0, mlp_2, 1, 2, 0, 3)); + peg_0 = ggml_add(ctx0, peg_0, mlp_2); + peg_0 = ggml_reshape_3d(ctx0, peg_0, peg_0->ne[0], peg_0->ne[1] * peg_0->ne[2], peg_0->ne[3]); + embeddings = peg_0; + } + else { + GGML_ABORT("fatal error"); + } + } + + // glm projector + else if (ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { + size_t gridsz = (size_t)sqrt(embeddings->ne[1]); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings,1,0,2,3)); + embeddings = ggml_reshape_3d(ctx0, embeddings, gridsz, gridsz, embeddings->ne[1]); + embeddings = ggml_conv_2d(ctx0, model.mm_model_adapter_conv_w, embeddings, 2, 2, 0, 0, 1, 1); + embeddings = ggml_reshape_3d(ctx0, embeddings,embeddings->ne[0]*embeddings->ne[1] , embeddings->ne[2], batch_size); + embeddings = ggml_cont(ctx0, ggml_permute(ctx0,embeddings, 1, 0, 2, 3)); + embeddings = ggml_add(ctx0, embeddings, model.mm_model_adapter_conv_b); + // GLU + { + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_0_w, embeddings); + embeddings = ggml_norm(ctx0, embeddings, eps); + embeddings = ggml_add(ctx0, ggml_mul(ctx0, embeddings, model.mm_model_ln_q_w), model.mm_model_ln_q_b); + embeddings = ggml_gelu_inplace(ctx0, embeddings); + ggml_tensor * x = embeddings; + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_2_w, embeddings); + x = ggml_mul_mat(ctx0, model.mm_model_mlp_1_w,x); + embeddings = ggml_silu_inplace(ctx0, embeddings); + embeddings = ggml_mul(ctx0, embeddings,x); + embeddings = ggml_mul_mat(ctx0, model.mm_model_mlp_3_w, embeddings); + } + // arrangement of BOI/EOI token embeddings + // note: these embeddings are not present in text model, hence we cannot process them as text tokens + // see: https://huggingface.co/THUDM/glm-edge-v-2b/blob/main/siglip.py#L53 + { + embeddings = ggml_concat(ctx0, model.mm_glm_tok_boi, embeddings, 1); // BOI + embeddings = ggml_concat(ctx0, embeddings, model.mm_glm_tok_eoi, 1); // EOI + } + } + + else { + GGML_ABORT("llava: unknown projector type"); + } + + // build the graph + ggml_build_forward_expand(gf, embeddings); + + return gf; + } + +private: + // + // utility functions + // + + void cb(ggml_tensor * cur, const char * name, int il) const { + // TODO: implement this + GGML_UNUSED(cur); + GGML_UNUSED(name); + GGML_UNUSED(il); + } + + // build vision transformer (ViT) cgraph + // this function should cover most of the models + // if your model has specific features, you should probably duplicate this function + ggml_tensor * build_vit( + ggml_tensor * inp, + int64_t n_pos, + norm_type norm_t, + ffn_op_type ffn_t, + ggml_tensor * learned_pos_embd, + std::function add_pos + ) { + if (model.patch_bias) { + inp = ggml_add(ctx0, inp, model.patch_bias); + cb(inp, "patch_bias", -1); + } + + if (learned_pos_embd) { + inp = ggml_add(ctx0, inp, learned_pos_embd); + cb(inp, "pos_embed", -1); + } + + ggml_tensor * inpL = inp; + + // pre-layernorm + if (model.pre_ln_w) { + inpL = build_norm(inpL, model.pre_ln_w, model.pre_ln_b, norm_t, eps, -1); + cb(inpL, "pre_ln", -1); + } + + // loop over layers + for (int il = 0; il < n_layer; il++) { + auto & layer = model.layers[il]; + ggml_tensor * cur = inpL; // inpL = residual, cur = hidden_states + + // layernorm1 + cur = build_norm(cur, layer.ln_1_w, layer.ln_1_b, norm_t, eps, il); + cb(cur, "layer_inp_normed", il); + + // self-attention + { + ggml_tensor * Qcur = ggml_mul_mat(ctx0, layer.q_w, cur); + if (layer.q_b) { + Qcur = ggml_add(ctx0, Qcur, layer.q_b); + } + + ggml_tensor * Kcur = ggml_mul_mat(ctx0, layer.k_w, cur); + if (layer.k_b) { + Kcur = ggml_add(ctx0, Kcur, layer.k_b); + } + + ggml_tensor * Vcur = ggml_mul_mat(ctx0, layer.v_w, cur); + if (layer.v_b) { + Vcur = ggml_add(ctx0, Vcur, layer.v_b); + } + + Qcur = ggml_reshape_3d(ctx0, Qcur, d_head, n_head, n_pos); + Kcur = ggml_reshape_3d(ctx0, Kcur, d_head, n_head, n_pos); + Vcur = ggml_reshape_3d(ctx0, Vcur, d_head, n_head, n_pos); + + cb(Qcur, "Qcur", il); + cb(Kcur, "Kcur", il); + cb(Vcur, "Vcur", il); + + if (add_pos) { + Qcur = add_pos(Qcur, layer); + Kcur = add_pos(Kcur, layer); + cb(Qcur, "Qcur_pos", il); + cb(Kcur, "Kcur_pos", il); + } + + cur = build_attn(layer.o_w, layer.o_b, + Qcur, Kcur, Vcur, nullptr, kq_scale, il); + cb(cur, "attn_out", il); + } + + // re-add the layer input, e.g., residual + cur = ggml_add(ctx0, cur, inpL); + + inpL = cur; // inpL = residual, cur = hidden_states + + cb(cur, "ffn_inp", il); + + // layernorm2 + cur = build_norm(cur, layer.ln_2_w, layer.ln_2_b, norm_t, eps, il); + cb(cur, "ffn_inp_normed", il); + + // ffn + cur = build_ffn(cur, + layer.ff_up_w, layer.ff_up_b, + layer.ff_gate_w, layer.ff_gate_b, + layer.ff_down_w, layer.ff_down_b, + ffn_t, il); + + cb(cur, "ffn_out", il); + + // residual 2 + cur = ggml_add(ctx0, inpL, cur); + cb(cur, "layer_out", il); + + inpL = cur; + } + + // post-layernorm + if (model.post_ln_w) { + inpL = build_norm(inpL, model.post_ln_w, model.post_ln_b, norm_t, eps, -1); + } + return inpL; + } + + // build the input after conv2d (inp_raw --> patches) + // returns tensor with shape [n_embd, n_patches] + ggml_tensor * build_inp() { + ggml_tensor * inp_raw = build_inp_raw(); + ggml_tensor * inp = ggml_conv_2d(ctx0, model.patch_embeddings_0, inp_raw, patch_size, patch_size, 0, 0, 1, 1); + inp = ggml_reshape_2d(ctx0, inp, n_patches, n_embd); + inp = ggml_cont(ctx0, ggml_transpose(ctx0, inp)); + return inp; + } + + ggml_tensor * build_inp_raw() { + ggml_tensor * inp_raw = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, img.nx, img.ny, 3); + ggml_set_name(inp_raw, "inp_raw"); + ggml_set_input(inp_raw); + return inp_raw; + } + + ggml_tensor * build_norm( + ggml_tensor * cur, + ggml_tensor * mw, + ggml_tensor * mb, + norm_type type, + float norm_eps, + int il) const { + + cur = type == NORM_TYPE_RMS + ? ggml_rms_norm(ctx0, cur, norm_eps) + : ggml_norm(ctx0, cur, norm_eps); + + if (mw || mb) { + cb(cur, "norm", il); + } + + if (mw) { + cur = ggml_mul(ctx0, cur, mw); + if (mb) { + cb(cur, "norm_w", il); + } + } + + if (mb) { + cur = ggml_add(ctx0, cur, mb); + } + + return cur; + } + + ggml_tensor * build_ffn( + ggml_tensor * cur, + ggml_tensor * up, + ggml_tensor * up_b, + ggml_tensor * gate, + ggml_tensor * gate_b, + ggml_tensor * down, + ggml_tensor * down_b, + ffn_op_type type_op, + int il) const { + + ggml_tensor * tmp = up ? ggml_mul_mat(ctx0, up, cur) : cur; + cb(tmp, "ffn_up", il); + + if (up_b) { + tmp = ggml_add(ctx0, tmp, up_b); + cb(tmp, "ffn_up_b", il); + } + + if (gate) { + cur = ggml_mul_mat(ctx0, gate, cur); + cb(cur, "ffn_gate", il); + + if (gate_b) { + cur = ggml_add(ctx0, cur, gate_b); + cb(cur, "ffn_gate_b", il); + } + } else { + cur = tmp; + } + + switch (type_op) { + case FFN_SILU: + { + cur = ggml_silu(ctx0, cur); + cb(cur, "ffn_silu", il); + } break; + case FFN_GELU: + { + cur = ggml_gelu(ctx0, cur); + cb(cur, "ffn_gelu", il); + } break; + case FFN_GELU_QUICK: + { + cur = ggml_gelu_quick(ctx0, cur); + cb(cur, "ffn_relu", il); + } break; + } + + // we only support parallel ffn for now + if (gate) { + cur = ggml_mul(ctx0, cur, tmp); + cb(cur, "ffn_gate_par", il); + } + + if (down) { + cur = ggml_mul_mat(ctx0, down, cur); + } + + if (down_b) { + cb(cur, "ffn_down", il); + } + + if (down_b) { + cur = ggml_add(ctx0, cur, down_b); + } + + return cur; + } + + ggml_tensor * build_attn( + ggml_tensor * wo, + ggml_tensor * wo_b, + ggml_tensor * q_cur, + ggml_tensor * k_cur, + ggml_tensor * v_cur, + ggml_tensor * kq_mask, + float kq_scale, + int il) const { + // these nodes are added to the graph together so that they are not reordered + // by doing so, the number of splits in the graph is reduced + ggml_build_forward_expand(gf, q_cur); + ggml_build_forward_expand(gf, k_cur); + ggml_build_forward_expand(gf, v_cur); + + ggml_tensor * q = ggml_permute(ctx0, q_cur, 0, 2, 1, 3); + //cb(q, "q", il); + + ggml_tensor * k = ggml_permute(ctx0, k_cur, 0, 2, 1, 3); + //cb(k, "k", il); + + ggml_tensor * v = ggml_permute(ctx0, v_cur, 1, 2, 0, 3); + v = ggml_cont(ctx0, v); + //cb(k, "v", il); + + ggml_tensor * cur; + + // TODO @ngxson : support flash attention + { + const auto n_tokens = q->ne[1]; + const auto n_head = q->ne[2]; + // const auto n_kv = k->ne[1]; // for flash attention + + ggml_tensor * kq = ggml_mul_mat(ctx0, k, q); + // F32 may not needed for vision encoders? + // ggml_mul_mat_set_prec(kq, GGML_PREC_F32); + + kq = ggml_soft_max_ext(ctx0, kq, kq_mask, kq_scale, 0.0f); + + ggml_tensor * kqv = ggml_mul_mat(ctx0, v, kq); + cur = ggml_permute(ctx0, kqv, 0, 2, 1, 3); + cur = ggml_cont_2d(ctx0, cur, cur->ne[0]*n_head, n_tokens); + } + + cb(cur, "kqv_out", il); + + if (wo) { + cur = ggml_mul_mat(ctx0, wo, cur); + } + + if (wo_b) { + cur = ggml_add(ctx0, cur, wo_b); + } + + return cur; + } + + // implementation of the 2D RoPE without adding a new op in ggml + // this is not efficient (use double the memory), but works on all backends + // TODO: there was a more efficient which relies on ggml_view and ggml_rope_ext_inplace, but the rope inplace does not work well with non-contiguous tensors ; we should fix that and revert back to the original implementation in https://github.com/ggml-org/llama.cpp/pull/13065 + static ggml_tensor * build_rope_2d( + ggml_context * ctx0, + ggml_tensor * cur, + ggml_tensor * pos_h, + ggml_tensor * pos_w, + const float freq_base + ) { + const int64_t n_dim = cur->ne[0]; + const int64_t n_head = cur->ne[1]; + const int64_t n_pos = cur->ne[2]; + + // for example, if we have cur tensor of shape (n_dim=8, n_head, n_pos) + // we will have a list of 4 inv_freq: 1e-0, 1e-1, 1e-2, 1e-3 + // first half of cur will use 1e-0, 1e-2 (even) + // second half of cur will use 1e-1, 1e-3 (odd) + // the trick here is to rotate just half of n_dim, so inv_freq will automatically be even + // ^ don't ask me why, it's math! -2(2i) / n_dim == -2i / (n_dim/2) + // then for the second half, we use freq_scale to shift the inv_freq + // ^ why? replace (2i) with (2i+1) in the above equation + const float freq_scale_odd = std::pow(freq_base, (float)-2/n_dim); + + // first half + ggml_tensor * first; + { + first = ggml_view_3d(ctx0, cur, + n_dim/2, n_head, n_pos, + ggml_row_size(cur->type, n_dim), + ggml_row_size(cur->type, n_dim*n_head), + 0); + first = ggml_rope_ext( + ctx0, + first, + pos_h, // positions + nullptr, // freq factors + n_dim/2, // n_dims + 0, 0, freq_base, + 1.0f, 0.0f, 1.0f, 0.0f, 0.0f + ); + } + + // second half + ggml_tensor * second; + { + second = ggml_view_3d(ctx0, cur, + n_dim/2, n_head, n_pos, + ggml_row_size(cur->type, n_dim), + ggml_row_size(cur->type, n_dim*n_head), + n_dim/2 * ggml_element_size(cur)); + second = ggml_cont(ctx0, second); // copy, because ggml_rope don't play well with non-contiguous tensors + second = ggml_rope_ext( + ctx0, + second, + pos_w, // positions + nullptr, // freq factors + n_dim/2, // n_dims + 0, 0, freq_base, + freq_scale_odd, + 0.0f, 1.0f, 0.0f, 0.0f + ); + } + + cur = ggml_concat(ctx0, first, second, 0); + return cur; + } + +}; + +static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32_batch & imgs) { + GGML_ASSERT(imgs.entries.size() == 1 && "n_batch > 1 is not supported"); + clip_graph graph(ctx, *imgs.entries[0]); -static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32_batch & imgs, struct clip_image_size load_image_size, bool is_inf = false) { ggml_cgraph * res; + switch (ctx->proj_type) { case PROJECTOR_TYPE_GEMMA3: case PROJECTOR_TYPE_IDEFICS3: { - GGML_ASSERT(imgs.entries.size() == 1); - res = clip_image_build_graph_siglip(ctx, *imgs.entries[0]); + res = graph.build_siglip(); } break; case PROJECTOR_TYPE_PIXTRAL: { - GGML_ASSERT(imgs.entries.size() == 1); - res = clip_image_build_graph_pixtral(ctx, *imgs.entries[0]); + res = graph.build_pixtral(); } break; + case PROJECTOR_TYPE_QWEN2VL: case PROJECTOR_TYPE_QWEN25VL: { - res = clip_image_build_graph_qwen25vl(ctx, imgs); + res = graph.build_qwen2vl(); + } break; + case PROJECTOR_TYPE_MINICPMV: + { + res = graph.build_minicpmv(); } break; default: { - // TODO: we should have one build_* function per model - res = clip_image_build_graph_legacy(ctx, imgs, load_image_size, is_inf); + res = graph.build_llava(); } break; } return res; @@ -1656,7 +1680,7 @@ struct clip_model_loader { const char * name = gguf_get_tensor_name(ctx_gguf.get(), i); const size_t offset = gguf_get_tensor_offset(ctx_gguf.get(), i); enum ggml_type type = gguf_get_tensor_type(ctx_gguf.get(), i); - struct ggml_tensor * cur = ggml_get_tensor(meta, name); + ggml_tensor * cur = ggml_get_tensor(meta, name); size_t tensor_size = ggml_nbytes(cur); model_size += tensor_size; LOG_DBG("%s: tensor[%d]: n_dims = %d, name = %s, tensor_size=%zu, offset=%zu, shape:[%" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 "], type = %s\n", @@ -1667,6 +1691,7 @@ struct clip_model_loader { void load_hparams() { auto & hparams = ctx_clip.vision_model.hparams; + std::string log_ffn_op; // for logging // projector type std::string proj_type; @@ -1682,10 +1707,7 @@ struct clip_model_loader { // other hparams { - get_i32(KEY_MINICPMV_VERSION, ctx_clip.minicpmv_version, false); - - get_bool(KEY_USE_GELU, ctx_clip.use_gelu, false); - get_bool(KEY_USE_SILU, ctx_clip.use_silu, false); + get_i32(KEY_MINICPMV_VERSION, ctx_clip.minicpmv_version, false); // legacy get_u32(KEY_N_EMBD, hparams.n_embd); get_u32(KEY_N_HEAD, hparams.n_head); @@ -1703,6 +1725,26 @@ struct clip_model_loader { || ctx_clip.proj_type == PROJECTOR_TYPE_LDP || ctx_clip.proj_type == PROJECTOR_TYPE_LDPV2; + { + bool use_gelu = false; + bool use_silu = false; + get_bool(KEY_USE_GELU, use_gelu, false); + get_bool(KEY_USE_SILU, use_silu, false); + if (use_gelu && use_silu) { + throw std::runtime_error(string_format("%s: both use_gelu and use_silu are set to true\n", __func__)); + } + if (use_gelu) { + hparams.ffn_op = FFN_GELU; + log_ffn_op = "gelu"; + } else if (use_silu) { + hparams.ffn_op = FFN_SILU; + log_ffn_op = "silu"; + } else { + hparams.ffn_op = FFN_GELU_QUICK; + log_ffn_op = "gelu_quick"; + } + } + { std::string mm_patch_merge_type; get_string(KEY_MM_PATCH_MERGE_TYPE, mm_patch_merge_type, false); @@ -1736,30 +1778,6 @@ struct clip_model_loader { hparams.vision_feature_layer.insert(layer); } - // Calculate the deepest feature layer based on hparams and projector type - // NOTE: This is only used by build_graph_legacy() - { - // Get the index of the second to last layer; this is the default for models that have a llava projector - int n_layer = hparams.n_layer - 1; - int deepest_feature_layer = -1; - - if (ctx_clip.proj_type == PROJECTOR_TYPE_MINICPMV - || ctx_clip.proj_type == PROJECTOR_TYPE_GLM_EDGE - || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN2VL - || ctx_clip.proj_type == PROJECTOR_TYPE_QWEN25VL) { - n_layer += 1; - } - - // If we set explicit vision feature layers, only go up to the deepest one - // NOTE: only used by granite-vision models for now - for (const auto & feature_layer : hparams.vision_feature_layer) { - if (feature_layer > deepest_feature_layer) { - deepest_feature_layer = feature_layer; - } - } - ctx_clip.max_feature_layer = deepest_feature_layer < 0 ? n_layer : deepest_feature_layer; - } - // model-specific params switch (ctx_clip.proj_type) { case PROJECTOR_TYPE_MINICPMV: @@ -1777,6 +1795,14 @@ struct clip_model_loader { hparams.rope_theta = 10000.0f; get_u32(KEY_SPATIAL_MERGE_SIZE, hparams.spatial_merge_size, false); } break; + case PROJECTOR_TYPE_GEMMA3: + { + // default value (used by all model sizes in gemma 3 family) + // number of patches for each **side** is reduced by a factor of 4 + hparams.proj_scale_factor = 4; + // test model (tinygemma3) has a different value, we optionally read it + get_u32(KEY_PROJ_SCALE_FACTOR, hparams.proj_scale_factor, false); + } break; case PROJECTOR_TYPE_QWEN25VL: { get_u32(KEY_WIN_ATTN_PATTERN, hparams.n_wa_pattern); @@ -1786,12 +1812,19 @@ struct clip_model_loader { } LOG_INF("%s: projector: %s\n", __func__, proj_type.c_str()); + LOG_INF("%s: n_embd: %d\n", __func__, hparams.n_embd); + LOG_INF("%s: n_head: %d\n", __func__, hparams.n_head); + LOG_INF("%s: n_ff: %d\n", __func__, hparams.n_ff); + LOG_INF("%s: n_layer: %d\n", __func__, hparams.n_layer); + LOG_INF("%s: projection_dim: %d\n", __func__, hparams.projection_dim); + LOG_INF("%s: image_size: %d\n", __func__, hparams.image_size); + LOG_INF("%s: patch_size: %d\n", __func__, hparams.patch_size); + LOG_INF("\n"); LOG_INF("%s: has_llava_proj: %d\n", __func__, ctx_clip.has_llava_projector); LOG_INF("%s: minicpmv_version: %d\n", __func__, ctx_clip.minicpmv_version); LOG_INF("%s: proj_scale_factor: %d\n", __func__, hparams.proj_scale_factor); LOG_INF("%s: n_wa_pattern: %d\n", __func__, hparams.n_wa_pattern); - LOG_INF("%s: use_silu: %d\n", __func__, ctx_clip.use_silu); - LOG_INF("%s: use_gelu: %d\n", __func__, ctx_clip.use_gelu); + LOG_INF("%s: ffn_op: %s\n", __func__, log_ffn_op.c_str()); LOG_INF("%s: model size: %.2f MiB\n", __func__, model_size / 1024.0 / 1024.0); LOG_INF("%s: metadata size: %.2f MiB\n", __func__, ggml_get_mem_size(ctx_meta.get()) / 1024.0 / 1024.0); } @@ -1821,14 +1854,14 @@ struct clip_model_loader { // helper function auto get_tensor = [&](const std::string & name, bool required = true) { - struct ggml_tensor * cur = ggml_get_tensor(ctx_meta.get(), name.c_str()); + ggml_tensor * cur = ggml_get_tensor(ctx_meta.get(), name.c_str()); if (!cur && required) { throw std::runtime_error(string_format("%s: unable to find tensor %s\n", __func__, name.c_str())); } if (cur) { tensors_to_load.push_back(cur); // add tensors to context - struct ggml_tensor * data_tensor = ggml_dup_tensor(ctx_clip.ctx_data.get(), cur); + ggml_tensor * data_tensor = ggml_dup_tensor(ctx_clip.ctx_data.get(), cur); ggml_set_name(data_tensor, cur->name); cur = data_tensor; } @@ -2034,7 +2067,7 @@ struct clip_model_loader { ctx_clip.buf.reset(ggml_backend_alloc_ctx_tensors_from_buft(ctx_clip.ctx_data.get(), buft)); ggml_backend_buffer_set_usage(ctx_clip.buf.get(), GGML_BACKEND_BUFFER_USAGE_WEIGHTS); for (auto & t : tensors_to_load) { - struct ggml_tensor * cur = ggml_get_tensor(ctx_clip.ctx_data.get(), t->name); + ggml_tensor * cur = ggml_get_tensor(ctx_clip.ctx_data.get(), t->name); const size_t offset = tensor_offset[t->name]; fin.seekg(offset, std::ios::beg); if (!fin) { @@ -2063,15 +2096,12 @@ struct clip_model_loader { // create a fake batch clip_image_f32_batch batch; clip_image_f32_ptr img(clip_image_f32_init()); - clip_image_size image_size; - image_size.width = ctx_clip.vision_model.hparams.image_size; - image_size.height = ctx_clip.vision_model.hparams.image_size; - img->nx = image_size.width; - img->ny = image_size.height; - img->buf.resize(image_size.width * image_size.height * 3); + img->nx = ctx_clip.vision_model.hparams.image_size; + img->ny = ctx_clip.vision_model.hparams.image_size; + img->buf.resize(img->nx * img->ny * 3); batch.entries.push_back(std::move(img)); - ggml_cgraph * gf = clip_image_build_graph(&ctx_clip, batch, image_size, false); + ggml_cgraph * gf = clip_image_build_graph(&ctx_clip, batch); ggml_backend_sched_reserve(ctx_clip.sched.get(), gf); for (size_t i = 0; i < ctx_clip.backend_ptrs.size(); ++i) { ggml_backend_t backend = ctx_clip.backend_ptrs[i]; @@ -2976,11 +3006,13 @@ int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * im int y_patch = img->ny / patch_size + (int)(img->ny % patch_size > 0); n_patches = x_patch * y_patch; } else if (ctx->proj_type == PROJECTOR_TYPE_GEMMA3) { - n_patches = 256; + int n_per_side = params.image_size / params.patch_size; + int n_per_side_2d_pool = n_per_side / params.proj_scale_factor; + n_patches = n_per_side_2d_pool * n_per_side_2d_pool; } else if (ctx->proj_type == PROJECTOR_TYPE_IDEFICS3) { - n_patches /= ctx->vision_model.hparams.proj_scale_factor; + n_patches /= params.proj_scale_factor; } else if (ctx->proj_type == PROJECTOR_TYPE_PIXTRAL) { - int n_merge = ctx->vision_model.hparams.spatial_merge_size; + int n_merge = params.spatial_merge_size; int n_patches_x = img->nx / params.patch_size / (n_merge > 0 ? n_merge : 1); int n_patches_y = img->ny / params.patch_size / (n_merge > 0 ? n_merge : 1); n_patches = n_patches_y*n_patches_x + n_patches_y - 1; // + one [IMG_BREAK] per row, except the last row @@ -3088,15 +3120,15 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const clip_image_f32_batch & imgs = *imgs_c_ptr; int batch_size = imgs.entries.size(); - if (ctx->has_llava_projector - || ctx->proj_type == PROJECTOR_TYPE_MINICPMV - || ctx->proj_type == PROJECTOR_TYPE_GLM_EDGE) { - GGML_ASSERT(batch_size == 1); + // TODO @ngxson : implement batch size > 1 as a loop + // we don't need true batching support because the cgraph will gonna be big anyway + if (batch_size != 1) { + return false; // only support batch size of 1 } // build the inference graph ggml_backend_sched_reset(ctx->sched.get()); - ggml_cgraph * gf = clip_image_build_graph(ctx, imgs, ctx->load_image_size, true); + ggml_cgraph * gf = clip_image_build_graph(ctx, imgs); ggml_backend_sched_alloc_graph(ctx->sched.get(), gf); // set inputs @@ -3108,14 +3140,14 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int patch_size = hparams.patch_size; const int num_patches = ((image_size_width / patch_size) * (image_size_height / patch_size)); - const int num_positions = num_patches + (model.class_embedding ? 1 : 0); + const int n_pos = num_patches + (model.class_embedding ? 1 : 0); const int pos_w = ctx->load_image_size.width / patch_size; const int pos_h = ctx->load_image_size.height / patch_size; const bool use_window_attn = hparams.n_wa_pattern > 0; // for qwen2.5vl auto get_inp_tensor = [&gf](const char * name) { - struct ggml_tensor * inp = ggml_graph_get_tensor(gf, name); + ggml_tensor * inp = ggml_graph_get_tensor(gf, name); if (inp == nullptr) { GGML_ABORT("Failed to get tensor %s", name); } @@ -3224,7 +3256,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima const int merge_ratio = 2; const int pw = image_size_width / patch_size; const int ph = image_size_height / patch_size; - std::vector positions(num_positions * 4); + std::vector positions(n_pos * 4); int ptr = 0; for (int y = 0; y < ph; y += merge_ratio) { for (int x = 0; x < pw; x += merge_ratio) { @@ -3301,7 +3333,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } const int mpow = merge_ratio * merge_ratio; - std::vector positions(num_positions * 4); + std::vector positions(n_pos * 4); int ptr = 0; for (int y = 0; y < iph; y += merge_ratio) { @@ -3327,14 +3359,14 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima { // set the 2D positions int n_patches_per_col = image_size_width / patch_size; - std::vector pos_data(num_positions); + std::vector pos_data(n_pos); // dimension H - for (int i = 0; i < num_positions; i++) { + for (int i = 0; i < n_pos; i++) { pos_data[i] = i / n_patches_per_col; } set_input_i32("pos_h", pos_data); // dimension W - for (int i = 0; i < num_positions; i++) { + for (int i = 0; i < n_pos; i++) { pos_data[i] = i % n_patches_per_col; } set_input_i32("pos_w", pos_data); @@ -3342,8 +3374,8 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima case PROJECTOR_TYPE_GLM_EDGE: { // llava and other models - std::vector positions(num_positions); - for (int i = 0; i < num_positions; i++) { + std::vector positions(n_pos); + for (int i = 0; i < n_pos; i++) { positions[i] = i; } set_input_i32("positions", positions); @@ -3354,8 +3386,8 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima case PROJECTOR_TYPE_LDPV2: { // llava and other models - std::vector positions(num_positions); - for (int i = 0; i < num_positions; i++) { + std::vector positions(n_pos); + for (int i = 0; i < n_pos; i++) { positions[i] = i; } set_input_i32("positions", positions); @@ -3396,7 +3428,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima } // the last node is the embedding tensor - struct ggml_tensor * embeddings = ggml_graph_node(gf, -1); + ggml_tensor * embeddings = ggml_graph_node(gf, -1); // copy the embeddings to the location passed by the user ggml_backend_tensor_get(embeddings, vec, 0, ggml_nbytes(embeddings)); @@ -3427,7 +3459,7 @@ bool clip_model_quantize(const char * fname_inp, const char * fname_out, const i for (int i = 0; i < n_tensors; ++i) { const char * name = gguf_get_tensor_name(ctx_src, i); - struct ggml_tensor * cur = ggml_get_tensor(ctx_data, name); + ggml_tensor * cur = ggml_get_tensor(ctx_data, name); gguf_add_tensor(ctx_out, cur); } @@ -3448,7 +3480,7 @@ bool clip_model_quantize(const char * fname_inp, const char * fname_out, const i for (int i = 0; i < n_tensors; ++i) { const std::string name = gguf_get_tensor_name(ctx_src, i); - struct ggml_tensor * cur = ggml_get_tensor(ctx_data, name.c_str()); + ggml_tensor * cur = ggml_get_tensor(ctx_data, name.c_str()); enum ggml_type new_type; void * new_data; From 141a908a59bbc68ceae3bf090b850e33322a2ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= Date: Tue, 6 May 2025 23:35:51 +0200 Subject: [PATCH 118/126] CUDA: mix virt/real CUDA archs for GGML_NATIVE=OFF (#13135) --- ggml/src/ggml-cuda/CMakeLists.txt | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-cuda/CMakeLists.txt b/ggml/src/ggml-cuda/CMakeLists.txt index f3cfdeaef5..969a178f6c 100644 --- a/ggml/src/ggml-cuda/CMakeLists.txt +++ b/ggml/src/ggml-cuda/CMakeLists.txt @@ -12,12 +12,30 @@ if (CUDAToolkit_FOUND) # 61 == Pascal, __dp4a instruction (per-byte integer dot product) # 70 == V100, FP16 tensor cores # 75 == Turing, int8 tensor cores + # 80 == Ampere, asynchronous data loading, faster tensor core instructions + # 86 == RTX 3000, needs CUDA v11.1 + # 89 == RTX 4000, needs CUDA v11.8 + # + # XX-virtual == compile CUDA code as PTX, do JIT compilation to binary code on first run + # XX-real == compile CUDA code as device code for this specific architecture + # no suffix == compile as both PTX and device code + # + # The default behavior for a non-native is to build virtual architectures as needed to cover all features needed + # for best performance and to also build real architectures for the most commonly used GPUs. if (GGML_NATIVE AND CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.6" AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.24") set(CMAKE_CUDA_ARCHITECTURES "native") elseif(GGML_CUDA_F16 OR GGML_CUDA_DMMV_F16) - set(CMAKE_CUDA_ARCHITECTURES "60;61;70;75;80") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") + set(CMAKE_CUDA_ARCHITECTURES "60-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-real;89-real") + else() + set(CMAKE_CUDA_ARCHITECTURES "60-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-real") + endif() else() - set(CMAKE_CUDA_ARCHITECTURES "50;61;70;75;80") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") + set(CMAKE_CUDA_ARCHITECTURES "50-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-real;89-real") + else() + set(CMAKE_CUDA_ARCHITECTURES "50-virtual;61-virtual;70-virtual;75-virtual;80-virtual;86-real") + endif() endif() endif() message(STATUS "Using CUDA architectures: ${CMAKE_CUDA_ARCHITECTURES}") From 6c7fd67b647a76846d1691cd181011dff4549d02 Mon Sep 17 00:00:00 2001 From: piDack <104877312+piDack@users.noreply.github.com> Date: Wed, 7 May 2025 15:23:11 +0800 Subject: [PATCH 119/126] llama : support tie embedding for chatglm models (#13328) --- src/llama-model.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 8d25070f42..774e343fb1 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -3510,7 +3510,11 @@ bool llama_model::load_tensors(llama_model_loader & ml) { // output output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0); - output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, 0); + output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED); + // if output is NULL, init from the input tok embed + if (output == NULL) { + output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED); + } for (int i = 0; i < n_layer; ++i) { auto & layer = layers[i]; From 4773d7a02ffdb05ba9e673ff21ce95351836e33a Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 7 May 2025 10:28:02 +0300 Subject: [PATCH 120/126] examples : remove infill (#13283) ggml-ci --- Makefile | 5 - common/arg.cpp | 12 +- common/common.h | 1 - examples/CMakeLists.txt | 1 - examples/infill/CMakeLists.txt | 5 - examples/infill/README.md | 47 --- examples/infill/infill.cpp | 590 --------------------------------- 7 files changed, 6 insertions(+), 655 deletions(-) delete mode 100644 examples/infill/CMakeLists.txt delete mode 100644 examples/infill/README.md delete mode 100644 examples/infill/infill.cpp diff --git a/Makefile b/Makefile index 68b6fe59a6..958ad8f2fc 100644 --- a/Makefile +++ b/Makefile @@ -1187,11 +1187,6 @@ llama-cli: tools/main/main.cpp \ @echo '==== Run ./llama-cli -h for help. ====' @echo -llama-infill: examples/infill/infill.cpp \ - $(OBJ_ALL) - $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) - $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) - llama-run: tools/run/run.cpp \ $(OBJ_ALL) $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) diff --git a/common/arg.cpp b/common/arg.cpp index 490991b23a..5e07e8a699 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -1283,7 +1283,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex [](common_params & params) { params.use_color = true; } - ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL, LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP})); + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP})); add_opt(common_arg( {"-t", "--threads"}, "N", string_format("number of threads to use during generation (default: %d)", params.cpuparams.n_threads), @@ -1416,7 +1416,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex add_opt(common_arg( {"-n", "--predict", "--n-predict"}, "N", string_format( - ex == LLAMA_EXAMPLE_MAIN || ex == LLAMA_EXAMPLE_INFILL + ex == LLAMA_EXAMPLE_MAIN ? "number of tokens to predict (default: %d, -1 = infinity, -2 = until context filled)" : "number of tokens to predict (default: %d, -1 = infinity)", params.n_predict), @@ -1655,7 +1655,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex params.input_prefix = value; params.enable_chat_template = false; } - ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + ).set_examples({LLAMA_EXAMPLE_MAIN})); add_opt(common_arg( {"--in-suffix"}, "STRING", "string to suffix after user inputs with (default: empty)", @@ -1663,7 +1663,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex params.input_suffix = value; params.enable_chat_template = false; } - ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + ).set_examples({LLAMA_EXAMPLE_MAIN})); add_opt(common_arg( {"--no-warmup"}, "skip warming up the model with an empty run", @@ -1680,7 +1680,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex [](common_params & params) { params.spm_infill = true; } - ).set_examples({LLAMA_EXAMPLE_SERVER, LLAMA_EXAMPLE_INFILL})); + ).set_examples({LLAMA_EXAMPLE_SERVER})); add_opt(common_arg( {"--samplers"}, "SAMPLERS", string_format("samplers that will be used for generation in the order, separated by \';\'\n(default: %s)", sampler_type_names.c_str()), @@ -2892,7 +2892,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex [](common_params & params) { params.simple_io = true; } - ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + ).set_examples({LLAMA_EXAMPLE_MAIN})); add_opt(common_arg( {"--positive-file"}, "FNAME", string_format("positive prompts file, one prompt per line (default: '%s')", params.cvector_positive_file.c_str()), diff --git a/common/common.h b/common/common.h index dfd6e20933..400f674b22 100644 --- a/common/common.h +++ b/common/common.h @@ -66,7 +66,6 @@ enum llama_example { LLAMA_EXAMPLE_COMMON, LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_MAIN, - LLAMA_EXAMPLE_INFILL, LLAMA_EXAMPLE_EMBEDDING, LLAMA_EXAMPLE_PERPLEXITY, LLAMA_EXAMPLE_RETRIEVAL, diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index eca0d0b097..4ca9230c59 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -21,7 +21,6 @@ else() add_subdirectory(gguf-hash) add_subdirectory(gguf) add_subdirectory(gritlm) - add_subdirectory(infill) add_subdirectory(lookahead) add_subdirectory(lookup) add_subdirectory(parallel) diff --git a/examples/infill/CMakeLists.txt b/examples/infill/CMakeLists.txt deleted file mode 100644 index fb26628d82..0000000000 --- a/examples/infill/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set(TARGET llama-infill) -add_executable(${TARGET} infill.cpp) -install(TARGETS ${TARGET} RUNTIME) -target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT}) -target_compile_features(${TARGET} PRIVATE cxx_std_17) diff --git a/examples/infill/README.md b/examples/infill/README.md deleted file mode 100644 index df4d976f2b..0000000000 --- a/examples/infill/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# llama.cpp/example/infill - -This example shows how to use the infill mode with Code Llama models supporting infill mode. -Currently the 7B and 13B models support infill mode. - -Infill supports most of the options available in the main example. - -For further information have a look at the main README.md in llama.cpp/example/main/README.md - -## Common Options - -In this section, we cover the most commonly used options for running the `infill` program with the LLaMA models: - -- `-m FNAME, --model FNAME`: Specify the path to the LLaMA model file (e.g., `models/7B/ggml-model.bin`). -- `-i, --interactive`: Run the program in interactive mode, allowing you to provide input directly and receive real-time responses. -- `-n N, --n-predict N`: Set the number of tokens to predict when generating text. Adjusting this value can influence the length of the generated text. -- `-c N, --ctx-size N`: Set the size of the prompt context. The default is 4096, but if a LLaMA model was built with a longer context, increasing this value will provide better results for longer input/inference. -- `--spm-infill`: Use Suffix/Prefix/Middle pattern for infill (instead of Prefix/Suffix/Middle) as some models prefer this. - -## Input Prompts - -The `infill` program provides several ways to interact with the LLaMA models using input prompts: - -- `--in-prefix PROMPT_BEFORE_CURSOR`: Provide the prefix directly as a command-line option. -- `--in-suffix PROMPT_AFTER_CURSOR`: Provide the suffix directly as a command-line option. -- `--interactive-first`: Run the program in interactive mode and wait for input right away. (More on this below.) - -## Interaction - -The `infill` program offers a seamless way to interact with LLaMA models, allowing users to receive real-time infill suggestions. The interactive mode can be triggered using `--interactive`, and `--interactive-first` - -### Interaction Options - -- `-i, --interactive`: Run the program in interactive mode, allowing users to get real time code suggestions from model. -- `--interactive-first`: Run the program in interactive mode and immediately wait for user input before starting the text generation. -- `--color`: Enable colorized output to differentiate visually distinguishing between prompts, user input, and generated text. - -### Example - -Download a model that supports infill, for example CodeLlama: -```console -scripts/hf.sh --repo TheBloke/CodeLlama-13B-GGUF --file codellama-13b.Q5_K_S.gguf --outdir models -``` - -```bash -./llama-infill -t 10 -ngl 0 -m models/codellama-13b.Q5_K_S.gguf -c 4096 --temp 0.7 --repeat_penalty 1.1 -n 20 --in-prefix "def helloworld():\n print(\"hell" --in-suffix "\n print(\"goodbye world\")\n " -``` diff --git a/examples/infill/infill.cpp b/examples/infill/infill.cpp deleted file mode 100644 index 4e2f7b7270..0000000000 --- a/examples/infill/infill.cpp +++ /dev/null @@ -1,590 +0,0 @@ -#include "arg.h" -#include "common.h" -#include "console.h" -#include "sampling.h" -#include "log.h" -#include "llama.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) -#include -#include -#elif defined (_WIN32) -#define WIN32_LEAN_AND_MEAN -#ifndef NOMINMAX -#define NOMINMAX -#endif -#include -#include -#endif - -#if defined(_MSC_VER) -#pragma warning(disable: 4244 4267) // possible loss of data -#endif - -static llama_context ** g_ctx; -static llama_model ** g_model; -static common_sampler ** g_smpl; -static common_params * g_params; -static std::vector * g_input_tokens; -static std::ostringstream * g_output_ss; -static std::vector * g_output_tokens; - -static bool is_interacting = false; - -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) || defined (_WIN32) -static void sigint_handler(int signo) { - if (signo == SIGINT) { - if (!is_interacting) { - is_interacting = true; - } else { - console::cleanup(); - LOG("\n"); - common_perf_print(*g_ctx, *g_smpl); - - // make sure all logs are flushed - LOG("Interrupted by user\n"); - common_log_pause(common_log_main()); - - _exit(130); - } - } -} -#endif - -int main(int argc, char ** argv) { - common_params params; - g_params = ¶ms; - - if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_INFILL)) { - return 1; - } - - common_init(); - - auto & sparams = params.sampling; - - console::init(params.simple_io, params.use_color); - atexit([]() { console::cleanup(); }); - - if (params.logits_all) { - LOG_ERR("\n************\n"); - LOG_ERR("%s: please use the 'perplexity' tool for perplexity calculations\n", __func__); - LOG_ERR("************\n\n"); - - return 0; - } - - if (params.embedding) { - LOG_ERR("\n************\n"); - LOG_ERR("%s: please use the 'embedding' tool for embedding calculations\n", __func__); - LOG_ERR("************\n\n"); - - return 0; - } - - if (params.n_ctx != 0 && params.n_ctx < 8) { - LOG_WRN("%s: minimum context size is 8, using minimum size.\n", __func__); - params.n_ctx = 8; - } - - if (!params.interactive_first && (params.input_prefix.empty() && params.input_suffix.empty())) { - LOG_ERR("\n************\n"); - LOG_ERR("%s: please use '--interactive_first' or specify '--in_prefix' and/or '--in_suffix'\n", __func__); - LOG_ERR("************\n\n"); - - return 0; - } - - if (params.rope_freq_base != 0.0) { - LOG_WRN("%s: changing RoPE frequency base to %g.\n", __func__, params.rope_freq_base); - } - - if (params.rope_freq_scale != 0.0) { - LOG_WRN("%s: scaling RoPE frequency by %g.\n", __func__, params.rope_freq_scale); - } - - LOG_INF("%s: llama backend init\n", __func__); - llama_backend_init(); - llama_numa_init(params.numa); - - llama_model * model = nullptr; - llama_context * ctx = nullptr; - common_sampler * smpl = nullptr; - - g_model = &model; - g_ctx = &ctx; - g_smpl = &smpl; - - // load the model and apply lora adapter, if any - LOG_INF("%s: load the model and apply lora adapter, if any\n", __func__); - common_init_result llama_init = common_init_from_params(params); - - model = llama_init.model.get(); - ctx = llama_init.context.get(); - - if (model == NULL) { - LOG_ERR("%s: unable to load model\n", __func__); - return 1; - } - - const llama_vocab * vocab = llama_model_get_vocab(model); - - const int n_ctx_train = llama_model_n_ctx_train(model); - const int n_ctx = llama_n_ctx(ctx); - LOG_DBG("n_ctx: %d\n", n_ctx); - - if (n_ctx > n_ctx_train) { - LOG_WRN("%s: model was trained on only %d context tokens (%d specified)\n", __func__, n_ctx_train, n_ctx); - } - - // print system information - { - LOG_INF("\n"); - LOG_INF("%s\n", common_params_get_system_info(params).c_str()); - } - const bool add_bos = llama_vocab_get_add_bos(vocab); - GGML_ASSERT(!llama_vocab_get_add_eos(vocab)); - - std::vector embd_inp; - std::vector embd_end; - std::vector inp_pfx = common_tokenize(ctx, params.input_prefix, false); - std::vector inp_sfx = common_tokenize(ctx, params.input_suffix, false); - - GGML_ASSERT(llama_vocab_fim_pre(vocab) >= 0); - GGML_ASSERT(llama_vocab_fim_suf(vocab) >= 0); - - inp_pfx.insert(inp_pfx.begin(), llama_vocab_fim_pre(vocab)); - inp_sfx.insert(inp_sfx.begin(), llama_vocab_fim_suf(vocab)); - - embd_inp = params.spm_infill ? inp_sfx : inp_pfx; - embd_end = params.spm_infill ? inp_pfx : inp_sfx; - if (add_bos) { - embd_inp.insert(embd_inp.begin(), llama_vocab_bos(vocab)); - } - embd_inp.insert(embd_inp.end(), embd_end.begin(), embd_end.end()); - - const llama_token middle_token = llama_vocab_fim_mid(vocab); - if (middle_token >= 0) { - embd_inp.push_back(middle_token); - } - - LOG_DBG("add_bos: %d\n", add_bos); - LOG_DBG("prefix: \"%s\"\n", params.input_prefix.c_str()); - LOG_DBG("suffix: \"%s\"\n", params.input_suffix.c_str()); - LOG_DBG("tokens: %s\n", string_from(ctx, embd_inp).c_str()); - - // Should not run without any tokens - if (embd_inp.empty()) { - embd_inp.push_back(llama_vocab_bos(vocab)); - LOG_WRN("embd_inp was considered empty and bos was added: %s\n", string_from(ctx, embd_inp).c_str()); - } - - if ((int) embd_inp.size() > n_ctx - 4) { - LOG_ERR("%s: prompt is too long (%d tokens, max %d)\n", __func__, (int) embd_inp.size(), n_ctx - 4); - return 1; - } - - // number of tokens to keep when resetting context - if (params.n_keep < 0 || params.n_keep > (int) embd_inp.size()) { - params.n_keep = (int)embd_inp.size(); - } - - LOG_INF("inp_pfx: %s\n", string_from(ctx, inp_pfx).c_str()); - LOG_INF("inp_sfx: %s\n", string_from(ctx, inp_sfx).c_str()); - - // enable interactive mode if interactive start is specified - if (params.interactive_first) { - params.interactive = true; - } - - if (params.verbose_prompt) { - LOG_INF("\n"); - LOG_INF("%s: prompt: '%s'\n", __func__, params.prompt.c_str()); - LOG_INF("%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); - for (int i = 0; i < (int) embd_inp.size(); i++) { - LOG_INF("%6d -> '%s'\n", embd_inp[i], common_token_to_piece(ctx, embd_inp[i]).c_str()); - } - - if (params.n_keep > 0) { - LOG_INF("%s: static prompt based on n_keep: '", __func__); - for (int i = 0; i < params.n_keep; i++) { - LOG_CNT("%s", common_token_to_piece(ctx, embd_inp[i]).c_str()); - } - LOG_CNT("'\n"); - } - LOG_INF("\n"); - } - - if (params.interactive) { -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) - struct sigaction sigint_action; - sigint_action.sa_handler = sigint_handler; - sigemptyset (&sigint_action.sa_mask); - sigint_action.sa_flags = 0; - sigaction(SIGINT, &sigint_action, NULL); -#elif defined (_WIN32) - auto console_ctrl_handler = +[](DWORD ctrl_type) -> BOOL { - return (ctrl_type == CTRL_C_EVENT) ? (sigint_handler(SIGINT), true) : false; - }; - SetConsoleCtrlHandler(reinterpret_cast(console_ctrl_handler), true); -#endif - - LOG_INF("%s: interactive mode on.\n", __func__); - - if (params.input_prefix_bos) { - LOG_INF("Input prefix with BOS\n"); - } - - if (!params.input_prefix.empty()) { - LOG_INF("Input prefix: '%s'\n", params.input_prefix.c_str()); - } - - if (!params.input_suffix.empty()) { - LOG_INF("Input suffix: '%s'\n", params.input_suffix.c_str()); - } - } - smpl = common_sampler_init(model, sparams); - - LOG_INF("sampler seed: %u\n", common_sampler_get_seed(smpl)); - LOG_INF("sampler params: \n%s\n", sparams.print().c_str()); - LOG_INF("sampler chain: %s\n", common_sampler_print(smpl).c_str()); - - LOG_INF("generate: n_ctx = %d, n_batch = %d, n_predict = %d, n_keep = %d\n", n_ctx, params.n_batch, params.n_predict, params.n_keep); - - LOG_INF("\n"); - LOG_INF("\n##### Infill mode #####\n\n"); - if (params.interactive) { - const char *control_message; - if (params.multiline_input) { - control_message = " - To return control to LLaMA, end your input with '\\'.\n" - " - To return control without starting a new line, end your input with '/'.\n"; - } else { - control_message = " - Press Return to return control to LLaMA.\n" - " - To return control without starting a new line, end your input with '/'.\n" - " - If you want to submit another line, end your input with '\\'.\n"; - } - LOG_INF("== Running in interactive mode. ==\n"); -#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) || defined (_WIN32) - LOG_INF( " - Press Ctrl+C to interject at any time.\n"); -#endif - LOG_INF( "%s\n", control_message); - - is_interacting = params.interactive_first; - } - - bool input_echo = true; - - int n_past = 0; - int n_remain = params.n_predict; - int n_consumed = 0; - - std::vector input_tokens; g_input_tokens = &input_tokens; - std::vector output_tokens; g_output_tokens = &output_tokens; - std::ostringstream output_ss; g_output_ss = &output_ss; - - // the first thing we will do is to output the prompt, so set color accordingly - console::set_display(console::prompt); - - std::vector embd; - - while (n_remain != 0 || params.interactive) { - // predict - if (!embd.empty()) { - // Note: n_ctx - 4 here is to match the logic for commandline prompt handling via - // --prompt or --file which uses the same value. - int max_embd_size = n_ctx - 4; - - // Ensure the input doesn't exceed the context size by truncating embd if necessary. - if ((int) embd.size() > max_embd_size) { - const int skipped_tokens = (int) embd.size() - max_embd_size; - embd.resize(max_embd_size); - - console::set_display(console::error); - LOG_WRN("<>", skipped_tokens, skipped_tokens != 1 ? "s" : ""); - console::set_display(console::reset); - } - - // infinite text generation via context swapping - // if we run out of context: - // - take the n_keep first tokens from the original prompt (via n_past) - // - take half of the last (n_ctx - n_keep) tokens and recompute the logits in batches - if (n_past + (int) embd.size() > n_ctx) { - if (params.n_predict == -2) { - LOG_DBG("\n\n%s: context full and n_predict == -%d => stopping\n", __func__, params.n_predict); - break; - } - - const int n_left = n_past - params.n_keep - 1; - const int n_discard = n_left/2; - - LOG_DBG("context full, swapping: n_past = %d, n_left = %d, n_ctx = %d, n_keep = %d, n_discard = %d\n", - n_past, n_left, n_ctx, params.n_keep, n_discard); - - llama_kv_self_seq_rm (ctx, 0, params.n_keep + 1 , params.n_keep + n_discard + 1); - llama_kv_self_seq_add(ctx, 0, params.n_keep + 1 + n_discard, n_past, -n_discard); - - n_past -= n_discard; - - LOG_DBG("after swap: n_past = %d\n", n_past); - - LOG_DBG("embd: %s\n", string_from(ctx, embd).c_str()); - - } - - // evaluate tokens in batches - // embd is typically prepared beforehand to fit within a batch, but not always - for (int i = 0; i < (int) embd.size(); i += params.n_batch) { - int n_eval = (int) embd.size() - i; - if (n_eval > params.n_batch) { - n_eval = params.n_batch; - } - - LOG_DBG("eval: %s\n", string_from(ctx, embd).c_str()); - - if (llama_decode(ctx, llama_batch_get_one(&embd[i], n_eval))) { - LOG_ERR("%s : failed to eval\n", __func__); - return 1; - } - - n_past += n_eval; - - LOG_DBG("n_past = %d\n", n_past); - } - - } - - embd.clear(); - - if ((int) embd_inp.size() <= n_consumed && !is_interacting) { - const llama_token id = common_sampler_sample(smpl, ctx, -1); - - common_sampler_accept(smpl, id, true); - - // LOG_DBG("last: %s\n", string_from(ctx, smpl->prev.to_vector()).c_str()); - - embd.push_back(id); - - // echo this to console - input_echo = true; - - // decrement remaining sampling budget - --n_remain; - - LOG_DBG("n_remain: %d\n", n_remain); - } else { - // some user input remains from prompt or interaction, forward it to processing - LOG_DBG("embd_inp.size(): %d, n_consumed: %d\n", (int) embd_inp.size(), n_consumed); - while ((int) embd_inp.size() > n_consumed) { - embd.push_back(embd_inp[n_consumed]); - - // push the prompt in the sampling context in order to apply repetition penalties later - // for the prompt, we don't apply grammar rules - common_sampler_accept(smpl, embd_inp[n_consumed], false); - - ++n_consumed; - if ((int) embd.size() >= params.n_batch) { - break; - } - } - } - - // display text - if (input_echo) { - for (auto id : embd) { - const std::string token_str = common_token_to_piece(ctx, id); - LOG("%s", token_str.c_str()); - - if (embd.size() > 1) { - input_tokens.push_back(id); - } else { - output_tokens.push_back(id); - output_ss << token_str; - } - } - } - // reset color to default if we there is no pending user input - if (input_echo && (int) embd_inp.size() == n_consumed) { - console::set_display(console::reset); - } - - // if not currently processing queued inputs; - if ((int) embd_inp.size() <= n_consumed) { - // deal with eot token in infill mode - if ((common_sampler_last(smpl) == llama_vocab_eot(vocab) || is_interacting) && params.interactive){ - if (is_interacting && !params.interactive_first) { - // print an eot token - LOG("%s", common_token_to_piece(ctx, llama_vocab_eot(vocab)).c_str()); - } - LOG("\n"); - console::set_display(console::user_input); - std::string buffer; - std::string line; - bool another_line=true; - // set a new prefix via stdin - do { - another_line = console::readline(line, params.multiline_input); - buffer += line; - } while (another_line); - // check if we got an empty line, if so we use the old input - if (!buffer.empty() && !(buffer.length() == 1 && buffer[0] == '\n')) { - params.input_prefix = buffer; - } - buffer.clear(); - // set a new suffix via stdin - do { - another_line = console::readline(line, params.multiline_input); - buffer += line; - } while (another_line); - // check if we got an empty line - if (!buffer.empty() && !(buffer.length() == 1 && buffer[0] == '\n')) { - params.input_suffix = buffer; - } - buffer.clear(); - // done taking input, reset color - console::set_display(console::reset); - - if (params.escape) { - //process escape sequences, for the initial prompt this is done in common.cpp when we load the params, but for the interactive mode we need to do it here - string_process_escapes(params.input_prefix); - string_process_escapes(params.input_suffix); - } - - // tokenize new prefix and suffix - std::vector inp_pfx = common_tokenize(ctx, params.input_prefix, false); - std::vector inp_sfx = common_tokenize(ctx, params.input_suffix, false); - - inp_pfx.insert(inp_pfx.begin(), llama_vocab_fim_pre(vocab)); - inp_sfx.insert(inp_sfx.begin(), llama_vocab_fim_suf(vocab)); - - embd_inp = params.spm_infill ? inp_sfx : inp_pfx; - embd_end = params.spm_infill ? inp_pfx : inp_sfx; - if (add_bos) { - embd_inp.insert(embd_inp.begin(), llama_vocab_bos(vocab)); - } - embd_inp.insert(embd_inp.end(), embd_end.begin(), embd_end.end()); - - if (middle_token >= 0) { - embd_inp.push_back(middle_token); - } - - embd.clear(); - n_remain = params.n_predict; - n_past = 0; - n_consumed = 0; - is_interacting = false; - } - // deal with end of generation tokens in interactive mode - else if (llama_vocab_is_eog(vocab, common_sampler_last(smpl))) { - LOG_DBG("found EOS token\n"); - - if (params.interactive) { - - is_interacting = true; - LOG("\n"); - console::set_display(console::user_input); - } - } - - if (n_past > 0 && is_interacting && !params.interactive) { - LOG_DBG("waiting for user input\n"); - - if (params.input_prefix_bos) { - LOG_DBG("adding input prefix BOS token\n"); - embd_inp.push_back(llama_vocab_bos(vocab)); - } - - std::string buffer; - if (!params.input_prefix.empty()) { - LOG_DBG("appending input prefix: '%s'\n", params.input_prefix.c_str()); - buffer += params.input_prefix; - LOG("%s", buffer.c_str()); - } - - std::string line; - bool another_line = true; - do { - another_line = console::readline(line, params.multiline_input); - buffer += line; - } while (another_line); - - // done taking input, reset color - console::set_display(console::reset); - - // Add tokens to embd only if the input buffer is non-empty - // Entering a empty line lets the user pass control back - if (buffer.length() > 1) { - // append input suffix if any - if (!params.input_suffix.empty()) { - LOG_DBG("appending input suffix: '%s'\n", params.input_suffix.c_str()); - buffer += params.input_suffix; - LOG("%s", params.input_suffix.c_str()); - } - - LOG_DBG("buffer: '%s'\n", buffer.c_str()); - - const size_t original_size = embd_inp.size(); - - const auto line_inp = common_tokenize(ctx, buffer, false); - LOG_DBG("input tokens: %s\n", string_from(ctx, line_inp).c_str()); - - embd_inp.insert(embd_inp.end(), line_inp.begin(), line_inp.end()); - - for (size_t i = original_size; i < embd_inp.size(); ++i) { - const llama_token token = embd_inp[i]; - output_tokens.push_back(token); - output_ss << common_token_to_piece(ctx, token); - } - - n_remain -= line_inp.size(); - LOG_DBG("n_remain: %d\n", n_remain); - } else { - LOG_DBG("empty line, passing control back\n"); - } - - input_echo = false; // do not echo this again - } - - if (n_past > 0) { - if (is_interacting) { - common_sampler_reset(smpl); - } - is_interacting = false; - } - } - - // end of generation - if (!embd.empty() && llama_vocab_is_eog(vocab, embd.back()) && !params.interactive) { - break; - } - - // In interactive mode, respect the maximum number of tokens and drop back to user input when reached. - // We skip this logic when n_predict == -1 (infinite) or -2 (stop at context size). - if (params.interactive && n_remain <= 0 && params.n_predict >= 0) { - n_remain = params.n_predict; - is_interacting = true; - } - } - if (!params.interactive && n_remain <= 0) { - LOG("%s", common_token_to_piece(ctx, llama_vocab_eot(vocab)).c_str()); - } - - LOG("\n"); - common_perf_print(ctx, smpl); - - common_sampler_free(smpl); - llama_backend_free(); - - return 0; -} From 1f73301b63668d61b5f3109489050a27dc3f65be Mon Sep 17 00:00:00 2001 From: R0CKSTAR Date: Wed, 7 May 2025 15:48:23 +0800 Subject: [PATCH 121/126] cuda : remove nrows_x in mul_mat_q_process_tile (#13325) Signed-off-by: Xiaodong Ye --- ggml/src/ggml-cuda/mmq.cuh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ggml/src/ggml-cuda/mmq.cuh b/ggml/src/ggml-cuda/mmq.cuh index b8143a7b23..80baf459c1 100644 --- a/ggml/src/ggml-cuda/mmq.cuh +++ b/ggml/src/ggml-cuda/mmq.cuh @@ -2522,7 +2522,7 @@ template static __device__ __forceinline__ void mul_mat_q_process_tile( const char * __restrict__ x, const int offset_x, const int * __restrict__ y, const int * __restrict__ ids_dst, float * __restrict__ dst, float * __restrict__ tmp_fixup, - const int nrows_x, const int stride_row_x, const int ncols_y, const int stride_col_dst, + const int stride_row_x, const int ncols_y, const int stride_col_dst, const int tile_x_max_i, const int tile_y_max_j, const int kb0_start, const int kb0_stop) { constexpr int qk = ggml_cuda_type_traits::qk; @@ -2689,7 +2689,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = false; mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, 0, ncols_x/qk); return; } @@ -2767,7 +2767,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = false; // All but (potentially) the last iterations write their data to dst rather than the fixup buffer. mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); kbc += blocks_per_ne00; @@ -2834,7 +2834,7 @@ static __global__ void mul_mat_q( constexpr bool fixup = true; // Last index writes its data to fixup buffer to avoid data races with other blocks. mul_mat_q_process_tile - (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, nrows_x, stride_row_x, ncols_y, stride_col_dst, + (x, offset_x, y + offset_y, ids_dst_shared, dst + offset_dst, tmp_fixup, stride_row_x, ncols_y, stride_col_dst, tile_x_max_i, tile_y_max_j, kb0_start, kb0_stop); } From 39e73ae0d69f882d7e29cecc6dd8f5052fca6731 Mon Sep 17 00:00:00 2001 From: Ycros <18012+ycros@users.noreply.github.com> Date: Wed, 7 May 2025 18:23:28 +1000 Subject: [PATCH 122/126] common : Add a warning when we can't match samplers from a string or char. (#13330) --- common/sampling.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/common/sampling.cpp b/common/sampling.cpp index bbaec5b80a..28705e24c0 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -1,6 +1,7 @@ #include "sampling.h" #include "common.h" +#include "log.h" #include #include @@ -534,14 +535,16 @@ std::vector common_sampler_types_from_names(const std::vect auto sampler = sampler_canonical_name_map.find(name); if (sampler != sampler_canonical_name_map.end()) { samplers.push_back(sampler->second); - } else { - if (allow_alt_names) { - sampler = sampler_alt_name_map.find(name); - if (sampler != sampler_alt_name_map.end()) { - samplers.push_back(sampler->second); - } + continue; + } + if (allow_alt_names) { + sampler = sampler_alt_name_map.find(name); + if (sampler != sampler_alt_name_map.end()) { + samplers.push_back(sampler->second); + continue; } } + LOG_WRN("%s: unable to match sampler by name '%s'\n", __func__, name.c_str()); } return samplers; @@ -568,6 +571,8 @@ std::vector common_sampler_types_from_chars(const std::stri const auto sampler = sampler_name_map.find(c); if (sampler != sampler_name_map.end()) { samplers.push_back(sampler->second); + } else { + LOG_WRN("%s: unable to match sampler by char '%c'\n", __func__, c); } } From bc4e1128f78be0fbb4e2fa630adb6a04b969ac68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Wed, 7 May 2025 12:49:27 +0200 Subject: [PATCH 123/126] llama : deci : support ffn-free with attention (#13296) --- src/llama-model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 774e343fb1..7b66e2a03e 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -4792,7 +4792,7 @@ struct llm_build_deci : public llm_graph_context { } // FFN-free layer of Llama-3_1-Nemotron-Ultra-253B - if (n_head == 0 && n_ff == 0) { + if (n_ff == 0) { continue; } From bba9d945c14b93c5264b7956e00736601ca6f89a Mon Sep 17 00:00:00 2001 From: Jared Tweed Date: Fri, 2 May 2025 02:41:35 -0700 Subject: [PATCH 124/126] cmake : removed stdc++fs (whisper/3097) * removed stdc++fs * kept line, but removed stdc++fs --- ggml/src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt index 43d9fc4fe2..ddea5ad389 100644 --- a/ggml/src/CMakeLists.txt +++ b/ggml/src/CMakeLists.txt @@ -214,7 +214,7 @@ add_library(ggml target_link_libraries(ggml PUBLIC ggml-base) if (CMAKE_SYSTEM_NAME MATCHES "Linux") - target_link_libraries(ggml PRIVATE dl stdc++fs) + target_link_libraries(ggml PRIVATE dl) endif() function(ggml_add_backend_library backend) From 13b0a04597a4581cad4d9027a848f450c623801d Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 5 May 2025 13:09:35 +0200 Subject: [PATCH 125/126] whisper: remove MSVC warnings pragmas (whisper/3090) * ggml : remove MSVC warnings pragmas This commit removes the MSVC-specific pragmas as these are now handled in ggml/CMakeLists.txt. * whisper : remove MSVC warning pragmas This commit removes the MSVC-specific pragmas. These are now handled in the ggml/CMakeLists.txt file. --- ggml/CMakeLists.txt | 2 ++ ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp | 2 -- ggml/src/ggml-cpu/ggml-cpu-quants.c | 6 ------ ggml/src/ggml-cpu/ggml-cpu.c | 13 ------------- ggml/src/ggml-cpu/ops.cpp | 13 ------------- ggml/src/ggml-cpu/vec.cpp | 6 ------ ggml/src/ggml-cuda/common.cuh | 4 ---- ggml/src/ggml-quants.c | 6 ------ ggml/src/ggml-sycl/common.hpp | 4 ---- 9 files changed, 2 insertions(+), 54 deletions(-) diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index b463cbd9b3..a8300e16d8 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -366,6 +366,8 @@ if (MSVC) /wd4005 # Macro redefinition /wd4244 # Conversion from one type to another type, possible loss of data /wd4267 # Conversion from 'size_t' to a smaller type, possible loss of data + /wd4996 # Disable POSIX deprecation warnings + /wd4702 # Unreachable code warnings ) function(disable_msvc_warnings target_name) if(TARGET ${target_name}) diff --git a/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp b/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp index 175cba329b..8ff6d64a4d 100644 --- a/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp +++ b/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp @@ -72,8 +72,6 @@ static_assert(sizeof(block_iq4_nlx4) == 4 * sizeof(ggml_half) + QK4_NL * 2, "wro #if defined(__GNUC__) #pragma GCC diagnostic ignored "-Woverlength-strings" -#elif defined(_MSC_VER) -#pragma warning(disable: 4244 4267) // possible loss of data #endif #define UNUSED GGML_UNUSED diff --git a/ggml/src/ggml-cpu/ggml-cpu-quants.c b/ggml/src/ggml-cpu/ggml-cpu-quants.c index 987e153165..ccd0651ebc 100644 --- a/ggml/src/ggml-cpu/ggml-cpu-quants.c +++ b/ggml/src/ggml-cpu/ggml-cpu-quants.c @@ -20,12 +20,6 @@ #define GROUP_MAX_EPS_IQ1_M 1e-7f #define GROUP_MAX_EPS_IQ1_S 1e-12f -#if defined(_MSC_VER) -// disable "possible loss of data" to avoid warnings for hundreds of casts -// we should just be careful :) -#pragma warning(disable: 4244 4267) -#endif - #define UNUSED GGML_UNUSED // some compilers don't provide _mm256_set_m128i, e.g. gcc 7 diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index 64405449e2..a30e67f227 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -50,19 +50,6 @@ #include "llamafile/sgemm.h" #endif -#if defined(_MSC_VER) -// disable "possible loss of data" to avoid hundreds of casts -// we should just be careful :) -#pragma warning(disable: 4244 4267) - -// disable POSIX deprecation warnings -// these functions are never going away, anyway -#pragma warning(disable: 4996) - -// unreachable code because of multiple instances of code after GGML_ABORT -#pragma warning(disable: 4702) -#endif - // Note: once we move threading into a separate C++ file // will use std::hardware_destructive_interference_size instead of hardcoding it here // and we'll use C++ attribute syntax. diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index 7413192b74..955fec59a6 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -8,19 +8,6 @@ #include -#if defined(_MSC_VER) -// disable "possible loss of data" to avoid hundreds of casts -// we should just be careful :) -#pragma warning(disable: 4244 4267) - -// disable POSIX deprecation warnings -// these functions are never going away, anyway -#pragma warning(disable: 4996) - -// unreachable code because of multiple instances of code after GGML_ABORT -#pragma warning(disable: 4702) -#endif - // ggml_compute_forward_dup static void ggml_compute_forward_dup_same_cont( diff --git a/ggml/src/ggml-cpu/vec.cpp b/ggml/src/ggml-cpu/vec.cpp index dfe2218e30..02d4061822 100644 --- a/ggml/src/ggml-cpu/vec.cpp +++ b/ggml/src/ggml-cpu/vec.cpp @@ -2,12 +2,6 @@ #include -#if defined(_MSC_VER) -// disable "possible loss of data" to avoid hundreds of casts -// we should just be careful :) -#pragma warning(disable: 4244 4267) -#endif - // precomputed gelu table for f16 (128 KB) ggml_fp16_t ggml_table_gelu_f16[1 << 16]; diff --git a/ggml/src/ggml-cuda/common.cuh b/ggml/src/ggml-cuda/common.cuh index 2ea014e647..919217dfae 100644 --- a/ggml/src/ggml-cuda/common.cuh +++ b/ggml/src/ggml-cuda/common.cuh @@ -130,10 +130,6 @@ static int ggml_cuda_highest_compiled_arch(const int arch) { #define MATRIX_ROW_PADDING 512 // last row of quant. matrices is a multiple of this to avoid out-of-bounds memory accesses -#if defined(_MSC_VER) -#pragma warning(disable: 4244 4267) // possible loss of data -#endif - #define GGML_CUDA_MAX_STREAMS 8 [[noreturn]] diff --git a/ggml/src/ggml-quants.c b/ggml/src/ggml-quants.c index ac918a60d9..84ec6dfe31 100644 --- a/ggml/src/ggml-quants.c +++ b/ggml/src/ggml-quants.c @@ -19,12 +19,6 @@ #define GROUP_MAX_EPS_IQ1_M 1e-7f #define GROUP_MAX_EPS_IQ1_S 1e-12f -#if defined(_MSC_VER) -// disable "possible loss of data" to avoid warnings for hundreds of casts -// we should just be careful :) -#pragma warning(disable: 4244 4267) -#endif - #define UNUSED GGML_UNUSED // reference implementation for deterministic creation of model files diff --git a/ggml/src/ggml-sycl/common.hpp b/ggml/src/ggml-sycl/common.hpp index c3d9d18645..c71cc89c09 100644 --- a/ggml/src/ggml-sycl/common.hpp +++ b/ggml/src/ggml-sycl/common.hpp @@ -80,10 +80,6 @@ extern int g_ggml_sycl_disable_optimize; // max batch size to use MMQ kernels when tensor cores are available #define MMQ_MAX_BATCH_SIZE 32 -#if defined(_MSC_VER) -#pragma warning(disable : 4244 4267) // possible loss of data -#endif - // dmmv = dequantize_mul_mat_vec #ifndef GGML_SYCL_DMMV_X #define GGML_SYCL_DMMV_X 32 From d879433824ac3c16b3b5f00075895d0ee9688e34 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 7 May 2025 16:39:36 +0300 Subject: [PATCH 126/126] sync : ggml ggml-ci --- scripts/sync-ggml.last | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sync-ggml.last b/scripts/sync-ggml.last index 3e93dbf8af..1f7c650c25 100644 --- a/scripts/sync-ggml.last +++ b/scripts/sync-ggml.last @@ -1 +1 @@ -0482de9c63b9134eb462c7732888c0ee0dbc2755 +b59bddafe278877dfa22a80e53a637513862babb
  • ~f41pr_i@ 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 z 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�FGn{4P~fHSNlr>X{5Pl0MIj^xtoueEUqvyBm8k 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�s`?QNOue*M>fX!iB5 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 Xpj-7!B#tspK}@ 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�l@4Q+RHevi7awb&ZWf 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 diff --git a/grammars/README.md b/grammars/README.md index 5aa12acc1b..a63198b5ae 100644 --- a/grammars/README.md +++ b/grammars/README.md @@ -1,6 +1,6 @@ # GBNF Guide -GBNF (GGML BNF) is a format for defining [formal grammars](https://en.wikipedia.org/wiki/Formal_grammar) to constrain model outputs in `llama.cpp`. For example, you can use it to force the model to generate valid JSON, or speak only in emojis. GBNF grammars are supported in various ways in `examples/main` and `examples/server`. +GBNF (GGML BNF) is a format for defining [formal grammars](https://en.wikipedia.org/wiki/Formal_grammar) to constrain model outputs in `llama.cpp`. For example, you can use it to force the model to generate valid JSON, or speak only in emojis. GBNF grammars are supported in various ways in `tools/main` and `tools/server`. ## Background @@ -110,21 +110,21 @@ While semantically correct, the syntax `x? x? x?.... x?` (with N repetitions) ma You can use GBNF grammars: -- In [llama-server](../examples/server)'s completion endpoints, passed as the `grammar` body field -- In [llama-cli](../examples/main), passed as the `--grammar` & `--grammar-file` flags +- In [llama-server](../tools/server)'s completion endpoints, passed as the `grammar` body field +- In [llama-cli](../tools/main), passed as the `--grammar` & `--grammar-file` flags - With [test-gbnf-validator](../tests/test-gbnf-validator.cpp), to test them against strings. ## JSON Schemas → GBNF `llama.cpp` supports converting a subset of https://json-schema.org/ to GBNF grammars: -- In [llama-server](../examples/server): +- In [llama-server](../tools/server): - For any completion endpoints, passed as the `json_schema` body field - For the `/chat/completions` endpoint, passed inside the `response_format` body field (e.g. `{"type", "json_object", "schema": {"items": {}}}` or `{ type: "json_schema", json_schema: {"schema": ...} }`) -- In [llama-cli](../examples/main), passed as the `--json` / `-j` flag +- In [llama-cli](../tools/main), passed as the `--json` / `-j` flag - To convert to a grammar ahead of time: - in CLI, with [examples/json_schema_to_grammar.py](../examples/json_schema_to_grammar.py) - - in JavaScript with [json-schema-to-grammar.mjs](../examples/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../examples/server)'s Web UI) + - in JavaScript with [json-schema-to-grammar.mjs](../tools/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../tools/server)'s Web UI) Take a look at [tests](../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggml-org/llama.cpp/pull/5978, https://github.com/ggml-org/llama.cpp/pull/6659 & https://github.com/ggml-org/llama.cpp/pull/6555). diff --git a/pyrightconfig.json b/pyrightconfig.json index 9acbbeb78a..5320fe5864 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -15,7 +15,7 @@ }, { // uses match expressions in steps.py - "root": "examples/server/tests", + "root": "tools/server/tests", "pythonVersion": "3.10", }, ], diff --git a/requirements/requirements-all.txt b/requirements/requirements-all.txt index eba0a59f62..4b6d4b7d7c 100644 --- a/requirements/requirements-all.txt +++ b/requirements/requirements-all.txt @@ -1,6 +1,6 @@ --r ../examples/llava/requirements.txt --r ../examples/server/bench/requirements.txt --r ../examples/server/tests/requirements.txt +-r ../tools/llava/requirements.txt +-r ../tools/server/bench/requirements.txt +-r ../tools/server/tests/requirements.txt -r ./requirements-compare-llama-bench.txt -r ./requirements-pydantic.txt diff --git a/scripts/fetch_server_test_models.py b/scripts/fetch_server_test_models.py index e6775bfc58..ac483ef5d7 100755 --- a/scripts/fetch_server_test_models.py +++ b/scripts/fetch_server_test_models.py @@ -8,7 +8,7 @@ Example: python scripts/fetch_server_test_models.py - ( cd examples/server/tests && ./tests.sh -v -x -m slow ) + ( cd tools/server/tests && ./tests.sh -v -x -m slow ) ''' import ast import glob @@ -66,7 +66,7 @@ if __name__ == '__main__': models = sorted(list(set([ model - for test_file in glob.glob('examples/server/tests/unit/test_*.py') + for test_file in glob.glob('tools/server/tests/unit/test_*.py') for model in collect_hf_model_test_parameters(test_file) ])), key=lambda m: (m.hf_repo, m.hf_file)) diff --git a/scripts/tool_bench.py b/scripts/tool_bench.py index 0f406bc42a..a2f2a2eb02 100755 --- a/scripts/tool_bench.py +++ b/scripts/tool_bench.py @@ -2,7 +2,7 @@ ''' Simplistic tool call benchmarks for llama-server and ollama. - Essentially runs the tests at server/examples/server/tests/unit/test_tool_call.py N times, at different temperatures and on different backends (current llama-server, baseline llama-server and ollama), + Essentially runs the tests at server/tools/server/tests/unit/test_tool_call.py N times, at different temperatures and on different backends (current llama-server, baseline llama-server and ollama), and plots the results of multiple runs (from same .jsonl file or multiple ones) as a success rate heatmap. Simple usage example: @@ -51,8 +51,8 @@ import typer sys.path.insert(0, Path(__file__).parent.parent.as_posix()) if True: - from examples.server.tests.utils import ServerProcess - from examples.server.tests.unit.test_tool_call import TIMEOUT_SERVER_START, do_test_calc_result, do_test_hello_world, do_test_weather + from tools.server.tests.utils import ServerProcess + from tools.server.tests.unit.test_tool_call import TIMEOUT_SERVER_START, do_test_calc_result, do_test_hello_world, do_test_weather @contextmanager diff --git a/scripts/xxd.cmake b/scripts/xxd.cmake index f5ad6ab9b1..14d2753808 100644 --- a/scripts/xxd.cmake +++ b/scripts/xxd.cmake @@ -1,5 +1,5 @@ # CMake equivalent of `xxd -i ${INPUT} ${OUTPUT}` -# Usage: cmake -DINPUT=examples/server/public/index.html -DOUTPUT=examples/server/index.html.hpp -P scripts/xxd.cmake +# Usage: cmake -DINPUT=tools/server/public/index.html -DOUTPUT=tools/server/index.html.hpp -P scripts/xxd.cmake SET(INPUT "" CACHE STRING "Input File") SET(OUTPUT "" CACHE STRING "Output File") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ae68275251..8acbe689a4 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -111,7 +111,7 @@ if (NOT WIN32) # TODO: disabled on loongarch64 because the ggml-ci node lacks Python 3.8 if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64") llama_build_and_test(test-json-schema-to-grammar.cpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..) - target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../examples/server) + target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../tools/server) endif() llama_build(test-quantize-stats.cpp) diff --git a/tests/run-json-schema-to-grammar.mjs b/tests/run-json-schema-to-grammar.mjs index b20ac1d6b5..450c3dde0a 100644 --- a/tests/run-json-schema-to-grammar.mjs +++ b/tests/run-json-schema-to-grammar.mjs @@ -1,5 +1,5 @@ import { readFileSync } from "fs" -import { SchemaConverter } from "../examples/server/public_legacy/json-schema-to-grammar.mjs" +import { SchemaConverter } from "../tools/server/public_legacy/json-schema-to-grammar.mjs" const [, , file] = process.argv const url = `file://${file}` diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000000..119d7c50a0 --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,39 @@ +# dependencies + +find_package(Threads REQUIRED) + +# third-party + +# ... + +# flags + +llama_add_compile_flags() + +# tools + +if (EMSCRIPTEN) +else() + add_subdirectory(batched-bench) + add_subdirectory(gguf-split) + add_subdirectory(imatrix) + add_subdirectory(llama-bench) + add_subdirectory(main) + add_subdirectory(perplexity) + add_subdirectory(quantize) + if (LLAMA_BUILD_SERVER) + add_subdirectory(server) + endif() + add_subdirectory(run) + add_subdirectory(tokenize) + add_subdirectory(tts) + if (NOT GGML_BACKEND_DL) + # these examples use the backends directly and cannot be built with dynamic loading + add_subdirectory(cvector-generator) + add_subdirectory(export-lora) + add_subdirectory(llava) + if (GGML_RPC) + add_subdirectory(rpc) + endif() + endif() +endif() diff --git a/examples/batched-bench/CMakeLists.txt b/tools/batched-bench/CMakeLists.txt similarity index 100% rename from examples/batched-bench/CMakeLists.txt rename to tools/batched-bench/CMakeLists.txt diff --git a/examples/batched-bench/README.md b/tools/batched-bench/README.md similarity index 100% rename from examples/batched-bench/README.md rename to tools/batched-bench/README.md diff --git a/examples/batched-bench/batched-bench.cpp b/tools/batched-bench/batched-bench.cpp similarity index 100% rename from examples/batched-bench/batched-bench.cpp rename to tools/batched-bench/batched-bench.cpp diff --git a/examples/cvector-generator/CMakeLists.txt b/tools/cvector-generator/CMakeLists.txt similarity index 100% rename from examples/cvector-generator/CMakeLists.txt rename to tools/cvector-generator/CMakeLists.txt diff --git a/examples/cvector-generator/README.md b/tools/cvector-generator/README.md similarity index 100% rename from examples/cvector-generator/README.md rename to tools/cvector-generator/README.md diff --git a/examples/cvector-generator/completions.txt b/tools/cvector-generator/completions.txt similarity index 100% rename from examples/cvector-generator/completions.txt rename to tools/cvector-generator/completions.txt diff --git a/examples/cvector-generator/cvector-generator.cpp b/tools/cvector-generator/cvector-generator.cpp similarity index 100% rename from examples/cvector-generator/cvector-generator.cpp rename to tools/cvector-generator/cvector-generator.cpp diff --git a/examples/cvector-generator/mean.hpp b/tools/cvector-generator/mean.hpp similarity index 100% rename from examples/cvector-generator/mean.hpp rename to tools/cvector-generator/mean.hpp diff --git a/examples/cvector-generator/negative.txt b/tools/cvector-generator/negative.txt similarity index 100% rename from examples/cvector-generator/negative.txt rename to tools/cvector-generator/negative.txt diff --git a/examples/cvector-generator/pca.hpp b/tools/cvector-generator/pca.hpp similarity index 100% rename from examples/cvector-generator/pca.hpp rename to tools/cvector-generator/pca.hpp diff --git a/examples/cvector-generator/positive.txt b/tools/cvector-generator/positive.txt similarity index 100% rename from examples/cvector-generator/positive.txt rename to tools/cvector-generator/positive.txt diff --git a/examples/export-lora/CMakeLists.txt b/tools/export-lora/CMakeLists.txt similarity index 100% rename from examples/export-lora/CMakeLists.txt rename to tools/export-lora/CMakeLists.txt diff --git a/examples/export-lora/README.md b/tools/export-lora/README.md similarity index 100% rename from examples/export-lora/README.md rename to tools/export-lora/README.md diff --git a/examples/export-lora/export-lora.cpp b/tools/export-lora/export-lora.cpp similarity index 100% rename from examples/export-lora/export-lora.cpp rename to tools/export-lora/export-lora.cpp diff --git a/examples/gguf-split/CMakeLists.txt b/tools/gguf-split/CMakeLists.txt similarity index 100% rename from examples/gguf-split/CMakeLists.txt rename to tools/gguf-split/CMakeLists.txt diff --git a/examples/gguf-split/README.md b/tools/gguf-split/README.md similarity index 100% rename from examples/gguf-split/README.md rename to tools/gguf-split/README.md diff --git a/examples/gguf-split/gguf-split.cpp b/tools/gguf-split/gguf-split.cpp similarity index 100% rename from examples/gguf-split/gguf-split.cpp rename to tools/gguf-split/gguf-split.cpp diff --git a/examples/gguf-split/tests.sh b/tools/gguf-split/tests.sh similarity index 100% rename from examples/gguf-split/tests.sh rename to tools/gguf-split/tests.sh diff --git a/examples/imatrix/CMakeLists.txt b/tools/imatrix/CMakeLists.txt similarity index 100% rename from examples/imatrix/CMakeLists.txt rename to tools/imatrix/CMakeLists.txt diff --git a/examples/imatrix/README.md b/tools/imatrix/README.md similarity index 98% rename from examples/imatrix/README.md rename to tools/imatrix/README.md index 9aa2b20347..6d8897d98b 100644 --- a/examples/imatrix/README.md +++ b/tools/imatrix/README.md @@ -1,4 +1,4 @@ -# llama.cpp/examples/imatrix +# llama.cpp/tools/imatrix Compute an importance matrix for a model and given text dataset. Can be used during quantization to enhance the quality of the quantized models. More information is available here: https://github.com/ggml-org/llama.cpp/pull/4861 diff --git a/examples/imatrix/imatrix.cpp b/tools/imatrix/imatrix.cpp similarity index 100% rename from examples/imatrix/imatrix.cpp rename to tools/imatrix/imatrix.cpp diff --git a/examples/llama-bench/CMakeLists.txt b/tools/llama-bench/CMakeLists.txt similarity index 100% rename from examples/llama-bench/CMakeLists.txt rename to tools/llama-bench/CMakeLists.txt diff --git a/examples/llama-bench/README.md b/tools/llama-bench/README.md similarity index 99% rename from examples/llama-bench/README.md rename to tools/llama-bench/README.md index 1f5e2f6620..d6fc77df88 100644 --- a/examples/llama-bench/README.md +++ b/tools/llama-bench/README.md @@ -1,4 +1,4 @@ -# llama.cpp/examples/llama-bench +# llama.cpp/tools/llama-bench Performance testing tool for llama.cpp. diff --git a/examples/llama-bench/llama-bench.cpp b/tools/llama-bench/llama-bench.cpp similarity index 100% rename from examples/llama-bench/llama-bench.cpp rename to tools/llama-bench/llama-bench.cpp diff --git a/examples/llava/CMakeLists.txt b/tools/llava/CMakeLists.txt similarity index 100% rename from examples/llava/CMakeLists.txt rename to tools/llava/CMakeLists.txt diff --git a/examples/llava/README-quantize.md b/tools/llava/README-quantize.md similarity index 100% rename from examples/llava/README-quantize.md rename to tools/llava/README-quantize.md diff --git a/examples/llava/README.md b/tools/llava/README.md similarity index 100% rename from examples/llava/README.md rename to tools/llava/README.md diff --git a/examples/llava/android/adb_run.sh b/tools/llava/android/adb_run.sh similarity index 100% rename from examples/llava/android/adb_run.sh rename to tools/llava/android/adb_run.sh diff --git a/examples/llava/android/build_64.sh b/tools/llava/android/build_64.sh similarity index 100% rename from examples/llava/android/build_64.sh rename to tools/llava/android/build_64.sh diff --git a/examples/llava/clip-impl.h b/tools/llava/clip-impl.h similarity index 100% rename from examples/llava/clip-impl.h rename to tools/llava/clip-impl.h diff --git a/examples/llava/clip-quantize-cli.cpp b/tools/llava/clip-quantize-cli.cpp similarity index 100% rename from examples/llava/clip-quantize-cli.cpp rename to tools/llava/clip-quantize-cli.cpp diff --git a/examples/llava/clip.cpp b/tools/llava/clip.cpp similarity index 100% rename from examples/llava/clip.cpp rename to tools/llava/clip.cpp diff --git a/examples/llava/clip.h b/tools/llava/clip.h similarity index 100% rename from examples/llava/clip.h rename to tools/llava/clip.h diff --git a/examples/llava/convert_image_encoder_to_gguf.py b/tools/llava/convert_image_encoder_to_gguf.py similarity index 100% rename from examples/llava/convert_image_encoder_to_gguf.py rename to tools/llava/convert_image_encoder_to_gguf.py diff --git a/examples/llava/deprecation-warning.cpp b/tools/llava/deprecation-warning.cpp similarity index 100% rename from examples/llava/deprecation-warning.cpp rename to tools/llava/deprecation-warning.cpp diff --git a/examples/llava/glmedge-convert-image-encoder-to-gguf.py b/tools/llava/glmedge-convert-image-encoder-to-gguf.py similarity index 100% rename from examples/llava/glmedge-convert-image-encoder-to-gguf.py rename to tools/llava/glmedge-convert-image-encoder-to-gguf.py diff --git a/examples/llava/glmedge-surgery.py b/tools/llava/glmedge-surgery.py similarity index 100% rename from examples/llava/glmedge-surgery.py rename to tools/llava/glmedge-surgery.py diff --git a/examples/llava/llava.cpp b/tools/llava/llava.cpp similarity index 100% rename from examples/llava/llava.cpp rename to tools/llava/llava.cpp diff --git a/examples/llava/llava.h b/tools/llava/llava.h similarity index 100% rename from examples/llava/llava.h rename to tools/llava/llava.h diff --git a/examples/llava/llava_surgery.py b/tools/llava/llava_surgery.py similarity index 100% rename from examples/llava/llava_surgery.py rename to tools/llava/llava_surgery.py diff --git a/examples/llava/llava_surgery_v2.py b/tools/llava/llava_surgery_v2.py similarity index 100% rename from examples/llava/llava_surgery_v2.py rename to tools/llava/llava_surgery_v2.py diff --git a/examples/llava/minicpmv-convert-image-encoder-to-gguf.py b/tools/llava/minicpmv-convert-image-encoder-to-gguf.py similarity index 100% rename from examples/llava/minicpmv-convert-image-encoder-to-gguf.py rename to tools/llava/minicpmv-convert-image-encoder-to-gguf.py diff --git a/examples/llava/minicpmv-surgery.py b/tools/llava/minicpmv-surgery.py similarity index 100% rename from examples/llava/minicpmv-surgery.py rename to tools/llava/minicpmv-surgery.py diff --git a/examples/llava/mtmd-cli.cpp b/tools/llava/mtmd-cli.cpp similarity index 100% rename from examples/llava/mtmd-cli.cpp rename to tools/llava/mtmd-cli.cpp diff --git a/examples/llava/mtmd.cpp b/tools/llava/mtmd.cpp similarity index 100% rename from examples/llava/mtmd.cpp rename to tools/llava/mtmd.cpp diff --git a/examples/llava/mtmd.h b/tools/llava/mtmd.h similarity index 100% rename from examples/llava/mtmd.h rename to tools/llava/mtmd.h diff --git a/examples/llava/qwen2vl-test.cpp b/tools/llava/qwen2vl-test.cpp similarity index 100% rename from examples/llava/qwen2vl-test.cpp rename to tools/llava/qwen2vl-test.cpp diff --git a/examples/llava/requirements.txt b/tools/llava/requirements.txt similarity index 100% rename from examples/llava/requirements.txt rename to tools/llava/requirements.txt diff --git a/examples/llava/test-1.jpeg b/tools/llava/test-1.jpeg similarity index 100% rename from examples/llava/test-1.jpeg rename to tools/llava/test-1.jpeg diff --git a/examples/llava/tests.sh b/tools/llava/tests.sh similarity index 100% rename from examples/llava/tests.sh rename to tools/llava/tests.sh diff --git a/examples/main/CMakeLists.txt b/tools/main/CMakeLists.txt similarity index 100% rename from examples/main/CMakeLists.txt rename to tools/main/CMakeLists.txt diff --git a/examples/main/README.md b/tools/main/README.md similarity index 99% rename from examples/main/README.md rename to tools/main/README.md index e4b3590b5d..4f16ad6b2b 100644 --- a/examples/main/README.md +++ b/tools/main/README.md @@ -1,4 +1,4 @@ -# llama.cpp/examples/main +# llama.cpp/tools/main This example program allows you to use various LLaMA language models easily and efficiently. It is specifically designed to work with the [llama.cpp](https://github.com/ggml-org/llama.cpp) project, which provides a plain C/C++ implementation with optional 4-bit quantization support for faster, lower memory inference, and is optimized for desktop CPUs. This program can be used to perform various inference tasks with LLaMA models, including generating text based on user-provided prompts and chat-like interactions with reverse prompts. diff --git a/examples/main/main.cpp b/tools/main/main.cpp similarity index 100% rename from examples/main/main.cpp rename to tools/main/main.cpp diff --git a/examples/perplexity/CMakeLists.txt b/tools/perplexity/CMakeLists.txt similarity index 100% rename from examples/perplexity/CMakeLists.txt rename to tools/perplexity/CMakeLists.txt diff --git a/examples/perplexity/README.md b/tools/perplexity/README.md similarity index 100% rename from examples/perplexity/README.md rename to tools/perplexity/README.md diff --git a/examples/perplexity/perplexity.cpp b/tools/perplexity/perplexity.cpp similarity index 100% rename from examples/perplexity/perplexity.cpp rename to tools/perplexity/perplexity.cpp diff --git a/examples/quantize/CMakeLists.txt b/tools/quantize/CMakeLists.txt similarity index 100% rename from examples/quantize/CMakeLists.txt rename to tools/quantize/CMakeLists.txt diff --git a/examples/quantize/README.md b/tools/quantize/README.md similarity index 100% rename from examples/quantize/README.md rename to tools/quantize/README.md diff --git a/examples/quantize/quantize.cpp b/tools/quantize/quantize.cpp similarity index 100% rename from examples/quantize/quantize.cpp rename to tools/quantize/quantize.cpp diff --git a/examples/quantize/tests.sh b/tools/quantize/tests.sh similarity index 100% rename from examples/quantize/tests.sh rename to tools/quantize/tests.sh diff --git a/examples/rpc/CMakeLists.txt b/tools/rpc/CMakeLists.txt similarity index 100% rename from examples/rpc/CMakeLists.txt rename to tools/rpc/CMakeLists.txt diff --git a/examples/rpc/README.md b/tools/rpc/README.md similarity index 100% rename from examples/rpc/README.md rename to tools/rpc/README.md diff --git a/examples/rpc/rpc-server.cpp b/tools/rpc/rpc-server.cpp similarity index 100% rename from examples/rpc/rpc-server.cpp rename to tools/rpc/rpc-server.cpp diff --git a/examples/run/CMakeLists.txt b/tools/run/CMakeLists.txt similarity index 100% rename from examples/run/CMakeLists.txt rename to tools/run/CMakeLists.txt diff --git a/examples/run/README.md b/tools/run/README.md similarity index 100% rename from examples/run/README.md rename to tools/run/README.md diff --git a/examples/run/linenoise.cpp/linenoise.cpp b/tools/run/linenoise.cpp/linenoise.cpp similarity index 100% rename from examples/run/linenoise.cpp/linenoise.cpp rename to tools/run/linenoise.cpp/linenoise.cpp diff --git a/examples/run/linenoise.cpp/linenoise.h b/tools/run/linenoise.cpp/linenoise.h similarity index 100% rename from examples/run/linenoise.cpp/linenoise.h rename to tools/run/linenoise.cpp/linenoise.h diff --git a/examples/run/run.cpp b/tools/run/run.cpp similarity index 100% rename from examples/run/run.cpp rename to tools/run/run.cpp diff --git a/examples/server/CMakeLists.txt b/tools/server/CMakeLists.txt similarity index 100% rename from examples/server/CMakeLists.txt rename to tools/server/CMakeLists.txt diff --git a/examples/server/README.md b/tools/server/README.md similarity index 99% rename from examples/server/README.md rename to tools/server/README.md index 61446a0ba2..0ec786ea76 100644 --- a/examples/server/README.md +++ b/tools/server/README.md @@ -232,7 +232,7 @@ To build or to run the dev server (with hot reload): ```sh # make sure you have nodejs installed -cd examples/server/webui +cd tools/server/webui npm i # to run the dev server @@ -242,7 +242,7 @@ npm run dev npm run build ``` After `public/index.html.gz` has been generated we need to generate the c++ -headers (like build/examples/server/index.html.gz.hpp) that will be included +headers (like build/tools/server/index.html.gz.hpp) that will be included by server.cpp. This is done by building `llama-server` as described in the [build](#build) section above. @@ -1228,12 +1228,12 @@ Apart from error types supported by OAI, we also have custom types that are spec ### Legacy completion web UI -A new chat-based UI has replaced the old completion-based since [this PR](https://github.com/ggml-org/llama.cpp/pull/10175). If you want to use the old completion, start the server with `--path ./examples/server/public_legacy` +A new chat-based UI has replaced the old completion-based since [this PR](https://github.com/ggml-org/llama.cpp/pull/10175). If you want to use the old completion, start the server with `--path ./tools/server/public_legacy` For example: ```sh -./llama-server -m my_model.gguf -c 8192 --path ./examples/server/public_legacy +./llama-server -m my_model.gguf -c 8192 --path ./tools/server/public_legacy ``` ### Extending or building alternative Web Front End diff --git a/examples/server/bench/README.md b/tools/server/bench/README.md similarity index 100% rename from examples/server/bench/README.md rename to tools/server/bench/README.md diff --git a/examples/server/bench/bench.py b/tools/server/bench/bench.py similarity index 100% rename from examples/server/bench/bench.py rename to tools/server/bench/bench.py diff --git a/examples/server/bench/prometheus.yml b/tools/server/bench/prometheus.yml similarity index 100% rename from examples/server/bench/prometheus.yml rename to tools/server/bench/prometheus.yml diff --git a/examples/server/bench/requirements.txt b/tools/server/bench/requirements.txt similarity index 100% rename from examples/server/bench/requirements.txt rename to tools/server/bench/requirements.txt diff --git a/examples/server/bench/script.js b/tools/server/bench/script.js similarity index 100% rename from examples/server/bench/script.js rename to tools/server/bench/script.js diff --git a/examples/server/chat-llama2.sh b/tools/server/chat-llama2.sh similarity index 100% rename from examples/server/chat-llama2.sh rename to tools/server/chat-llama2.sh diff --git a/examples/server/chat.mjs b/tools/server/chat.mjs similarity index 100% rename from examples/server/chat.mjs rename to tools/server/chat.mjs diff --git a/examples/server/chat.sh b/tools/server/chat.sh similarity index 100% rename from examples/server/chat.sh rename to tools/server/chat.sh diff --git a/examples/server/httplib.h b/tools/server/httplib.h similarity index 100% rename from examples/server/httplib.h rename to tools/server/httplib.h diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz new file mode 100644 index 0000000000000000000000000000000000000000..6f760c39f44c0ed88f0319fd72971f94168dee7a GIT binary patch literal 1263378 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