DevitoPRO, an advanced extension of the open-source Devito platform, is designed to cater specifically to high-performance computing (HPC) needs, especially in seismic imaging and inversion. While both platforms enable symbolic computation for developing finite-difference kernels, DevitoPRO offers several added features tailored for more demanding, production-level workflows.
Key Differentiators for Seismic Imaging Users:
-
Enhanced Performance Portability: DevitoPRO supports advanced GPU acceleration using CUDA, HIP, and SYCL, offering better cross-platform flexibility. This means you can deploy high-performance applications on most commercially available processors, including Nvidia, AMD, and Intel GPUs, as well as ARM and x86_64 processors. Performance portability is crucial for both on-premise and cloud environments, where availability has become as important a consideration as price performance. DevitoPRO’s portability maintains performance even as you switch between available cloud instances or on-premise hardware.
-
Advanced Domain-Specific Optimizations: DevitoPRO introduces a wide range of optimizations like the expanding-box technique, which focuses computational resources only on active domains, resulting in more efficient memory and compute usage. We are also increasing support for mixed-precision computation options, which reduce memory pressure without compromising accuracy, further enhancing performance for seismic imaging tasks.
-
Compression and Data Streaming for Back-Propagation: A key feature for production seismic workloads, DevitoPRO integrates compression-based back-propagation and asyncronious data-streaming techniques to optimize disk-host-GPU transfers. This is essential for handling the large datasets typically involved in seismic imaging, significantly improving memory management and computational efficiency during reverse time migration (RTM) and full-waveform inversion (FWI).
-
Enterprise-Ready Features: DevitoPRO integrates seamlessly with major cloud platforms like AWS, Azure, and Google Cloud, and offers specific support for tuning and benchmarking cloud instances. The platform includes pre-defined, optimized propagators for common seismic tasks, reducing development overhead and allowing teams to immediately leverage high-performance solutions. Additionally, DevitoPRO offers enterprise-grade support, including tailored benchmarking and private consultation services, which are critical for production-level applications.
These features make DevitoPRO an essential tool for seismic imaging professionals who need robust, scalable, and highly optimized computational tools that can adapt to fluctuating hardware availability and complex workflows.
Features | Open-source Devito | DevitoPRO |
▶ Finite-differences and mathematical abstractions | ||
Write PDE solvers symbolically | ✔ | ✔ |
Tensor algebra | ✔ | ✔ |
Taylor series weights for any order | ✔ | ✔ |
Customizable stencil weights (eg variable-z, dispersion minimizing) | ✔ | ✔ |
Immersed boundary support (eg accurate land topography) | ✔ | |
Explicit methods | ✔ | ✔ |
Implicit methods (via PETSc) | Alpha | Alpha |
Source/receivers (fully customizable) | ✔ | ✔ |
Boundary conditions (fully customizable) | ✔ | ✔ |
Staggered and rotated grids | ✔ | ✔ |
Subsampling (e.g. space/time decimation) | ✔ | ✔ |
Subdomains | ✔ | ✔ |
API for third-party library callbacks | ✔ | |
Jupyter notebook tutorials, examples and documentation | ✔ | ✔ |
▶ Support for all major CPUs and GPUs | ||
CPUs: AMD, ARM, and Intel | ✔ | ✔ |
GPUs: AMD, Intel, Nvidia | ✔ | ✔ |
Accelerators: Intel KNC, KNL | ✔ | ✔ |
▶ Devito Cookbook (includes forward, adjoint and 2D/3D) | ||
Isotropic acoustic and viscoacoustic | ✔ | ✔ |
Isotropic elastic and viscoelastic | ✔ | ✔ |
Acoustic VTI and TTI | ✔ | ✔ |
Viscoacoustic VTI and TTI | ✔ | |
Elastic VTI and TTI | ✔ | |
▶ PDE-constrained optimization and adjoint method | ||
Express adjoint-method optimization problems symbolically | ✔ | ✔ |
Checkpoint(/Revolve)-based back-propagation | ✔ | ✔ |
Compression-based back-propagation | ✔ | |
Intelligent data-streaming disk-host-GPU | ✔ | |
Lossy data compression for floating-point data | ✔ | |
▶ Algorithmic and compiler performance optimizations | ||
Decoupler - software integration layer for seismic codes. Integrate DevitoPRO with any code written in any language and get full MPI support for your propagators. | ✔ | |
Automated multi-level parallelization | ✔ | |
Expanding-box (only compute active domain) | ✔ | |
Mixed-precision computation | ✔ | |
Data-locality optimization (e.g. cache-blocking) | ✔ | ✔ |
Autotuning/Devitotuner | Basic | Advanced |
FLOP reduction (e.g. factorization, hoisting, CSE) | Comprehensive | Advanced |
Advanced low-level optimization (e.g., memory alignment) | ✔ | |
▶ Code generation for multiple languages and parallel programming models | ||
OpenMP for CPUs and GPUs | ✔ | ✔ |
OpenACC for Nvidia GPUs | ✔ | ✔ |
CUDA | ✔ | |
HIP | ✔ | |
SYCL | ✔ | |
NUMA-aware MPI-OpenMP | ✔ | ✔ |
MPI: Single-node-multi-gpu | ✔ | ✔ |
MPI: Multi-node-multi-gpu | Beta | |
Optimized GPU-aware MPI | ✔ | |
▶ Supported cloud platforms | ||
AWS | ✔ | |
Azure | ✔ | |
GCP | ✔ | |
▶ Cross-platform industry benchmarking: Includes iso-acoustic and acoustic TTI. All benchmarks are independently autotuned to get best performance on each target. | ||
Access to benchmark reports and raw logs for reproducibility. | ✔ | |
Cloud instance tuning and benchmarking. | ✔ | |
▶ Support, consultancy, training, SOWs | ||
Slack: community support on public channels | ✔ | ✔ |
Slack: Private/NDA support channels | ✔ | |
Projects | ✔ | |
Training | ✔ | |
Consultancy | ✔ | |
Support/maintenance | ✔ |