
    &ThK                     X   S SK JrJr  S SKJrJrJrJr  S SKJ	r	  S SK
Jr  S SKrS SKJrJrJrJr  S SKJr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SKrS	\4S
 jr\R<                  " 5       S\4S j5       r \R<                  " 5       S\!4S j5       r"\R<                  " 5       S\!4S j5       r#\R<                  " 5       S\!4S j5       r$S\!4S jr%\R<                  " 5       S\!4S j5       r&\R<                  " S5      S 5       r'S\!4S jr(\" SS9 " S S5      5       r) " S S\5      r*g)    )BaseBackend	GPUTarget)irpassesllvmnvidia)
PTXASError)	dataclassN)AnyDictTupleOptional)
ModuleType)Pathtargetc                 @    S[         [        [        [        4   4S jnU$ )Nreturnc                     U R                   R                  nUR                   R                  nX#:X  d   S5       eUS:X  a  gg)Nz%lhs and rhs bitwidth must be the same   )   r       )r   r   r   )scalarprimitive_bitwidth)lhs_typerhs_typelhs_bitwidthrhs_bitwidths       W/var/www/auris/envauris/lib/python3.13/site-packages/triton/backends/nvidia/compiler.pycheck_dot_compatibility-min_dot_size.<locals>.check_dot_compatibility   s@    9999+T-TT+1    )r   int)r   r   s     r   min_dot_sizer#      s!     uS#s]7K   #"r!   binaryc                    U [         R                  " S5      -  n [        R                  R	                  SU R                  5        S3S5      [        R                  R                  [        R                  R                  [        5      SU 5      /nU H  n[        R                  R                  U5      (       d  M)  [        R                  R                  U5      (       d  MO  [        R                  " US/[        R                  S9nUc  My  [        R                   " SUR#                  S	5      [        R$                  S
9nUc  M  X$R'                  S5      4s  $    [)        SU  35      e)NEXETRITON__PATH bin	--version)stderrz.*release (\d+\.\d+).*utf-8flags   zCannot find )	sysconfigget_config_varosenvirongetupperpathjoindirname__file__existsisfile
subprocesscheck_outputSTDOUTresearchdecode	MULTILINEgroupRuntimeError)r$   pathsr7   resultversions        r   _path_to_binaryrI   !   s   
i&&u--F


 06;
RWW__X.v>E
 77>>$BGGNN4$8$8,,dK-@IZIZ[F!))$=v}}W?U]_]i]ij&q!111  fX.
//r!   archc                 ,    U S:  a  SOSn[        U5      $ )Nd   zptxas-blackwellptxas)rI   )rJ   names     r   	get_ptxasrO   3   s     $D4  r!   c                     [         R                  R                  S5      nUb  U$ [        R                  " [        U 5      S   S/5      R                  S5      nU$ )NTRITON_MOCK_PTX_VERSIONr   r+   r-   )r3   r4   r5   r=   r>   rO   rB   )rJ   mock_verrH   s      r   get_ptxas_versionrS   9   sO    zz~~78H%%yq'9;&GHOOPWXGNr!   r   c                     [        U [        5      (       d   e[        [        U R	                  S5      5      u  pUS:X  a  US:  a  SU-   $ SU-   S-
  $ US:X  a  SU-   $ US:X  a  S	U-   $ [        S
U -   5      e)zC
Get the highest PTX version supported by the current CUDA driver.
.      P   r0      F   
   ?   z?Triton only support CUDA 10.0 or higher, but got CUDA version: )
isinstancestrmapr"   splitrE   )cuda_versionmajorminors      r   ptx_get_versionrd   B   s    
 lC((((sL..s34LE{19::>!{Ez{Ez
X[gg
hhr!   c                 T    U R                   nUc  [        U5      u  p4[        U5      nU$ N)ptx_versionrO   rd   )optionsrJ   rg   _ra   s        r   get_ptx_version_from_optionsrj   U   s.    %%K#D/%l3r!   c                 >    [        X5      n[        SU5      nSU 3nU$ )NV   z+ptx)rj   min)rh   rJ   rg   llvm_ptx_versionfeaturess        r   get_featuresrp   ]   s.    .w=K 2{+&'(HOr!   c                     [        U S5       n[        R                  " UR                  5       5      R	                  5       sS S S 5        $ ! , (       d  f       g = f)Nrb)openhashlibsha256read	hexdigest)r7   fs     r   	file_hashry   k   s5    	dD	Q~~affh'113 
		s   2A		
A
capabilityc                 $    U S:  a  SOSnSU  U 3$ )NZ   ar)   sm_ )rz   suffixs     r   sm_arch_from_capabilityr   q   s!    "$S"FVH%%r!   T)frozenc                   n   \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   Sr	\\S	'   Sr
\\S
'   Sr\\S'   Sr\\S'   Sr\\   \S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\   \S'   Sr\\   \S'   Sr\\S'   Sr\\   \S'   Sr\\S'   Sr\\S'   Sr\\S '   S!r\\S"'   Sr \\S#'   Sr!\\S$'   S% r"S& r#Sr$g)'CUDAOptionsw      	num_warpsr0   num_ctas   
num_stagesr   num_buffers_warp_specnum_consumer_groupsreg_dec_producerreg_inc_consumerNmaxnreg)r0   r0   r0   cluster_dimsrg   Tenable_fp_fusionFlaunch_cooperative_grid)fp8e5fp8e4b15supported_fp8_dtypesr   deprecated_fp8_dtypestf32default_dot_input_precision)r   tf32x3ieeeallowed_dot_input_precisionsmax_num_imprecise_acc_defaultextern_libsdebugcudabackend_namesanitize_overflowrJ   c                    [        [        5      R                  S-  nU R                  c  0 O[	        U R                  5      nUR                  SS 5      (       d&  [        R                  " S[        US-  5      5      US'   [        R                  U S[        UR                  5       5      5        U R                  S:  a   U R                  U R                  S-
  -  S:X  d   S5       eg )	Nlib	libdeviceTRITON_LIBDEVICE_PATHzlibdevice.10.bcr   r   r0   znum_warps must be a power of 2)r   r:   parentr   dictr5   r3   getenvr^   object__setattr__tupleitemsr   )selfdefault_libdirr   s      r   __post_init__CUDAOptions.__post_init__   s    h..6 ,,4b$t?O?O:P{D11')yy1H#n_pNpJq'rK$4k6G6G6I0JK~~!t~~!9K'LQR&R 	0/	0R&Rr!   c           	      d   [        U R                  5      n[        S [        US   5       5       5      US'   SR	                  [        UR                  5       5       VVs/ s H  u  p#U SU 3PM     snn5      n[        R                  " UR                  S5      5      R                  5       $ s  snnf )Nc              3   @   #    U  H  u  pU[        U5      4v   M     g 7frf   )ry   ).0kvs      r   	<genexpr>#CUDAOptions.hash.<locals>.<genexpr>   s     (hGgtq!Yq\):Ggs   r   ri   -r-   )
r   __dict__r   sortedr8   r   rt   ru   encoderw   )r   	hash_dictrN   valkeys        r   hashCUDAOptions.hash   s    '	#((hviXeNfGg(h#h	- hh	@Q9RS9RID4&#9RST~~cjj12<<>> Ts   B,
)%__name__
__module____qualname____firstlineno__r   r"   __annotations__r   r   r   r   r   r   r   r   r   r   rg   r   boolr   r   r   r^   r   r   r   r   r   r   r   r   r   rJ   r   r   __static_attributes__r   r!   r   r   r   w   s   IsHcJ!"3"  cc "GXc]!#L%#K!d!$)T)'<%*<(*5:*'--/I %*I*.!4.KE4L#"t"D#0?r!   r   c                      ^  \ rS rSr\S\4S j5       rS rS\SS4U 4S jjrS\	4S jr
S	 rS
 rS\\\4   4S jrS r\S 5       r\S 5       rS rS rS rS r\R2                  " 5       S 5       rSrU =r$ )CUDABackend   r   c                      U R                   S:H  $ )Nr   )backend)r   s    r   supports_targetCUDABackend.supports_target   s    ~~''r!   c                     Sn[         R                  " X!5      nU(       d  [        SU 35      e[        UR	                  S5      5      $ )Nz	^sm(\d+)$z(TRITON_OVERRIDE_ARCH must have the form r0   )r@   	fullmatch
ValueErrorr"   rD   )r   rJ   patternmatchs       r   _parse_archCUDABackend._parse_arch   s>    W+GyQRR5;;q>""r!   r   Nc                 2   > [         TU ]  U5        SU l        g )Ncubin)super__init__
binary_ext)r   r   	__class__s     r   r   CUDABackend.__init__   s     !r!   c                 v   S[         R                  " SSU R                  R                   35      0nUR	                  [
        R                  R                  5        Vs0 s H  o3U;   d  M
  X   c  M  X1U   _M     sn5        [        U R                  US   5      5      nSU;  aG  [        [
        R                  5      nUS:  a  UR                  S5        [        [        U5      5      US'   SU;  a  US:  a  S	US'   S
U;  a  [         R                  " SS5      S:H  US
'   US:X  a  SOSUS'   [        S0 UD6$ s  snf )NrJ   TRITON_OVERRIDE_ARCHsmr   Y   fp8e4nvr   r|   )r   r   TRITON_DEFAULT_FP_FUSION1i   @r   r   r   )r3   r   r   rJ   updater   __dataclass_fields__keysr"   r   setr   addr   r   )r   optsargsr   rz   r   s         r   parse_optionsCUDABackend.parse_options   s2   		"8Bt{{?O?O>P:QRS)I)I)N)N)Pu)PAY]T]ZaeahZQQZ)Puv))$v,78
!-#&{'G'G#H R$((3+08L1M+ND'("$.R0>,-T)')yy1KS'QUX'XD#$9Cr9Iq,-"T""% vs   	D6)D60	D6c                     UR                   UR                  UR                  UR                  S   UR                  S   UR                  S   4$ )Nr   r0      )r   r   sharedr   )r   metadatas     r   pack_metadataCUDABackend.pack_metadata   sO    OO!!!$!!!$!!!$
 	
r!   c                     SS K Js  Js  Jn  [	        U R                  UR                  5      5      nUS:  a  UR                  OUR                  [        U R                  5      S.nU$ )Nr   rX   )convert_custom_typesr#   )triton.language.extra.cudalanguageextrar   r"   r   rJ   convert_custom_float8_sm80convert_custom_float8_sm70r#   r   )r   rh   r   rz   codegen_fnss        r   get_codegen_implementation&CUDABackend.get_codegen_implementation   sV    11))',,78
 0:R/?D++TEdEd%

 r!   c                     SSK Jn  SU0$ )Nr   )r   ztriton.language.extra.libdevice)r   r   )r   r   s     r   get_module_mapCUDABackend.get_module_map   s    819==r!   c                 0    [         R                  " U5        g rf   )r   load_dialects)r   ctxs     r   r  CUDABackend.load_dialects   s    S!r!   c                 x   [         R                  " U R                  5      nUR                  5         [        R
                  R                  U5        [        R                  R                  U5        [        R
                  R                  U5        [        R                  R                  U5        [        R                  R                  U5        [        R
                  R                  U5        [        R
                  R                  U5        [        R                  R                  U5        UR                  U 5        U $ rf   )r   pass_managercontextenable_debugr   commonadd_inlinerttiradd_rewrite_tensor_pointeradd_canonicalizeradd_combineadd_reorder_broadcastadd_cseadd_symbol_dceadd_loop_unrollrun)modr   optpms       r   	make_ttirCUDABackend.make_ttir   s    __S[[)
!!"%..r2''+#))"-b!$$R(##B'
s
r!   c                 V   [         R                  " 5       nUR                  b<  UR                  S   Ul        UR                  S   Ul        UR                  S   Ul        [        R                  " U R                  5      nUR                  5       n[        R                  R                  USU 3UR                  SUR                  5        [        R                  R!                  U5        US-  S:  a  [        R                  R#                  U5        [         R                  R$                  R'                  XT5        [        R                  R)                  U5        [        R                  R+                  U5        [        R                  R-                  U5        [        R                  R)                  U5        [        R                  R/                  XSS:  5        [        R0                  R3                  U5        US-  S	;   Ga  [        R                  R5                  U5        [        R0                  R7                  U5        [        R0                  R9                  U5        [        R                  R;                  U5        [        R0                  R7                  U5        [        R                  R=                  U5        [        R                  R?                  XRR@                  5        [        R                  RC                  XRR@                  5        [        R                  RE                  XRR@                  5        [        R                  RG                  XRRH                  UR@                  URJ                  URL                  5        [        R                  RO                  XRRP                  U5        [        R                  RS                  XRR@                  5        [        R                  RU                  XRR@                  5        GONUS-  S:  Ga%  [        R                  R5                  U5        [        R0                  R7                  U5        [        R0                  R9                  U5        [        R                  R;                  U5        [        R                  R?                  XRR@                  5        [        R                  RC                  XRR@                  5        [        R                  RE                  XRR@                  5        [        R                  RG                  XRRH                  UR@                  URJ                  URL                  5        [        R                  RO                  XRRP                  U5        [        R                  R=                  U5        [         R                  R$                  RW                  U5        [         R                  R$                  RY                  U5        [        R                  RU                  XRR@                  5        [        R0                  R7                  U5        O[        R0                  R9                  U5        [        R                  R[                  U5        [        R                  R/                  XSS:  5        [        R                  R]                  U5        [        R                  R)                  U5        [        R                  R_                  U5        [        R                  Ra                  U5        [        R0                  R3                  U5        [        R0                  Rc                  U5        US-  S
:  aR  [         R                  R$                  Re                  U5        [         R                  R$                  Rg                  U5        [        R0                  R7                  U5        US-  S
:  a)  [        R                  Ri                  XRR@                  5        URk                  U 5        UR                  UR                  UR
                  4US'   U $ )Nr   r0   r   zcuda:r   r[   r   rX   )r   	   r  r   )6r   ClusterInfor   clusterDimXclusterDimYclusterDimZr   r  r  r  r   r
  add_convert_to_ttgpuirr   r   ttgpuiradd_coalesceadd_f32_dot_tc	ttnvgpuiradd_plan_ctaadd_remove_layout_conversionsadd_optimize_thread_localityadd_accelerate_matmuladd_optimize_dot_operandsr  r  add_fuse_nested_loopsr  add_licmadd_optimize_accumulator_init add_combine_tensor_select_and_ifadd_ws_task_partitionr   add_taskid_propagateadd_ws_data_partitionadd_ws_code_partitionr   r   r   add_pipeliner   add_ping_pong_syncadd_ws_loweringadd_promote_lhs_to_tmemadd_keep_acc_in_tmemadd_prefetchadd_coalesce_async_copyadd_reduce_data_duplicationadd_reorder_instructionsr  add_fence_insertionadd_tma_loweringadd_ws_canonicalizationr  )r  r   r  rz   cluster_infor  dump_enableds          r   
make_ttgirCUDABackend.make_ttgir   s=   ))+''*'7'7':L$'*'7'7':L$'*'7'7':L$__S[[)(**2zl/CS]]TVX[XdXde##B'q NN))"-,,R>44R833B7,,R044R80025EFb!v%NN004MM++B/MM""2&NN88<MM++B/NN;;B?NN005L5LMNN//4K4KLNN005L5LMNN005N5NPSPgPg141E1EsG[G[]NN''NNLINN--b2I2IJNN**2/F/FG2#NN004MM++B/MM""2&NN88<NN005L5LMNN//4K4KLNN005L5LMNN005N5NPSPgPg141E1EsG[G[]NN''NNLINN;;B?MM##;;B?MM##88<NN**2/F/FGMM++B/MM""2&##B'0025EF..r244R82226//3b!$$R(q MM##77;MM##44R8''+q NN2227N7NO
s$0$<$<l>V>VXdXpXp#q 
r!   c                 	   [        X0R                  R                  5      nUn[        R                  " UR
                  5      nUR                  5         [        R                  R                  R                  U5        [        R                  R                  U5        [        R                  R                  U5        [        R                  R                  U5        [        R                  R!                  U5        [        R                  R                  R#                  U5        [        R                  R%                  U5        [        R                  R                  R'                  XtU5        [        R(                  R+                  U5        [        R(                  R-                  U5        [        R                  R                  R/                  U5        [        R                  R                  R1                  U5        [        R(                  R+                  U5        [        R(                  R-                  U5        [        R(                  R3                  U5        [4        R6                  R9                  SS5      S:X  a  [        R:                  R=                  U5        UR?                  U5        [@        RB                  " 5         [@        R
                  " 5       n[4        R6                  R9                  SS5      S:X  a  [E        S5      e[@        RF                  " Xh5      n	[I        U5      n
[K        X0R                  R                  5      nSn[@        RL                  " XX5        [        RN                  " U	5        URP                  b`  U	RS                  5        HL  nURU                  5       (       a  M  URW                  5       (       d  M1  URY                  URP                  5        MN     URZ                  (       a7  URZ                   VVs/ s H  u  pUPM	     nnn[@        R\                  " U	U5        [@        R^                  " U	[@        R`                  5        URc                  S5      nUb  UUS'   URc                  S	5      US
'   URc                  S5      US'   URc                  S5      US'   URc                  S5      US'   [e        U	5      nA	AU$ s  snnf )NTRITON_DISABLE_LINE_INFO0TRITON_ENABLE_ASANr   zYAddress Sanitizer Error: Address sanitizer is currently only supported on the AMD backendnvptx64-nvidia-cudazttg.total-num-warpsr   z
ttg.sharedr   zttg.tensor_memory_size	tmem_sizezttg.global_scratch_memory_sizeglobal_scratch_sizez#ttg.global_scratch_memory_alignmentglobal_scratch_align)3rj   r   rJ   r   r  r  r  r   r   r"  add_lower_mmar  r+  add_allocate_warp_groupsconvertadd_scf_to_cfadd_allocate_shared_memoryadd_allocate_tensor_memory"add_allocate_global_scratch_memoryadd_to_llvmirr  r  r  add_nvgpu_to_llvmadd_warp_specialize_to_llvmr  r3   r4   r5   llvmiradd_di_scoper  r   init_targetsrE   	to_moduler   rp   attach_datalayoutset_nvvm_reflect_ftzr   get_functionsis_declarationis_external_linkageset_nvvm_maxnregr   link_extern_libsoptimize_moduleOPTIMIZE_O3get_int_attrr^   )r   srcr   rh   rz   rg   r  r  r  llvm_modprocro   tripler   rN   r7   rF   total_num_warpsrets                      r   	make_llirCUDABackend.make_llir<  s]   27KK<L<LM__S[[)
--b177;//3$$R(11"5::2>99"=++BKH''+b!11"5;;B?''+b!$$R(::>>4c:cAMM&&r*
s,,.::>>.4;km m>>#/&z2)9)9:&x@##H- ??&++-''))a.C.C.E.E&&w7 . .5.A.AB.AltT.AEB!!(E2Xt'7'78 **+@A&$3H[! --l; # 0 01I J*-*:*:;[*\&'+.+;+;<a+b'((m
# Cs   ?Sc           	         [        X0R                  R                  5      nSn[        U5      n[	        X0R                  R                  5      n[
        R                  " XXxS/UR                  S5      n	[        R                  " SU	5      n
[        U
5      S:X  d   eU
S   US'   US-   S	US-   3n[        R                  " S
SU 3U	[        R                  S9n	[        R                  " SSU 3U	[        R                  S9n	[        R                  " SSU	5      n	[        R                  R                  SS5      S:X  a  [!        S5        [!        U	5        U	$ )NrD  znvptx-short-ptrFz(.visible .entry ([a-zA-Z_][a-zA-Z0-9_]*)r0   r   rN   r[   rU   z\.version \d+\.\d+z	.version r.   z\.target sm_\d+z.target sm_z,\s*debug|debug,\s*r)   NVPTX_ENABLE_DUMPrB  r   z // -----// NVPTX Dump //----- //)rj   r   rJ   r   rp   r   translate_to_asmr   r@   findalllensubrC   r3   r4   r5   print)r   r`  r   r  rz   rg   rc  rb  ro   re  namess              r   make_ptxCUDABackend.make_ptx}  s,   238H8HI&&z2[[%5%56##CBSATVYVjVjlqr

FL5zQ 8$b);r>*:;ff*i},EsRTR^R^_ff';zl)CSPRP\P\]ff+R5::>>-s3s:45#J
r!   c                    [        U R                  R                  5      u  pV[        R                  " SSSS9 n[        R                  " SSSS9 nUR                  U5        UR                  5         UR                  S-   n	[        R                  R                  SS	5      S
:X  a  SS/OS/n
UR                  (       a  / OS/n[        U5      n[        R                  R                  SS	5      S
:X  a  SS	/O/ nU/U
QUQSPUQSU 3PUR                  PSPU	Pn [        R                  " USSUS9  [        R                  R!                  UR                  5      (       a   [        R"                  " UR                  5        [        R                  R!                  UR                  5      (       a   [        R"                  " UR                  5        ['        U	S5       nUR)                  5       nS S S 5        [        R                  R!                  U	5      (       a  [        R"                  " U	5        S S S 5        S S S 5        W$ ! [        R$                   a  n['        UR                  5       nUR)                  5       nS S S 5        O! , (       d  f       O= f[        R                  R!                  UR                  5      (       a   [        R"                  " UR                  5        UR*                  S:X  a  SnO3UR*                  S[,        R.                  -   :X  a  SnOSUR*                   3n[1        U SW SSR3                  U5       S35      eS nAff = f! , (       d  f       GNn= f! , (       d  f       GN>= f! , (       d  f       W$ = f)NFwz.ptx)deletemoder   rz.logz.orA  rB  r   z	-lineinfoz-suppress-debug-infoz--fmad=falseDISABLE_PTXAS_OPTz--opt-levelz-vz--gpu-name=z-oT)check	close_fdsr,      z!Internal Triton PTX codegen error   z`ptxas` raised SIGSEGVz`ptxas` failed with error code z
`ptxas` stderr:
z
Repro command:  
rr   )rO   r   rJ   tempfileNamedTemporaryFilewriteflushrN   r3   r4   r5   r   r   r=   r  r7   r;   removeCalledProcessErrorrs   rv   
returncodesignalSIGSEGVr	   r8   )r   r`  r   r  rz   rM   ri   fsrcflogfbin	line_infofmadrJ   	opt_level	ptxas_cmdelog_filelogerrorrx   r   s                        r   
make_cubinCUDABackend.make_cubin  s   T[[--.((COSW''u3vNRVJJsOJJL99t#DACPjPSBUX[B\&<=bman --2N3CD*:6D02

?RTW0X\_0_,egIqqTq4q)q{SWRXEYq[_[d[dqfjqlpqILydS77>>$)),,IIdii(77>>$)),,IIdii($ dD!Q "ww~~d##		$K O PN + 00 L$))_"--/C %__77>>$)),,IIdii(<<3&?E\\S6>>%994E=all^LE E7 +558E :33688I3F2Gr"K L LL" "!E ON PON s{   M2CM B3H;
M M'AM )M2;MM$I>	5	M>
JB>MMM 
MM  
M/	*M22
Nc                    ^ ^^ T R                  TR                  5      mUU 4S jUS'   UUU 4S jUS'   UUU 4S jUS'   UU 4S jUS'   UU 4S	 jUS
'   g )Nc                 (   > TR                  XT5      $ rf   )r  r`  r   rh   r   s     r   <lambda>(CUDABackend.add_stages.<locals>.<lambda>  s    t~~cW/Ur!   r
  c                 *   > TR                  XTT5      $ rf   )r>  r`  r   rz   rh   r   s     r   r  r    s    wXb0cr!   ttgirc                 *   > TR                  XTT5      $ rf   )rf  r  s     r   r  r    s    t~~cWV`/ar!   llirc                 R   > TR                  XTTR                  R                  5      $ rf   )rp  r   rJ   r  s     r   r  r    s    dmmC7TXT_T_TdTd.er!   ptxc                 R   > TR                  XTTR                  R                  5      $ rf   )r  r   rJ   r  s     r   r  r    s    wX\XcXcXhXh0ir!   r   )r   rJ   )r   stagesrh   rz   s   ` `@r   
add_stagesCUDABackend.add_stages  sD    %%gll3
Uvcwaveuiwr!   c                 v    [        U R                  R                  5      nU SU R                  R                   3$ )Nr   )rS   r   rJ   )r   rH   s     r   r   CUDABackend.hash  s2    #DKK$4$45!DKK,,-..r!   )r   )r   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   r^   r   r   r  r  r>  rf  rp  r  r  	functools	lru_cacher   r   __classcell__)r   s   @r   r   r      s    (	 ( (#"y "T "#S #,
>S*_ 5 >"   F FP?B,)Vj / /r!   r   )+triton.backends.compilerr   r   triton._C.libtritonr   r   r   r   triton.runtime.errorsr	   dataclassesr
   r  typingr   r   r   r   typesr   rt   r@   r~  r  r3   r=   pathlibr   r1   r#   r  r^   rI   r"   rO   rS   rd   rj   rp   ry   r   r   r   r   r!   r   <module>r     s_   ; 8 8 , !  - -   	   	   # # 0C 0 0" !C ! !
 C   iS i i$  
 
 
 T4 4
& & $'? '? '?Tg/+ g/r!   