Announcement

Collapse
No announcement yet.

AMD Ryzen 9 3900X SMT Linux Performance Benchmarks

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AMD Ryzen 9 3900X SMT Linux Performance Benchmarks

    Phoronix: AMD Ryzen 9 3900X SMT Linux Performance Benchmarks

    For those wondering what the SMT performance impact is for new Zen 2 processors, here are some tests done using a Ryzen 9 3900X with Ubuntu Linux when testing at the default 12-core / 24-threads and then again when disabling SMT to look at just the twelve physical cores...

    http://www.phoronix.com/scan.php?pag...3900X-SMT-Perf

  • #2
    Hallo Michael,
    why using different Scalling Governors for enabled and disabled SMT?

    Comment


    • #3
      Originally posted by SomeoneElse View Post
      Hallo Michael,
      why using different Scalling Governors for enabled and disabled SMT?
      Good catch, not sure how that happened. Looking into it to see if disabling SMT caused some odd CPUfreq behavior.
      Michael Larabel
      http://www.michaellarabel.com/

      Comment


      • #4
        Very nice graph showing test results

        Comment


        • #5
          Originally posted by phoronix View Post
          Phoronix: AMD Ryzen 9 3900X SMT Linux Performance Benchmarks

          For those wondering what the SMT performance impact is for new Zen 2 processors, here are some tests done using a Ryzen 9 3900X with Ubuntu Linux when testing at the default 12-core / 24-threads and then again when disabling SMT to look at just the twelve physical cores...

          http://www.phoronix.com/scan.php?pag...3900X-SMT-Perf
          Conclusion: Managing SMT on per-application basis results in significant performance gains.

          Prediction: In the future, SMT is going to be managed on a per-application basis.

          Code:
          $ taskset -pc 0,2,4,6,... $(pidof application)
          $ taskset -pc 0-$[$(nproc)-1]:2 $(pidof application)
          $ taskset -c 0-$[$(nproc)-1]:2 application arguments...


          Michael, instead of disabling SMT in BIOS, could you please rerun the benchmarks with SMT being controlled by taskset?

          Comment


          • #6
            Originally posted by atomsymbol View Post

            Conclusion: Managing SMT on per-application basis results in significant performance gains.

            Prediction: In the future, SMT is going to be managed on a per-application basis.

            Code:
            $ taskset -pc 0,2,4,6,... $(pidof application)
            $ taskset -pc 0-$[$(nproc)-1]:2 $(pidof application)
            $ taskset -c 0-$[$(nproc)-1]:2 application arguments...


            Michael, instead of disabling SMT in BIOS, could you please rerun the benchmarks with SMT being controlled by taskset?
            Additionally, before running "taskset -c cpulist application", it is required to temporarily lower the number CPUs by using echo or chcpu:

            Code:
            $ nproc
            12
            $ echo 0 > /sys/devices/system/cpu/cpu1/online
            $ nproc
            11
            $ chcpu -d 3
            $ nproc
            10
            ...
            Applications which are using sysconf(_SC_NPROCESSORS_CONF) or get_nprocs() to determine the number of threads to start - instead of using sysconf(_SC_NPROCESSORS_ONLN) or get_nprocs_conf() - will not work well.

            Comment


            • #7
              Originally posted by atomsymbol View Post

              Additionally, before running "taskset -c cpulist application", it is required to temporarily lower the number CPUs by using echo or chcpu:

              Code:
              $ nproc
              12
              $ echo 0 > /sys/devices/system/cpu/cpu1/online
              $ nproc
              11
              $ chcpu -d 3
              $ nproc
              10
              ...
              Applications which are using sysconf(_SC_NPROCESSORS_CONF) or get_nprocs() to determine the number of threads to start - instead of using sysconf(_SC_NPROCESSORS_ONLN) or get_nprocs_conf() - will not work well.
              Have you tried the cpu isolation feature in recent kernels?

              Comment


              • #8
                Originally posted by atomsymbol View Post
                Conclusion: Managing SMT on per-application basis results in significant performance gains.
                Prediction: In the future, SMT is going to be managed on a per-application basis.
                You mean just like Windows does by avoiding scheduling 2 threads onto the same physical core if possible?

                It also tries to keep the threads confined within a CCX to avoid increased latencies on Ryzen as tested by Tom's Hardware.

                Comment


                • #9
                  Originally posted by numacross View Post
                  You mean just like Windows does by avoiding scheduling 2 threads onto the same physical core if possible?

                  It also tries to keep the threads confined within a CCX to avoid increased latencies on Ryzen as tested by Tom's Hardware.
                  None of that helps with the issue at hand here.

                  Optimizing for SMT has always been in the hand of the application developers but not many ever did.

                  atomsymbol's prediction makes a lot of sense. Since application developers fail to optimize their applications for different CPU architectures with SMT it would make sense to have tools with per-application profiles.
                  Actually, such tools already exist.

                  Comment


                  • #10
                    One thing I'd like to know is the power consumption differences. in my limited SMT/hyperthread experience (fist gen I7...) it causes a pretty substantial increase in thermal output, and therefore wattage.

                    I suspect that disabling SMT could lead to easier overclocking, especially on high-density chips or when not using beefy water cooling.
                    Gaming performance is usually better without SMT, anyway.

                    Comment

                    Working...
                    X