
    gg9"                     :   S SK r S SKJrJrJr  \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" S	S\R
                  S 5      \" S
S\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      \" SS\R
                  S 5      /rS rS rS r	S r
S  rS#S! jrS" rg)$    N)MetricRequestRequestedMetricsParser
Importancezdram__cycles_active.avgzdram__cycles_active.maxzdram__cycles_active.minzdram__cycles_active.sumzdram__cycles_elapsed.sumzl1tex__cycles_active.avgzl1tex__cycles_active.maxzl1tex__cycles_active.minzl1tex__cycles_active.sumzl1tex__cycles_elapsed.sumzlts__cycles_active.avgzlts__cycles_active.maxzlts__cycles_active.minzlts__cycles_active.sumzlts__cycles_elapsed.sumzsm__cycles_active.avgzsm__cycles_active.maxzsm__cycles_active.minzsm__cycles_active.sumzsm__cycles_elapsed.sumzsmsp__cycles_active.avgzsmsp__cycles_active.maxzsmsp__cycles_active.minzsmsp__cycles_active.sumzsmsp__cycles_elapsed.sumc                      g)NWorkloadImbalance r       5nsight-compute-2025.1.1/sections/WorkloadImbalance.pyget_identifierr   9   s    r	   c                      g)NzWorkload Imbalancer   r   r	   r
   get_namer   =   s    r	   c                      g)Nz]Analysis of workload distribution in active cycles of SM, SMP, SMSP, L1 & L2 caches, and DRAMr   r   r	   r
   get_descriptionr   A   s    jr	   c                      g)NWorkloadDistributionr   r   r	   r
   get_section_identifierr   E   s    !r	   c                      S/$ )NComputer   r   r	   r
   get_parent_rules_identifiersr   I   s
    ;r	   c                    X S3   R                  5       S:X  d  X S3   R                  5       S:X  a  g SX S3   R                  5       X S3   R                  5       -  -
  S-  nSX S3   R                  5       X S3   R                  5       -  -
  S-  nXR                  SS5       S	3   R                  5       nX S	3   R                  5       n	XiU-  -  n
X:  a  g Xd:  aT  Xt:  aO  [        Xg-
  5      S
:  a>  U R                  [        R
                  R                  SU SU SUS SUS S3	U S35      nOXd:  a@  Xg:  a;  U R                  [        R
                  R                  SU SUS SUS S3U S35      nOFXt:  a@  Xv:  a;  U R                  [        R
                  R                  SU SUS SUS S3U S35      nOg U R                  U[        R
                  R                  U
5        U R                  UX S3   R                  5       X S3   R                  5       [        R
                  R                  Ub  U5        g SU S35        g )Nz.maxr   z.avg   d   z.minactiveelapsedz.sum   zOne or more zks have a much higher number of active cycles than the average number of active cycles. Additionally, other zps have a much lower number of active cycles than the average number of active cycles. Maximum instance value is z.2fz9% above the average, while the minimum instance value is z% below the average.zs Workload Imbalancezqs have a much higher number of active cycles than the average number of active cycles. Maximum instance value is z-Balancing the number of active cycles across z+s would result in a more optimized workload)valuereplaceabsmessageNvRules	IFrontendMsgType_MSG_OPTIMIZATIONspeedupSpeedupType_GLOBALfocus_metricnameSeverity_SEVERITY_HIGH)femetricsmetric_base_nameidmin_speeduprecommendationmax_distance_from_avgmin_distance_from_avgtotal_elapsedtotal_activer#   msg_ids               r
   analyze_imbalancer3   L   s)    	$D)*002a77EWW[C\;];c;c;eij;j',>d*C"D"J"J"LwYkkoWpOqOwOwOy"yz  B  B',>d*C"D"J"J"LwYkkoWpOqOwOwOy"yz  B  B 77)LMTRSYY[M/t45;;=L#m'CDG ,!0%=>BG--FFrd # --B3,G  HA  BW  X[  A\  \pq $*+	-
  
.#;G--FFrd #--B3,G  HA  BW  X[  A\  \pq$*+-  
.#;G--FFrd #--B3,G  HA  BW  X[  A\  \pq$*+-
 	JJvw((;;WEOO$D)*//1$D)*00200)5
 >kkmjn  oZ  <[r	   c                 D   [         R                  " U 5      nUR                  S5      R                  S5      nUR	                  5       n[        X5      R                  [        5      n[        X4SSSS9  [        X4SSSS9  [        X4SS	SS9  [        X4S
SSS9  [        X4SSSS9  g )Nr   sm__cycles_activeSM   )r(   r)   r*   r+   r,   smsp__cycles_activeSMSPl1tex__cycles_activezL1 Slicelts__cycles_activezL2 Slicedram__cycles_activez
DRAM Slice)	r    get_contextrange_by_idxaction_by_idxfrontendr   parserequested_metricsr3   )handlectxactionr(   r)   s        r
   applyrF      s    


f
%Ca ..q1F	B$V4::;LMG?RW[ijk?TY_mno?UZdrst?SXbpqr?TYestur	   )N)r    RequestedMetricsr   r   r   OPTIONALrB   r   r   r   r   r   r3   rF   r   r	   r
   <module>rI      sM  2  N N +T:3F3FJ+T:3F3FJ+T:3F3FJ+T:3F3FJ,dJ4G4GK,dJ4G4GK,dJ4G4GK,dJ4G4GK,dJ4G4GK-tZ5H5H!L*D*2E2EqI*D*2E2EqI*D*2E2EqI*D*2E2EqI+T:3F3FJ)41D1DaH)41D1DaH)41D1DaH)41D1DaH*D*2E2EqI+T:3F3FJ+T:3F3FJ+T:3F3FJ+T:3F3FJ,dJ4G4GK3 : k"<|
vr	   