
    pi                        d dl mZ d dlmZmZ d dlmZ ddlmZ erd dl	m
Z
 ddlmZmZ ddlmZmZ 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Zy
)    )annotations)TYPE_CHECKINGUnion)trace_structured   )estimate_peak_memory_allocfree)
OrderedSet)FreeableInputBufferSNodeMemory)BaseSchedulerNodeSchedulerBufferc                z   d}||    }t        |||      \  }}}}t        t        ||            }||    }||    }d||kD  rdd}||k7  rdd}t        |      D ]*  \  }}||   }||   }||k7  sd|j	                          d}, |rd| j	                          d| d	| d
| d| j                          d| d| d| d||     z  d}t        |      D ]M  \  }\  }}||k(  s||   }d| d| d| dt        |       d|j	                          d|j                          } n d}t        |      D ]h  \  }}||   }||   }|d| d|j                          d| d|j	                          d| d| d|j	                          d| d| d||    d| d||    z  }j |z  |z  d|
 z  dj                  t        |      D cg c]3  \  }}d| d|j                          d||    d||    d ||    d!||    5 c}}      z  |	 d"t         d#        t        d$fd%fd&'       |S c c}}w )(NF zITERATIVE PEAK DOES NOT MATCHTz.ITERATIVE CURR MEMORY CANDIDATE DOES NOT MATCHz(ITERATIVE GN CURR MEMORY DOES NOT MATCH:z
CANDIDATE:z
GROUP:z
PEAK_MEMORY_BEFORE:z
PEAK_MEMORY_AFTER_SWAP:z
CANDIDATE_ITER_CURR_MEMORY:z
CANDIDATE_NEW__CURR_MEMORY:z
CANDIDATE_ITER_ALLOCFREE:z
CANDIDATE_NEW_ALLOCFREE:z

NEW_PEAK:z(BASE:z
) @ SNODE[/z]: z
GROUP_NODE[z] ITER_GNM[z] ESTM_GNM[z] ITER_allocfree:z] ESTM_allocfree:z
GN_TO_BUFS_LAST_USE:z

z
SNODE[z]
z
ITER_cur_mem:z
ESTM_cur_mem:z
ITER_allocfree:z
ESTM_allocfree:_ITERATIVE_RECOMPUTE_ERRORz:
artifactc                      ddS )Nstring)nameencoding )tnames   ]/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/_inductor/comms_debug.py<lambda>z3_debug_iterative_memory_recompute.<locals>.<lambda>j   s    $!     c                      S )Nr   )logs   r   r   z3_debug_iterative_memory_recompute.<locals>.<lambda>n   s    s r   )metadata_fn
payload_fn)
r   dictzip	enumerateget_name	debug_strlenjoinprintr   )	candidategnsgroup_namessnodesname_to_freeable_input_bufgraph_outputspeak_memoryiter_curr_memorysnodes_allocfreetlparse_namegn_to_bufs_last_useiterative_recompute_errorcandidate_allocfreeest_peak_memorysnodes_curr_memory_est_curr_memoryiter_cmnew_cmigniter_gnmnew_gnmpeak_logprepostn	group_logr   r   s                               @@r   !_debug_iterative_memory_recomputerE      sh    !&*95&.	
 =O')91
 3v'9:;Oy)GY'F
C$-$(!&>$(!3 -2#B'!"%w<R[[]OLC(,%- !9--/0{m#K=''89..01+G9+F8)*=)>()9))D(EG
	
 '(:; 	NA{T#%1I!/!2& F  !s!CK=1::<.!++-R  	 	s^ 		EAr'+H%b)Gs"R\\^$4s+bkkm_Bxjs+bkkm_Bwis"34DR4H3Is"34DR4H3I	KI		 	xy'(;'<==v{{ &f-	 Aq qcQ[[]O%&6q&9%:%oa&8%9'(8(;'<'(8(;'<	>	
 	
  . :;s3% ! #	
 %$+	s   
8H7N)r)   r   r*   list[BaseSchedulerNode]r+   strr,   rF   r-   zdict[str, FreeableInputBuffer]r.   zOrderedSet[str]r/   intr0   z(dict[BaseSchedulerNode, tuple[int, int]]r1   z$dict[BaseSchedulerNode, SNodeMemory]r2   rG   r3   zJdict[BaseSchedulerNode, list[Union[FreeableInputBuffer, SchedulerBuffer]]]returnbool)
__future__r   typingr   r   torch._loggingr   memoryr   torch.utils._ordered_setr	   r
   r   	schedulerr   r   rE   r   r   r   <module>rQ      s    " ' + 2 38=_% _%	 _% _% $	_%
 !?_% #_% _% ?_% ;_% _%_% 
_%r   