Skip to main content

PyPTO

🔥最新动态

  • 2026/04/10:0.2.0版本发布,变更前端表达方法,提升易用性、增强功能及性能,完善各模块能力,优化开发体验与运行效率
  • 2026/03/30:v0.1.2版本发布,支持集群训练场景、优化框架编译性能与基础性能、修复已知整网集成问题
  • 2026/03/09:v0.1.1版本发布,支持新前端、进一步增加API丰富程度、修复一些已知问题
  • 2026/01/06:v0.1.0版本发布,PyPTO项目初始版本
  • 2025/12:PyPTO项目首次上线。

🚀概述

PyPTO(发音:pai p-t-o)是一款面向AI加速器的高性能编程框架,旨在简化复杂融合算子乃至整个模型网络的开发流程,同时保持高性能计算能力。该框架采用创新的PTO(Parallel Tensor/Tile Operation)编程范式,以基于Tile的编程模型为核心设计理念,通过多层次的中间表示(IR)系统,将用户通过API构建的AI模型应用从高层次的Tensor图逐步编译成硬件指令,最终生成可在目标平台上高效执行的可执行代码。

核心特性

  • 基于 Tile 的编程模型:所有计算都基于Tile(硬件感知的数据块)进行,充分利用硬件并行计算能力和内存层次结构
  • 多层级计算图转换:通过编译Pass将Tensor Graph转换为Tile Graph、Block Graph和Execution Graph,每一步包括一系列Pass优化流程
  • 自动化代码生成:编译结果通过CodeGen生成底层PTO虚拟指令代码,再通过编译器将虚拟指令代码编译成目标平台的可执行代码
  • MPMD 执行调度:可执行代码被加载到设备侧,通过MPMD(Multiple Program Multiple Data)的方式调度到设备上的处理器核
  • 完整的工具链支持:全流程的编译中间产物和运行时性能数据可通过IDE集成的工具链可视化识别性能瓶颈,开发者也可以通过工具链控制编译和调度行为
  • Python 友好 API:提供直观的Tensor级别抽象,贴近算法开发者的思维模式,支持动态Shape和符号化编程
  • 分层抽象设计:对不同开发者暴露不同抽象层次,算法开发者使用Tensor层次,性能专家使用Tile层次,系统开发者使用Block层次

目标用户

  • 算法开发者:主要使用Tensor层次编程,快速实现和验证算法,专注于算法逻辑
  • 性能优化专家:可使用Tile或Block层次,进行深度性能调优,以实现极致性能
  • 系统开发者:可在Tensor/Tile/Block和PTO虚拟指令集层次上进行三方框架对接或集成,以及工具链开发

⚡️最佳实践样例

PyPTO提供了丰富的示例代码,涵盖从基础操作到复杂模型实现的多个层级。一些最佳实践样例参考:

大模型实现样例

学习路径

在 examples目录下,我们规划了多个层级的样例:

  • beginner/:基础操作示例,帮助初学者快速上手PyPTO编程
  • intermediate/:中级示例,包括自定义操作、神经网络模块等
  • advanced/:高级示例,包括复杂模式和多函数组合

在 models/目录下,我们提供了部分大模型实现样例,供快速移植和部署

这些示例可以帮助开发者学习如何编写PyPTO算子,从简单的Tensor操作到复杂的模型网络实现。

⚡️快速入门

若您希望快速体验PyPTO的使用和开发过程,请访问如下文档获取简易教程。

  • 环境部署:介绍项目基础环境的搭建,包括软件包和第三方依赖的获取和安装。
  • 编译安装:环境部署后,介绍如何快速获取或编译PyPTO软件包并安装。
  • 样例运行:安装PyPTO软件包后,介绍如何快速实现样例运行。

📖文档资源

若您希望深入体验项目功能并修改源码,请访问如下文档获取详细教程。

  • 文档中心 :当前发布版本的详细文档,包括编程指南、API参考,贡献指南等
  • 示例代码:丰富的示例代码,从基础到高级应用

🔍目录结构

关键目录如下:

├── docs/                       # 文档资源
│   ├── api/                    # API参考文档
│   ├── contribute/             # 贡献指南文档
│   └── tutorials/              # PyPTO编程指南
│
├── examples/                   # 示例代码
│   ├── 01_beginner/            # 初级示例
│   ├── 02_intermediate/        # 中级示例
│   └── 03_advanced/            # 高级示例
│
├── models/                     # 模型实现示例
│
├── python/                     # Python源码
│   ├── pypto/                  # Python包源码根目录
│   ├── src/                    # pybind11源码根目录
│   └── tests/                  # Python测试用例源码(UTest, STest)
│
├── framework/                  # C++源码根目录
│   ├── include/                # C++对外头文件
│   ├── src/                    # C++源码
│   │   ├── codegen/            # 代码生成模块
│   │   ├── passes/             # 编译Pass模块
│   │   └── ...
│   └── tests/                  # C++测试用例源码
│
├── tools/                      # 工具脚本
│
├── cmake/                      # 构建所需的CMake公共配置及脚本
├── build_ci.py                 # CI执行构建、执行UTest、执行STest辅助脚本
├── CMakeLists.txt              # 顶层CMakeLists.txt,定义所有对外公开编译开关
├── pyproject.toml              # Python编译工具配置文件
├── LICENSE                     # 许可证文件
└── setup.py                    # Python编译工具脚本文件(setuptools)

📝相关信息

联系我们

  • 问题反馈:通过GitCode【Issues】提交问题
  • 功能建议:通过GitCode【讨论】参与交流
  • 技术支持:参考文档或提交Issue

注意:本文档会持续更新,请关注最新版本。

Metadata

Release files for pypto 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pypto 0.2.0
File
pypto-0.2.0-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pypto-0.2.0-cp312-cp312-manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
pypto-0.2.0-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pypto-0.2.0-cp311-cp311-manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
pypto-0.2.0-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pypto-0.2.0-cp310-cp310-manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
pypto-0.2.0-cp39-cp39-manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
pypto-0.2.0-cp39-cp39-manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details

Total release size: 68.6 MB

Release files / pypto-0.2.0-cp312-cp312-manylinux2014_x86_64.whl

Download URL pypto-0.2.0-cp312-cp312-manylinux2014_x86_64.whl
Size 8.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2a44eaf2a88c7acd3c82d52cd605be15d2761b0379acf1b0624602b783e173d1
BLAKE2b-256 checksum
How to use checksums
cddf57eac6aba69aa52b7bcc4481a447f812b8a22119bf91ef5ee2c320ebd79f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp312-cp312-manylinux2014_aarch64.whl

Download URL pypto-0.2.0-cp312-cp312-manylinux2014_aarch64.whl
Size 8.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c90e4dd22f0640c31a76d45eb182b3be8741b01c31fcab4745cc55528252a11e
BLAKE2b-256 checksum
How to use checksums
353429a2225b2337e9894d4be40163a23dcf576b24b4488b7b2863f75bf94971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp311-cp311-manylinux2014_x86_64.whl

Download URL pypto-0.2.0-cp311-cp311-manylinux2014_x86_64.whl
Size 8.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c4fd72cfcbe9c332cfa878f49ac7a90b00bb0b8396b9557b55cc8c58972a513e
BLAKE2b-256 checksum
How to use checksums
ce1b9ae73a4350c34839d243488e0949c1fba7f7b9a67b37f8f30387c9cf0ef5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp311-cp311-manylinux2014_aarch64.whl

Download URL pypto-0.2.0-cp311-cp311-manylinux2014_aarch64.whl
Size 8.5 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e75e51f3ae8caf4764c1abb1a5e6faae58c43fedf6a45c60140029197b8b51cb
BLAKE2b-256 checksum
How to use checksums
677a105678391e37312e996e77920499885a78733878d229941a1fd185ff0196
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp310-cp310-manylinux2014_x86_64.whl

Download URL pypto-0.2.0-cp310-cp310-manylinux2014_x86_64.whl
Size 8.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9b6f5659542b8fd1f5df2902a78d5d8d795763fbcc95cccf3c9d2dec1d854067
BLAKE2b-256 checksum
How to use checksums
699179985ef5c6dad36bcea90aa7a8b7459948884f515d6ca2864536073340f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp310-cp310-manylinux2014_aarch64.whl

Download URL pypto-0.2.0-cp310-cp310-manylinux2014_aarch64.whl
Size 8.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
50a9f7a2fe7ff992d9e68e09d27601916b02bd903e40f48b84edd85cb510c657
BLAKE2b-256 checksum
How to use checksums
2b9b74c68bcd48be21ab2c8f5294fe5d918aa5d75c2efbe5322682f6f1ce3519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp39-cp39-manylinux2014_x86_64.whl

Download URL pypto-0.2.0-cp39-cp39-manylinux2014_x86_64.whl
Size 8.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
174c96966cdbcd4d59f2725d83b75a98e736231f339fab4ac8edb901df80f66b
BLAKE2b-256 checksum
How to use checksums
9ca2dd1940762d1d17616a57d75408ff402731b0ac7dd2ad3c904b040b50f682
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pypto-0.2.0-cp39-cp39-manylinux2014_aarch64.whl

Download URL pypto-0.2.0-cp39-cp39-manylinux2014_aarch64.whl
Size 8.5 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2849c9a973a6f8cd16d0dc1c19e812839aa8f632dcd72d0de17b0d43eb2923ee
BLAKE2b-256 checksum
How to use checksums
b3cdc65d0c4c486df20ed31b43b397d5b918e52a9906ccdcaf0aadc32e6921fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

8 release files

0.1.3

8 release files

0.1.2

8 release files

0.1.1

8 release files

0.1.0

8 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page