From 377b0060486531b6f64e91d60fec6516f6e2f1ce Mon Sep 17 00:00:00 2001 From: "Nakasaka, Masato" Date: Sun, 18 Jan 2026 23:35:10 -0800 Subject: [PATCH] revert dynamic gpu_pipeline_configs init --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 76 ++++++++++++---------------- 1 file changed, 33 insertions(+), 43 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 3cb759bbe6..6aab153e8c 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -2860,7 +2860,7 @@ struct GpuPipelineConfig { vk_device_architecture arch; // Mapping of pipeline names to their specific configuration parameters. - // Example: {"soft_max_f32", {64, {}} + // Example: {"soft_max_f32", {64}} std::unordered_map pipelines; // Default subgroup size for this GPU. @@ -2907,47 +2907,38 @@ static const std::unordered_map xe2_onward static constexpr uint32_t INTEL_DEFAULT_SUBGROUP_SIZE = 32; // Define configurations for different GPUs. -static std::vector gpu_pipeline_configs = {}; - -// Initialize vendor/pipeline specific parameters to be used when creating pipelines -static void init_gpu_pipeline_configs(std::vector& config) { - if (!config.empty()) { - // Already setup - return; +static std::vector gpu_pipeline_configs = { + { + vk_device_architecture::AMD_RDNA1, + { + rdna1_pipelines, + }, + RDNA_DEFAULT_SUBGROUP_SIZE + }, + { + vk_device_architecture::AMD_RDNA2, + { + rdna2_pipelines, + }, + RDNA_DEFAULT_SUBGROUP_SIZE + }, + { + vk_device_architecture::INTEL_PRE_XE2, + { + }, + INTEL_DEFAULT_SUBGROUP_SIZE + }, + { + vk_device_architecture::INTEL_XE2_ONWARD, + { + xe2_onward_pipelines, + }, + INTEL_DEFAULT_SUBGROUP_SIZE } - config.insert(config.end(),{ - { - vk_device_architecture::AMD_RDNA1, - { - rdna1_pipelines, - }, - RDNA_DEFAULT_SUBGROUP_SIZE - }, - { - vk_device_architecture::AMD_RDNA2, - { - rdna2_pipelines, - }, - RDNA_DEFAULT_SUBGROUP_SIZE - }, - { - vk_device_architecture::INTEL_PRE_XE2, - { - }, - INTEL_DEFAULT_SUBGROUP_SIZE - }, - { - vk_device_architecture::INTEL_XE2_ONWARD, - { - xe2_onward_pipelines, - }, - INTEL_DEFAULT_SUBGROUP_SIZE - } - }); -} +}; -static bool get_gpu_pipeline_config(GpuPipelineConfig* output, const std::vector& pipeline_configs, const vk_device_architecture& arch) { - for (const auto & config : pipeline_configs) { +static bool get_gpu_pipeline_config(GpuPipelineConfig* output, const vk_device_architecture& arch) { + for (const auto & config : gpu_pipeline_configs) { if (config.arch == arch) { *output = config; return true; @@ -3171,7 +3162,7 @@ static void ggml_vk_load_shaders(vk_device& device) { GpuPipelineConfig gpu_config = {}; PipelineConfigParameter pipeline_param = {}; bool param_found = false; - auto gpu_config_found = get_gpu_pipeline_config(&gpu_config, gpu_pipeline_configs, device->architecture); + auto gpu_config_found = get_gpu_pipeline_config(&gpu_config, device->architecture); if (gpu_config_found) { param_found = get_pipeline_config_parameter(&pipeline_param, gpu_config, std::string(name)); } @@ -5466,7 +5457,7 @@ static void ggml_vk_print_gpu_info(size_t idx) { uint32_t default_subgroup_size = 0; GpuPipelineConfig gpu_config = {}; - auto config_found = get_gpu_pipeline_config(&gpu_config, gpu_pipeline_configs, device_architecture); + auto config_found = get_gpu_pipeline_config(&gpu_config, device_architecture); if (config_found) { default_subgroup_size = gpu_config.default_subgroup_size; } @@ -5721,7 +5712,6 @@ static void ggml_vk_instance_init() { } GGML_LOG_DEBUG("ggml_vulkan: Found %zu Vulkan devices:\n", vk_instance.device_indices.size()); - init_gpu_pipeline_configs(gpu_pipeline_configs); for (size_t i = 0; i < vk_instance.device_indices.size(); i++) { vk::PhysicalDevice vkdev = devices[vk_instance.device_indices[i]]; std::vector extensionprops = vkdev.enumerateDeviceExtensionProperties();