Skip to content

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
Problem Type Case Name NVIDIA Hygon Taichu MetaX
Chemical Molecule Generation Moflow
Chemical Reaction Prediction IFM

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
python euler_beam.py
python euler_beam.py mode=eval EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams
python euler_beam.py mode=export
python euler_beam.py mode=infer
# 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
python euler_beam.py
# Test your trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=$YOUR_MODEL_PATH
# Test officially provided pre-trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams
python euler_beam.py mode=export
python euler_beam.py mode=infer
# 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
python euler_beam.py
# Test your trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=$YOUR_MODEL_PATH
# Test officially provided pre-trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams
python euler_beam.py mode=export
python euler_beam.py mode=infer INFER.device=sdaa
# 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
python euler_beam.py
# Test your trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=$YOUR_MODEL_PATH
# Test officially provided pre-trained model
python euler_beam.py mode=eval EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/euler_beam/euler_beam_pretrained.pdparams
python euler_beam.py mode=export
python euler_beam.py mode=infer

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:

  1. 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.

  2. Prepare necessary datasets according to the steps given in the case documentation.

  3. 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.

  4. 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.

  5. 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.

  6. 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 (.pdparams file)
    • Running logs such as training/evaluation (.log file)
    • 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: