Matlab performs poorly on AMD Ryzen Threadripper PRO 7985WX 64-Cores

I recently purchased a new AMD Ryzen Threadripper PRO 7985WX 64-Core graphics workstation with 1TB of RAM, but I've found that its code-running speed is slower than my old workstation (Intel(R) Xeon(R) Gold 6442Y) and PC (i7-14700). I ran a t-bench benchmark test, and the score was only in the 60s, as shown in the image. I don't think this is the expected performance of the 7985WX. What could be the problem?(Using MATLAB 2025b)

2 Commenti

It might be worth testing R2024b as well, to see if it's version dependent.
I've tried many methods, including changing the MATLAB version, but without much success. I also found that the main problem is the poor performance of 'Sqarse', while the other functions perform quite well.

Accedi per commentare.

Risposte (2)

It depends if the bench tasks are run in parallel or not. If not run in parallel that is the perframce of a single core. You would need specific bench taskds for parallelt computing to see the benefits of the multi-core processor.

1 Commento

I tried many methods, including changing the parallel settings, but they didn't help much. I also found that 'Sqarse' was performing poorly, while the others performed quite well. I suspect it's a problem with Zen 4 or memory latency.

Accedi per commentare.

What you are observing is caused by Intel's MKL not running optimally on AMD hardware. The "Sparse" example in MATLAB's bench, in particualr, suffers from extreme over-threading, which is worse the more cores you have.
We don't have this very processor available, but we have the even stronger AMD 7995wx which has 96 physical cores and the bench results are as following, highlighting the "Sparse" results in bold:
>> bench(3)
ans =
0.1510 0.1746 0.1155 2.1101 0.3280
0.1469 0.1506 0.1048 2.0811 0.1953
0.1421 0.1504 0.1025 2.0535 0.1726
Changing the number of computational threads used by MATLAB to 1, you see a significant improvement for the "Sparse" example:
>> maxNumCompThreads(1)
ans =
96
>> bench(3)
ans =
1.4602 0.2731 0.0979 0.2939 0.1594
1.4337 0.2712 0.0990 0.2782 0.1639
1.4323 0.2605 0.0984 0.2789 0.1554
Obviously, you don't want to generally run in single-threaded mode as other examples significantly slow down.
MATLAB is shipping AMD's version of BLAS/LAPACK called AOCL since R2022a as alternative as described here:
Using AOCL in R2025b, shows the following bench results:
>> bench(3)
ans =
0.3113 0.2138 0.1112 0.3785 0.2504
0.3066 0.2084 0.1002 0.3768 0.1514
0.3010 0.2205 0.0951 0.3749 0.1585
You see that the "Sparse" timings are much better but still not as good as single-threaded MKL. But you also see that the "LU" example, first column, is around 2x slower still than multi-threaded MKL.
We are closely working with AMD to improve AOCL's performacne and to hopefully make AOCL the default BLAS/LAPACK implementation in a future MATLAB release.

Categorie

Prodotti

Release

R2025b

Richiesto:

il 2 Dic 2025

Risposto:

il 2 Mar 2026

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by