� .��g� ���ddlZddlZddlZddlmZmZmZddlmZddl m Z ed���Gd�de ����Z Gd �d e� ��Z dS) �N)�ABCMeta�abstractmethod�abstractclassmethod)� dataclass)�UnionT)�frozenc�>�eZdZUeed<eeefed<eed<dS)� GPUTarget�backend�arch� warp_sizeN)�__name__� __module__� __qualname__�str�__annotations__r�int���h/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/triton/backends/compiler.pyr r s8��������L�L�L� ��S��/�����N�N�N�N�Nrr c���eZdZdeddfd�Zedefd���Zedefd���Z e defd���Z e d e de fd ���Ze d e d e ddfd ���Ze d ���ZdS)� BaseBackend�target�returnNc�B�||_|�|��sJ�dS�N)r�supports_target)�selfrs r�__init__zBaseBackend.__init__s)���� ��#�#�F�+�+�+�+�+�+�+r�binaryc��tj�tj�t��tj��}tj�d|����d�d��tj�|ddd|��g}|D]�}|� d��d}tj� |��r�tj� |��rstj |d gtj� ��}|�Otjd |�d ��tj� ��}|�||�d��fcS��t)d|�����)N�TRITON_�_PATH�� third_party�cuda�bin� rz --version)�stderrz.*release (\d+\.\d+).*zutf-8)�flags�z Cannot find )�os�path�join�dirname�__file__�pardir�environ�get�upper�split�exists�isfile� subprocess� check_output�STDOUT�re�search�decode� MULTILINE�group� RuntimeError)r �base_dir�paths�pr'�result�versions r�_path_to_binaryzBaseBackend._path_to_binarysC���7�<�<������ 9� 9�2�9�E�E�� �J�N�N�:�V�\�\�^�^�:�:�:�B� ?� ?� �G�L�L��=�&�%�� H� H� ��� 3� 3�A��'�'�#�,�,�q�/�C��w�~�~�c�"�"� 3�r�w�~�~�c�':�':� 3�#�0�#�{�1C�J�L]�^�^�^���%� �i�(A�6�=�=�QX�CY�CY�ac�am�n�n�n�G��*� �'�-�-��"2�"2�2�2�2�2���2�&�2�2�3�3�3rc��t�r��NotImplementedError)rs rrzBaseBackend.supports_target*s��!�!rc��t�)z,Returns a unique identifier for this backendrH)rs r�hashzBaseBackend.hash.s ��"�!r�optionsc��t�)z� Converts an `options` dictionary into an arbitrary object and returns it. This function may contain target-specific heuristics and check the legality of the provided options rH)rrLs r� parse_optionszBaseBackend.parse_options3s �� "�!r�stagesc��t�)a� Populates `stages` dictionary with entries of the form: ir_name [str] => Function[(src: str, metadata: dict) -> str|bytes] The value of each entry may populate a `metadata` dictionary. Stages will be run sequentially (in inseriton order) and can communicate using `metadata`. All stages are expected to return a `str` object, except for the last stage which returns a `bytes` object for execution by the launcher. rH)rrOrLs r� add_stageszBaseBackend.add_stages;s ��"�!rc��t�)zK Load additional MLIR dialects into the provided `context` rH)r�contexts r� load_dialectszBaseBackend.load_dialectsGs �� "�!r)rrrr r� staticmethodrrFrrrrK�dict�objectrNrQrTrrrrrs*������,�y�,�T�,�,�,�,��4��4�4�4��\�4� �"� �"�"�"���"��"�c�"�"�"��^�"��"�T�"�f�"�"�"��^�"�� "�� "�� "�4� "� "� "��^� "��"�"��^�"�"�"rr)� metaclass)r,r;r8�abcrrr� dataclassesr�typingrrWr rrrr�<module>r\s��� � � � � � � � �����<�<�<�<�<�<�<�<�<�<�!�!�!�!�!�!������� ��$���������������9"�9"�9"�9"�9"�G�9"�9"�9"�9"�9"�9"r
Memory