TileLang v0.1.1版本发布:支持多后端代码生成与性能优化
TileLang是一个面向AI计算领域的领域特定语言(DSL)和编译器框架,专注于高效张量计算。该项目通过提供高级抽象和自动化优化,帮助开发者更轻松地实现高性能计算内核。最新发布的v0.1.1版本带来了多项重要改进,包括多后端代码生成支持、运行时性能优化以及开发者体验提升。
多后端代码生成支持
v0.1.1版本最显著的改进之一是扩展了对多种硬件后端的支持。除了原有的CUDA支持外,现在TileLang可以生成WebGPU的WGSL代码,这使得TileLang编译的程序能够在浏览器环境中利用GPU加速。WebGPU作为新一代的Web图形API,提供了接近原生GPU的性能,TileLang的这一支持为Web端AI应用开发打开了新的大门。
在CUDA支持方面,团队重构了线程同步(Thread Sync)和异步拷贝(Async Copy)相关的编译器Pass,使其与TVM解耦,形成了独立的优化流程。这一改进特别针对NVIDIA Hopper架构进行了优化,能够更好地利用新一代GPU的硬件特性。
运行时性能优化
本次版本在运行时性能方面做了多项重要改进:
-
CTypes JIT内核支持:取代了原有的DLPack包装器,采用基于CTypes的核函数包装方案,显著减少了运行时开销。新的包装器直接通过C类型与Python交互,避免了额外的数据转换。
-
Cython默认后端:将Cython设置为默认执行后端,相比纯Python实现可以获得接近原生代码的性能。Cython后端支持即时编译(JIT),开发者无需手动编译即可享受高性能执行。
-
简化Torch扩展:移除了对Torch C++扩展后端的直接支持,转而推荐使用更轻量级的CTypes接口,这简化了部署流程并减少了依赖。
开发者体验提升
v0.1.1版本在开发者体验方面也做了多项改进:
-
文档格式转换:将所有文档从reStructuredText格式迁移到更流行的Markdown格式,提高了可读性和编辑便利性。
-
多版本Python支持:通过tox工具链实现了对Python 3.8到3.12的全面支持,开发者可以在不同Python环境中无缝使用TileLang。
-
Docker镜像优化:提供了针对不同CUDA版本(包括12.1)的Dockerfile,简化了开发环境配置。新增的"bare"脚本帮助构建符合manylinux标准的wheel包,便于分发。
-
示例丰富:新增了块稀疏(Block Sparse)核函数的实现示例,展示了TileLang处理稀疏计算的潜力。
技术实现亮点
在技术实现层面,v0.1.1版本有几个值得关注的创新点:
-
编译器Pass优化:将InjectPtxAsyncCopy Pass置于ThreadSync Pass之后,确保了异步拷贝操作的正确同步,这对于保证计算正确性至关重要。
-
跨平台构建系统:完善了wheel包构建流程,支持为不同Python版本和CUDA版本构建对应的二进制分发包。
-
轻量级运行时:通过精简依赖和优化接口设计,TileLang的运行环境变得更加轻量,便于集成到各种项目中。
总结
TileLang v0.1.1版本标志着该项目在成熟度和功能完备性上迈出了重要一步。多后端支持使得TileLang具备了更广泛的应用场景,而运行时性能的优化则确保了生成的代码能够充分发挥硬件潜力。对于AI和高性能计算领域的开发者而言,TileLang提供了一个平衡开发效率与运行效率的优秀解决方案。随着项目的持续发展,TileLang有望成为AI编译器生态中的重要一员。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0172
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook098
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
BitCPM-CANN-8BBitCPM-CANN 是首个基于华为昇腾 NPU 原生构建的端到端 1.58 位(三值化)大语言模型训练系统。该系统将量化感知训练(QAT)集成到 Megatron-LM 框架中,并结合 MindSpeed 加速,覆盖了从自定义三值算子到基于昇腾 910B 的分布式并行训练的完整训练栈。Python00
MiniCPM5-1BMiniCPM5-1B,这是 MiniCPM5 系列的首款模型。它是一个专为端侧、本地部署和资源受限场景打造的 10 亿参数密集型 Transformer 模型,达到了 10 亿参数级开源模型的 SOTA 水平Jinja00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0239