Enabling GPU

Ansys Electronics Desktop supports GPU acceleration for transient, frequency domain, and Maxwell 3D eddy current matrix solves. For details on the requirements for GPU use, see: GPU Acceleration.

HPC and Analysis dialog. Options tab, Enable GPU set to True.

For HFSS SBR+ projects, you can also Enable GPU for SBR+ solves.

HPC and Analysis dialog. Options tab, Enable GPU set to True.

To enable use of GPU or MIC acceleration, you can set Enable GPU to True and set Use Automatic Settings to off in the Analysis Configuration window. The matrix solver automatically determines if all cores should be used, or if one GPU should be used to give the best performance. For example, for a Maxwell Eddy Current Solution Matrix, if you specify 4 cores for the simulation, the 3D Eddy current solver will use 4 cores in parallel during matrix assembly while the matrix solver will use either 4 cores or 1 GPU.

Analysis Configuration dialog. Machines tab, localhost enabled.

For HFSS, Use Automatic Settings supports SBR+ Solution types only. The GPU column is always shown, but only applies when solving the SBR+ solution type. For all other solution types, the GPU count is ignored, and treated as if set to zero.

For HFSS SBR+ in auto mode, each machine has an allocated number GPUs, but no preset number of tasks. In this case, since HFSS SBR+ acceleration is mainly through GPUs, the variation distribution prioritizes use of GPUs. In other words, the distribution divides the GPUs equally among the variations, although it may not be possible for every variation to have the same number of GPUs. Below the level of variations, the allocated GPUs per machine will be passed to the solver’s auto algorithm, which then allocate these GPUs to the distributed solver instances.

For solvers that can use GPUs, when you uncheck Use Automatic Settings, the analysis configuration lets you specify the number of GPUs to be used by each machine, along with the existing settings for cores and RAM Limit. This makes sense, because GPUs, cores, and RAM are all resources that the user is managing, and GPUs and cores both contribute to HPC count. Each machinehas tasks and GPUs. The GPUs are distributed among the tasks, similarly to how cores are distributed. For example, if a machine has 3 tasks and 2 GPUs, then the first two tasks will get one GPU each, and the third task will get no GPU.

For design types like HFSS that support GPU for different types of solve (frequency, transient, SBR+), the GPU setting when Use Automatic settings is unchecked applies to all types. To use GPU for some solves and not for others, you can create multiple configurations.

Determining When a GPU or MIC is Being Used

You can determine if a GPU or MIC is being used for acceleration by viewing the Solutions dialog box, Profile tab. If a GPU is successfully locked for use by the solver process, the profile shows the GPU's CUDA device ID and its name.

Device ID

If the GPU is not used, the Solution Profile indicates that, and the CPU cores are used.

When GPU is used:

  • GPU must be enabled for HFSS/Maxwell.
  • Both Windows and Linux are supported.
  • Only complex symmetric matrices can be solved by CUDA.
  • Matrix must be large enough. By default, its dimension should be larger than 2,000,000.
  • The times using CUDA and CPU only are estimated. If GPU is faster, it will be used. If not, the solver falls back to multi-core CPU.
  • HFSS-SBR+: GPU is used a) whenever computing far-field radiation and b) during coupling (S-parameter) computations whenever the receiving antenna is a FEBI antenna. In particular, GPU is used to accelerate the radiation of SBR ray footprints (equivalent currents) to scattered field observers. For example, if you have two antennas, where one is FEBI and the other uses a far-field representation, and the SBR+ setup includes a configured far-field radiation sphere, GPU is used for computing the installed far-field radiation pattern of both antennas and the coupling from the far-field antenna (source) to the FEBI antenna (receiver). However, coupling from the FEBI antenna (source) to the far-field antenna (receiver) is computed using multi-core CPU. The speed benefit of GPU over multi-core CPU is greatest when computing the SBR+ contribution to far-field radiation, especially if there are many observation angles, as in a fully populated sphere. GPU loses efficiency when computing coupling to FEBI antennas located near the scattering geometry.
  • For HFSS SBR+ on bi-static RCS, GPU is enabled since you likely have many observation points (far-field points) for each incident wave, and GPU can make a really big difference in simulation time. GPU will help to a lesser extent when modeling installed radiation patterns for antennas with far-field patterns (since they are simple point sources, sourcing only a single set of SBR rays).

PU and CPU:

  • The estimation is based on the structure of the matrix, not just the dimension.
  • The generation and model of GPU are considered. The newer the model is, the faster the GPU estimation is.
  • The clock rate and number of cores of CPU are considered. The higher the rate is, the more the cores are, the faster the CPU estimation is.
  • Finally, the faster device (GPU or CPU) is selected based on the estimation.

Why GPU is Not Used

  • The estimation is based on the whole matrix, not just the size. Having larger matrices doesn’t mean GPU will be used.
  • The bandwidth is not useful either. It is possible to have two matrices with exactly the same size and bandwidth, one favoring GPU and the other CPU.
  • For HFSS SBR+ for monostatic RCS problems, the GPU is not used for simulation. The reason is that there is only one observation point for each plane wave excitation, so the GPU does not have as much potential to enhance the processing speed.
  • Other HFSS SBR+ problems where GPU is not used include antenna problems where an antenna that is designated as an Rx or Tx/Rx type is a far-field source only. GPU is most effective in antenna problems involving many current sources, many far-field observation points and multiple frequencies.
  • For HFSS SBR+ GPU will not kick in at all for antenna coupling problems with Rx antennas that are far-field type only.
  • If GPU is of older models while CPU is not, GPU may not be used.
  • If CPU has high clock rate, GPU may not be used.
  • If CPU has many cores, GPU may not be used.
  • If Use Automatic settings in Analysis Configuration is checked.
  • Nvidia GPU drivers are downloaded from certain repository (e.g. RedHat) instead of directly from Nvidia website

Multiple GPUs

When there are multiple GPU cards in the same machine, the first solver process (hf3d, 3dedy) locks the first GPU card available (not locked or used by other processes, not used for display, etc.), the second process locks the second card available, and so on. After all cards are locked, solver uses CPU only.