Graphics Processing Unit (GPU)

A Graphics Processing Unit (GPU) is a system which can be used to improve the performance of computationally intensive engineering applications. GPU Computing is a process which uses the GPU to execute computational intensive sections of the application and the rest of the code runs on the CPU.

Implementation

GPU can be used to accelerate the sparse direct equation solver through the NVIDIA CUDA programming model. GPU computing is implemented by off-loading most of the computation intensive work to the GPU and concurrently overlapping the communication and data transfer between the CPU cores and the GPU.

Compatibility

  1. GPU computing is available for linear static analysis/optimization and eigenvalue analysis using AMSES and Lanczos eigensolvers.
  2. GPU computing is available on Linux and Windows platforms.
  3. GPU computing is NOT supported in the SPMD module. You can either use MPI-based parallelization (DDM) or use GPU, but not both simultaneously.
  4. For static analysis, OptiStruct GPU is only supported with the BCS and PCG solvers (SOLVER=BCS/PCG, on the SOLVTYP Bulk Data Entry). Any static analysis model can be run using the -gpu run option; however, the GPU will only be used for static subcases which use the BCS or PCG solver. Additionally, multiple GPU support is now available for PCG solver runs, using the -ngpu run option.
  5. For eigenvalue analysis/modal frequency response analysis, OptiStruct GPU is recommended for any of the following cases:
    • Eigenvalue analysis on blocky structures, for example bricks, cubes, cylinders, and so on, and/or,
    • Eigenvalue analysis which requests a large number of modes, for example, over 10000 modes. Similarly, GPU can also be used to run Modal Frequency Response Analysis, wherein the modal extraction step requests a large number of modes.
  6. NVIDIA Kepler, Maxwell, Pascal, and Volta architecture-based Tesla and Quadro graphic cards are supported. Recommended cards are Tesla P100, Tesla V100, Quadro GP100, and Quadro GV100 for OptiStruct GPU.

Commands to Activate GPU

Command option -gpu is used to activate OptiStruct GPU. The -gpuid run option can be used to pick the desired graphic card for computation when multiple cards are present. Additionally, for the PCG iterative solver, multiple GPU cards can be used simultaneously for the run. This can be accomplished by using -ngpu run option. Currently, a maximum of 8 GPU cards can be used for the parallel GPU run with models running the PCG solver.
Note: This is currently supported only for linear static or nonlinear static analysis with PCG solver, and it is intended for large models which are unable to be run on a single GPU card, due to hardware limitations (like, Memory). Compatible drivers for the graphics card will need to be installed by the user prior to launching OptiStruct GPU using the option -gpu.
Command Line Option Value Action
-gpu   Activates GPU computing
-ngpu N Specifies the number of GPU cards to be used for the run.

Default = 1 and Maximum = 8.

-gpuid N Integer: Optional, selects the GPU card

Default = 1

Note: I/O usually accounts for an appreciable percentage of the total solution time in OptiStruct for an out-of-core or min-core run. This cannot be addressed or improved through GPU computing. Therefore, -core in (at least -core out) is recommended when the memory in system is large enough.

OptiStruct, currently only supports a maximum of 8 graphics cards in a specific solution (via -ngpu#). Refer to the Altair Simulation 2022 Solvers Unit Draw page for OptiStruct GPU licensing information.

Recommended GPU Computing Processor List

Double precision (fp64) operations are required by OptiStruct to obtain sufficient accuracy for simulations. A NVIDIA graphic card with higher peak fp64 performance dedicated for engineering solutions and high-performance computing is more suitable for OptiStruct GPU acceleration. The following table lists the recommended graphic boards for use with the Altair Mechanical Solver suite of applications for high-powered GPU computing.
Manufacturer and Model Graphics Card Driver Version

(minimum or higher)

NVIDIA

(Tesla)

P100

V100

Linux (64-bit): 440.33

Windows (64-bit): 441.22

NVIDIA

(Quadro)

GP100

GV100

Linux (64-bit): 440.33

Windows (64-bit): 441.22

Note: The most recent vendor/manufacturer drivers should be used and all driver support for these cards should be addressed to the appropriate manufacturer of the graphic board.