Matlab Update Looks to Fix Dreadful AMD CPU Performance

(Image credit: Shutterstock)

If you've been on a Matlab and it up to date, you might have noticed that AMD CPUs perform dreadfully with the software compared to Intel chips in recent months. This is a massive shame for students and researchers, who would see time wasted if they were using AMD Ryzen or AMD Threadripper silicon. However, those days should now be over because as of Matlab version R2020a, Mathworks has implemented a fix, as spotted by ExtremeTech.

Mathworks describes Matlab as a an option for uniting a desktop environment "tuned for iterative analysis and design processes with a programming language that expresses matrix and array mathematics directly." One of its features allows users to create scripts combining "code, output and formatted text in an executable notebook."

Before the Matlab's update, there was a workaround for AMD users. In essence, the performance problems stem from the use of the Intel Math Kernel Library (MKL), which when using non-Intel CPUs drops back to the SSE1 SIMD extension, rather than the much more efficient SSSE2, SSE4, AVX1, or AVX2 extensions. 

Now, AMD's chips do support AVX2 extensions, so the workaround was simply to force MKL to use the AVX2 extensions on Ryzen and Threadripper chips anyway, as detailed by Redditor nedflanders1976 four months ago.

For the most part, this hasn't been an issue for many individuals in research, as many research institutions have been loyally using Intel silicon. However, among students who opt for the more budget-friendly AMD systems, this has been a sore point of frustration, and with AMD's increasing dominance, many will appreciate this fix. 

Of course, to get the fix you'll have to be on a licensed version of Matlab, which usually happens through your university or research institute.

Niels Broekhuijsen

Niels Broekhuijsen is a Contributing Writer for Tom's Hardware US. He reviews cases, water cooling and pc builds.

  • bit_user
    If you've been on a Matlab
    No, I long-ago switched to Octave, and lately Python/numpy.

    I always hated Matlab's 1-based indexing.