This PR merges the `triton-mlir` branch, in which we have been quietly rewriting the Triton backend from scratch to increase maintainability, stability and ultimately performance. Changes to the runtime are minimal, and this new version aims to remain backward-compatible with the previous commit. The legacy backend is now officially deprecated, but can still be accessed via the `legacy-backend` tag. Co-authored-by: Keren Zhou <kerenzhou@openai.com> Co-authored-by: Yan Chunwei <yanchunwei@outlook.com> Co-authored-by: goostavz <109190422+goostavz@users.noreply.github.com> Co-authored-by: Shintaro Iwasaki <siwasaki@fb.com> Co-authored-by: Yan Da <dyanab@connect.ust.hk> Co-authored-by: Jun Yang <yangjunpro@gmail.com> Co-authored-by: Ian Bearman <ianb@microsoft.com> Co-authored-by: Jason Ansel <jansel@jansel.net> Co-authored-by: Qingyi Liu <qingyil@nvidia.com> Co-authored-by: ben-zhang-609 <110140741+ben-zhang-609@users.noreply.github.com> Co-authored-by: Chenggang Zhao <lyricz@yeah.net> Co-authored-by: ben-zhang-609 <benzh609@gmail.com> Co-authored-by: dongdongl <dongdongl@nvidia.com>
68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
# -*- Python -*-
|
|
|
|
import os
|
|
import platform
|
|
import re
|
|
import subprocess
|
|
import tempfile
|
|
|
|
import lit.formats
|
|
import lit.util
|
|
|
|
from lit.llvm import llvm_config
|
|
from lit.llvm.subst import ToolSubst
|
|
from lit.llvm.subst import FindTool
|
|
|
|
# Configuration file for the 'lit' test runner
|
|
|
|
# name: The name of this test suite
|
|
config.name = 'TRITON'
|
|
|
|
config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell)
|
|
|
|
# suffixes: A list of file extensions to treat as test files.
|
|
config.suffixes = ['.mlir']
|
|
|
|
# test_source_root: The root path where tests are located.
|
|
config.test_source_root = os.path.dirname(__file__)
|
|
|
|
# test_exec_root: The root path where tests should be run.
|
|
config.test_exec_root = os.path.join(config.triton_obj_root, 'test')
|
|
|
|
config.substitutions.append(('%PATH%', config.environment['PATH']))
|
|
config.substitutions.append(('%shlibext', config.llvm_shlib_ext))
|
|
|
|
llvm_config.with_system_environment(
|
|
['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP'])
|
|
|
|
# llvm_config.use_default_substitutions()
|
|
|
|
# excludes: A list of directories to exclude from the testsuite. The 'Inputs'
|
|
# subdirectories contain auxiliary inputs for various tests in their parent
|
|
# directories.
|
|
config.excludes = ['Inputs', 'Examples', 'CMakeLists.txt', 'README.txt', 'LICENSE.txt']
|
|
|
|
# test_source_root: The root path where tests are located.
|
|
config.test_source_root = os.path.dirname(__file__)
|
|
|
|
# test_exec_root: The root path where tests should be run.
|
|
config.test_exec_root = os.path.join(config.triton_obj_root, 'test')
|
|
config.triton_tools_dir = os.path.join(config.triton_obj_root, 'bin')
|
|
config.filecheck_dir = os.path.join(config.triton_obj_root, 'bin', 'FileCheck')
|
|
tool_dirs = [config.triton_tools_dir, config.llvm_tools_dir, config.filecheck_dir]
|
|
|
|
# Tweak the PATH to include the tools dir.
|
|
for d in tool_dirs:
|
|
llvm_config.with_environment('PATH', d, append_path=True)
|
|
tools = [
|
|
'triton-opt',
|
|
ToolSubst('%PYTHON', config.python_executable, unresolved='ignore'),
|
|
]
|
|
|
|
llvm_config.add_tool_substitutions(tools, tool_dirs)
|
|
|
|
# TODO: what's this?
|
|
llvm_config.with_environment('PYTHONPATH', [
|
|
os.path.join(config.mlir_binary_dir, 'python_packages', 'triton'),
|
|
], append_path=True)
|