+
    "Ý³j?'  ã                   óÀ  € ^ RI t ^ RIt^ RIHt ^ RIHu Ht  ! R R]P                  P                  4      t ! R R]P                  P                  4      t	 ! R R]P                  4      t
 ! R R	]P                  4      t ! R
 R]P                  4      t ! R R]P                  P                  4      t]P                  RR3R R llt ! R R]P                  4      tR# )é    Nc                   óF   a a€ ] tR t^t oRV 3R lltRR ltR tRtVtV ;t	# )ÚToySingleLinearModelc                óŠ   <€ \         SV `  4        W0n        W@n        \        P
                  P                  WWSVR 7      V n        R# ©)ÚbiasÚdtypeÚdeviceN)ÚsuperÚ__init__r   r	   ÚtorchÚnnÚLinearÚlinear1)ÚselfÚ	input_dimÚ
output_dimr   r	   Úhas_biasÚ	__class__s   &&&&&&€Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/testing/model_architectures.pyr   ÚToySingleLinearModel.__init__   s:   ø€ ô 	‰ÑÔØŒ
ØŒÜ—x‘x—‘Ø¨Àfð 'ó 
ˆŽó    c                óˆ   € \         P                  ! VV P                  P                  V P                  V P
                  R 7      3# ©©r   r	   ©r   Úrandnr   Úin_featuresr   r	   ©r   Ú
batch_sizes   &&r   Úexample_inputsÚ#ToySingleLinearModel.example_inputs   ó6   € ä�KŠKØØ—‘×(Ñ(Ø—j‘jØ—{‘{ô	ð
ð 	
r   c                ó(   € V P                  V4      pV# ©N)r   ©r   Úxs   &&r   ÚforwardÚToySingleLinearModel.forward(   s   € Ø�L‰L˜‹OˆØˆr   )r	   r   r   ©F©é   ©
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r    r'   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r   Ú__classdict__s   @@r   r   r      s   ù‡ € ÷
ô
÷ò r   r   c                   óF   a a€ ] tR t^.t oRV 3R lltRR ltR tRtVtV ;t	# )ÚToyTwoLinearModelc                óØ   <€ \         SV `  4        W@n        WPn        \        P
                  P                  WWdVR 7      V n        \        P
                  P                  W#WdVR 7      V n        R# r   )	r
   r   r   r	   r   r   r   r   Úlinear2)r   r   Ú
hidden_dimr   r   r	   r   r   s   &&&&&&&€r   r   ÚToyTwoLinearModel.__init__/   s\   ø€ ô 	‰ÑÔØŒ
ØŒÜ—x‘x—‘Ø¨Àfð 'ó 
ˆŒô —x‘x—‘Ø¨Àvð 'ó 
ˆŽr   c                óˆ   € \         P                  ! VV P                  P                  V P                  V P
                  R 7      3# r   r   r   s   &&r   r    Ú ToyTwoLinearModel.example_inputsC   r"   r   c                óJ   € V P                  V4      pV P                  V4      pV# r$   )r   r9   r%   s   &&r   r'   ÚToyTwoLinearModel.forwardM   s!   € Ø�L‰L˜‹OˆØ�L‰L˜‹OˆØˆr   )r	   r   r   r9   r)   r*   r,   r4   s   @@r   r7   r7   .   s   ù‡ € ÷
ô(
÷ò r   r7   c                   óT   a a€ ] tR t^St oRV3R lV 3R llltV3R lR ltRtVtV ;t# )Ú#ConvWithSharedWeightInExportedModelc                ó   <€ V ^8„  d   QhRR/# )é   ÚreturnN© )Úformatr5   s   "€r   Ú__annotate__Ú0ConvWithSharedWeightInExportedModel.__annotate__T   s   ø€ ÷ *ñ *ð 
ñ*r   c           	     óÚ   <€ \         SV `  4        Wn        \        P                  ! W#WEWgR 7      V n        \        P                  ! V4      V n        \        P                  ! RR7      V n	        R# )©r   T)ÚinplaceN)
r
   r   Ún_chunksr   ÚConv2dÚconvÚBatchNorm2dÚbnÚReLUÚrelu)	r   rL   Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚpaddingr   r   s	   &&&&&&&&€r   r   Ú,ConvWithSharedWeightInExportedModel.__init__T   sN   ø€ ô 	‰ÑÔØ ŒÜ—I’IØ {¸Gô
ˆŒ	ô —.’. Ó.ˆŒÜ—G’G DÔ)ˆŽ	r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )rC   rD   ©r   ÚTensor)rF   r5   s   "€r   rG   rH   f   s   ø€ ÷ )ñ )™EŸL™Lñ )r   c                ó  € \         P                  ! WP                  ^R7      p. pV FG  pV P                  V4      pV P	                  V4      pV P                  V4      pVP                  V4       KI  	  \         P                  ! V^R7      # )r+   ©Údim)r   ÚchunkrL   rN   rP   rR   ÚappendÚcat)r   r&   ÚchunksÚoutputsr_   Úouts   &&    r   r'   Ú+ConvWithSharedWeightInExportedModel.forwardf   sl   € Ü—’˜Q§¡°1Ô5ˆØˆÛˆEØ—)‘)˜EÓ"ˆCØ—'‘'˜#“,ˆCØ—)‘)˜C“.ˆCØ�N‰N˜3Öñ	 ô
 �yŠy˜ aÔ(Ð(r   )rP   rN   rL   rR   )é   r+   r+   T©	r-   r.   r/   r0   r   r'   r1   r2   r3   r4   s   @@r   rA   rA   S   s   ù‡ € ÷*õ *÷$)÷ )ð )r   rA   c                   óT   a a€ ] tR t^qt o]P
                  R3V 3R lltR tRtVt	V ;t
# )ÚLNLinearActivationModelÚsigmoidc                óD  <€ \         SV `  4        VP                  4       pR \        P                  ! 4       R\        P
                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       R\        P                  ! 4       /pWE9  d   \        RV 24      h\        P                  ! VRR	7      V n        \        P                  ! WRR
7      P                  VR7      V n        WT,          V n        R# )rR   rj   Ú	leakyreluÚrelu6ÚgeluÚsiluÚ	hardswishzUnsupported activation: F)Úelementwise_affinerJ   )r   N)r
   r   Úlowerr   rQ   ÚSigmoidÚ	LeakyReLUÚReLU6ÚGELUÚSiLUÚ	HardswishÚ
ValueErrorÚ	LayerNormÚlnr   ÚtoÚfcÚ
activation)r   Úfc_dim1Úfc_dim2r   r~   Úactivation_mapr   s   &&&&& €r   r   Ú LNLinearActivationModel.__init__r   sÇ   ø€ Ü‰ÑÔà×%Ñ%Ó'ˆ
à”B—G’G“IØ”r—z’z“|ØœŸš›Ø”R—X’X“ZØ”B—G’G“IØ”B—G’G“IØœŸš›ð
ˆð Ô+ÜÐ7¸
°|ÐDÓEÐEä—,’,˜w¸5ÔAˆŒÜ—)’)˜G°5Ô9×<Ñ<À5Ð<ÓIˆŒØ(Õ4ˆŽr   c                óh   € V P                  V4      pV P                  V4      pV P                  V4      # r$   )r{   r}   r~   r%   s   &&r   r'   ÚLNLinearActivationModel.forward‡   s+   € Ø�G‰G�A‹JˆØ�G‰G�A‹JˆØ�‰˜qÓ!Ð!r   )r~   r}   r{   ©r-   r.   r/   r0   r   Úbfloat16r   r'   r1   r2   r3   r4   s   @@r   ri   ri   q   s   ù‡ € Ø/4¯~©~È)÷ 5÷*"ò "r   ri   c                   óZ   a a€ ] tR t^�t oRV3R lV 3R llltR tV3R lR ltRtVtV ;t	# )ÚRMSNormc                ó&   <€ V ^8„  d   QhRS[ RS[/# )rC   r^   Úeps)ÚintÚfloat)rF   r5   s   "€r   rG   ÚRMSNorm.__annotate__Ž   s   ø€ ÷ 4ñ 4™Cð 4¡eñ 4r   c                óŽ   <€ \         SV `  4        W n        \        P                  ! \
        P                  ! V4      4      V n        R # r$   )r
   r   rŠ   r   Ú	Parameterr   ÚonesÚweight)r   r^   rŠ   r   s   &&&€r   r   ÚRMSNorm.__init__Ž   s+   ø€ Ü‰ÑÔØŒÜ—l’l¤5§:¢:¨c£?Ó3ˆŽr   c           	     ó˜   € V\         P                  ! \         P                  ! W,          RRR7      V P                  ,           4      ,          # )r+   T)r^   Úkeepdiméÿÿÿÿ)r   ÚrsqrtÚmeanrŠ   r%   s   &&r   Ú_normÚRMSNorm._norm“   s.   € Ø”5—;’;œuŸzšz¨!­%°RÀÔFÈÏÉÕQÓRÕRÐRr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )rC   r&   rD   rZ   )rF   r5   s   "€r   rG   r�   –   s#   ø€ ÷ $ñ $™Ÿ™ð $©%¯,©,ñ $r   c                ó‚   € V P                  VP                  4       4      P                  V4      pW P                  ,          # r$   )r˜   rŒ   Útype_asr‘   )r   r&   Úoutputs   && r   r'   ÚRMSNorm.forward–   s.   € Ø—‘˜AŸG™G›IÓ&×.Ñ.¨qÓ1ˆØŸ™Õ#Ð#r   )rŠ   r‘   )gñhãˆµøä>)
r-   r.   r/   r0   r   r˜   r'   r1   r2   r3   r4   s   @@r   rˆ   rˆ   �   s$   ù‡ € ÷4õ 4ò
S÷$÷ $ð $r   rˆ   c                   óV   a a€ ] tR t^›t o^^]P
                  3V 3R lltR tRtVt	V ;t
# )ÚTransformerBlockc                ó2  <€ \         SV `  4        Wn        W n        W,          V n        \
        P                  P                  V^V,          RR7      P                  V4      V n	        \
        P                  P                  WRR7      P                  V4      V n
        W0n        \        W,          4      V n        \
        P                  P                  WP                  RR7      P                  V4      V n        \
        P                  P                  V P                  VRR7      P                  V4      V n        \!        V4      P                  V4      V n        \!        V4      P                  V4      V n        \
        P                  P'                  4       V n        R# )rf   FrJ   N)r
   r   r:   Ú	num_headsÚhead_dimr   r   r   r|   ÚqkvÚprojÚ	mlp_ratior‹   Úmlp_hidden_dimÚmlp_fc1Úmlp_fc2rˆ   Únorm1Únorm2rv   r~   )r   r:   r¢   r¦   r   r   s   &&&&&€r   r   ÚTransformerBlock.__init__œ   s&  ø€ Ü‰ÑÔØ$ŒØ"ŒØ"Õ/ˆŒô —8‘8—?‘? :¨q°:­~ÀE�?ÓJ×MÑMÈeÓTˆŒÜ—H‘H—O‘O JÀ�OÓG×JÑJÈ5ÓQˆŒ	ð #ŒÜ! *Õ"8Ó9ˆÔÜ—x‘x—‘ z×3FÑ3FÈU�ÓS×VÑVØó
ˆŒô —x‘x—‘ t×':Ñ':¸JÈU�ÓS×VÑVØó
ˆŒô
 ˜ZÓ(×+Ñ+¨EÓ2ˆŒ
Ü˜ZÓ(×+Ñ+¨EÓ2ˆŒ
ô  Ÿ(™(Ÿ-™-›/ˆŽr   c                ó  € VP                   w  r#pTpV P                  V4      pV P                  V4      pVP                  W#^V P                  V P
                  4      pVP                  ^^ ^^^4      pVw  rxp	VP                  W P                  ,          W0P
                  4      pVP                  W P                  ,          W0P
                  4      pV	P                  W P                  ,          W0P
                  4      p	WxP                  RR4      ,          RV P
                  R,          ,          ,          p
\        P                  ! V
RR7      p
W©,          pVP                  W P                  W0P
                  4      pVP                  ^^4      P                  W#V P                  4      pV P                  V4      pWQ,           pTpV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pWQ,           pV# )rf   g      ð?g      à?r]   éþÿÿÿr•   )Úshaperª   r¤   Úreshaper¢   r£   ÚpermuteÚ	transposer   Úsoftmaxr:   r¥   r«   r¨   r~   r©   )r   r&   r   Úseq_lenÚ_Úresidualr¤   ÚqÚkÚvÚattns   &&         r   r'   ÚTransformerBlock.forward·   s   € Ø!"§¡Ñˆ
˜Qð ˆØ�J‰J�q‹Mˆð �h‰h�q‹kˆØ�k‰k˜*¨q°$·.±.À$Ç-Á-ÓPˆØ�k‰kØˆq�!�Q˜ó
ˆð ‰ˆˆað �I‰I�j§>¡>Õ1°7¿M¹MÓJˆØ�I‰I�j§>¡>Õ1°7¿M¹MÓJˆØ�I‰I�j§>¡>Õ1°7¿M¹MÓJˆð —K‘K  BÓ'Õ'¨C°4·=±=À#Õ3EÕ,FÕGˆÜ�}Š}˜T rÔ*ˆð �Hˆð �I‰I�j§.¡.°'¿=¹=ÓIˆØ�K‰K˜˜1Ó×%Ñ% j¸4¿?¹?ÓKˆð �I‰I�a‹LˆØ�Lˆð ˆØ�J‰J�q‹MˆØ�L‰L˜‹OˆØ�O‰O˜AÓˆØ�L‰L˜‹OˆØ�Lˆàˆr   )r~   r£   r:   r¨   r©   r§   r¦   rª   r«   r¢   r¥   r¤   r…   r4   s   @@r   r    r    ›   s   ù‡ € Ø-.¸!À5Ç>Á>÷ *÷6,ò ,r   r    ÚcudarR   c                ó€   € V ^8„  d   QhR\         R\        R\        R\        R\        P                  R\         R\         /# )rC   Ú
model_typeÚmr¸   ÚnÚhigh_precision_dtyper	   r~   )Ústrr‹   r   r   )rF   s   "r   rG   rG   æ   sR   € ÷ &ñ &Üð&ä
ð&ô ð&ô ð	&ô
  Ÿ+™+ð&ô ð&ô ñ&r   c                ó  € V R8X  d*   \        W#WTR7      pVP                  VR7      ^ ,          pWx3# RV 9   d�   \        P                  ! RV 4      p	V	'       d)   V	P	                  ^4      '       d   V	P	                  ^4      MRp\        W#WFR7      P                  V4      p\        P                  ! WWTR7      pWx3# V R8X  d<   \        V^^VR	7      P                  V4      p\        P                  ! V^W%VR7      pWx3# \        R
V  24      h)aF  Create a model and input data for benchmarking.

Args:
    model_type (str): type of the model to be created
    batch_size (int): batch size of the input data
    device (str): device to run the model on
    high_precision_dtype (torch.dtype): data type of the model
    m, k, n (int): dimensions of the model and input data
Úlinear)r	   r   )r   Ú	ln_linearzln_linear_?(\w+)?rR   )r~   Útransformer_block)r¢   r¦   r   zUnknown model type: )r   r    ÚreÚsearchÚgroupri   r|   r   r   r    ry   )
r¾   r¿   r¸   rÀ   rÁ   r	   r~   ÚmodelÚ
input_dataÚmatchs
   &&&&&&&   r   Úcreate_model_and_input_datarÍ   æ   s  € ð$ �XÔÜ$ Q°&ÔUˆØ×)Ñ)°QÐ)Ó7¸Õ:ˆ
ð$ ÐÐð# 
˜
Ô	"ä—	’	Ð.°
Ó;ˆß',°·±¸Q·²�U—[‘[ ”^ÀVˆ
Ü'ØÐ&ô
ç
‰"ˆV‹*ð 	ô —[’[ ¨fÔQˆ
ð ÐÐð 
Ð*Ô	*ä Ø˜ aÐ/Cô
ç
‰"ˆV‹*ð 	ô —[’[  B¨Ð@TÔUˆ
ð ÐÐô Ð/°
¨|Ð<Ó=Ð=r   c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚLlamaModelsLlama4Expertsi  c                ód   <€ V ^8„  d   QhRS[ RS[ RS[ RS[P                  RS[P                  RR/# )rC   Únum_local_expertsr^   r:   r   r	   rD   N)r‹   r   r   r	   )rF   r5   s   "€r   rG   Ú%LlamaModelsLlama4Experts.__annotate__  sO   ø€ ÷ )
ñ )
áð)
ñ ð)
ñ ð	)
ñ
 �{‰{ð)
ñ —‘ð)
ð 
ñ)
r   c           
     ót  <€ \         SV `  4        Wn        W n        \        P
                  ! \        P                  ! VVVVVR 7      4      V n        \        P
                  ! \        P                  ! VVVVVR 7      4      V n	        \        P
                  ! \        P                  ! VVVVVR 7      4      V n
        R# )r   N)r
   r   rÑ   r^   r   r�   r   r   Úw1Úw2Úw3)r   rÑ   r^   r:   r   r	   r   s   &&&&&&€r   r   Ú!LlamaModelsLlama4Experts.__init__  s    ø€ ô 	‰ÑÔà!2ÔØŒä "§¢Ü�KŠKØ!ØØØØôó!
ˆŒô !#§¢Ü�KŠKØ!ØØØØôó!
ˆŒô !#§¢Ü�KŠKØ!ØØØØôó!
ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )rC   Úrouted_in_egDrD   rZ   )rF   r5   s   "€r   rG   rÒ   <  s'   ø€ ÷ ñ á—|‘|ðñ 
�‰ñr   c                ór  € V P                   pV P                  pVP                  VRV4      p\        P                  ! \
        P                  ! W@P                  4      4      \
        P                  ! W@P                  4      ,          p\
        P                  ! WPP                  4      pVP                  RV4      pV# )r+   r•   )
rÑ   r^   ÚviewÚFro   r   ÚbmmrÔ   rÖ   rÕ   )r   rÙ   ÚeÚDÚx_egDÚmiddle_out_egFÚout_egDs   &&     r   r'   Ú LlamaModelsLlama4Experts.forward<  s€   € ð ×"Ñ"ˆØ�H‰Hˆà×"Ñ" 1 b¨!Ó,ˆäŸš¤§	¢	¨%·±Ó 9Ó:¼U¿YºYÀuÏgÉgÓ=VÕVˆÜ—)’)˜N¯G©GÓ4ˆØ—,‘,˜r 1Ó%ˆàˆr   )r^   rÑ   rÔ   rÕ   rÖ   rg   r4   s   @@r   rÏ   rÏ     s   ù‡ € ÷)
ó )
÷V÷ ð r   rÏ   )rÇ   r   Útorch.nnr   Útorch.nn.functionalÚ
functionalrÜ   ÚModuler   r7   rA   ri   rˆ   r    r†   rÍ   rÏ   rE   r   r   Ú<module>rè      s¬   ðó 
ã Ý ß Ð ô˜5Ÿ8™8Ÿ?™?ô ô@"˜Ÿ™Ÿ™ô "ôJ)¨"¯)©)ô )ô<"˜bŸi™iô "ô8$ˆb�i‰iô $ôH�u—x‘x—‘ô Hð` ).¯©ØØ÷&ôT9˜rŸy™yö 9r   