devitocodes/devito

DSL and compiler framework for automated finite-differences and stencil computation

解决的问题

Devito 旨在简化为诸如有限差分和图像处理等结构化计算创建高度优化的计算内核。它消除了在 CPU、GPU 和多节点集群上实现高性能所需的编写低级、平台特定代码的手动过程。

工作原理

Devito 使用基于 SymPy 的函数式语言,允许用户以符号方式定义问题规格。然后通过自动代码生成和即时(JIT)编译,将这些高层定义转换为优化的低层代码。编译器自动分析输入,应用诸如 SIMD 向量化、OpenMP/OpenACC 并行化以及用于多节点分发的 MPI 等优化技术。

适用人群

需要在不同硬件平台上高效执行复杂结构化操作的偏微分方程、图像处理和机器学习领域的研究人员和工程师。

主要亮点

  • 自动优化:自动使用 SIMD、OpenMP、OpenACC 和 MPI 生成并行代码。
  • 符号化定义:使用函数式语言表达有限差分算子和张量收缩。
  • 硬件灵活性:可在 CPU、GPU 和集群上无缝执行。
  • 与机器学习集成:与 PyTorch 和 TensorFlow 等主流框架集成。
  • 可定制性:提供自定义结构化、交错网格以及性能调优的自动调优框架。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目