devito

用 Python 写方程,自动生成高性能有限差分代码

Devito 是一个基于 Python 的领域特定语言(DSL)与编译器框架,专门用于自动生成有限差分和模板(stencil)计算的高性能代码。它解决的核心问题是:地球物理勘探、地震成像、超声成像等领域中,有限差分计算需要手写大量底层代码并针对 CPU/GPU 反复优化,开发效率低且难以移植。Devito 允许用户用接近数学公式的 SymPy 符号表达式描述偏微分方程,然后自动生成并 JIT 编译出经过优化的 C 代码,支持 OpenMP、MPI 和 GPU 后端。其核心能力包括符号化方程定义、自动模板优化(循环变换、向量化、共享内存分块)、跨平台代码生成,以及与 FWI、RTM 等地震成像工作流的集成。项目由帝国理工等团队维护,在 HPC 领域有实际生产应用。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 714
维护状态 活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队devitocodes
所属国家
定价模式free
价格说明开源免费,官网提供文档与下载入口
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型code-generation,compiler,dsl,finite-difference,fwi,gpu,hpc,jit,performance,rtm,stencil,sympy,ultrasound-imaging
GitHub 星标★ 714
30天Star增速
HF 下载量
上线时间2016-03-23 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-22
浏览次数0

使用教程

核心亮点

  • 用 SymPy 符号表达式描述偏微分方程,自动生成优化后的 C 代码,大幅减少手写底层代码的工作量
  • 支持 CPU 多线程、MPI 并行和 GPU 后端,同一份 DSL 代码可跨平台运行
  • 内置模板计算优化(循环分块、向量化、时间阻塞),性能接近手工调优的 HPC 代码

不足之处

  • 主要面向有限差分和模板计算,通用性有限,不适合非结构化网格或有限元方法
  • GPU 后端支持相对 CPU 后端成熟度稍低,部分高级优化特性可能受限
  • 学习曲线较陡,需要理解符号计算和 HPC 优化概念,对非地球物理领域用户门槛较高

适用场景

  • 地震勘探中的全波形反演(FWI)和逆时偏移(RTM)成像
  • 超声成像和医学成像中的波传播数值模拟
  • 任何需要高性能有限差分求解偏微分方程的 HPC 场景

替代项目

FEniCS、PyTorch、Halide

项目介绍

devito 是基础设施领域的开源项目,由 devitocodes 开发,2016 年首次发布。

它收录于基础设施分类,该分类目前共有 1,122 个项目,GitHub 星标数为 714。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-18。开源免费,官网提供文档与下载入口。

它主要面向的使用场景是:地震勘探中的全波形反演(FWI)和逆时偏移(RTM)成像。同类可对比的替代方案包括 FEniCS、PyTorch、Halide。

上一篇:deequ

下一篇:awesome-hosting

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8576 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 437 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181269 2026-08-09