K i ddlmZmZddlmZddlmZddlmZm Z ddl m Z edGdd e Z Gd d eZGd d eZy))ABCMetaabstractmethod) dataclass)Enum)DictUnion) ModuleTypeT)frozenc6eZdZUeed<eeefed<eed<y) GPUTargetbackendarch warp_sizeN)__name__ __module__ __qualname__str__annotations__rint^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/triton/backends/compiler.pyr r sL S/Nrr ceZdZdZdZdZy)Languagez1The input language being compiled by the backend.rN)rrr__doc__TRITONGLUONrrrrrs; F ErrceZdZdeddfdZeedefdZedefdZ ede de fdZ ed e de ddfd Z ed Zedeeeffd Zed ZedZy) BaseBackendtargetreturnNc8||_|j|sJyN)r!supports_target)selfr!s r__init__zBaseBackend.__init__s ##F+++rctr$NotImplementedError)r!s rr%zBaseBackend.supports_target "!rct)z,Returns a unique identifier for this backendr)r&s rhashzBaseBackend.hash"r+roptionsct)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 r))r&r/s r parse_optionszBaseBackend.parse_options's "!rstagesct)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. r))r&r2r/s r add_stageszBaseBackend.add_stages/s "!rct)zK Load additional MLIR dialects into the provided `context` r))r&contexts r load_dialectszBaseBackend.load_dialects; "!rct)z\ Return a map of interface modules to their device-specific implementations r)r-s rget_module_mapzBaseBackend.get_module_mapBr8rcFt|tsJg}d|vr|ddggz }|S)NDztt.divisibility) isinstancer)descrets r parse_attrzBaseBackend.parse_attrIs6$$$$ $; &+, ,C rc |dk(r|dzdk(r|jddry|dk(r)|jdzdk(r|jddryy) zX Return a string unique to each possible specialization of the argument rr=ralignFr<tensor)getdata_ptr)argtykwargss rget_arg_specializationz"BaseBackend.get_arg_specializationQsQ ;38q=VZZ-G >cllnr1Q66::gu;Ur)rrrr r' staticmethodrr%rr.dictobjectr1r4r7rr r:rArKrrrr r s,y,T," """c"""T"f"" " " "4 " """ "S*_ 5"" rr ) metaclassN)abcrr dataclassesrenumrtypingrrtypesr rNr rr rrrrUsN'! $t CGCr