
    3j                         S SK r SSKJr  \R                  r\Gb  \ R                  \ R
                  \ R                  /\R                  l        \ R                  \R                  l	        \ R                  \ R                  \ R
                  /\R                  l        \ R                  \ R                  \ R
                  /\R                  l        \ R                  /\R                  l        \ R                  \ R                  /\R                  l        \ R                  \ R                  /\R                  l        \ R                  \ R                  /\R                  l        \ R
                  \R                  l	        \ R                  \ R                  /\R                   l        \ R                  \ R                  \ R
                  \ R
                  \ R"                  " \ R$                  5      /\R&                  l        \ R                  \R&                  l	        \ R                  \ R                  \ R
                  \ R
                  /\R(                  l        \ R                  \ R                  /\R*                  l        \ R,                  \R*                  l	        \ R                  \ R                  \ R
                  /\R.                  l        \ R
                  \R.                  l	        \ R                  \ R0                  /\R2                  l        \ R
                  \R2                  l	        \ R                  \ R                  /\R4                  l        \ R,                  \R4                  l	        \ R                  \ R                  /\R6                  l        \ R,                  \R6                  l	        \ R                  \ R                  \ R"                  " \ R8                  5      \ R,                  /\R:                  l         " S S5      rS rS rS rS	 rSS
 jrg)    N   )controlc                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)	ModelVBAR1   c                 T   [         R                  " U5      U l        [        R	                  U R                  [        U5      U5      U l        U R                  (       d  [        S5      eX l        Xl	        SU l
        [        R                  U R                  U R                  5      U l        g )NzVBAR allocation failedr   )r   
get_devctx_devctxlibvbar_allocateint_ptrMemoryErrordevicemax_sizeoffsetvbar_get	base_addr)selfsizer   s      P/home/wildlama/miniconda3/lib/python3.13/site-packages/comfy_aimdo/model_vbar.py__init__ModelVBAR.__init__2   sp    ))&1%%dllCIvF	yy677dllDII>    c                 X    [         R                  U R                  U R                  5        g N)r   vbar_prioritizer
   r   r   s    r   
prioritizeModelVBAR.prioritize<   s    DLL$))4r   c                 X    [         R                  U R                  U R                  5        g r   )r   vbar_deprioritizer
   r   r   s    r   deprioritizeModelVBAR.deprioritize?   s    dllDII6r   c                     U R                   S-   S-  U l         U R                   U-   U R                  :  a  [        S5      eU R                  U R                   -   nU =R                   U-  sl         XU4$ )Ni  i zVBAR OOM)r   r   r   r   )r   	num_bytesallocs      r   r'   ModelVBAR.allocB   sb    {{S(D0;;"T]]2j)),y Y''r   c                     XR                   -
  n[        R                  US-  S-   -  " 5       n[        R	                  U R
                  U R                  X2U5      nUS:X  a  U$ US:X  a  g [        SU 35      e)Ni      r   r   zFault failed: )r   ctypesc_uint32r   
vbar_faultr
   r   RuntimeError)r   r'   r   r   	signatureress         r   faultModelVBAR.faultR   sn    '__(@1(DEH	nnT\\499fIN!8AXu566r   c                 v    XR                   -
  n[        R                  U R                  U R                  X25        g r   )r   r   
vbar_unpinr
   r   )r   r'   r   r   s       r   unpinModelVBAR.unpin^   s&    't||TYY=r   c                 V    [         R                  U R                  U R                  5      $ r   )r   vbar_loaded_sizer
   r   r   s    r   loaded_sizeModelVBAR.loaded_sizeb   s    ##DLL$))<<r   c                 Z    [         R                  U R                  U R                  U5        g r   )r   vbar_set_watermark_limitr
   r   r   
size_bytess     r   set_watermark_limitModelVBAR.set_watermark_limite   s    $$T\\499jIr   c                 Z    [         R                  U R                  U R                  U5        g r   )r   vbar_set_watermarkr
   r   r=   s     r   set_watermarkModelVBAR.set_watermarkh   s    t||TYY
Cr   c                 j    [         R                  U R                  U R                  [	        U5      5      $ r   )r   vbar_free_memoryr
   r   r   r=   s     r   free_memoryModelVBAR.free_memoryk   s#    ##DLL$))S_MMr   c                 V    [         R                  U R                  U R                  5      $ r   )r   vbar_get_nr_pagesr
   r   r   s    r   get_nr_pagesModelVBAR.get_nr_pagesn   s    $$T\\499==r   c                 V    [         R                  U R                  U R                  5      $ r   )r   vbar_get_watermarkr
   r   r   s    r   get_watermarkModelVBAR.get_watermarkq   s    %%dllDII>>r   c                     U R                  5       n[        R                  U-  " 5       n[        R	                  U R
                  U R                  X!5        [        U5      $ )z[Returns a list of per-page status flags.
Bit 0 (& 1): resident in VRAM
Bit 1 (& 2): pinned
)rK   r+   c_uint8r   vbar_get_residencyr
   r   list)r   nr_pagesbufs      r   get_residencyModelVBAR.get_residencyt   sG    
 $$&~~(+t||TYYFCyr   c                     [        U SS 5      n[        [        SS 5      nUb,  U(       a$  UR                  U R                  U5        S U l        g g g )Nr   r   )getattrr   	vbar_freer
   r   )r   ptr	aimdo_libs      r   __del__ModelVBAR.__del__~   sI    dFD)GUD1	 Sc2DI &) r   )r
   r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   r#   r'   r1   r5   r9   r?   rC   rG   rK   rO   rW   r^   __static_attributes__ r   r   r   r   1   sK    ?57( 
7>=JDN>?r   r   c                 .    U u  pnUR                  X#5      $ r   )r1   r'   vbarr   r   s       r   r-   r-      s    D$::f##r   c                 8    U b  U u  pnUR                  X#5        g g r   )r5   rg   s       r   r4   r4      s#    "d

6  r   c                     U b  Uc  g[        U 5      [        U5      :w  a#  [        S[        U 5       S[        U5       35      e[        U 5      [        U5      :H  $ )NFz Signatures of mismatched length z != )len
ValueError
memoryview)abs     r   vbar_signature_comparerp      sR    yAI
1vQ;CF84AxPQQa=JqM))r   c                  \    [         R                   H  n [        R                  U 5        M     g r   )r   devctxsr   vbars_reset_watermark_limits)devctxs    r   rs   rs      s    //((0 "r   c                     [         b  [        R                  (       d  gU c  [        R                  S   O[        R                  " U 5      n[         R	                  US5      $ )Nr   F)r   r   rr   r	   vbars_analyze)r   rt   s     r   rv   rv      sB    
{'//#)>W__Qw7I7I&7QFVU++r   r   ) r+    r   r   c_void_pc_uint64c_intr   argtypesrestyper<   rB   rs   r   r"   r   r[   POINTERr,   r-   r4   r8   c_size_trF   c_boolrv   rJ   rN   rR   rS   r   rp   re   r   r   <module>r      s    kk ?"(//6??FLL!QC &C-3__foov,_C  )'-&YC#170AC$$-$*OOV__#EC &,oov%GC"#__foo>CLL!??CLL$oov?CMM%RXRaRacicqcqrx  sB  sB  dC  DCNN#\\CNN%RXRaRabCNN%+__foo$FC!#)??C %+__foov$WC!#)??C "(//6==!AC &C&,oov%GC"$*OOC!'-&HC#%+__C"'-X^XfXfIgioixix&yC#R Rh$!
*1,r   