Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 1.42 KB

README.md

File metadata and controls

64 lines (43 loc) · 1.42 KB

轻量化ai编译器

本项目目的在于以最简的方式实现一个全流程的ai编译器/运行时, 这套技术有很多种方法可以实现, 在不严重影响性能的前提下, 会尽量挑选代码和逻辑最简单的方案.

技术选型

  • 使用python来实现, 因为python代码读写更方便. 尽量使用最新的python.
  • 依赖pytorch, 使用pytorch来接入更多常见模型.

开发计划

项目结构

  • CI script.
    • CI status

接口相关

  • 引入pytorch
  • 接入torch compile
  • 从函数地址解析函数
  • 在训练时也调用自定义的compiler
  • 解析出计算图

算子定义相关

  • 定义新的graph/node格式
  • node定义中添加namespace信息
  • 添加torch和aten的namespace, 覆盖简单模型.
  • 添加plai的namespace
  • node中添加location信息
  • build函数看起来没用, 考虑移除掉, 或者替换成from_parser.
  • 添加sub-graph的支持

运行时相关

  • 添加numpy的namespace, 覆盖简单模型, 用于实现运行时.

其他

  • 编译简单的四则运算
  • 简单的四则运算运行时

commands

testing:

pytest tests

generate requirements.txt:

poetry export --format requirements.txt --output requirements.txt --without-hashes