
    3j                         S SK r S SKrS SKrSSKJr  S rS rS r " S S\ R                  R                  R                  5      r
S	 rg)
    N   )controlc                 l    U4SU S4SS.n " S S5      nU" 5       nX5l         [        R                  " XRS9$ )Nz|u1F   )shapetypestrdataversionc                       \ rS rSrSrg)'get_tensor_from_raw_ptr.<locals>.Holder    N)__name__
__module____qualname____firstlineno____static_attributes__r       K/home/wildlama/miniconda3/lib/python3.13/site-packages/comfy_aimdo/torch.pyHolderr      s    r   r   )device)__cuda_array_interface__torch	as_tensor)ptrsizer   	containerr   holders         r   get_tensor_from_raw_ptrr      sC    e	I  XF&/#??611r   c                 $    U u  p#n[        X4U5      $ )N)r   )allocr   _r   r   s        r   aimdo_to_tensorr#      s    LAD"3f55r   c                     [         R                  U R                  -  R                  U R	                  5       5      n[
        R                  " U[
        R                  S9$ )N)dtype)ctypesc_uint8r   from_addressget_raw_addressr   
frombufferuint8)hostbuf	byte_views     r   hostbuf_to_tensorr.      s?    ',,.<<W=T=T=VWIIU[[99r   c                       \ rS rSrS rSrg)CUDAPluggableAllocator$   c                 |   [         R                  " [        [        R                  S5      [         R
                  5      R                  n[         R                  " [        [        R                  S5      [         R
                  5      R                  nUc   eUc   e[        R                  R                  X5      U l
        g )Nalloc_fnfree_fn)r&   castgetattrr   libc_void_pvaluer   _C_cuda_customAllocator
_allocator)selfr3   r4   s      r   __init__CUDAPluggableAllocator.__init__%   sz    ;;ww{{J?QWW++ggkk9=vOUU###"""((88Kr   )r<   N)r   r   r   r   r>   r   r   r   r   r0   r0   $   s    Lr   r0   c                  h    [         R                  " S5        [        R                  c  S $ [	        5       $ )NzFWARNING: Aimdo+CUDAPluggableAllocator is experimental and unsupported.)loggingwarningr   r7   r0   r   r   r   get_torch_allocatorrC   ,   s)     OO\^;;&4D,B,DDr   )r   r&   rA    r   r   r#   r.   cudamemoryr0   rC   r   r   r   <module>rG      sD       2 6:LUZZ..EE LEr   