文件最后提交记录最后更新时间
[FRONTEND] Enable triton to support register thirdparty backend at runtime (#1643) This PR intends to provide a mechanism to support a third-party backend at runtime to generate the backend-specific code. The mechanism provided a common class to abstract the third-party backend logic and two essential functions to register and get the third-party backend at runtime. - BaseBackend: A common class to abstract the third-party backend logic - register_backend: Register a third-party backend with a given device type - get_backend: Get the third-party backend with a given device type Generally, a third-party backend must inherit from BaseBackend and implement all the member functions according to the backend characteristics. As long as the backend implementation is ready, the third-party backend can invoke register_backend to register it under a given device. During the kernel compilation and execution, the mechanism will get the registered backend to generate the kernel and launcher code for a given device. This PR added a dummy backend to simulate a third-party backend and demonstrate the usage. - [test_device_backend.py](https://github.com/openai/triton/pull/1643/files#diff-bbe4d50624f2d11bf17c878a1ed4d422918c124c182cf9357b993240c385bea1): To define a third-party backend and register the backend - [ExtensionBackend](https://github.com/openai/triton/pull/1643/files#diff-bbe4d50624f2d11bf17c878a1ed4d422918c124c182cf9357b993240c385bea1R123): Inherit from the BaseBackend and implement some specific logic like [filter out some compile stages](https://github.com/openai/triton/pull/1643/files#diff-bbe4d50624f2d11bf17c878a1ed4d422918c124c182cf9357b993240c385bea1R129-R135) - [Register the ExtensionBackend for CPU](https://github.com/openai/triton/pull/1643/files#diff-bbe4d50624f2d11bf17c878a1ed4d422918c124c182cf9357b993240c385bea1R279) - [extension_backend.c](https://github.com/openai/triton/pull/1643/files#diff-169c1d08b3a0a7b343cfa3258fbc32b47e0f6c46305a112652fa1bdaaec89d29): To provide the utility function to load kernel binary and get the backend properties.2 年前
Revert "fix: correctly fallback to setuptools (#3219)" (#3311) This reverts commit 375fee087e408d645a9c30bb1424f16fd148d97c. Reverting this PR as it causes error in our internal tests. It reaches this error in python3.11/site-packages/setuptools/_distutils/core.py ``` def run_commands(dist): """Given a Distribution object run all the commands, raising SystemExit errors in the case of failure. This function assumes that either sys.argv or dist.script_args is already set accordingly. """ try: dist.run_commands() except KeyboardInterrupt: raise SystemExit("interrupted") except OSError as exc: if DEBUG: sys.stderr.write("error: {}\n".format(exc)) raise else: raise SystemExit("error: {}".format(exc)) except (DistutilsError, CCompilerError) as msg: if DEBUG: raise else: raise SystemExit("error: " + str(msg)) return dist ``` 2 年前