Skip to content

Commit 1051ecd

Browse files
authored
vulkan: Disable large coopmat matmul configuration on proprietary AMD driver (ggml-org#18763)
* vulkan: Disable large coopmat matmul configuration on proprietary AMD driver * Also disable the large tile size
1 parent 0c3b7a9 commit 1051ecd

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

ggml/src/ggml-vulkan/ggml-vulkan.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3002,7 +3002,7 @@ static void ggml_vk_load_shaders(vk_device& device) {
30023002
if ((device->architecture == AMD_GCN) && (device->driver_id != vk::DriverId::eAmdProprietary)) {
30033003
m_warptile_mmq = m_warptile_mmq_int = { 256, 64, 64, 32, 16, 16, 2, 2, 2, 1, 16 };
30043004
m_warptile_mmqid = m_warptile_mmqid_int = { 256, 64, 64, 32, 16, 16, 2, 2, 2, 1, 16 };
3005-
} else if (device->vendor_id == VK_VENDOR_ID_AMD && device->coopmat_support) {
3005+
} else if (device->vendor_id == VK_VENDOR_ID_AMD && device->coopmat_support && device->driver_id != vk::DriverId::eAmdProprietary) {
30063006
// This is intentionally using tx_m values, slight performance increase
30073007
l_warptile = { 256, 128, 128, 16, subgroup_size_8, 64, 2, tm_m, tn_m, tk_m, subgroup_size_8 };
30083008
l_warptile_mmq = l_warptile_mmq_int = { 256, 128, 128, 32, subgroup_size_8, 64, 2, tm_m, tn_m, tk_m, subgroup_size_8 };
@@ -5083,7 +5083,7 @@ static vk_device ggml_vk_get_device(size_t idx) {
50835083
switch (device->vendor_id) {
50845084
#ifndef GGML_VULKAN_RUN_TESTS
50855085
case VK_VENDOR_ID_AMD:
5086-
device->mul_mat_l[i] = device->coopmat_support;
5086+
device->mul_mat_l[i] = device->coopmat_support && device->driver_id != vk::DriverId::eAmdProprietary;
50875087
device->mul_mat_m[i] = true;
50885088
device->mul_mat_s[i] = true;
50895089
device->mul_mat_id_l[i] = false;

0 commit comments

Comments
 (0)