#编译器
TVM学习资料汇总 - 开源深度学习编译器框架
byteir
ByteIR是ByteDance推出的端到端模型编译解决方案,包括编译器、运行时和前端组件。该项目采用多种上游MLIR方言和Google Mhlo,提供兼容的编译过程,允许灵活混用ByteIR与上游MLIR的passes。ByteIR支持Tensorflow、PyTorch、ONNX等前端,能将SOTA模型转化为Stablehlo。目前处于早期阶段,目标是为深度学习加速器及通用CPU和GPU提供必要的模块和基础设施。
nngen
NNgen是一个开源编译器,能为深度神经网络生成特定模型的硬件加速器。它从输入模型定义中生成Verilog HDL源代码和IP核心包(IP-XACT),包括处理引擎、片上存储器、片上网络、DMA控制器和控制电路,且无需外部电路或CPU的额外控制。NNgen使用Veriloggen,一个用Python编写的开源高层次综合编译器,可为新的DNN算法和应用进行定制。
wrecc
wrecc是一款从零编写的小型x86-64 C99编译器,生成的汇编代码遵循System V ABI规范。它无需外部依赖,只需汇编器和链接器即可生成最终二进制文件。支持多数C99预处理器指令和关键字,同时提供错误报告和AST美化打印功能。通过单元测试、快照测试和模糊测试来保证质量,适用于UNIX系统。如遇问题可查看未实现功能或提交问题,欢迎贡献代码,详情请参阅项目文档。
vox
Vox是一种受D语言、Jai和Zig启发的多范式编程语言,拥有快速编译和强大的元编程功能。无需依赖其他库,支持脚本和独立程序的即时(JIT)和预先(AOT)编译。兼容Windows、Linux和macOS,计划扩展到更多平台。Vox致力于应用扩展、提高用户生产力和应用性能,提供静态类型和优质错误信息,具备轻量级运行时、嵌入式编译器和条件编译等特性。
iree
IREE是一款基于MLIR的端到端编译器和运行时系统,它能够将机器学习模型转化为统一的中间表示(IR),适用于数据中心和边缘设备。该项目仍在早期开发阶段,欢迎反馈意见。
onnx-mlir
ONNX-MLIR是一个开源编译器项目,旨在将ONNX神经网络模型转换为高效的可执行代码。该项目基于LLVM/MLIR技术,实现了ONNX标准,并提供ONNX方言、编译器接口、驱动程序和多语言运行时环境。ONNX-MLIR支持Linux、macOS和Windows等多个平台,并提供Docker镜像以简化开发和部署流程。通过优化ONNX图,ONNX-MLIR能够生成性能卓越的神经网络实现。
beaver
Beaver是一个基于Elixir的MLIR开发工具集,旨在简化开发流程。它充分利用Elixir的SSA、模式匹配和管道操作符等特性,为MLIR提供直观可扩展的接口。Beaver支持快速的开发迭代,并致力于实现Elixir到原生/WASM/GPU的编译。此外,该项目还探索了在硬件加速环境下重新审视符号AI,为机器学习领域引入了新的技术栈。
moonscript
MoonScript是一种编译为Lua的高效脚本语言,结合了Lua的性能和丰富的语言特性。支持Lua 5.1及以上版本,兼容LuaJIT。提供在线编译器、Windows预编译版本和多种编辑器支持。项目采用MIT许可,拥有活跃的开发者社区和完善的测试框架。
tvm
Apache TVM为深度学习提供高效编译支持,优化执行效率,适合用于学术与工业研究领域,填补了框架与后端之间的技术差距。