@@ -364,11 +364,11 @@ void matmul_shaders(bool fp16, MatMulIdType matmul_id_type, bool coopmat, bool c
364364 };
365365
366366 // Shaders with f16 B_TYPE
367- 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);
368- 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);
367+ 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);
368+ 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}, {" B_TYPE32 " , aligned_b_type_f32}, { " D_TYPE" , " float" }, {" ALIGNED" , " 1" }}), fp16, coopmat, coopmat2, f16acc);
369369
370- 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);
371- 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);
370+ 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}, { " B_TYPE32 " , aligned_b_type_f32 }, {" D_TYPE" , " float" }, {" ALIGNED" , " 1" }}), fp16, coopmat, coopmat2, f16acc);
371+ 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);
372372
373373 // bf16
374374 {
@@ -384,8 +384,8 @@ void matmul_shaders(bool fp16, MatMulIdType matmul_id_type, bool coopmat, bool c
384384 if (!(coopmat || coopmat2))
385385#endif
386386 {
387- 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);
388- 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);
387+ 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" }, {" B_TYPE32 " , " vec4 " }, { " D_TYPE" , " float" }, {" B_IS_FLOAT" , " 1 " }, { " DATA_B_BF16 " , " 1" }, {" ALIGNED" , " 1" }}), fp16, coopmat, coopmat2, f16acc);
388+ 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 " }, { " DATA_B_BF16 " , " 1" }}), fp16, coopmat, coopmat2, f16acc);
389389 }
390390 }
391391
@@ -408,13 +408,13 @@ void matmul_shaders(bool fp16, MatMulIdType matmul_id_type, bool coopmat, bool c
408408
409409 // don't generate f32 variants for coopmat2
410410 if (!coopmat2) {
411- 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);
412- 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);
411+ 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);
412+ 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}, {" B_TYPE32 " , aligned_b_type_f32}, { " D_TYPE" , " float" }, {" ALIGNED" , " 1" }}), fp16, coopmat, coopmat2, f16acc);
413413 }
414414
415415 if (tname != " f16" && tname != " f32" ) {
416- 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);
417- 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);
416+ 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);
417+ 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}, {" B_TYPE32 " , aligned_b_type_f32}, { " D_TYPE" , " float" }, {" ALIGNED" , " 1" }}), fp16, coopmat, coopmat2, f16acc);
418418 }
419419
420420#if defined(GGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT)
0 commit comments