o
    HۂiX                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ ddlmZ ddlmZ d ddZd!ddZejd"ddZd#ddZ			d$d%ddZdS )&    )annotationsN)
ModuleType   )get_cache_manager   )knobsnamestrsrcsrcdirlibrary_dirs	list[str]include_dirs	librariesccflagsreturnc                 C  s,  t jj }r|| |||||S td}tj|dj| |d}	tj	
d}
|
d u rDtd}td}|d ur:|n|}
|
d u rDtdt }|dkrNd	}tj|d
d }t jj}|||g| }|
|ddddd|	g}|dd |D 7 }|dd |D 7 }|dd |D 7 }|| tj|tjd |	S )N
EXT_SUFFIXz{name}{suffix})r   suffixCCclanggcczeFailed to find C compiler. Please specify via CC environment variable or set triton.knobs.build.impl.posix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz
-Wno-psabiz-oc                 S  s   g | ]}t |qS  )_library_flag).0libr   r   W/home/ubuntu/maya3_transcribe/venv/lib/python3.10/site-packages/triton/runtime/build.py
<listcomp>,   s    z_build.<locals>.<listcomp>c                 S  s   g | ]}d | qS )z-Lr   r   dirr   r   r   r    -   s    c                 S  s   g | ]}|d urd| qS )Nz-Ir   r!   r   r   r   r    .   s    )stdout)r   buildimpl	sysconfigget_config_varospathjoinformatenvirongetshutilwhichRuntimeErrorget_default_scheme	get_pathsbackend_dirsextend
subprocess
check_callDEVNULL)r   r
   r   r   r   r   r   r%   r   soccr   r   r   py_include_dircustom_backend_dirscc_cmdr   r   r   _build   s4   



r=   r   c                 C  s*   t d| s| drd|  S d|  S )Nz\.so(\.\d+)*$z.az-l:z-l)researchendswith)r   r   r   r   r   4   s   

r   c                  C  s,   ddl m} m}m} d|  | g| S )Nr   machinesystemarchitecture,)platformrB   rC   rD   r*   rA   r   r   r   platform_key;   s   rG   r)   r   c                 C  sH   t j| |}|r|jstd|  d| t j|}|j| |S )NzFailed to load newly compiled z from )	importlibutilspec_from_file_locationloaderr0   module_from_specexec_module)r   r)   specmodr   r   r   _load_module_from_pathA   s   
rP   list[str] | Nonec              	   C  sh  t | t  d }t|}td}|| | }	|	d urCzt	||	W S  t
tfyB   tt}
|
d| d Y nw t `}tj||d }t|d}||  W d    n1 sfw   Y  t||||prg |pug |pxg |p{g }t|d}|j| | | dd	}	W d    n1 sw   Y  W d    n1 sw   Y  t	||	S )
Nzutf-8r   z$Triton cache error: compiled module z.so could not be loadedz.cwrbT)binary)hashlibsha256rG   encode	hexdigestr   r&   r'   get_filerP   r0   ImportErrorlogging	getLogger__name__warningtempfileTemporaryDirectoryr(   r)   r*   openwriter=   putread)r
   r   r   r   r   r   keycacher   
cache_pathlogtmpdirsrc_pathfr8   r   r   r   compile_module_from_srcJ   s.   


$
rl   )r   r	   r
   r	   r   r	   r   r   r   r   r   r   r   r   r   r	   )r   r	   r   r	   )r   r	   )r   r	   r)   r	   r   r   )NNNN)r
   r	   r   r	   r   rQ   r   rQ   r   rQ   r   rQ   r   r   )
__future__r   	functoolsrU   importlib.utilrH   r[   r(   r.   r5   r&   r_   r>   typesr   rf   r    r   r=   r   	lru_cacherG   rP   rl   r   r   r   r   <module>   s.    

 
	