#LLVM
Torch-MLIR:为PyTorch和MLIR生态系统搭建桥梁
inkwell
Inkwell是一个用于Rust的安全LLVM包装器,专为编写自定义编程语言而设计。通过封装llvm-sys,它提供了比LLVM C API更强类型的接口,在编译时捕获错误。支持Rust 1.56及以上版本,以及LLVM 4到18的多种版本。项目正在快速迭代,用户可以通过详细文档和示例代码快速上手。
torch-mlir
Torch-MLIR项目为PyTorch生态系统提供高级编译器支持,并实现与MLIR生态系统的高效集成。通过多种路径,该项目能够将PyTorch模型转换成Torch MLIR方言,简化硬件供应商的开发过程。此外,还提供了预构建快照,便于安装和使用,并通过示例指导用户完成模型转换和结果运行。该项目是LLVM孵化器的一部分,正在持续发展,且拥有广泛的社区支持和交流渠道。
Enzyme
Enzyme是一款高性能的LLVM和MLIR自动微分插件,可以通过调用__enzyme_autodiff函数对目标函数进行微分,并替换为相应的梯度值。其高效性使其在处理优化代码时能与先进的自动微分工具相媲美。用户只需几步简单命令即可安装Enzyme,安装和使用的详细信息可在官网获取。Enzyme适用于学术领域的自动微分需求,支持CUDA、OpenMP、MPI等并行计算模式,并提供Julia和Rust绑定。
onnx-mlir
ONNX-MLIR是一个开源编译器项目,旨在将ONNX神经网络模型转换为高效的可执行代码。该项目基于LLVM/MLIR技术,实现了ONNX标准,并提供ONNX方言、编译器接口、驱动程序和多语言运行时环境。ONNX-MLIR支持Linux、macOS和Windows等多个平台,并提供Docker镜像以简化开发和部署流程。通过优化ONNX图,ONNX-MLIR能够生成性能卓越的神经网络实现。
seahorn
SeaHorn是一个基于LLVM的开源软件验证和分析框架。它集成了抽象解释、指针分析、约束求解等多种技术,可用于检测程序错误、生成反例和推导不变式。SeaHorn采用模块化设计,提供可组合的分析组件,适用于各类自动化验证研究。该框架支持多种编码方式和分析精度,能够灵活应对不同的验证需求。
triton
Triton是一种开源编程语言和编译器,专为编写高效的自定义深度学习原语而设计。它提供了一个兼具高生产力和灵活性的开发环境,性能优于CUDA,灵活性超过其他领域特定语言。Triton支持NVIDIA和AMD GPU平台,提供完善的文档和教程。用户可通过pip轻松安装,也支持源代码构建。该项目持续更新,最新版本进行了大量性能优化和问题修复。
llvm-project
LLVM是一个开源编译器基础设施项目,提供用于构建优化编译器和工具链的框架。核心组件包括LLVM后端、Clang前端、libc++标准库和LLD链接器。LLVM支持多种编程语言,提供中间表示处理和代码生成工具。项目致力于提高编译效率和代码性能,为开发者提供灵活的编译工具集。LLVM广泛应用于编译器开发、静态分析和运行时优化等领域。
iron-kaleidoscope
iron-kaleidoscope是一个使用LLVM和Rust实现Kaleidoscope语言的教程项目。教程内容包括创建词法分析器、语法分析器、IR生成器和JIT编译器等编译器前端组件。通过渐进式实现过程,展示了如何利用LLVM构建一个简单编程语言的REPL系统。
llvm-test-suite
LLVM test-suite是一个开源的综合测试框架,专为LLVM编译器基础设施设计。它提供大量测试用例,评估编译器性能、优化能力和稳定性。开发者可利用此套件验证LLVM功能,确保代码质量,并进行跨平台性能比较。通过持续集成和自动化测试,test-suite有效支持LLVM项目的可靠性和效率。