欢迎浏览¶
简介¶
MATXScript(Matx) 是一个高性能可扩展的 Python 编译器,可以自动化把 Python 类或函数翻译成 C++,运行时完全没有 Python 开销。在一些典型的场景中,通常可以获得 10-100 倍的性能提升。另外,Matx 通过 pmap 原语支持无锁多线程,在上面基础上,还可以进一步提升性能。
当前,Matx 已在字节跳动广泛使用,包括:
实现了模型的训推一体
加速一些 MapReduce 任务
为一些 C++ 引擎提供灵活逻辑热加载能力等等
简单示例¶
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