Documentation | 文档 | Contributors | Release Notes
MatxScript is an ahead of time compiler for a subset of the Python language.
pip install matxscript
import matx
import timeit
def fib(n: int) -> int:
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
if __name__ == '__main__':
fib_script = matx.script(fib)
# test on Macbook with m1 chip
print(f'Python execution time: {timeit.timeit(lambda: fib(30), number=10)}s') # 1.59s
print(f'Matx execution time: {timeit.timeit(lambda: fib_script(30), number=10)}s') # 0.03s
© Bytedance Inc. Licensed under an Apache-2.0 license.
Everyone is welcomed to contribute. We value all forms of contributions, including, but not limited to:
- Code reviewing of the existing patches.
- Documentation and usage examples
- Community participation in issues.
- Code readability and developer guide
- We welcome contributions that add code comments to improve readability
- We also welcome contributions to docs to explain the design choices of the internal.
- Test cases to make the codebase more robust
- Tutorials, blog posts, talks that promote the project.
We learned a lot from the following projects when building MatxScript.
-
TVM: Part of MatxScript's IR and Runtime originates from TVM. We also learned and adapted some part of codegen pipeline from TVM.
-
Python: Part of the runtime code comes from cpython for align the semantics
-
Folly: We adopted the idea of FBString to design our runtime::string_core
-
abseil-cpp: The string_view structure and ByteHash algorithm originates from abseil
-
rapidjson: The json module is implemented based on rapidjson
-
CV-CUDA: The vision CUDA runtime is developed using the operators provided by CV-CUDA.