HFSS simulation slow for Ryzen CPUs

HFSSUserHFSSUser Member Posts: 1

Hi everyone,

I just bought a new computer with AMD Ryzen 3950x which has 16 physical cores. All benchmarks done on this computer shows satisfying results but when I try to work with Ansys Electronics Desktop(HFSS) it consumes even longer time than my previous PC with Intel Core i5-9500. I've already set the HPC options to fully utilize 16 physical cores and the frequency of processor is manually set to 4.2GHz during the simulation. The Solution Data page shows that simulation done on 3950x platform cost about 3x CPU Time as my Intel PC, e.g., solution for a model may cost about 20m on AMD R9-3950x while 7m on Intel i5-9500. Although 3950x has more physical cores and same working frequency, the CPU Time cost make it even worse than i5-9500. I've tried several releases of Ansys software including the up-to-date 2020R1 sutie, none of them can reduce the CPU time cost.

Is there anyone working with AMD Ryzen computers? Can I make better use of my processor by tuning some settings? Thanks for your advice.


  • bcomiskybcomisky Posts: 1Member

    I had an HFSS simulation on AMD EPYC that was really slow, got a 2.5x speedup after changing this environment variable (MKL_DEBUG_CPU_TYPE=5).

  • AndyJPAndyJP Posts: 250Member
    edited October 2020

    AMD uses FPU block sharing and register fusing technologies starting from Buldozzer. So it is not the same as Intel.

    If Intel start speaking about cores in AMD style, it can declare x2-x4 times more cores for every its CPU, because Intel uses multiple parallel ALU's for boosting disassembled microoperations execution.

    So... it depends on architecture and machine number lengths. AMD's 16 cores are equivalent to Intel's 16 cores only in general user/server-sofrtware scenarios, but not in extreme and highly specific scenarios.

    HFSS's AVX code may also be not so good with AMD...

  • AndyJPAndyJP Posts: 250Member
    edited October 2020

    .... which exactly explains why MKL_DEBUG_CPU_TYPE=5 works... for now.


    In older versions, setting the undocumented environment variable MKL_DEBUG_CPU_TYPE=5 could be used to override the vendor string dependent codepath choice and activate supported instructions up to AVX2 on AMD processor based systems resulting in equal or even better performance when compared to Intel CPUs.[12][13][14] Since at least Update 1 2020, the environment variable does not work anymore.[10][11]

    At least two routes for hooking the MKL's internal routines to

    remove the discrimination have been discovered. The hook can be added at

    compile-time by linking or at run-time by injection. Agner Fog discovered that

    MKL and ICC binaries also have a non-discriminating dispatcher. A

    mkl_serv_intel_cpu_true function was discovered in 2019. Fog's intel_dispatch_patch

    provides code that hooks both routes.[15] According to Daniël de Kok, just

    patching the latter function on MKL 2020 Update 1 improves performance for AMD



Sign In or Register to comment.