Contributing to Intel® Extension for TensorFlow*
We welcome community contributions to Intel® Extension for TensorFlow*. Before you begin writing code, it is important that you share your intention to contribute with the team, based on the type of contribution:
You want to submit a bug or propose a new feature.
You want to implement a bug-fix or feature for an issue.
Search for your issue in the issue list.
Pick an issue and comment that you’d like to work on the bug-fix or feature.
For bug-fix, please submit a Pull Request to project github.
Ensure that you can build the product and run all the examples with your patch. Submit a pull request.
For feature or significant changes require approval from Intel® Extension for TensorFlow* maintainers before opening a pull request with such implementation. For that we use the
Request For Comments (RFC) process, which consists of opening, discussing, and accepting (promoting) RFC pull requests.
More information about the process can be found in the dedicated
See also: Contributor Covenant code of conduct.
Developing Intel® Extension for TensorFlow*
Refer to a full set of instructions on installing Intel® Extension for TensorFlow* from source.
Tips and Debugging
Intel® Extension for TensorFlow* provides python unit tests.
Python Unit Testing
Python unit tests are located at
├── benchmark # Benchmark unit tests
├── examples # Unit test examples
├── llga # LLGA unit tests
├── python # Python API unit tests
├── sanity # Sanity unit tests
└── tensorflow # TensorFlow migrated unit tests
Running single unit test:
Running all the unit tests:
for ut in $(find test -name "*.py"); do
Code style guide
Intel® Extension for TensorFlow* follows the same code style guide as TensorFlow code style guide for Python and C++ code.
Python coding style
Ensure the Python code changes are consistent with the Python coding standards.
pylint to check your Python changes. To install
pylint and check a file with
pylint against custom style definition from the Intel® Extension for TensorFlow* source code root directory:
pip install pylint
pylint --rcfile=intel-extension-for-tensorflow/.pylintrc myfile.py
C++ coding style
The C++ code should conform to the Google C++ Style Guide. Intel® Extension for TensorFlow* use both
cpplint to check C++ code style.
clang-format and check a file with
clang-format against custom style definition from the Intel® Extension for TensorFlow* source code root directory:
apt-get install clang-format-12
# The -i option makes it inplace, by default formatted output is written to stdout
clang-format-12 -i -style=file <file>
cpplint and check a file with
cpplint from the Intel® Extension for TensorFlow* source code root directory:
pip install cpplint
cpplint --filter=-legal/copyright --exclude=./third_party --recursive ./
cpplint may report false positive errors. You can comment code with
// NOLINT or
// NOLINTNEXTLINE to skip the line for check:
#include "mkl.h" // NOLINT(build/include_subdir)
bazel style guide
buildifier is a tool for formatting bazel
.bzl files with a standard convention (
xxx.tpl files are not supported).
To check bazel files manually:
# install go
sudo tar -C /usr/local -xzf go1.15.3.linux-.html64.tar.gz
# install buildifier
go get github.com/bazelbuild/buildtools/buildifier
# check style. DO NOT use buildifier -r dir/, it will skip files like xxx.BUILD
buildifier BUILD # or zzz.BUILD or xxx.bzl
Documentation style guide
Intel® Extension for TensorFlow* follows the same documentation style guide as TensorFlow documentation style guide.