Multi-Device Support¶
The prosperity of the PaddlePaddle ecosystem depends on the contributions of developers and users. We warmly welcome more models contributed to PaddlePaddle's multi-hardware adaptation.
1. Hardware Support List¶
The list of models adapted for various hardware in PaddleScience is summarized as follows (excluding cases only on AIStudio):
| Problem Type | Case Name | NVIDIA | Hygon | Taichu | MetaX |
|---|---|---|---|---|---|
| Helmholtz Equation | SPINN(Helmholtz3D) | ✅ | ✅ | ✅ | |
| Phase Field Equation | Allen-Cahn | ✅ | ✅ | ||
| Differential Equation | Laplace Equation | ✅ | ✅ | ✅ | |
| Differential Equation | Burgers Equation | ✅ | ✅ | ||
| Differential Equation | Non-linear Partial Differential Equation | ✅ | ✅ | ||
| Differential Equation | Lorenz Equation | ✅ | ✅ | ✅ | |
| Differential Equation | Rossler Equation | ✅ | ✅ | ✅ | |
| Operator Learning | DeepONet | ✅ | ✅ | ✅ | |
| Integral Equation | Volterra Integral Equation | ✅ | ✅ | ✅ | |
| Optical Rogue Wave | Optical rogue wave | ✅ | ✅ | ✅ | |
| Domain Decomposition | XPINN | ✅ | ✅ | ✅ | |
| Brusselator Diffusion System | 3D-Brusselator | ✅ | |||
| Symbolic Regression | Transformer4SR | ✅ |
| Problem Type | Case Name | NVIDIA | Hygon | Taichu | MetaX |
|---|---|---|---|---|---|
| Car Surface Drag Prediction | DrivAerNet | ✅ | ✅ | ||
| 1D Linear Convection Problem | 1D Linear Convection | ✅ | ✅ | ||
| Unsteady Incompressible Fluid | 2D Lid-Driven Cavity Buoyancy Flow | ✅ | ✅ | ||
| Steady Incompressible Fluid | Re3200 2D Steady Lid-Driven Cavity Flow | ✅ | ✅ | ||
| Steady Incompressible Fluid | 2D Darcy Flow | ✅ | ✅ | ✅ | |
| Steady Incompressible Fluid | 2D Pipe Flow | ✅ | ✅ | ||
| Steady Incompressible Fluid | 3D Intracranial Aneurysm | ✅ | ✅ | ||
| Steady Incompressible Fluid | Flow Around Arbitrary 2D Geometry | ✅ | ✅ | ✅ | |
| Unsteady Incompressible Fluid | 2D Unsteady Lid-Driven Cavity Flow | ✅ | ✅ | ✅ | |
| Unsteady Incompressible Fluid | Re100 2D Flow Around Cylinder | ✅ | ✅ | ||
| Unsteady Incompressible Fluid | Re100~750 2D Flow Around Cylinder | ✅ | ✅ | ||
| Compressible Fluid | 2D Air Shock Wave | ✅ | ✅ | ||
| General Flow Field Simulation | Aerodynamic Shape Design | ✅ | |||
| Fluid-Structure Interaction | Vortex-Induced Vibration | ✅ | ✅ | ||
| Multiphase Flow | Gas-Liquid Two-Phase Flow | ✅ | ✅ | ||
| High-Resolution Flow Field Reconstruction | 2D Turbulent Flow Field Reconstruction | ✅ | ✅ | ||
| Solver Coupling | CFD-GCN | ✅ | ✅ | ||
| Stress Analysis | 1D Euler Beam Deformation | ✅ | ✅ | ✅ | |
| Stress Analysis | 2D Plate Deformation | ✅ | ✅ | ||
| Stress Analysis | 3D Bracket Deformation | ✅ | ✅ | ||
| Stress Analysis | Structural Vibration Simulation | ✅ | ✅ | ||
| Stress Analysis | 2D Elastic-Plastic Structure | ✅ | ✅ | ||
| Stress Analysis and Inverse Problem | 3D Car Control Arm Deformation | ✅ | ✅ | ||
| Stress Analysis and Inverse Problem | 3D Heart Simulation | ✅ | ✅ | ||
| Topology Optimization | 2D Topology Optimization | ✅ | ✅ | ||
| Thermal Simulation | 1D Heat Exchanger Thermal Simulation | ✅ | ✅ | ||
| Thermal Simulation | 2D Thermal Simulation | ✅ | ✅ | ||
| Thermal Simulation | 2D Chip Thermal Simulation | ✅ | |||
| Operator Learning | NeuralOperator | ✅ | |||
| Car Surface Drag Prediction | DrivAerNetPlusPlus | ✅ | |||
| Solver Coupling | NSFNets | ✅ | ✅ | ||
| High-Resolution Flow Field Reconstruction | PhyCRNet | ✅ | |||
| Solver Coupling | NSFNet4 | ✅ |
| Problem Type | Case Name | NVIDIA | Hygon | Taichu | MetaX |
|---|---|---|---|---|---|
| Material Design | Diffuser Design (Inverse Problem) | ✅ | ✅ | ✅ | |
| Material Design | CGCNN | ✅ | ✅ |
| Problem Type | Case Name | NVIDIA | Hygon | Taichu | MetaX |
|---|---|---|---|---|---|
| Weather Forecasting | Extformer-MoE Weather Forecasting | ✅ | ✅ | ✅ | |
| Weather Forecasting | FourCastNet Weather Forecasting | ✅ | ✅ | ||
| Weather Forecasting | NowCastNet Weather Forecasting | ✅ | ✅ | ||
| Weather Forecasting | GraphCast Weather Forecasting | ✅ | ✅ | ✅ | |
| Weather Forecasting | DGMR Weather Forecasting | ✅ | |||
| Seismic Waveform Inversion | VelocityGAN Seismic Waveform Inversion | ✅ | ✅ | ||
| Traffic Prediction | TGCN Traffic Flow Prediction | ✅ | ✅ | ||
| Weather Forecasting | EarthFormer Weather Forecasting | ✅ | ✅ | ||
| Traffic Prediction | IOPS Traffic Flow Prediction | ✅ | ✅ | ||
| Weather Forecasting | Pangu-Weather Weather Forecasting | ✅ | ✅ | ||
| Weather Forecasting | FengWu Weather Forecasting | ✅ | ✅ |
2. Running Guide¶
For hardware already supported by PaddleScience, we provide a running example for each hardware, taking 1D Euler Beam Deformation as an example.
Note
Please ensure that you have correctly installed PaddlePaddle corresponding to the computing hardware in your environment, otherwise please refer to PaddleCustomDevice to connect your hardware code to PaddlePaddle.
# Install PaddleScience
git clone -b develop https://github.com/PaddlePaddle/PaddleScience.git
# If github clone is slow, you can use gitee clone
# git clone -b develop https://gitee.com/paddlepaddle/PaddleScience.git
cd PaddleScience
# install paddlesci with editable mode
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
cd examples/euler_beam
# Install PaddleScience
git clone -b develop https://github.com/PaddlePaddle/PaddleScience.git
# If github clone is slow, you can use gitee clone
# git clone -b develop https://gitee.com/paddlepaddle/PaddleScience.git
cd PaddleScience
# install paddlesci with editable mode
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
cd examples/euler_beam
# Install PaddleScience
git clone -b develop https://github.com/PaddlePaddle/PaddleScience.git
# If github clone is slow, you can use gitee clone
# git clone -b develop https://gitee.com/paddlepaddle/PaddleScience.git
cd PaddleScience
# install paddlesci with editable mode
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
cd examples/euler_beam
# Install PaddleScience
git clone -b develop https://github.com/PaddlePaddle/PaddleScience.git
# If github clone is slow, you can use gitee clone
# git clone -b develop https://gitee.com/paddlepaddle/PaddleScience.git
cd PaddleScience
# install paddlesci with editable mode
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
cd examples/euler_beam
3. Contribution Guide¶
We provide reference accuracy and corresponding pre-trained model weights based on NVIDIA CUDA training at the beginning of the public case documentation. If you need to run on specified hardware, you can refer to the following steps:
-
If your hardware type has not been connected to PaddlePaddle, you can refer to the PaddleCustomDevice official documentation to connect to the PaddlePaddle framework. If your hardware type has been connected to PaddlePaddle but has not been added to the hardware support list of PaddleScience, please add your hardware type in ppsci/utils/config.py and deploy/python_infer/base.py.
-
Prepare necessary datasets according to the steps given in the case documentation.
-
If the model documentation provides a model training command, you need to perform full training on your hardware, save training logs, record the best model accuracy and the best model weights. These contents are generally automatically saved in the case folder during the training process.
-
If the model documentation provides a model evaluation command, you need to evaluate the accuracy of the best model saved in the third step on your hardware, save evaluation logs, and record evaluation accuracy. These contents are generally automatically saved in the case folder during the evaluation process.
Note
For full model training accuracy, the default requirement is that the best accuracy aligns with NVIDIA CUDA accuracy. Specifically, if the case accuracy indicator is relative error (such as L2 relative error), the indicator cannot exceed the reference value by ± 0.5%. If the case accuracy indicator is an error like MSE/MAE, it should be in the same order of magnitude as the reference value.
-
If the model documentation provides model export and inference commands, please verify whether model export and inference can be executed normally on the new hardware and align with CUDA inference results according to the model export and inference commands.
-
After completing the above steps, you can add your hardware support information (✅) to the corresponding model in the table of 1. Hardware Support List, and then submit a PR to PaddleScience. Your PR should include at least the following contents:
- Add running instructions for using the model based on your hardware environment in 2. Running Guide
- Best model weight file saved during training (
.pdparamsfile) - Running logs such as training/evaluation (
.logfile) - Software versions used to verify model accuracy, including but not limited to:
- PaddlePaddle version
- PaddleCustomDevice version (if any)
- Machine environment used to verify model accuracy, including but not limited to:
- Chip model
- System version
- Hardware driver version
- Operator library version, etc.
4. More Documentation¶
For more documents on PaddlePaddle multi-hardware adaptation and usage, please refer to: