
    +j                     |    d dl Z d dlZd dlZddlmZ d Zd Zd Z G d de j        j	        j
                  Z
d	 ZdS )
    N   )controlc                 ~    |fd| dfdd} G d d          } |            }||_         t          j        ||          S )Nz|u1F   )shapetypestrdataversionc                       e Zd ZdS )'get_tensor_from_raw_ptr.<locals>.HolderN)__name__
__module____qualname__     T/home/wildlama/comfy/ComfyUI/.venv/lib/python3.11/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      sr    e	 I        VXXF&/F#?6&1111r   c                 0    | \  }}}t          |||          S )N)r   )allocr   _r   r   s        r   aimdo_to_tensorr       s    LAsD"3f555r   c                     t           j        | j        z                      |                                           }t          j        |t
          j                  S )N)dtype)ctypesc_uint8r   from_addressget_raw_addressr   
frombufferuint8)hostbuf	byte_views     r   hostbuf_to_tensorr+      sB    ',.<<W=T=T=V=VWWIIU[9999r   c                       e Zd Zd ZdS )CUDAPluggableAllocatorc                 P   t          j        t          t          j        d          t           j                  j        }t          j        t          t          j        d          t           j                  j        }|J |J t          j        	                    ||          | _
        d S )Nalloc_fnfree_fn)r#   castgetattrr   libc_void_pvaluer   _C_cuda_customAllocator
_allocator)selfr/   r0   s      r   __init__zCUDAPluggableAllocator.__init__%   s{    ;ww{J??QQW+ggk9==vOOU###"""(887KKr   N)r   r   r   r:   r   r   r   r-   r-   $   s(        L L L L Lr   r-   c                  b    t          j        d           t          j        d nt	                      S )NzFWARNING: Aimdo+CUDAPluggableAllocator is experimental and unsupported.)loggingwarningr   r3   r-   r   r   r   get_torch_allocatorr>   ,   s-     O]^^^;&44,B,D,DDr   )r   r#   r<    r   r   r    r+   cudamemoryr-   r>   r   r   r   <module>rB      s            2 2 2 6 6 6: : :L L L L LUZ.E L L LE E E E Er   