Some analysis types and features are not supported by the GPU accelerator capability. Supported functionality also depends on the specified GPU hardware. The following section gives general guidelines on what is and is not supported.
These are not comprehensive lists, but represent major features and capabilities found in the Mechanical APDL program.
For a list of recommended GPU devices, see the Windows Installation Guide and the Linux Installation Guide.
The following analysis types are supported and will use the GPU to accelerate the solution.
Static linear or nonlinear analyses using the sparse, Preconditioned Conjugate Gradient (PCG), or Jacobi Conjugate Gradient (JCG) solver.
Buckling analyses using the Block Lanczos or subspace eigensolver.
Modal analyses using the Block Lanczos, subspace, PCG Lanczos, QR damped, unsymmetric, or damped eigensolver.
Harmonic analyses using the full method and the sparse solver.
Transient linear or nonlinear analyses using the full method and the sparse, PCG, or JCG solver.
Substructuring analyses, generation pass only, including the generation pass of component mode synthesis (CMS) analyses.
In situations where the analysis type is not supported by the GPU accelerator capability, the solution will continue but GPU acceleration will not be used.
Performance Issue for Some Solver/Hardware Combinations
When using the PCG or JCG solver, or the PCG Lanczos eigensolver, any of the recommended GPU devices can be expected to achieve good performance.
When using the sparse solver or eigensolvers based on the sparse solver (for example, Block Lanczos or subspace), only GPU devices with significant double precision performance (FP64) are recommended in order to achieve good performance. For a list of these devices, see the Windows Installation Guide and the Linux Installation Guide.
When using AMD GPUs and DMP processing, less than eight MPI processes per GPU is recommended.
Shared-Memory Parallel Behavior
For the sparse solver (and eigensolvers based on the sparse solver), if one or more GPUs are requested, only a single GPU is used no matter how many are requested.
For the PCG and JCG solvers (and eigensolvers based on the PCG solver), all requested GPUs are used.
When using AMD GPUs with the PCG and JCG solvers (and eigensolvers based on the PCG solver) on Linux, only one GPU is used.
Distributed-Memory Parallel Behavior
For the sparse solver (and eigensolvers based on the sparse solver), if the number
of GPUs exceeds the number of processes (the -na
value is greater
than the -np
value on the command line), the number of GPUs used
equals the -np
value. If the number of GPUs is less than the number
of processes (-na
is less than -np
), all requested
GPUs are used.
For the PCG and JCG solvers (and eigensolvers based on the PCG solver), if the
number of GPUs exceeds the number of processes (-na
is greater than
-np
), all requested GPUs are used. If the number of GPUs is less
than the number of processes (-na
is less than
-np
), all requested GPUs are used.
When using AMD GPUs with the PCG and JCG solvers (and
eigensolvers based on the PCG solver) on Linux, at most the -np
value of GPUs is used.
As the GPU accelerator capability currently only pertains to the equation solvers, virtually all features and element types are supported when using this capability with the supported equation solvers listed in Supported Analysis Types. A few limitations exist and are listed below. In these situations, the solution will continue but GPU acceleration will not be used (unless otherwise noted):
Partial pivoting is activated when using the sparse solver. This most commonly occurs when using current technology elements with mixed u-P formulation, Lagrange multiplier based MPC184 elements, Lagrange multiplier based contact elements (TARGE169 through CONTA178), or certain circuit elements (CIRCU94, CIRCU124).
The memory saving option is activated (MSAVE,ON) when using the PCG solver. In this particular case, the MSAVE option is turned off and GPU acceleration is used.
A non-supported equation solver is used (for example, ICCG, etc.).