#编译器

tvm - 适用于 CPU、GPU 和专用加速器的开放式深度学习编译器堆栈
Apache TVM深度学习编译器Apache-2.0硬件后端Github开源项目
Apache TVM为深度学习提供高效编译支持,优化执行效率,适合用于学术与工业研究领域,填补了框架与后端之间的技术差距。
byteir - 端到端模型编译解决方案,支持多种MLIR方言和ASIC优化
ByteIR编译器运行时前端模型编译Github开源项目
ByteIR是ByteDance推出的端到端模型编译解决方案,包括编译器、运行时和前端组件。该项目采用多种上游MLIR方言和Google Mhlo,提供兼容的编译过程,允许灵活混用ByteIR与上游MLIR的passes。ByteIR支持Tensorflow、PyTorch、ONNX等前端,能将SOTA模型转化为Stablehlo。目前处于早期阶段,目标是为深度学习加速器及通用CPU和GPU提供必要的模块和基础设施。
nngen - 深度神经网络硬件加速器编译器
NNgen硬件加速器深度神经网络编译器Verilog HDLGithub开源项目
NNgen是一个开源编译器,能为深度神经网络生成特定模型的硬件加速器。它从输入模型定义中生成Verilog HDL源代码和IP核心包(IP-XACT),包括处理引擎、片上存储器、片上网络、DMA控制器和控制电路,且无需外部电路或CPU的额外控制。NNgen使用Veriloggen,一个用Python编写的开源高层次综合编译器,可为新的DNN算法和应用进行定制。
wrecc - 小型x86-64 C99编译器,生成符合System V ABI的二进制文件
wreccx86-64C99编译器系统V ABIGithub开源项目
wrecc是一款从零编写的小型x86-64 C99编译器,生成的汇编代码遵循System V ABI规范。它无需外部依赖,只需汇编器和链接器即可生成最终二进制文件。支持多数C99预处理器指令和关键字,同时提供错误报告和AST美化打印功能。通过单元测试、快照测试和模糊测试来保证质量,适用于UNIX系统。如遇问题可查看未实现功能或提交问题,欢迎贡献代码,详情请参阅项目文档。
vox - 多范式编程语言编译器
Vox编译器编程语言JITAOTGithub开源项目
Vox是一种受D语言、Jai和Zig启发的多范式编程语言,拥有快速编译和强大的元编程功能。无需依赖其他库,支持脚本和独立程序的即时(JIT)和预先(AOT)编译。兼容Windows、Linux和macOS,计划扩展到更多平台。Vox致力于应用扩展、提高用户生产力和应用性能,提供静态类型和优质错误信息,具备轻量级运行时、嵌入式编译器和条件编译等特性。
iree - 一款基于MLIR的端到端编译器和运行时系统
IREEMLIR编译器运行时机器学习Github开源项目
IREE是一款基于MLIR的端到端编译器和运行时系统,它能够将机器学习模型转化为统一的中间表示(IR),适用于数据中心和边缘设备。该项目仍在早期开发阶段,欢迎反馈意见。
onnx-mlir - 基于LLVM/MLIR的高性能神经网络编译器
ONNX-MLIR编译器ONNXLLVM人工智能Github开源项目
ONNX-MLIR是一个开源编译器项目,旨在将ONNX神经网络模型转换为高效的可执行代码。该项目基于LLVM/MLIR技术,实现了ONNX标准,并提供ONNX方言、编译器接口、驱动程序和多语言运行时环境。ONNX-MLIR支持Linux、macOS和Windows等多个平台,并提供Docker镜像以简化开发和部署流程。通过优化ONNX图,ONNX-MLIR能够生成性能卓越的神经网络实现。
beaver - 基于Elixir的MLIR开发工具集
MLIRElixir编译器IR生成模式匹配Github开源项目
Beaver是一个基于Elixir的MLIR开发工具集,旨在简化开发流程。它充分利用Elixir的SSA、模式匹配和管道操作符等特性,为MLIR提供直观可扩展的接口。Beaver支持快速的开发迭代,并致力于实现Elixir到原生/WASM/GPU的编译。此外,该项目还探索了在硬件加速环境下重新审视符号AI,为机器学习领域引入了新的技术栈。
moonscript - 将MoonScript编译为Lua的高效脚本语言
MoonScript编程语言Lua编译器开源软件Github开源项目
MoonScript是一种编译为Lua的高效脚本语言,结合了Lua的性能和丰富的语言特性。支持Lua 5.1及以上版本,兼容LuaJIT。提供在线编译器、Windows预编译版本和多种编辑器支持。项目采用MIT许可,拥有活跃的开发者社区和完善的测试框架。
typst - 新一代标记语言排版系统
Typst排版系统标记语言编译器开源项目Github
Typst是一款创新的标记语言排版系统,具备与LaTeX相当的功能,同时显著提高了易用性。它提供内置标记语法、灵活函数、集成脚本、数学排版和文献管理等功能。Typst采用增量编译技术,实现快速编译和友好的错误提示。这一工具适用于学术论文、技术文档和创意项目等多种场景的高质量排版需求。
triton - 开源高效深度学习原语编程语言与编译器
Triton深度学习GPU编程编译器LLVMGithub开源项目
Triton是一种开源编程语言和编译器,专为编写高效的自定义深度学习原语而设计。它提供了一个兼具高生产力和灵活性的开发环境,性能优于CUDA,灵活性超过其他领域特定语言。Triton支持NVIDIA和AMD GPU平台,提供完善的文档和教程。用户可通过pip轻松安装,也支持源代码构建。该项目持续更新,最新版本进行了大量性能优化和问题修复。
acwj - 构建C语言子集自编译编译器的实践教程
编译器C语言GitHub编程教程Github开源项目
acwj是一个开源项目,记录了构建C语言子集自编译编译器的完整过程。项目详细介绍了从词法分析到代码生成的各个步骤,涵盖变量、函数、指针等C语言特性的实现。它还包括ARM和6809等不同目标平台的后端开发。acwj提供了理论解释和实践指导,是学习编译原理和实现编译器的有价值参考资源。
lightning-thunder - PyTorch模型优化编译器 显著提升训练速度
PyTorch性能优化编译器深度学习GPU加速Github开源项目
Lightning Thunder是一款专为PyTorch设计的源到源编译器。它通过整合nvFuser、torch.compile、cuDNN等多种硬件执行器,大幅提升PyTorch程序的执行效率。支持单GPU和多GPU环境,在Llama 2 7B模型训练中实现40%的吞吐量提升。Thunder具有易用性、可理解性和可扩展性,是PyTorch开发者提升模型性能的有力工具。
tracr - 开源编译器实现RASP程序到Transformer权重的转换
TracrRASPtransformer编译器解释性Github开源项目
tracr是一个开源编译工具,可将RASP程序转换为Transformer权重。它通过追踪程序、推断基向量和中间表示,最终生成Haiku模型。tracr支持类别和数值表示,使用BOS标记实现多种操作,并探索了残差流压缩嵌入。研究人员可以利用tracr编译RASP程序,查看中间激活值,深入分析模型行为,为Transformer可解释性研究提供实验平台。
clash-compiler - 基于Haskell的函数式硬件描述语言
Clash硬件描述语言函数式编程Haskell编译器Github开源项目
Clash是一种基于Haskell的函数式硬件描述语言,可将高级描述转换为VHDL、Verilog或SystemVerilog。它具备强类型系统、交互式REPL和高阶函数等特性,支持基于流的同步时序电路设计和多时钟域设计。Clash提供类型安全的时钟域交叉,并拥有活跃的社区支持。开发者可通过多种方式安装或从源码构建Clash,以便进行高效的数字电路设计。
jasmin - 安全高效密码学编程语言与编译器
Jasmin编程语言编译器密码学开源软件Github开源项目
Jasmin是一个开源项目,包含专为高保证和高速密码学设计的编程语言及其编译器。这套工具使开发者能够创建安全高效的密码学代码。项目采用MIT许可证,为密码学研究和应用提供重要资源。相关工具和详细信息可在项目Wiki获取,适合密码学专业人士和爱好者使用。
selfie - 自编译系统工程教育平台
Selfie编译器虚拟机RISC-V系统编程Github开源项目
Selfie是一个系统工程教育平台,通过12000行C代码实现了自编译编译器、自执行模拟器和自托管虚拟机监视器。该项目聚焦系统代码中的自引用挑战,为本科生和研究生提供编译器、库、操作系统和虚拟机监视器的实践构建经验,全面覆盖从编程语言到运行时系统的设计与实现。
WebPd - 将Pure Data音频补丁转换为Web友好的JavaScript代码
WebPd纯数据音频编程网页开发编译器Github开源项目
WebPd是一款模块化的Pure Data编译器,能将.pd补丁转换为易读的JavaScript或AssemblyScript代码。开发者可以轻松将Pure Data的音频处理功能集成到Web应用中,无需依赖其他工具。WebPd支持在线发布生成式音乐作品、实时音频处理以及Web应用和游戏中的声音制作。该项目提供Web编译器和命令行界面,方便用户编译和分享补丁。
gopher-lua - 用Go实现的Lua5.1虚拟机和编译器
GopherLuaLuaGo虚拟机编译器Github开源项目
GopherLua是一个用Go语言实现的Lua5.1虚拟机和编译器。它提供友好的Go API,方便开发者将Lua脚本嵌入Go程序。GopherLua支持协程、自定义类型、模块加载等特性,性能与Python3相当。该项目遵循Lua的设计理念,致力于打造一个具有可扩展语义的脚本语言。
holyc-lang - 开源HolyC语言编译器项目
HolyC编程语言编译器x86_64TempleOSGithub开源项目
HolyC-lang是一个用C语言实现的HolyC编译器项目。该编译器支持浮点运算、继承和循环等主要语言特性,可将HolyC源代码编译为x86_64兼容的二进制文件。项目提供完整的语言文档,并包含字符串、哈希表、I/O、数学和网络等库。HolyC-lang致力于实现Terry A. Davis设计的HolyC语言,为开发者提供独特的编程体验。
compat-table - ECMAScript特性兼容性测试工具
ECMAScript兼容性表测试编辑编译器Github开源项目
compat-table是一个开源项目,提供ES5、ES6、ESNext和非标准JavaScript特性的兼容性表格。它允许开发者编辑测试文件并运行构建脚本更新数据,支持测试JavaScript编译器和Node.js版本。该项目为开发者提供跨平台兼容性参考,有助于了解不同环境下的ECMAScript特性支持情况。
koka - 具有效果类型和处理器的函数式编程语言
Koka函数式编程效果系统编译器引用计数Github开源项目
Koka是一种新兴的函数式编程语言,特点是效果类型系统和处理器。它能精确追踪函数副作用,为程序提供稳固的语义基础。Koka允许以类型安全和可组合的方式定义高级控制抽象。其独特的Perceus编译技术可生成无需垃圾回收的高效C代码。此外,Koka还能优化函数式程序,实现原地更新以提高性能。
h5 - 实现C#到JavaScript的现代化多平台Web开发工具
H5C#JavaScript编译器跨平台开发Github开源项目
H5是一个创新的C#到JavaScript编译工具,源自Bridge项目的现代化改进。它结合.NET 8.0技术实现跨平台开发,同时为H5项目集成.NET Standard 2.1支持。作为一个活跃的开源项目,H5不断优化,旨在简化C# Web开发流程。其核心特性包括专注于netstandard2.1、采用SDK风格项目结构、以dotnet全局工具形式分发编译器等,体现了其在技术应用上的前瞻性。
Polygeist - 优化C/C++代码性能与可移植性的MLIR编译框架
PolygeistMLIRLLVM编译器GPU优化Github开源项目
Polygeist是一个先进的编译框架,将C/C++代码转换为MLIR的多面体表示。它实现了自动代码优化、并行化和GPU转译,有效提升代码性能和可移植性。该项目集成了CUDA和ROCm后端,并与LLVM、MLIR和Clang紧密结合,为开发人员提供了强大的工具链以优化现有代码。Polygeist主要应用于高性能计算、自动并行化和跨平台开发领域。
swc - 用 Rust 打造的高性能 TypeScript 和 JavaScript 编译器
SWCTypeScriptJavaScript编译器RustGithub开源项目
SWC(Speedy Web Compiler)是一款用 Rust 开发的高性能 TypeScript 和 JavaScript 编译器。它既可作为 Rust 库使用,也是强大的 JavaScript 开发工具。SWC 以快速编译和丰富功能著称,支持最新 JavaScript 特性,旨在提升 Web 开发效率。这个开源项目由社区驱动,持续优化,为开发者带来更快捷、更强大的开发体验。
assemblyscript - TypeScript 到 WebAssembly 的高效编译器
AssemblyScriptWebAssemblyTypeScript编译器开源项目Github
AssemblyScript 是一个开源编译器,将类似 TypeScript 的语言转换为 WebAssembly。它利用 Binaryen 生成高效的 WebAssembly 模块,通过 npm 轻松安装。该项目让开发者能够创建高性能的 WebAssembly 应用,同时保留熟悉的 JavaScript 风格开发体验。AssemblyScript 拥有活跃的社区和持续的维护更新。
vscode-cpptools - C/C++ 扩展为 VS Code 提供全面语言支持
C/C++Visual Studio CodeIntelliSense编译器调试器Github开源项目
C/C++ 扩展为 Visual Studio Code 增添了全面的语言支持功能,包括智能编辑和调试。该扩展兼容多种编译器和架构,可在 Windows、Linux 和 macOS 平台上使用。它提供 IntelliSense、增强代码着色和调试等功能,提升了 C/C++ 开发效率。扩展本身不含编译器和调试器,但能与系统预装工具协同工作,为开发者创造流畅的编程环境。
Fable - 将F#编译为JavaScript的开源工具,实现函数式Web开发
FableF#JavaScript编译器跨语言开发Github开源项目
Fable是一个开源项目,可将F#代码编译为JavaScript。它基于FSharp Compiler Services,致力于使F#成为JavaScript生态系统中的重要组成部分。Fable支持现代.NET和JavaScript特性,并提供多种开发工具。通过Fable,开发者可以在Web环境中运用F#的函数式编程优势,构建高效且易维护的应用程序。
numba - Python数值计算的开源JIT编译器
NumbaPython编译器数值计算优化Github开源项目
Numba是一个开源的Python JIT优化编译器,专注于数值计算。它将Python语法转换为机器代码,支持编译大部分数值计算相关的Python代码,包括多数NumPy函数。Numba具备循环自动并行化、GPU加速和ufuncs创建等功能,能够显著提升Python数值计算的性能。适用于科学计算、金融建模、机器学习等高性能计算场景。
cosmopolitan - 跨平台C语言库实现一次编译多处运行
Cosmopolitan Libc跨平台C语言编译器系统编程Github开源项目
Cosmopolitan是一个创新的C语言库,让C语言程序能够一次编译后在多个平台上运行。它通过重新配置GCC和Clang,生成符合POSIX标准的多平台兼容格式,支持Linux、Mac、Windows等多种操作系统。该库具有高性能和小体积的特点,提供系统调用日志和函数调用跟踪等功能,可用于开发各类开源项目。
binaryen - WebAssembly编译器和优化工具链库
BinaryenWebAssembly编译器优化工具链Github开源项目
Binaryen是一个C++编写的WebAssembly编译器和工具链库。它提供C和JavaScript API,支持WebAssembly输入,内部IR支持并行优化。其优化器可改善代码大小和性能,能作为独立编译器后端。Binaryen简化了WebAssembly的编译和优化过程。
csharp-source-generators - C#源代码生成器集合助力开发效率提升
C#源代码生成器Roslyn.NET编译器Github开源项目
csharp-source-generators收集了多种C#源代码生成工具,涉及依赖注入、对象映射和通信等领域。这些工具自动生成重复代码,有效提升开发效率并降低错误率。项目包含众多实用生成器,覆盖基础设施到领域驱动设计等多个方面,为C#开发人员提供了全面的效率提升解决方案。
Nim - 兼顾效率与灵活性的现代系统编程语言
Nim编程语言编译器开源项目跨平台Github
Nim是一种结合了高效性和灵活性的系统编程语言。它拥有强大的编译器和丰富的标准库,支持Windows、Linux和Mac OS X等多个平台。Nim语法简洁,性能接近C语言,同时融合了现代编程语言特性。其编译器采用自举开发,拥有活跃的社区和众多贡献者。Nim生态系统包括包管理器Nimble,便于依赖管理和代码共享。