4 ms·
Why this obsession with MKL on AMD hardware? I've long made measurements of OpenBLAS on "large" dimension serial DGEMM, at least. Even on Intel hardware betwe
by gnufx 6y ago
Why this obsession with MKL on AMD hardware? I've long made measurements of OpenBLAS on "large" dimension serial DGEMM, at least. Even on Intel hardware between Westmere and SKX, with the exception of KNL, it was always at least within the sort of noise level of HPC jobs of MKL performance, and was always better than ACML on the generations of Opterons we used.
There are results for AVX2 systems with older versions of OpenBLAS and BLIS, which is AMD's BLAS at https://github.com/flame/blis/blob/master/docs/Performance.md https://github.com/flame/blis/blob/master/docs/Performance.m... I haven't seen or made measurements for EPYC2 yet (and don't have results with the current versions online for Haswell and SKX) but I'd be surprised if AMD BLIS doesn't perform equally well on EPYC2. OpenBLAS serial DGEMM is very similar to MKL on SKX, for instance, with BLIS not far behind. I think AMD work has contributed to BLIS Haswell performance; their BLAS certainly supports Intel hardware decently, as well as aarch64, at least.
If you're interested in small dimension matrix multiplication on AVX2 hardware, consider libxsmm and AMD's recent "SUP" support in BLIS, e.g. https://github.com/flame/blis/blob/master/docs/PerformanceSmall.md https://github.com/flame/blis/blob/master/docs/PerformanceSm... MKL only got good at small dimensions because of libxsmm.
Off-topic for AMD, but in lieu of detailed figures, here are the first few points for measurements to hand on SKX serial square DGEMM with BLIS 0.7, OpenBLAS 0.3.10, and MKL mkl-2021.1-beta06 using the framework for the figures on the BLIS site:
size BLIS OpenBLAS MKL
2400 90.8 98.3 94.5
2352 91.4 97.4 93.6
2304 90.6 98.3 93.9