Requirements#
This section includes requirements of using FlagTree, including supported platforms and dependencies. FlagTree can be successfully installed and run only when all requirements are met.
Supported hardware platforms#
The following list includes the supported hardware platforms:
AIPU
Cambricon
Enflame
Huawei Ascend
Hygon
Iluvatar
MetaX
Mthreads
NVIDIA
AMD
klx
Tsingmicro
Sunrise
System software requirements#
You may need the following system softwares:
Ubuntu
Python 3.x
Backends, Triton versions, and branches#
Each backend is based on different versions of Triton, and therefore resides in different protected branches. All these protected branches have equal status. CI/CD runners are provisioned for every backend listed in the table.
Branch |
Vendor |
Backend |
Triton |
|---|---|---|---|
NVIDIA |
3.1 |
||
NVIDIA |
3.2 |
||
NVIDIA |
3.3 |
||
NVIDIA |
3.4 |
||
NVIDIA |
3.5 |
||
NVIDIA |
3.6 |
Dependencies#
System dependencies
FlagTree is primarily tested on Ubuntu. We recommend using a Linux virtual machine or Docker container for installation. The following table lists the dependencies for Ubuntu.Dependency
Description
zlib1gThe compression library runtime files. This is a widely used software library for data compression, commonly used by other packages (such as
libxml2) to handle compressed data streams.zlib1g-devThe compression library development files. Contains the header files and static libraries required to compile and link programs that use the zlib compression library.
libxml2The GNOME XML library runtime. Provides software libraries for parsing, manipulating, and generating XML data, and is used by many applications and dependencies.
libxml2-devThe GNOME XML library development files. Includes header files and symbolic links necessary for developing software that uses
libxml2(for example, compiling XML-parsing programs).Python dependencies
The following table lists the Python dependencies. These dependencies are included in therequirements.txtfile and will be automatically installed when using thepip installcommand.Dependency
Description
ninjaA small build system with a focus on speed. It is often used as a backend for CMake to compile C/C++ code much faster than traditional Make.
cmakeA cross-platform tool for building, testing, and packaging software. It is used to control the software compilation process via configuration files.
wheelA Python library that provides the
bdist_wheelcommand for setuptools. It allows Python packages to be distributed in a built-package format (.whl), which is faster to install than source distributions.GitPythonA Python library used to interact with Git repositories. It allows Python code to perform Git operations (like
log,commit,diff) programmatically.pytestA mature full-featured Python testing framework. It is used for writing and running simple unit tests as well as complex functional tests.
scipyA fundamental library for scientific computing and technical computing in Python. It builds on NumPy and provides modules for optimization, integration, interpolation, eigenvalue problems, algebra, and other tasks.
filelockA platform-independent file-based lock for Python. It is used to synchronize access to a shared resource (like a file) between multiple Python processes or threads.
nanobindA lightweight C++ library that exposes C++ types and functions to Python. It is used to create Python bindings for C++ code with minimal overhead (similar to pybind11, but faster).
Backend specific dependencies
For more information, see Install FlagTree for different backends.
Features on different branches#
FlagTree’s extension components are currently available on some backends:
Branch |
Backend |
Triton version |
Extension components |
|---|---|---|---|
3.6 |
|||
3.2 |
|||
3.3 |
|||
3.3 |
Backend integrations#
The following backends have been integrated into FlagTree. For new vendors, you can refer to the following code links for your integrations: