#MLIR
torch-mlir - 为PyTorch生态系统提供高级编译器支持,并实现与MLIR生态系统的高效集成
Torch-MLIRPyTorchMLIRLLVMTorchScriptGithub开源项目
Torch-MLIR项目为PyTorch生态系统提供高级编译器支持,并实现与MLIR生态系统的高效集成。通过多种路径,该项目能够将PyTorch模型转换成Torch MLIR方言,简化硬件供应商的开发过程。此外,还提供了预构建快照,便于安装和使用,并通过示例指导用户完成模型转换和结果运行。该项目是LLVM孵化器的一部分,正在持续发展,且拥有广泛的社区支持和交流渠道。
iree - 一款基于MLIR的端到端编译器和运行时系统
IREEMLIR编译器运行时机器学习Github开源项目
IREE是一款基于MLIR的端到端编译器和运行时系统,它能够将机器学习模型转化为统一的中间表示(IR),适用于数据中心和边缘设备。该项目仍在早期开发阶段,欢迎反馈意见。
Enzyme - LLVM和MLIR自动微分插件
EnzymeLLVMMLIR自动微分插件Github开源项目
Enzyme是一款高性能的LLVM和MLIR自动微分插件,可以通过调用__enzyme_autodiff函数对目标函数进行微分,并替换为相应的梯度值。其高效性使其在处理优化代码时能与先进的自动微分工具相媲美。用户只需几步简单命令即可安装Enzyme,安装和使用的详细信息可在官网获取。Enzyme适用于学术领域的自动微分需求,支持CUDA、OpenMP、MPI等并行计算模式,并提供Julia和Rust绑定。
BladeDISC - 用于机器学习工作负载的动态形态编译器
BladeDISCPAI-BladeTensorFlowPyTorchMLIRGithub开源项目
BladeDISC是一款用于机器学习工作负载的动态形态编译器,支持TensorFlow和PyTorch在GPGPU和CPU上的性能优化。它的架构支持动态形态工作负载,并在静态和动态形态场景中表现出色。BladeDISC提供灵活的部署解决方案,包括插件模式和独立模式。该项目基于MLIR构建,并与mlir-hlo项目密切合作。访问官方网站获取更多信息和文档资料。
beaver - 基于Elixir的MLIR开发工具集
MLIRElixir编译器IR生成模式匹配Github开源项目
Beaver是一个基于Elixir的MLIR开发工具集,旨在简化开发流程。它充分利用Elixir的SSA、模式匹配和管道操作符等特性,为MLIR提供直观可扩展的接口。Beaver支持快速的开发迭代,并致力于实现Elixir到原生/WASM/GPU的编译。此外,该项目还探索了在硬件加速环境下重新审视符号AI,为机器学习领域引入了新的技术栈。
mlir-aie - MLIR驱动的AI引擎工具链 助力AI设备性能优化
MLIRAI EngineAMDRyzen AIVersalGithub开源项目
mlir-aie是一个基于MLIR的开源工具链,专为AMD Ryzen™ AI和Versal™等AI引擎设备设计。它通过多层抽象的MLIR表示,实现AI引擎核心编程、数据移动和阵列连接描述。项目提供Python API接口,支持后端代码生成,并集成AMD Vitis™软件中的AI引擎编译器。作为面向工具开发者的项目,mlir-aie提供AIE设备的低级访问,促进多样化编程模型的开发。
MatmulTutorial - CUDA矩阵乘法内核设计与性能优化实例
MatMulCUDAGPU性能优化TensorOpMLIRGithub开源项目
MatmulTutorial项目展示了CUDA矩阵乘法的多种高性能实现,包括自定义、CuBLAS和CUTLASS等。项目通过详细的性能对比,帮助CUDA初学者理解内核设计优化。在A100 GPU上,项目实现比Relay+CUTLASS平均快1.73倍,与CuBLAS性能相当。项目还研究了MLIR生成CUDA内核,性能达到手写内核的86%。
circt - 硬件设计领域的开源编译器基础设施
CIRCTLLVMMLIREDA硬件设计Github开源项目
CIRCT项目旨在将MLIR和LLVM开发方法应用于硬件设计工具领域。它提供一致的、模块化的基础设施,支持多种中间表示,以解决现有EDA工具的局限性。CIRCT鼓励社区通过Discourse论坛、周会和代码贡献参与项目,共同推进开放硬件工具的发展。
Polygeist - 优化C/C++代码性能与可移植性的MLIR编译框架
PolygeistMLIRLLVM编译器GPU优化Github开源项目
Polygeist是一个先进的编译框架,将C/C++代码转换为MLIR的多面体表示。它实现了自动代码优化、并行化和GPU转译,有效提升代码性能和可移植性。该项目集成了CUDA和ROCm后端,并与LLVM、MLIR和Clang紧密结合,为开发人员提供了强大的工具链以优化现有代码。Polygeist主要应用于高性能计算、自动并行化和跨平台开发领域。
相关文章