[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-alibaba--BladeDISC":3,"tool-alibaba--BladeDISC":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150720,2,"2026-04-11T11:33:10",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":122,"env_os":123,"env_gpu":124,"env_ram":125,"env_deps":126,"category_tags":133,"github_topics":134,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":143,"updated_at":144,"faqs":145,"releases":175},6682,"alibaba\u002FBladeDISC","BladeDISC","BladeDISC is an end-to-end DynamIc Shape Compiler project for machine learning workloads.","BladeDISC 是一款专为机器学习工作负载打造的端到端动态形状编译器，也是阿里巴巴 PAI-Blade 的核心组件之一。它主要解决了传统编译器在处理动态形状（Dynamic Shape）模型时效率低下或支持不足的痛点，能够为 TensorFlow 和 PyTorch 框架下的推理与训练任务提供通用、透明且易用的性能优化方案。\n\n无论是面对输入维度多变的复杂模型，还是需要在不同硬件间迁移的场景，BladeDISC 都能自动适配并生成高效代码。其独特之处在于基于 MLIR 架构构建，原生支持动态形状，同时兼顾静态场景的性能表现；在部署上既支持作为插件无缝嵌入现有运行时，也支持独立的预编译执行模式。目前，它已广泛兼容 NVIDIA\u002FAMD GPU、海光 DCU 以及 X86、ARM 等多种后端硬件。\n\n这款工具非常适合编译器开发者、AI 算法工程师及科研人员使用。如果你致力于提升模型在 CPU 或 GPU 上的运行效率，或者希望在 AIGC 时代构建统一自动化的编译基础设施，BladeDISC 将是一个强大的技术伙伴。它不仅降低了底层优化的门槛，还让动态模型的高效部署变得更加简单可靠。","# BladeDISC Introduction \u003C!-- omit in toc -->\n\n## We're hiring!🔥🔥🔥\nWe're always looking for candicates to join dev team. Your're the one we're searching for long:\n* 🥷 If you are an compiler or AI enthusiasts.\n* ⭐️ or if you are experienced in optimization on CPUs and GPUs.\n* ⚙️ or if you wanna build an unified and automated compiler to optimize both inference and training workload.\n* 🤿 or if you are using BladeDISC in production or research projects, and wanna have a deeper dive into it.\n* ✄ or you wanna build cutting-edge infrastructure in the AIGC era.\n\nPlease contact us via email or Dingtalk at the bottom of page.⬇️⬇️⬇️\n\n- [What's New](#whats-new)\n- [Overview](#overview)\n  - [Features and Roadmap](#features-and-roadmap)\n    - [Frontend Framework Support Matrix](#frontend-framework-support-matrix)\n    - [Backend Support Matrix](#backend-support-matrix)\n    - [Deployment Solutions](#deployment-solutions)\n  - [Numbers of Typical Workloads](#numbers-of-typical-workloads)\n    - [Advantage in Dynamic Shape Workloads](#advantage-in-dynamic-shape-workloads)\n- [API QuickView](#api-quickview)\n  - [For TensorFlow Users](#for-tensorflow-users)\n  - [For PyTorch Users](#for-pytorch-users)\n- [Setup and Examples](#setup-and-examples)\n- [Publications](#publications)\n- [Tutorials and Documents for Developers](#tutorials-and-documents-for-developers)\n- [Presentations and Talks](#presentations-and-talks)\n- [How to Contribute](#how-to-contribute)\n- [Building Status](#building-status)\n- [FAQ](#faq)\n  - [Roadmap with mlir-hlo Project](#roadmap-with-mlir-hlo-project)\n  - [Roadmap with Torch-MLIR Project](#roadmap-with-torch-mlir-project)\n- [Contact Us](#contact-us)\n\n## What's New\n\n+ [🔥 2023.03.17] BladeDISC v0.4.0: [Massive performance and feature updates](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Freleases\u002Ftag\u002Fv0.4.0)\n+ [2022.12.08] BladeDISC v0.3.0:\n [Announce PyTorch 2.0 Compilation Support](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Freleases\u002Ftag\u002Fv0.3.0)\n\n## Overview\n\nBladeDISC is an end-to-end **DynamIc Shape Compiler** project for machine\nlearning workloads, which is one of the key components of Alibaba's\n[PAI-Blade](https:\u002F\u002Fwww.aliyun.com\u002Factivity\u002Fbigdata\u002Fblade). BladeDISC provides\ngeneral, transparent, and ease-of-use performance optimization for\nTensorFlow\u002FPyTorch workloads on GPGPU and CPU backends. The architecture\nnatively supports dynamic shape workloads, with many considerations in the\nperformance of both static and dynamic shape scenarios. It also supports\nmultiple and flexible deployment solutions, including both Plugin Mode inside\nTensorFlow\u002FPyTorch runtime, and Standalone Mode for AOT standalone execution.\nThe project is based on [MLIR](https:\u002F\u002Fmlir.llvm.org\u002F) and highly related to\n[mlir-hlo](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmlir-hlo) project.\n\nRefer to [our website](https:\u002F\u002Falibaba.github.io\u002FBladeDISC\u002F) for more\ninformation, including the setup tutorial, developer guide, demo examples and\ndocuments for developers.\n\n### Features and Roadmap\n\n#### Frontend Framework Support Matrix\n\n|           | TensorFlow [1] | PyTorch [2]  |\n|---------- | -------------- | ------------ |\n| Inference |    Yes         |    Yes       |\n|  Training |    Yes [3]     |  Ongoing     |\n\n[1] TensorFlow 1.12, 1.15, 2.4 & 2.5 are supported and fully verified. For other\nversions, some slight work on adaptation might be needed.\n\n[2] PyTorch version >= 1.6.0 has been fully verified.\n\n[3] Although supported, there's much room for improvement on Op coverage for\ntraining workloads.\n\n#### Backend Support Matrix\n\n|            |   Status      |\n|----------- | ------------- |\n| Nvidia GPU |    Yes [1]    |\n| AMD GPU    |    Yes        |\n| Hygon DCU  |    Yes        |\n|  X86       |    Yes        |\n| AArch64    |    Yes        |\n\n[1] Support for CUDA below 11.0 has been deprecated officially since Aug 2022.\n\n#### Deployment Solutions\n\n* Plugin Mode - BladeDISC works as a plugin of TensorFlow or PyTorch. Only the\n  supported Ops are clustered and compiled, and the unsupported ones will be\n  executed by the original TensorFlow or PyTorch runtime. We recommend this mode\n  to most of the users for its transparency and ease of use.\n\n* Standalone Mode - In Standalone mode, the input workload will be compiled into\n  a binary that can be executed by itself, aka, does not rely on a TensorFlow\n  or PyTorch runtime. In this mode, all ops must be supported.\n\n### Numbers of Typical Workloads\n\nBy evaluating BladeDISC using a set of typical machine learning workloads for\nproduction purposes, BladeDISC shows up to 6.95x speedup compared with\nPyTorch. Moreover, compared to static optimizing compilers (i.e.,\nXLA and TensorRT), BladeDISC shows comparable or even better performance.\n\n\u003Cfigure align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_BladeDISC_readme_14665f1e7bfa.png\" style=\"width:80%\">\n\u003Cfigcaption align = \"center\">\n\u003Cb>\nFig.1 End-to-end Performance of BladeDISC and baselines.\nNote that some baselines fail to optimize ViT model.\n\u003C\u002Fb>\n\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n#### Advantage in Dynamic Shape Workloads\n\nSpecifically, for the BERT large inference on T4 GPU, we provide in the\n[examples](.\u002Fdocs\u002Ftutorials\u002Ftensorflow_inference_and_training.md), static compiler\noptimization (XLA) shows severe performance degradation due to its compilation\noverhead, while BladeDISC shows a 1.75x speedup.\n\n| TensorFlow  |    XLA    |  BladeDISC  |\n|-------------|-----------|-------------|\n|   1.78 s    |   41.69s  |    1.02s    |\n|   1X        |           |    1.75X    |\n\n## API QuickView\n\n### For TensorFlow Users\n\nOnly two lines of code are needed on native TensorFlow program as the following:\n\n``` python\nimport numpy as np\nimport tensorflow as tf\n\n## enable BladeDISC on TensorFlow program\nimport blade_disc_tf as disc\ndisc.enable()\n\n## construct TensorFlow Graph and run it\ng = tf.Graph()\nwith g.as_default():\n    ...\n    with tf.session as sess:\n        sess.run(...)\n```\n\nFor more information, please refer to [QuickStart for TensorFlow\nUsers](.\u002Fdocs\u002Fquickstart.md#quickstart-for-tensorflow-users)\n\n### For PyTorch Users\n\nPyTorch users only need the following few lines of code to enable\nBladeDISC:\n\n``` python\nimport torch_blade\n# construct PyTorch Module\nclass MyModule(nn.Module):\n    ...\n\nmodule = MyModule().eval()\n\nwith torch.no_grad():\n    # blade_module is the optimized module by BladeDISC\n    blade_module = torch_blade.optimize(module, allow_tracing=True, model_inputs=(x, y))\n\n# run the optimized module\nblade_module(x, y)\n```\n\n`torch_blade.optimize` accepts an `nn.Module` object and outputs the\noptimized module.  For more information, please refer to [Quickstart\nfor PyTorch Users](.\u002Fdocs\u002Fquickstart.md#quickstart-for-pytorch-users).\n\n## Setup and Examples\n\n* [How to Setup and Build from Source](.\u002Fdocs\u002Fbuild_from_source.md)\n* [Use Case of TensorFlow Inference and Training](.\u002Fdocs\u002Ftutorials\u002Ftensorflow_inference_and_training.md)\n* [Use Case of PyTorch Inference](.\u002Fdocs\u002Ftutorials\u002Ftorch_bert_inference.md)\n\n## Publications\n\n* Zhen Zheng, Zaifeng Pan, Dalin Wang, Kai Zhu, Wenyi Zhao, Tianyou Guo, Xiafei Qiu, Minmin Sun, Junjie Bai, Feng Zhang, Xiaoyong Du, Jidong Zhai, Wei Lin.\nBladeDISC: Optimizing Dynamic Shape Machine Learning Workloads via Compiler Approach. (SIGMOD'24)\n\n* Zhen Zheng, Xuanda Yang, Pengzhan Zhao, Guoping Long, Kai Zhu, Feiwen Zhu, Wenyi Zhao, Xiaoyong Liu, Jun Yang, Jidong Zhai, Shuaiwen Leon Song, Wei Lin. \n[AStitch: Enabling a New Multi-dimensional Optimization Space for Memory-Intensive ML Training and Inference on Modern SIMT Architectures](.\u002Fdocs\u002Fpapers\u002Fasplos-22-zhenzheng.pdf). (ASPLOS'22)\n\n\n## Tutorials and Documents for Developers\n\n* [Tutorial: A Walkthrough of the BladeDISC Pass Pipeline](.\u002Fdocs\u002Fdevelopers\u002Fpass_pipeline.md)\n* [Introduction to Runtime Abstraction Layer](.\u002Fdocs\u002Fdevelopers\u002Fruntime_abstraction_layer.md)\n* [TorchBlade Overview](.\u002Fdocs\u002Fdevelopers\u002Fbladedisc_torch_overview.md)\n* [Tutorial: How to Add a New Torch Operator](.\u002Fdocs\u002Fdevelopers\u002Ftorch_add_a_new_operator.md)\n\n## Presentations and Talks\n* [Performance optimization practice for dynamic shape AI workloads via a compiler-based approach](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Fperformance-optimization-practice.pdf)\n* [2022\u002F07\u002F31 BladeDISC: A Practice of Dynamic Shape Deep Learning Compiler(Chinese)](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FBladeDISC%EF%BC%9A%E5%8A%A8%E6%80%81Shape%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%BC%96%E8%AF%91%E5%99%A8%E5%AE%9E%E8%B7%B5%E7%9A%84.pdf)\n* [2022\u002F07\u002F07 BladeDISC and Torch-MLIR Roadmap Talk on Torch-MLIR Community](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FBladeDISC-and-TorchMLIR-Roadmap-tts.pptx)\n* [GTC22-S41073, Generalized and Transparent AI Optimization Solutions with AI Compilers from Cloud Service](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FGTC22%20S41073%2C%20Generalized%20and%20Transparent%20AI%20Optimization%20Solutions%20with%20AI%20Compilers%20from%20Cloud%20Service.pdf)\n* [GTC22-S41395, Easier-to-use and More Robust TensorRT via PAI-Blade](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FGTC22-S41395%2C%20Easier-to-use%20and%20More%20Robust%20TensorRT%20via%20PAI-Blade.pdf)\n* [2023\u002F2\u002F17 bladedisc intro. (cpu vendor oriented)](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Fbladedisc-intro-for-intel.pdf)\n* [2023\u002F3\u002F10 transform dialect based codegen in bladedisc](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Ftransform-dialect-based-codegen-in-bladedisc.pdf)\n\n## How to Contribute\n\n* [Contribute to BladeDISC](.\u002Fdocs\u002Fcontribution.md)\n\n## Building Status\n\n| Framework | Device| Status |\n| -- | -- | -- |\n| PyTorch Pre | GPU | [![pytorch_pre_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_gpu.yml) |\n| PyTorch Pre | CPU | [![pytorch_pre_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_cpu.yml) |\n| PyTorch2.0.0 | GPU | [![pytorch200_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_gpu.yml) |\n| PyTorch2.0.0 | CPU | [![pytorch200_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_cpu.yml) |\n| PyTorch2.0.0 | Yitian | [![pytorch200_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_yitian.yml) |\n| PyTorch1.13.0 | GPU | [![pytorch113_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_gpu.yml) |\n| PyTorch1.13.0 | CPU | [![pytorch113_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_cpu.yml) |\n| PyTorch1.13.0 | Yitian | [![pytorch113_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_yitian.yml) |\n| TensorFlow2.5 | GPU | [![tf250_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_gpu.yml) |\n| TensorFlow2.5 | CPU | [![tf250_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_cpu.yml) |\n| TensorFlow2.8 | Yitian | [![tf280_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf280_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf280_yitian.yml) |\n\n## FAQ\n\n### Roadmap with mlir-hlo Project\n\nBladeDISC is in a close relationship with\n[mlir-hlo](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmlir-hlo) project. Part of the building\nblocks, including the MHLO Op definitions, TF to MHLO conversions, and some\ngeneral purpose passes have been upstreamed to mlir-hlo repository. We'll\ncontinue to work in a close cooperative relationship with mlir-hlo project in\nthe longer term.\n\n### Roadmap with Torch-MLIR Project\n\nBladeDISC compiles PyTorch workloads based on [Torch-MLIR](https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002F).\nThe BladeDISC Dev Team is cooperating with the community to add Torch-To-Mhlo conversion\nto Torch-MLIR, especially fully dynamic shape features.\nSee RFC: https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002Fissues\u002F999.\nWe appeal to the community developers interested in joining.\n\n## Contact Us\n\n* Mailgroup: bladedisc-dev@list.alibaba-inc.com\n\n* DingTalk group for support and discussion:\n\n![DingTalk](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_BladeDISC_readme_21a8484fedc4.png)\n","# BladeDISC 简介 \u003C!-- omit in toc -->\n\n## 我们正在招聘！🔥🔥🔥\n我们始终在寻找加入开发团队的人才。如果你符合以下任何一条，那么你就是我们一直在寻找的人：\n* 🥷 如果你是编译器或人工智能领域的爱好者。\n* ⭐️ 或者如果你在 CPU 和 GPU 上有优化经验。\n* ⚙️ 或者如果你想构建一个统一且自动化的编译器来优化推理和训练工作负载。\n* 🤿 或者如果你已经在生产或研究项目中使用 BladeDISC，并希望更深入地了解它。\n* ✄ 或者你想在 AIGC 时代构建前沿的基础设施。\n\n请通过页面底部的邮箱或钉钉联系我们。⬇️⬇️⬇️\n\n- [最新动态](#whats-new)\n- [概述](#overview)\n  - [功能与路线图](#features-and-roadmap)\n    - [前端框架支持矩阵](#frontend-framework-support-matrix)\n    - [后端支持矩阵](#backend-support-matrix)\n    - [部署方案](#deployment-solutions)\n  - [典型工作负载的性能数据](#numbers-of-typical-workloads)\n    - [在动态形状工作负载中的优势](#advantage-in-dynamic-shape-workloads)\n- [API 快速概览](#api-quickview)\n  - [面向 TensorFlow 用户](#for-tensorflow-users)\n  - [面向 PyTorch 用户](#for-pytorch-users)\n- [安装与示例](#setup-and-examples)\n- [论文发表](#publications)\n- [开发者教程与文档](#tutorials-and-documents-for-developers)\n- [演讲与报告](#presentations-and-talks)\n- [如何贡献](#how-to-contribute)\n- [构建状态](#building-status)\n- [常见问题解答](#faq)\n  - [与 mlir-hlo 项目的路线图对比](#roadmap-with-mlir-hlo-project)\n  - [与 Torch-MLIR 项目的路线图对比](#roadmap-with-torch-mlir-project)\n- [联系我们](#contact-us)\n\n## 最新动态\n\n+ [🔥 2023.03.17] BladeDISC v0.4.0：[大规模性能与功能更新](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Freleases\u002Ftag\u002Fv0.4.0)\n+ [2022.12.08] BladeDISC v0.3.0：\n [宣布支持 PyTorch 2.0 编译](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Freleases\u002Ftag\u002Fv0.3.0)\n\n## 概述\n\nBladeDISC 是一个面向机器学习工作负载的端到端 **动态形状编译器** 项目，它是阿里巴巴 [PAI-Blade](https:\u002F\u002Fwww.aliyun.com\u002Factivity\u002Fbigdata\u002Fblade) 的关键组件之一。BladeDISC 为 GPGPU 和 CPU 后端上的 TensorFlow\u002FPyTorch 工作负载提供通用、透明且易于使用的性能优化。该架构原生支持动态形状工作负载，并在静态和动态形状场景的性能上都进行了充分考虑。此外，它还支持多种灵活的部署方案，包括 TensorFlow\u002FPyTorch 运行时内的插件模式，以及用于 AOT 独立执行的独立模式。该项目基于 [MLIR](https:\u002F\u002Fmlir.llvm.org\u002F) 架构，并与 [mlir-hlo](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmlir-hlo) 项目高度相关。\n\n更多信息，请访问我们的官网 [https:\u002F\u002Falibaba.github.io\u002FBladeDISC\u002F](https:\u002F\u002Falibaba.github.io\u002FBladeDISC\u002F) ，其中包括安装教程、开发者指南、演示示例以及面向开发者的文档。\n\n### 功能与路线图\n\n#### 前端框架支持矩阵\n\n|           | TensorFlow [1] | PyTorch [2]  |\n|---------- | -------------- | ------------ |\n| 推理      |    是         |    是       |\n| 训练      |    是 [3]     |  正在进行   |\n\n[1] TensorFlow 1.12、1.15、2.4 和 2.5 已被支持并经过全面验证。对于其他版本，可能需要进行一些轻微的适配工作。\n\n[2] PyTorch 版本 ≥ 1.6.0 已被完全验证。\n\n[3] 尽管支持训练工作负载，但在算子覆盖方面仍有很大的改进空间。\n\n#### 后端支持矩阵\n\n|            |   状态      |\n|----------- | ------------- |\n| Nvidia GPU |    是 [1]    |\n| AMD GPU    |    是        |\n| Hygon DCU  |    是        |\n|  X86       |    是        |\n| AArch64    |    是        |\n\n[1] 自 2022 年 8 月起，官方已不再支持 CUDA 11.0 以下的版本。\n\n#### 部署方案\n\n* 插件模式 - BladeDISC 作为 TensorFlow 或 PyTorch 的插件运行。只有受支持的算子会被聚合并编译，而不支持的算子则会由原始的 TensorFlow 或 PyTorch 运行时执行。我们推荐大多数用户使用此模式，因为它透明且易于使用。\n  \n* 独立模式 - 在独立模式下，输入的工作负载会被编译成一个可以独立执行的二进制文件，即不依赖于 TensorFlow 或 PyTorch 运行时。在这种模式下，所有算子都必须被支持。\n\n### 兰州典型工作负载的性能数据\n\n通过对一组用于生产的典型机器学习工作负载进行评估，BladeDISC 相较于 PyTorch 最高可实现 6.95 倍的加速。此外，与静态优化编译器（如 XLA 和 TensorRT）相比，BladeDISC 表现出相当甚至更好的性能。\n\n\u003Cfigure align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_BladeDISC_readme_14665f1e7bfa.png\" style=\"width:80%\">\n\u003Cfigcaption align = \"center\">\n\u003Cb>\n图1：BladeDISC 与基准测试的端到端性能对比。\n请注意，部分基准测试无法优化 ViT 模型。\n\u003C\u002Fb>\n\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n#### 动态形状工作负载的优势\n\n具体来说，在 T4 GPU 上进行 BERT large 推理时，我们在 [示例](.\u002Fdocs\u002Ftutorials\u002Ftensorflow_inference_and_training.md) 中展示了，静态编译器优化（XLA）由于其编译开销导致了严重的性能下降，而 BladeDISC 则实现了 1.75 倍的加速。\n\n| TensorFlow  |    XLA    |  BladeDISC  |\n|-------------|-----------|-------------|\n|   1.78 s    |   41.69s  |    1.02s    |\n|   1X        |           |    1.75X    |\n\n## API 快速概览\n\n### 面向 TensorFlow 用户\n\n在原生 TensorFlow 程序中，只需添加两行代码即可启用 BladeDISC：\n\n``` python\nimport numpy as np\nimport tensorflow as tf\n\n## 在 TensorFlow 程序中启用 BladeDISC\nimport blade_disc_tf as disc\ndisc.enable()\n\n## 构建 TensorFlow 图并运行\ng = tf.Graph()\nwith g.as_default():\n    ...\n    with tf.session as sess:\n        sess.run(...)\n```\n\n更多信息，请参阅 [TensorFlow 用户快速入门](.\u002Fdocs\u002Fquickstart.md#quickstart-for-tensorflow-users)。\n\n### 面向 PyTorch 用户\n\nPyTorch 用户只需几行代码即可启用 BladeDISC：\n\n``` python\nimport torch_blade\n# 构建 PyTorch 模块\nclass MyModule(nn.Module):\n    ...\n\nmodule = MyModule().eval()\n\nwith torch.no_grad():\n    # blade_module 是由 BladeDISC 优化后的模块\n    blade_module = torch_blade.optimize(module, allow_tracing=True, model_inputs=(x, y))\n\n# 运行优化后的模块\nblade_module(x, y)\n```\n\n`torch_blade.optimize` 接受一个 `nn.Module` 对象，并返回优化后的模块。更多信息，请参阅 [PyTorch 用户快速入门](.\u002Fdocs\u002Fquickstart.md#quickstart-for-pytorch-users)。\n\n## 安装与示例\n\n* [如何从源码安装与构建](.\u002Fdocs\u002Fbuild_from_source.md)\n* [TensorFlow 推理与训练用例](.\u002Fdocs\u002Ftutorials\u002Ftensorflow_inference_and_training.md)\n* [PyTorch 推理用例](.\u002Fdocs\u002Ftutorials\u002Ftorch_bert_inference.md)\n\n## 出版物\n\n* 郑振, 潘在峰, 王大林, 朱凯, 赵文义, 郭天佑, 邱夏飞, 孙敏敏, 白俊杰, 张峰, 杜晓勇, 翟继东, 林伟。\nBladeDISC：通过编译器方法优化动态形状机器学习工作负载。（SIGMOD'24）\n\n* 郑振, 杨轩达, 赵鹏展, 龙国平, 朱凯, 朱飞文, 赵文义, 刘晓勇, 杨军, 翟继东, 宋帅文, 林伟。\n[AStitch：在现代SIMT架构上为内存密集型ML训练和推理开启新的多维优化空间](.\u002Fdocs\u002Fpapers\u002Fasplos-22-zhenzheng.pdf)。（ASPLOS'22）\n\n\n## 针对开发者的教程与文档\n\n* [教程：BladeDISC Pass流水线详解](.\u002Fdocs\u002Fdevelopers\u002Fpass_pipeline.md)\n* [运行时抽象层简介](.\u002Fdocs\u002Fdevelopers\u002Fruntime_abstraction_layer.md)\n* [TorchBlade概览](.\u002Fdocs\u002Fdevelopers\u002Fbladedisc_torch_overview.md)\n* [教程：如何添加一个新的Torch算子](.\u002Fdocs\u002Fdevelopers\u002Ftorch_add_a_new_operator.md)\n\n## 演示与演讲\n* [基于编译器方法的动态形状AI工作负载性能优化实践](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Fperformance-optimization-practice.pdf)\n* [2022年7月31日 BladeDISC：动态形状深度学习编译器的实践（中文）](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FBladeDISC%EF%BC%9A%E5%8A%A8%E6%80%81Shape%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%BC%96%E8%AF%91%E5%99%A8%E5%AE%9E%E8%B7%B5%E7%9A%84.pdf)\n* [2022年7月7日 BladeDISC与Torch-MLIR路线图——Torch-MLIR社区演讲](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FBladeDISC-and-TorchMLIR-Roadmap-tts.pptx)\n* [GTC22-S41073，利用云服务中的AI编译器实现通用且透明的AI优化解决方案](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FGTC22%20S41073%2C%20Generalized%20and%20Transparent%20AI%20Optimization%20Solutions%20with%20AI%20Compilers%20from%20Cloud%20Service.pdf)\n* [GTC22-S41395，通过PAI-Blade使TensorRT更易用、更稳健](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002FGTC22-S41395%2C%20Easier-to-use%20and%20More%20Robust%20TensorRT%20via%20PAI-Blade.pdf)\n* [2023年2月17日 BladeDISC介绍（面向CPU厂商）](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Fbladedisc-intro-for-intel.pdf)\n* [2023年3月10日 BladeDISC中基于Transform方言的代码生成](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Ftransform-dialect-based-codegen-in-bladedisc.pdf)\n\n## 如何贡献\n\n* [为BladeDISC做贡献](.\u002Fdocs\u002Fcontribution.md)\n\n## 构建状态\n\n| 框架 | 设备 | 状态 |\n| -- | -- | -- |\n| PyTorch Pre | GPU | [![pytorch_pre_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_gpu.yml) |\n| PyTorch Pre | CPU | [![pytorch_pre_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch_pre_cpu.yml) |\n| PyTorch2.0.0 | GPU | [![pytorch200_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_gpu.yml) |\n| PyTorch2.0.0 | CPU | [![pytorch200_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_cpu.yml) |\n| PyTorch2.0.0 | Yitian | [![pytorch200_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch200_yitian.yml) |\n| PyTorch1.13.0 | GPU | [![pytorch113_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_gpu.yml) |\n| PyTorch1.13.0 | CPU | [![pytorch113_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_cpu.yml) |\n| PyTorch1.13.0 | Yitian | [![pytorch113_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Fpytorch113_yitian.yml) |\n| TensorFlow2.5 | GPU | [![tf250_gpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_gpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_gpu.yml) |\n| TensorFlow2.5 | CPU | [![tf250_cpu](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_cpu.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf250_cpu.yml) |\n| TensorFlow2.8 | Yitian | [![tf280_yitian](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf280_yitian.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Factions\u002Fworkflows\u002Ftf280_yitian.yml) |\n\n## 常见问题解答\n\n### 与mlir-hlo项目的路线图\n\nBladeDISC与[mlir-hlo](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmlir-hlo)项目保持着密切的合作关系。其中一部分基础组件，包括MHLO操作定义、TF到MHLO的转换以及一些通用的Pass，已经被合并到mlir-hlo仓库中。在未来较长的一段时间内，我们将继续与mlir-hlo项目保持紧密的合作关系。\n\n### 与Torch-MLIR项目的路线图\n\nBladeDISC基于[Torch-MLIR](https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002F)来编译PyTorch工作loads。BladeDISC开发团队正与社区合作，计划将Torch到MHLO的转换功能加入到Torch-MLIR中，尤其是针对完全动态形状的支持。详情请参阅RFC：https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002Fissues\u002F999。我们诚挚邀请对此感兴趣的社区开发者加入合作。\n\n## 联系我们\n\n* 邮件组：bladedisc-dev@list.alibaba-inc.com\n\n* 支持与讨论的钉钉群：\n\n![DingTalk](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_BladeDISC_readme_21a8484fedc4.png)","# BladeDISC 快速上手指南\n\nBladeDISC 是阿里巴巴开源的端到端**动态形状编译器**，旨在为 TensorFlow 和 PyTorch 工作负载在 GPU 和 CPU 后端提供通用、透明且易用的性能优化。它原生支持动态形状场景，并显著优于静态编译器（如 XLA）。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04)\n*   **硬件支持**:\n    *   NVIDIA GPU (CUDA >= 11.0)\n    *   AMD GPU \u002F Hygon DCU\n    *   x86_64 或 AArch64 CPU\n*   **软件依赖**:\n    *   **Python**: 3.6+\n    *   **框架版本**:\n        *   TensorFlow: 1.12, 1.15, 2.4, 2.5 (其他版本可能需要适配)\n        *   PyTorch: >= 1.6.0 (已全面验证)，支持 PyTorch 2.0\n    *   **编译工具**: GCC, CMake, Git, Bazel (针对 TensorFlow 集成)\n\n> **提示**: 由于涉及底层编译和特定算子库，强烈建议使用 Docker 容器或参考官方提供的预构建镜像以避免环境配置冲突。\n\n## 2. 安装步骤\n\nBladeDISC 支持从源码构建，也提供部分预编译包。以下是通用的源码构建流程（以 PyTorch 为例，TensorFlow 类似但需额外配置 Bazel）：\n\n### 步骤一：克隆代码库\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC.git\ncd BladeDISC\n```\n\n### 步骤二：安装依赖\n根据您使用的框架安装对应的 Python 依赖。\n```bash\n# 示例：安装 PyTorch 相关依赖 (请根据您的实际 CUDA 版本调整 torch 安装命令)\npip install -r requirements.txt\n```\n\n### 步骤三：构建与安装\nBladeDISC 提供了便捷的构建脚本。\n\n**对于 PyTorch 用户:**\n```bash\n# 构建并安装 torch_blade\npython setup.py install\n# 或者开发模式安装\npython setup.py develop\n```\n\n**对于 TensorFlow 用户:**\n需要确保 Bazel 环境配置正确，然后运行：\n```bash\nbazel build \u002F\u002Ftensorflow\u002Fcompiler\u002Fmlir\u002Fdisc\u002F...\n# 具体安装步骤请参考 docs\u002Fbuild_from_source.md 中关于 TF 的部分\n```\n\n> **注意**: 完整构建过程可能需要较长时间。如果遇到网络问题，建议配置国内镜像源（如清华源、阿里源）加速 pip 和 git 依赖下载。\n\n## 3. 基本使用\n\nBladeDISC 的设计目标是“透明”和“易用”，通常只需极少代码改动即可启用优化。\n\n### 场景一：PyTorch 用户\n\n只需引入 `torch_blade` 并使用 `optimize` 接口包裹您的模型。\n\n```python\nimport torch\nimport torch.nn as nn\nimport torch_blade\n\n# 1. 定义您的 PyTorch 模型\nclass MyModule(nn.Module):\n    def __init__(self):\n        super(MyModule, self).__init__()\n        self.linear = nn.Linear(128, 128)\n\n    def forward(self, x):\n        return self.linear(x)\n\nmodel = MyModule().eval()\n\n# 2. 准备输入数据 (用于追踪模型结构)\nx = torch.randn(1, 128).cuda()\ny = torch.randn(1, 128).cuda()\n\n# 3. 启用 BladeDISC 优化\n# blade_module 是经过编译优化的新模块\nwith torch.no_grad():\n    blade_module = torch_blade.optimize(model, allow_tracing=True, model_inputs=(x, y))\n\n# 4. 运行优化后的模型\noutput = blade_module(x, y)\n```\n\n### 场景二：TensorFlow 用户\n\n在原生 TensorFlow 程序中，仅需两行代码即可启用。\n\n```python\nimport numpy as np\nimport tensorflow as tf\n\n# 1. 启用 BladeDISC\nimport blade_disc_tf as disc\ndisc.enable()\n\n# 2. 构建并运行 TensorFlow Graph\ng = tf.Graph()\nwith g.as_default():\n    # 定义您的模型逻辑\n    x = tf.placeholder(tf.float32, shape=[None, 128])\n    y = tf.layers.dense(x, 128)\n    \n    with tf.Session() as sess:\n        sess.run(tf.global_variables_initializer())\n        # 后续运行将自动经过 BladeDISC 优化\n        input_data = np.random.rand(32, 128).astype(np.float32)\n        result = sess.run(y, feed_dict={x: input_data})\n```\n\n### 部署模式说明\n*   **插件模式 (Plugin Mode)**: 上述示例均为此模式。BladeDISC 作为插件嵌入运行时，仅编译支持的算子簇，不支持的算子回退到原框架执行。**推荐大多数用户直接使用此模式。**\n*   **独立模式 (Standalone Mode)**: 将模型编译为不依赖 TensorFlow\u002FPyTorch 运行时的独立二进制文件，适用于生产环境部署。","某 AIGC 初创团队正在开发一款基于 PyTorch 的实时图像生成服务，需应对用户上传图片尺寸千差万别的动态输入场景。\n\n### 没有 BladeDISC 时\n- **动态形状支持困难**：传统编译器通常要求固定输入尺寸，团队被迫对图片进行强制裁剪或填充，导致生成画面变形或浪费算力。\n- **推理延迟波动大**：面对不同分辨率的请求，模型无法自动优化计算图，小图和大图的推理耗时差异巨大，难以保证服务 SLA。\n- **部署维护成本高**：为了适配多种分辨率，工程师需手动维护多个静态模型版本，不仅占用大量显存，还增加了发布和回滚的复杂度。\n- **硬件利用率低**：在 CPU 或 GPU 后端缺乏针对动态形状的底层算子融合优化，导致内存带宽瓶颈明显，吞吐量上不去。\n\n### 使用 BladeDISC 后\n- **原生动态形状编译**：BladeDISC 直接支持动态输入，无需预处理图片尺寸，模型可自适应任意分辨率输入，保持画面原始比例。\n- **性能稳定且高效**：通过端到端的动态形状优化，无论输入大小如何变化，推理延迟均保持在低位且波动极小，显著提升用户体验。\n- **简化部署架构**：仅需维护一个通用模型文件，BladeDISC 自动处理不同场景下的编译优化，大幅降低了运维负担和显存占用。\n- **极致硬件加速**：利用 MLIR 架构自动融合算子并生成针对 Nvidia GPU 或 X86 CPU 的高效代码，充分释放硬件潜力，吞吐量提升显著。\n\nBladeDISC 通过原生支持动态形状的端到端编译，让算法团队从繁琐的尺寸适配与性能调优中解放，专注于核心业务创新。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Falibaba_BladeDISC_14665f1e.png","alibaba","Alibaba","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Falibaba_f65f7221.png","Alibaba Open Source",null,"https:\u002F\u002Fopensource.alibaba.com\u002F","https:\u002F\u002Fgithub.com\u002Falibaba",[80,84,88,92,96,100,104,108,112,115],{"name":81,"color":82,"percentage":83},"C++","#f34b7d",68.4,{"name":85,"color":86,"percentage":87},"MLIR","#5EC8DB",14.5,{"name":89,"color":90,"percentage":91},"Python","#3572A5",13.2,{"name":93,"color":94,"percentage":95},"Starlark","#76d275",2.6,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.6,{"name":101,"color":102,"percentage":103},"CMake","#DA3434",0.5,{"name":105,"color":106,"percentage":107},"C","#555555",0.1,{"name":109,"color":110,"percentage":111},"Roff","#ecdebe",0,{"name":113,"color":114,"percentage":111},"Smarty","#f0c040",{"name":116,"color":117,"percentage":111},"Dockerfile","#384d54",923,169,"2026-04-10T02:11:40","Apache-2.0",4,"Linux","支持 NVIDIA GPU (CUDA 11.0+，低于 11.0 已废弃), AMD GPU, Hygon DCU; 非必需 (也支持 X86\u002FAArch64 CPU)","未说明",{"notes":127,"python":128,"dependencies":129},"该项目是一个端到端动态形状编译器。提供两种部署模式：插件模式（推荐，作为 TensorFlow\u002FPyTorch 插件运行）和独立模式（编译为不依赖框架的二进制文件）。官方验证过的版本包括 TensorFlow 1.12\u002F1.15\u002F2.4\u002F2.5 和 PyTorch >= 1.6.0 (含 2.0)。支持推理和训练（训练算子覆盖率仍有提升空间）。构建源码需参考专门文档。","未说明 (需配合 TensorFlow 1.12\u002F1.15\u002F2.4\u002F2.5 或 PyTorch >= 1.6.0)",[130,131,85,132],"TensorFlow (1.12, 1.15, 2.4, 2.5)","PyTorch (>= 1.6.0)","mlir-hlo",[14],[135,136,137,138,139,140,141,142],"compiler","deep-learning","machine-learning","pytorch","tensorflow","inference-optimization","mlir","neural-network","2026-03-27T02:49:30.150509","2026-04-12T02:16:46.766147",[146,151,156,161,166,171],{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},30179,"如何在非 Docker 环境下从源码构建 BladeDISC？","如果在非 Docker 环境（如使用 Spack）构建，需注意自动检测逻辑可能失效。建议手动指定 TensorFlow 的编译和链接标志。可以使用以下脚本自动获取当前 TF 环境的标志并用于构建 tao bridge：\nTF_CFLAGS=( $(python -c 'import tensorflow as tf; print(\" \".join(tf.sysconfig.get_compile_flags()))') )\nTF_LFLAGS=( $(python -c 'import tensorflow as tf; print(\" \".join(tf.sysconfig.get_link_flags()))') )\n此外，如果遇到 Bazel 版本不匹配问题（例如 bundled TF 需要 Bazel >=5.0.0），请注意构建 BladeDISC 所用的 Bazel 版本不需要与构建 TF 的版本完全一致，支持较旧版本的 TF。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F121",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},30180,"构建或测试时遇到 'fatal: unsafe repository' 错误怎么办？","该错误通常是因为 Git 检测到仓库目录属于其他用户。解决方法是将该目录添加到 Git 的安全目录列表中。执行以下命令：\ngit config --global --add safe.directory \u002Fdisc\n（请将 \u002Fdisc 替换为你实际的仓库根目录路径）","https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F636",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},30181,"构建 tao_compiler_main 耗时过长，如何加快编译速度？","全量构建（特别是 bazel_build tao_compiler_main）非常耗时。如果在开发过程中需要频繁修改代码，建议避免每次运行完整的构建脚本。可以利用 Bazel 的增量构建特性，只编译修改过的目标，或者在开发阶段使用调试模式（debug mode）而非发布模式来减少编译时间。具体命令可根据修改的文件路径针对性地运行 bazel build，而不是运行整个 ci\u002Fbuild_and_test.sh 脚本。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F500",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},30182,"BladeDISC 是否支持 ResNet 等视觉模型的优化？","支持。用户可以使用 torch_blade.optimize 接口对 ResNet 等模型进行优化。如果在调用 optimize 时遇到错误，请确保输入模型和虚拟数据（dummy inputs）正确放置在 CUDA 设备上，并且允许追踪（allow_tracing=True）。如果遇到性能问题（如 batch=1 时性能较差），可以尝试开启混合精度推理（--amp）或测试其他输入形状，团队正在持续调优性能。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F621",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},30183,"如何处理 Swin-Transformer 中 AMP 模式下 'splat' 常数导致的性能下降问题？","在 Swin-Transformer 等模型中，大型 'splat' 常数（全相同值的张量）若未被融合进计算核，会导致严重的性能退化。解决方案是将 'lmhlo.constant' 拆分为 '标量常数 + lmhlo.broadcastOp'。这样 broadcastOp 可以被复制并融合到每个消费它的 kernel 中，从而避免多次读取大常数显存。虽然这可能会增加内核中的 BroadcastInDimOp 数量，但通常能显著降低内存消耗并提升性能。","https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F113",{"id":172,"question_zh":173,"answer_zh":174,"source_url":165},30184,"在批量大小为 1 (batch=1) 时性能较差，有什么优化建议？","针对 batch=1 场景性能不佳的问题，建议尝试启用混合精度加速（--amp 选项）。此外，性能表现可能与输入形状密切相关，建议测试不同的输入形状以观察性能变化。开发团队表示仍在对该场景进行性能调优，后续会更新相关结果。",[176,181,186],{"id":177,"version":178,"summary_zh":179,"released_at":180},214537,"v0.4.0","# 计算密集型图代码生成\n## NV GPU\n对于 CUDA 平台，我们已支持 GEMM 及其后续逐元素操作（如 GELU、转置）的融合，并基于 CUTLASS 进行代码生成。实验表明，该功能在 BERT 模型上可实现最高 1.1 倍的加速效果。\n如需尝试此功能，请设置 `DISC_ENABLE_COMPUTE_INTENSIVE_FUSE=true`。\n## AArch64\n我们引入了 MLIR Transform Dialect 到 BladeDISC 中，以直接为计算密集型子图生成代码。目前，相关集成已完成，并已在 AArch64 平台上进行了初步验证。下图展示了一些初步的实验结果。更多详细信息请参见 [此处](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F787) 和 [此处](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Ftransform-dialect-based-codegen-in-bladedisc.pdf)。\n如需在 AArch64 上试用此功能，请设置 `DISC_ENABLE_TRANSFORM_SCHEDULE=true`。\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F15364516\u002F227818488-d32f06eb-fcab-4d7c-a003-f4dcec5706e1.png)\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F15364516\u002F227818498-bb2ef445-6757-4da5-8665-c3a0c8563b9b.png)\n\n# CPU 基准测试\n此前，我们已在 CUDA 平台的 CI 流程中集成了 [PyTorch Benchmark](https:\u002F\u002Fgithub.com\u002Fpai-disc\u002Ftorchbenchmark)。本次发布中，我们进一步在 Ice Lake (X86) 和 Yitian 710 (AArch64) 上对其进行了测试，以此作为衡量 BladeDISC 在各类模型上优化效果和鲁棒性的基准。以下是汇总报告：\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F74886391\u002F227825361-5f1fae9f-5f31-4a99-8b24-b8840458043a.png)\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F74886391\u002F227825399-1bfbbdae-f819-4f46-9e9f-9c69fbaf06c5.png)\n\n此外，我们还新增了一个 [端到端示例](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Ftree\u002Fmain\u002Fexamples\u002FPyTorch\u002FQuantization)，演示如何对 PyTorch 模型进行 [DISC 量化优化](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Ftree\u002Fmain\u002Ftools\u002Ftorch_quant)。以下是汇总报告：\n\n![image](https:\u002F\u002Fuser-images.githubusercontent.com\u002F74886391\u002F227825441-55d72500-30b0-4a63-8289-eb207eac78b1.png)\n\n# PyTorch 训练\n在 PyTorch 2.0 中，BladeDISC 可以轻松作为编译器后端之一集成，从而加速 PyTorch 程序的执行效率。用户只需一行代码即可启用 BladeDISC：`torch.compile(backend='aot_disc')`。在 BERT 模型上，BladeDISC 可实现 1.2 倍的加速效果。对于 Stable Diffusion 微调任务，其性能略优于 eager 模式。我们仍在积极提升性能。\n\n# FeatureColumn 代码生成\n我们已为 TensorFlow 中广泛应用于推荐系统的 [FeatureColumn](https:\u002F\u002Fwww.tensorflow.org\u002Fapi_docs\u002Fpython\u002Ftf\u002Ffeature_column) 图提供了自动融合和代码生成支持。具体而言，我们已支持最常见的稀疏操作降级（如 Where、SparseReshape、SparseFillEmptyRows 和 SparseSe","2023-03-27T05:15:44",{"id":182,"version":183,"summary_zh":184,"released_at":185},214538,"v0.3.0","我们上次主要在[v0.2.0](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Freleases\u002Ftag\u002Fv0.2.0)版本中发布了针对GPU的[AStitch](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3503222.3507723)优化。如今，我们很自豪地宣布BladeDISC v0.3.0版本正式发布。\n\n## 亮点\n在过去的6个月里，我们完成了以下工作：\n+ 初步支持PyTorch 2.0编译；\n+ 与字节跳动AML团队合作，将TorchToMHLO贡献至[Torch-MLIR](https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir)项目；\n+ 增加量化编译功能；\n+ 新增对阿里巴巴自研ARM架构Yitian 710的支持；\n+ 改进GPGPU上内存密集型内核代码生成；\n+ 引入形状约束IR及相应优化。\n\n## PyTorch 2.0与动态编译\n在过去半年中，为了更好地支持PyTorch的动态编译，我们：\n+ 持续聚焦于PyTorch 2.0所支持的功能；\n+ 与Torch-MLIR社区紧密协作；\n+ 不断优化TorchBlade编译架构。\n\n### TorchDynamo编译\n现在只需在PyTorch 2.0中修改两行代码，即可运行BladeDISC编译：\n```Python\nimport torch_blade # 多一行导入语句\nmodel = ...\ncompiled_model = torch.compile(model, backend='disc')\n```\n\n### TorchBenchmark\n我们新增了[PyTorch Benchmark](https:\u002F\u002Fgithub.com\u002Fpai-disc\u002Ftorchbenchmark)，将其作为衡量BladeDISC在各类模型上优化效果和鲁棒性的标尺。以下是包含BlaDNN的汇总报告：\n\u003Cp align=\"center\" width=\"100%\">\n    \u003Cimg width=\"75%\" src=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fblob\u002Fmain\u002Fdocs\u002Fpics\u002Fv0.3.0_torch_benchmark.png\">\n\u003C\u002Fp>\n\n### TorchMLIR(MHLO)与动态形状\nBladeDISC与[mlir-hlo](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmlir-hlo)项目保持着密切的合作关系。其中一部分基础组件，包括MHLO操作定义、TF到MHLO的转换以及一些通用Pass，已上游合并至mlir-hlo仓库。在本次发布中，BladeDISC开发团队与社区合作，为Torch-MLIR新增了Torch-To-Mhlo转换功能，特别是针对完全动态形状的支持。相关RFC请参见：[llvm\u002Ftorch-mlir#999](https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002Fissues\u002F999)。我们诚挚邀请对此感兴趣的社区开发者加入。\n\u003Cp align=\"center\" width=\"100%\">\n    \u003Cimg width=\"50%\" src=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fblob\u002Fmain\u002Fdocs\u002Fpics\u002Fv0.3.0_torch_mlir_commits.jpeg\">\n\u003C\u002Fp>\n\n今后，TorchBlade将基于[Torch-MLIR](https:\u002F\u002Fgithub.com\u002Fllvm\u002Ftorch-mlir\u002F)将PyTorch工作负载转换为MHLO格式，再通过BladeDISC编译器进行编译。\n\u003Cp align=\"center\" width=\"100%\">\n    \u003Cimg width=\"75%\" src=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fblob\u002Fv0.3.0\u002Fdocs\u002Fdevelopers\u002Fpics\u002Fbladedisc_torch_arch.png\">\n\u003C\u002Fp>\n\n### PyTorch编译训练\n我们发布了基于PyTorch 2.0的编译训练功能。相关示例可在[BladeDISC\u002Fexamples\u002FPyTorch\u002FTrain](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fblob\u002Fv0.3.0\u002Fexamples\u002FPyTorch\u002FTrain)目录下找到。目前这些功能尚处于开发阶段，稳定性有待提升。如果您对此感兴趣，请持续关注。","2022-12-08T02:15:19",{"id":187,"version":188,"summary_zh":189,"released_at":190},214539,"v0.2.0","# 版本 0.2.0\n\n# 性能优化\n\n## GPU 拼接融合\n\n利用 GPU 共享内存，将归约算子与其下游消费节点融合为一个内核。这有助于将复杂的内存密集型计算（如 LayerNorm、SoftMax）合并到单个内核中，从而减少片外内存流量以及内核调度和启动的开销。该功能实现了论文 [AStitch](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3503222.3507723) 中的部分内容。目前正在进行重构以提升鲁棒性，因此默认情况下未启用。BladeDISC 用户可以通过设置环境变量 `DISC_ENABLE_STITCH=true` 来启用此功能。\n\n需要注意的是，在 BladeDISC 开源时，我们已发布了 CPU 拼接优化，并且默认启用。有关 CPU 拼接技术的更多细节，请参阅相关[资料](https:\u002F\u002Fbladedisc.oss-cn-hangzhou.aliyuncs.com\u002Fdocs\u002Fperformance-optimization-practice.pdf)。\n\n## GEMM 合并\n\n支持两种类型的 GEMM 合并优化：一种是将共享相同操作数的两个 GEMM 合并为一个；另一种是将形状相同的两个 GEMM 合并为批处理 GEMM。GEMM 合并优化有助于提高硬件利用率，并减少内核启动开销。\n\n## CPU GEMM\u002F卷积权重预打包优化\n\n支持对卷积（调用 onednn 库）和 GEMM（调用 mkl\u002Fonednn\u002Facl 库）操作进行权重预打包优化。\n\n## 卷积布局优化与转置消除\n\n支持将卷积算子的布局转换为特定设备（CPU 或 GPU）上最友好的格式。大部分引入的转置算子可以在后续的转置简化阶段被消除。\n\n## 其他优化\n* 优化 GPU 上归约算子的调度策略，以增强线程级并行度。\n* 对幂等算子等进行代数简化。\n* 支持将常量广播算子与其下游消费节点融合，从而减少内存访问开销。详情请参阅 [issue](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F113)。\n\n# 功能增强\n\n## CPU 端到端优化\n\n支持 X86 和 AArch64 CPU 的端到端优化。\n\n## TorchBlade\u002FTensorFlowBlade 与 TensorRT 的聚类及优化\n\n根据 TensorRT 支持的算子，对 TensorFlow 和 PyTorch 模型的子图进行聚类，并应用 TensorRT 优化。\n\n## 加速 PyTorch 训练\n\n发布了通过 Disc + Lazy Tensor Core 加速 PyTorch 训练的 PoC 版本，具体参考相关 [issue](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fissues\u002F156) 和 [设计文档](https:\u002F\u002Fgithub.com\u002Falibaba\u002FBladeDISC\u002Fblob\u002Fmain\u002Fdocs\u002Fdesign\u002Fltc_disc.md)。\n\n## 形状分析与简化器增强\n\n根据维度值增强形状相等性分析，并新增用于分析维度之间坍缩与扩展关系的功能，这将有助于…","2022-05-11T09:41:49"]