
    ukiO                        U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZedk(  r@ ed        ej                  d      Z
 ej                  d      Zej                  ded	       ej                  d
ddd       ej                  dedd       ej                         Zej"                  j%                  ej&                        j)                  d      d    Zej"                  j-                  ej"                  j/                  ej&                        d    d      Zej"                  j-                  ej"                  j/                  ej2                        d    d      Z ee
e      sJ e
ddgZ ej:                  edd      j<                  Zdev rdndZ  ee
e      sJ e
dddddde ej2                   dej&                   gZ! ede! d        ejD                  e!ej<                  ejF                         Z$e$jK                           ejL                  d!      Z'i Z(e)ee*f   e+d"<    e,ej&                   d#d$      5 Z- e,e e d%e  d&d$      5 Z. e j^                  e.      Z0e0D ]  Z1e1d'   Z2 e3e1d(         Z4e'jk                  e2      Z6e6'ejn                  r4e(jq                  e6js                  d)      g       ju                  e4d*z         ge-jw                  d+e6js                  d)       d,e4d*z   d-        	 ddd       ejn                  r6e(jy                         D ]#  \  Z2Z=e-jw                  d+e2 d, e>e=       d-       % ddd       d.e d/e d0Z? ej                  e?d1       yy# 1 sw Y   rxY w# 1 sw Y   4xY w)2    N__main__zScript to convert NVIDIA Nsys Profiles to the .pbtxt format. This format is readable by XLA's Profile Guided Latency Estimator. Usage: pgo_nsys_converter.py --profile_path <path the nsys profile> --pgle_output_path <path to output .pbtxt>nsysz9Tool to convert NVIDIA Nsys Profiles to the .pbtxt format)descriptionz--profile_pathzpath to nsys profile)typehelpz--post_processz=post process pbtxt to get max cost value for each instruction
store_trueT)r   actiondefaultz--pgle_output_pathzoutput directoryz)/opt/paxml/workspace/lhs_pbtxt/temp.pbtxt)r   r   r
   . statsz--help-reports)capture_outputtextnvtx_kern_sumnvtxkernsumz--force-overwritetruez--force-exportz--reportz-oz,
    ******Starting stats command******
    )stdoutstderrzhlo_op=(.*)#cost_dictionaryw)newlinez.pbtxt_z.csvz
NVTX RangezAvg (ns)   g     @@zcosts { name: "z" cost_us: z }
zrm z/*.sqlite; rm z/*.csv)shell)Acsvresysargparseosshutil
subprocess__name__printwhich	nsys_pathArgumentParserparseradd_argumentstr
parse_argsargspathbasenamepgle_output_path	partitionpgle_filenamejoinsplitpgle_folderprofile_pathprofile_folder
isinstancequery_reports_commandrunr   reports_listreport_namestats_commandPopenr   procwaitcompilethunk_rer   dictlist__annotations__open	protofilecsvfile
DictReaderreaderrownamefloattime_nssearchmpost_process
setdefaultgroupappendwriteitemscostmaxclean_commandcall     W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/tools/pgo_nsys_converter.py<module>r[      s    	 
  	  z  	y  zfll6")"8""/jk&&S7MN&-l  vB  LP  Q*;M  XC  D				$''""4#8#89CCCHK-RWW]]4+@+@A!DbI+77<<d.?.? @ CRH.	Is	##	# %g/?@ 5dQUV]],#2l#B+	Is	##	#g':FDTV\^hjuz~  {L  {L  zM  PT  Y]  Yn  Yn  Xo  q- O1	  
		-

3::	N$))+RZZ'(%'/4T	?'t$$%R8 NI	m_GK=Er	R 
_V]s~~g&f _#< J(OOD!=&&qwwqz26==gfnMOO.qwwqzl+gPVFVEWW\]^_
_ '--/ N*$*4&CI;eLMNN  '~k]&I-*//-t,i H
_ 
_N Ns,   8M1;M%A,M%4A
M1%M.	*M11M: