diff --git a/comfy/customzluda/zluda.py b/comfy/customzluda/zluda.py index 49f93daa5..46b9eb5f6 100644 --- a/comfy/customzluda/zluda.py +++ b/comfy/customzluda/zluda.py @@ -94,42 +94,70 @@ def gpu_name_to_gfx(gpu_name): """ gpu_name_lower = gpu_name.lower() + # RDNA4 (gfx12xx) + if any(x in gpu_name_lower for x in ['rx 9070', 'r9070', 'rx 9060']): + if 'rx 9060' in gpu_name_lower: + return 'gfx1200' # Navi 44 (gfx1200) + elif 'rx 9070' in gpu_name_lower or 'r9070' in gpu_name_lower: + return 'gfx1201' # Navi 48 (gfx1201) + + # RDNA3.5 (gfx115x) + elif '890m' in gpu_name_lower: + return 'gfx1150' # Strix Point (gfx1150) + elif any(x in gpu_name_lower for x in ['8060s', '8050s', '8040s', '880m']): + return 'gfx1151' # Strix Halo (gfx1151) + elif any(x in gpu_name_lower for x in ['860m', '840m', '820m']): + return 'gfx1152' # Krackan Point (gfx1152) + # RDNA3 (gfx11xx) - if any(x in gpu_name_lower for x in ['rx 7900', 'rx 7800', 'rx 7700', 'rx 7600', 'rx 7500']): - if 'rx 7900' in gpu_name_lower: - return 'gfx1100' # Navi 31 - elif 'rx 7800' in gpu_name_lower or 'rx 7700' in gpu_name_lower: - return 'gfx1101' # Navi 32 - elif 'rx 7600' in gpu_name_lower or 'rx 7500' in gpu_name_lower: - return 'gfx1102' # Navi 33 + elif any(x in gpu_name_lower for x in ['rx 7900', 'w7900', 'w7800']): + return 'gfx1100' # Navi 31 (gfx1100) + elif any(x in gpu_name_lower for x in ['rx 7800', 'rx 7700', 'w7700']): + return 'gfx1101' # Navi 32 (gfx1101) + elif any(x in gpu_name_lower for x in ['rx 7700s', 'rx 7650', 'w7600', 'rx 7600', 'w7500', 'w7400', 'rx 7400']): + return 'gfx1102' # Navi 33 (gfx1102) + elif any(x in gpu_name_lower for x in ['780m', '760m', '740m']): + return 'gfx1100' # Hawk Point (gfx1103) # RDNA2 (gfx10xx) - elif any(x in gpu_name_lower for x in ['rx 6950', 'rx 6900', 'rx 6800', 'rx 6750', 'rx 6700']): - return 'gfx1030' # Navi 21/22 - elif any(x in gpu_name_lower for x in ['rx 6650', 'rx 6600', 'rx 6500', 'rx 6400']): - return 'gfx1032' # Navi 23/24 + elif any(x in gpu_name_lower for x in ['rx 6950', 'rx 6900', 'w6800', 'rx 6800']): + return 'gfx1030' # Navi 21 (gfx1030) + elif any(x in gpu_name_lower for x in ['rx 6850', 'rx 6800m', 'rx 6750', 'rx 6700']): + return 'gfx1030' # Navi 22 (gfx1031) + elif any(x in gpu_name_lower for x in ['rx 6800s', 'rx 6700s', 'rx 6650', 'rx 6600', 'w6600', 'rx 6550', 'rx 6500', 'rx 6450', 'rx 6400', 'rx 6300']): + return 'gfx1032' # Navi 23 (gfx1032) + elif any(x in gpu_name_lower for x in ['rx 6550', 'rx 6500', 'w6500', 'rx 6450', 'rx 6400', 'w6400', 'rx 6300', 'w6300']): + return 'gfx1032' # Navi 24 (gfx1034) + elif '680m' in gpu_name_lower or '660m' in gpu_name_lower: + return 'gfx1030' # Rembrandt (gfx1035) # RDNA1 (gfx10xx) - elif any(x in gpu_name_lower for x in ['rx 5700', 'rx 5600', 'rx 5500']): - return 'gfx1010' # Navi 10 + elif any(x in gpu_name_lower for x in ['rx 5700', 'w5700', 'rx 5600']): + return 'gfx1010' # Navi 10 (gfx1010) + elif any(x in gpu_name_lower for x in ['rx 5500', 'w5500','rx 5300', 'w5300']): + return 'gfx1010' # Navi 14 (gfx1012) # Vega (gfx9xx) - elif any(x in gpu_name_lower for x in ['vega 64', 'vega 56', 'vega 20', 'radeon vii']): - return 'gfx900' # Vega 10/20 - elif 'vega 11' in gpu_name_lower or 'vega 8' in gpu_name_lower: - return 'gfx902' # Raven Ridge APU + elif any(x in gpu_name_lower for x in ['vega 64', 'vega 56', 'frontier']): + return 'gfx900' # Vega 10 (gfx900, gfx901) + elif 'radeon vii' in gpu_name_lower or 'radeon pro vii' in gpu_name_lower: + return 'gfx900' # Vega 20 (gfx906, gfx907) + elif any(x in gpu_name_lower for x in ['vega 11', 'vega 10', 'vega 9', 'vega 8', 'vega 6', 'vega 3']): + return 'gfx902' # Raven Ridge APU (gfx902, gfx903) + elif 'radeon graphics' in gpu_name_lower: # Without (tm) + return 'gfx902' # Vega APUs (gfx90c) - Barcelo, Cezanne, Lucienne, Renoir # Polaris (gfx8xx) - elif any(x in gpu_name_lower for x in ['rx 580', 'rx 570', 'rx 480', 'rx 470']): - return 'gfx803' # Polaris 10/20 - elif any(x in gpu_name_lower for x in ['rx 560', 'rx 550', 'rx 460']): - return 'gfx803' # Polaris 11/12 + elif any(x in gpu_name_lower for x in ['rx 590', 'rx 580', 'rx 570', 'rx 560', 'rx 480', 'rx 470', 'rx 460']): + return 'gfx803' # Polaris 10/11/20/21/30/31 (gfx803) + elif any(x in gpu_name_lower for x in ['rx 640', 'rx 550', 'rx 540']): + return 'gfx803' # Polaris 12/22/23 (gfx804) # Default fallback - try to extract numbers and make educated guess if 'rx 9' in gpu_name_lower: # Future RDNA4? - return 'gfx1200' # Anticipated next gen - elif 'rx 8' in gpu_name_lower: # Future RDNA4? - return 'gfx1150' # Anticipated next gen + return 'gfx1200' # Default RDNA4 + elif 'rx 8' in gpu_name_lower: # Future RDNA3.5? + return 'gfx1150' # Default RDNA3.5 elif 'rx 7' in gpu_name_lower: return 'gfx1100' # Default RDNA3 elif 'rx 6' in gpu_name_lower: