@@ -55,26 +55,26 @@ def create_temp_prompt_file(prompt, min_length=200):
5555def parse_memory_from_output (output ):
5656 """Parse memory usage metrics from llama.cpp output"""
5757 try :
58- # Parse KV cache size
59- kv_cache_match = re .search (r'KV cache elements: (\d+).* (\d+(\.\d+)?) MiB' , output , re .MULTILINE )
60- if kv_cache_match :
61- kv_cache_mb = float (kv_cache_match .group (2 ))
62- else :
63- kv_cache_mb = None
58+ # Look for KV cache memory usage
59+ kv_cache_mb = None
60+ kv_match = re .search (r'KV cache elements: \d+.*?(\d+(?:\.\d+)?) MiB' , output , re .MULTILINE )
61+ if kv_match :
62+ kv_cache_mb = float (kv_match .group (1 ))
63+
64+ # Look for VRAM usage (try multiple patterns)
65+ vram_mb = None
66+ patterns = [
67+ r'VRAM usage: (\d+(?:\.\d+)?) MiB' ,
68+ r'GPU memory used: \d+ bytes = (\d+(?:\.\d+)?) MB'
69+ ]
70+ for pattern in patterns :
71+ match = re .search (pattern , output , re .MULTILINE )
72+ if match :
73+ vram_mb = float (match .group (1 ))
74+ break
6475
65- # Parse total VRAM usage
66- vram_match = re .search (r'VRAM usage: (\d+(\.\d+)?) MiB' , output , re .MULTILINE )
67- if vram_match :
68- vram_mb = float (vram_match .group (1 ))
69- else :
70- # Alternative pattern
71- vram_match = re .search (r'GPU memory used: (\d+) bytes = (\d+(\.\d+)?) MB' , output , re .MULTILINE )
72- if vram_match :
73- vram_mb = float (vram_match .group (2 ))
74- else :
75- vram_mb = None
76-
7776 return kv_cache_mb , vram_mb
77+
7878 except Exception as e :
7979 print_color (RED , f"Error parsing memory metrics: { e } " )
8080 return None , None
0 commit comments