
    L3i                        d dl Z d dlZd dlmZmZ d dlZd Zh dZd Z	dZ
	 ej                  j                  d      Zej                  D ]  Ze j                   j#                  ed      Ze j                   j'                  e      s;ej                  j)                  d	e      Zej                  j-                  e      Zej0                  j3                  e       ej4                  Z
 	 ej6                  s7	  ee
d          d
k\  r(de
v r$ej:                  ej<                  vr e	       e_        ej>                  rde_        ej6                  r5e j@                  jC                  dd      Z"e"dZ"ne"dz  Z"e"e j@                  d<   d Z#y#  Y xY w#  Y cxY w)    N)argsPerformanceFeaturec                     t         j                  dk(  r?dd l G fddj                        j                  j
                  fd}  |        S t               }t        j                  ddg      }|j                  d      D ]C  }t        |      dkD  s|j                  |j                  d	      j                  d
      d          E |S )Nntr   c                       e Zd ZdW  j                  fdW  j                  dz  fdW  j                  dz  fdW  j                  fdW  j                  dz  fdW  j                  dz  fgZy	)
&get_gpu_names.<locals>.DISPLAY_DEVICEAcb
DeviceName    DeviceString   
StateFlagsDeviceID	DeviceKeyN)__name__
__module____qualname__c_ulongc_char_fields_)ctypess   %/home/serv3090/ComfyUI/cuda_malloc.pyDISPLAY_DEVICEAr      sf    v~~&v}}r12!45v~~.V]]S01fmmc12H    r   c                  F           } j                  |       | _        d}t               }j                  d |j	                  |       d      rS|dz  }|j                  | j                  j                  d             j                  d |j	                  |       d      rS|S )Nr      utf-8)sizeofr	   setEnumDisplayDevicesAbyrefaddr   decode)device_infodevice_index	gpu_namesr   r   user32s      r   enum_display_devicesz+get_gpu_names.<locals>.enum_display_devices   s    )+K#]];7KNLI,,T<kAZ\]^!k66==gFG ,,T<kAZ\]^ r   z
nvidia-smiz-L   
r   z (UUID)osnamer   	Structurewindllr'   r   
subprocesscheck_outputsplitlenr"   r#   )r(   r&   outlr   r   r'   s       @@@r   get_gpu_namesr4      s    	ww$	f.. 	 %%		 $%%E	%%|T&:;5! 	DA1vzahhw/55h?BC	D r   >)   Tesla M4Tesla M6	Tesla M10	Tesla M40	Tesla M60Quadro K620Quadro M500Quadro M520Quadro M600Quadro M620GeForce 830MGeForce 840MGeForce 910MGeForce 920MGeForce 930MGeForce 940MGeForce 945MQuadro K1200Quadro K2200Quadro M1000Quadro M1200Quadro M2000Quadro M2200Quadro M3000Quadro M4000Quadro M5000Quadro M5500Quadro M6000GeForce MX110GeForce MX130GeForce GTX 745GeForce GTX 750GeForce GTX 950GeForce GTX 960GeForce GTX 970GeForce GTX 980GeForce GTX 1630GeForce GTX 1650GeForce GTX 850MGeForce GTX 860MGeForce GTX TITAN Xc                  x    	 t               } | D ]  }d|v st        D ]	  }||v s  y  y#  t               } Y -xY w)NNVIDIAFT)r4   r   	blacklist)namesxbs      r   cuda_malloc_supportedrd   5   sR      !q= !6 !!
 s   
+ 9 torchz
version.pytorch_version_import   z+cuFPYTORCH_CUDA_ALLOC_CONFzbackend:cudaMallocAsyncz,backend:cudaMallocAsyncc                       t        t              S )N)strversion r   r   get_torch_version_noimportrn   d   s    w<r   )$r*   importlib.util	importlibcomfy.cli_argsr   r   r.   r4   r`   rd   rl   util	find_spec
torch_specsubmodule_search_locationsfolderpathjoinver_fileisfilespec_from_file_locationspecmodule_from_specmoduleloaderexec_module__version__cuda_mallocintAutoTunefastdisable_cuda_mallocenvirongetenv_varrn   rm   r   r   <module>r      sv   	  3 $L	
 
	))'2J77 )77<<577>>(#>>99:PRZ[D^^44T:FKK##F+((G) wqz?aEW$4!**$));#8#:  Djjnn6=G+--,3BJJ()/	s   A!F  A F  26F  FF