• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

MATLAB MKL Codepath Tweak Boosts AMD Ryzen MKL Performance Significantly

Joined
Jun 4, 2004
Messages
480 (0.07/day)
System Name Blackbird
Processor AMD Threadripper 3960X 24-core
Motherboard Gigabyte TRX40 Aorus Master
Cooling Full custom-loop water cooling, mostly Aqua Computer and EKWB stuff!
Memory 4x 16GB G.Skill Trident-Z RGB @3733-CL14
Video Card(s) Nvidia RTX 3090 FE
Storage Samsung 950PRO 512GB, Crusial P5 2TB, Samsung 850PRO 1TB
Display(s) LG 38GN950-B 38" IPS TFT, Dell U3011 30" IPS TFT
Case CaseLabs TH10A
Audio Device(s) Edifier S1000DB
Power Supply ASUS ROG Thor 1200W (SeaSonic)
Mouse Logitech MX Master
Keyboard SteelSeries Apex M800
Software MS Windows 10 Pro for Workstation
Benchmark Scores A lot.
with this, remember the transition form x32 to x64, how often applications and games had 2 different executables to use, which, shockingly, depending on the CPU. Since a script is and easy fix, I dont see the need for a separate executable. I Have seen in the past excutables tagged separately for Intel and AMD, tho its been so long I cant remember when or what exactly but i think it was during XP/vista OS days
...as long as Intel doesn't get more sophisticated with what it's own debug switches do in the MKL in this case. :D
 
Joined
Aug 12, 2018
Messages
30 (0.01/day)
with this, remember the transition form x32 to x64, how often applications and games had 2 different executables to use, which, shockingly, depending on the CPU. Since a script is and easy fix, I dont see the need for a separate executable. I Have seen in the past excutables tagged separately for Intel and AMD, tho its been so long I cant remember when or what exactly but i think it was during XP/vista OS days
Yup, had to install drivers in Windows XP and Vista for my dual core Opteron 165 (DFI Expert! for any who remember). "AMDx64..." something.
 

Space Lynx

Astronaut
Joined
Oct 17, 2014
Messages
15,800 (4.58/day)
Location
Kepler-186f
After reading this thread, I can 100% say I am glad I decided to go AMD this round, and I already have plans to sell my 3600 when 4800x hits my doorstep. Nothing else changes, except possibly selling my 1080 ti for a navi 6700 xt when that comes out.
 
Joined
Aug 23, 2013
Messages
453 (0.12/day)
You have slightly missed the point. Intel didn't spend money to optimize Intel's CPUs but to make competitive companies processors use different code path to cripple their performance. What it means is, if you are Intel you go the faster way (which competition can go as well but it is exclusive) if you are not you will be stuck with the code that is slow as molasses.
They didn't spend money in the first place, but they are going to do it now just to keep them from optimizing for AMD. Until someone publicly shows the problem, like in this case.
 
Joined
Oct 12, 2019
Messages
128 (0.08/day)
I can't remember any reason in last 10 or something years why Intel should be praised. They did a remarkable things in the past, while they had competition. The sum of the de facto no competition time, Intel made ONE architecture, exploited it for ten years, making chips cheaper to produce by Intel, but never cheaper for the customers. 10% benefit in 10 years - great job, thank you Intel! Moving entry/mid/high GPU prices to levels unheard of previously - thank you, NVIDIA! Praise to both!

There are many things that made me start hating Intel, but probably the biggest for me was HSA suppression. I'm talking about strong AMD (with the fabs, with the highly competitive products) acquirement of ATI, in order to bring the new level of efficiency in computing in general, and how Intel effectively stopped it.

HSA should have been a step above CUDA, OpenCL and similar standards. HSA should've exclude the developer from the equation, they should've done things normally and HSA should've been interpreted on compiler level.

HSA Foundation members are AMD, ARM, Samsung, MediaTek, Qualcomm, and Texas Instruments... Who is missing? Of course, Intel - because no on-chip GPU worth speaking about, and of course NVIDIA - because having no CPU at all...

For those who aren't familiar with HSA... Both CPU and GPU do calculations, except FPU is many times faster on GPU and some other stuff are CPU-exclusive. HSA should've represented 'marriage' of CPU and GPU on the same die, with different tasks assigned to the part that does it better and in cooperation regarding resources used.

Why it failed? Because of ill-fated AMD Fusion project. Mistakes were made, solutions were delayed, bad Bulldozer (and forward) architectures, etc. Ending in weak AMD, with product who couldn't compete with Intel. On the other, uglier side, both Intel and NVIDIA actively sabotages the progress, from selfish reasons. Say, what are components of "typical" super-computer? Many Intel CPUs and many NVIDIA GPUs.

Would AMD APU with HSA actually used made a difference? I think yes. I think this still may happen, now when AMD has competitive products for both CPU/GPU. I think it could make difference in home computing, too. I think we have lower-quality products today on software side, thanks to shady business practice. I really liked HSA idea :)
 
Joined
Sep 6, 2013
Messages
2,973 (0.77/day)
Location
Athens, Greece
System Name 3 desktop systems: Gaming / Internet / HTPC
Processor Ryzen 5 5500 / Ryzen 5 4600G / FX 6300 (12 years latter got to see how bad Bulldozer is)
Motherboard MSI X470 Gaming Plus Max (1) / MSI X470 Gaming Plus Max (2) / Gigabyte GA-990XA-UD3
Cooling Νoctua U12S / Segotep T4 / Snowman M-T6
Memory 16GB G.Skill RIPJAWS 3600 / 16GB G.Skill Aegis 3200 / 16GB Kingston 2400MHz (DDR3)
Video Card(s) ASRock RX 6600 + GT 710 (PhysX)/ Vega 7 integrated / Radeon RX 580
Storage NVMes, NVMes everywhere / NVMes, more NVMes / Various storage, SATA SSD mostly
Display(s) Philips 43PUS8857/12 UHD TV (120Hz, HDR, FreeSync Premium) ---- 19'' HP monitor + BlitzWolf BW-V5
Case Sharkoon Rebel 12 / Sharkoon Rebel 9 / Xigmatek Midguard
Audio Device(s) onboard
Power Supply Chieftec 850W / Silver Power 400W / Sharkoon 650W
Mouse CoolerMaster Devastator III Plus / Coolermaster Devastator / Logitech
Keyboard CoolerMaster Devastator III Plus / Coolermaster Devastator / Logitech
Software Windows 10 / Windows 10 / Windows 7
Can we really say that MATLAB programmers can create such a program, but at the same time they are so incompetent that they can't create something that can be done with 4 lines of code? Maybe someone who is using the program with a Ryzen, should sue them for the lost time waiting to get results that the program was already capable to present 2-3 times faster.
 
Joined
Mar 23, 2016
Messages
4,839 (1.65/day)
Processor Ryzen 9 5900X
Motherboard MSI B450 Tomahawk ATX
Cooling Cooler Master Hyper 212 Black Edition
Memory VENGEANCE LPX 2 x 16GB DDR4-3600 C18 OCed 3800
Video Card(s) XFX Speedster SWFT309 AMD Radeon RX 6700 XT CORE Gaming
Storage 970 EVO NVMe M.2 500 GB, 870 QVO 1 TB
Display(s) Samsung 28” 4K monitor
Case Phantek Eclipse P400S (PH-EC416PS)
Audio Device(s) EVGA NU Audio
Power Supply EVGA 850 BQ
Mouse SteelSeries Rival 310
Keyboard Logitech G G413 Silver
Software Windows 10 Professional 64-bit v22H2
At least someone in Russia? came up with ICC patcher.

Readme HTML file said:
Intel Compiler Patcher (ICP) scans your hard drive for executable files compiled with the Intel C++ Compiler making it possible to disable the CPU dispatcher in detected files, thus, increasing performance of the software that uses these files with CPUs other than Intel.


How useful the patcher still is since 2010 though I don't know.
 

Cheeseball

Not a Potato
Supporter
Joined
Jan 2, 2009
Messages
1,834 (0.33/day)
Location
Pittsburgh, PA
System Name 2023 AMD Work & Gaming Rig
Processor AMD Ryzen™ 7 7950X3D
Motherboard ASUS ROG Strix X670E-I Gaming WiFi
Cooling ID-COOLING SE-207-XT Slim Snow
Memory TEAMGROUP T-Force Delta RGB 2x16GB DDR5-6000 CL30
Video Card(s) ASRock Radeon RX 7900 XTX 24 GB GDDR6 (MBA)
Storage 2TB Samsung 990 Pro NVMe
Display(s) AOpen Fire Legend 24" 390Hz (25XV2Q), Alienware 34" 165Hz (AW3423DWF), LG C2 42" 120Hz (OLED42C2PUA)
Case Cooler Master Q300L V2
Audio Device(s) Kanto Audio YU2 and SUB8 Desktop Speakers and Subwoofer, Cloud Alpha Wireless
Power Supply Corsair RM850x White (2021)
Mouse Logitech Pro Superlight (White), G303 Shroud Edition
Keyboard Corsair K70 RGB TKL Champion Series / Wooting 60HE / NuPhy Air75
VR HMD Occulus Quest 2 128GB
Software Windows 11 Pro 64-bit 22H2 Build 22621.1992
Joined
Aug 20, 2007
Messages
20,709 (3.41/day)
System Name Pioneer
Processor Ryzen R9 7950X
Motherboard GIGABYTE Aorus Elite X670 AX
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory 64GB (4x 16GB) G.Skill Flare X5 @ DDR5-6000 CL30
Video Card(s) XFX RX 7900 XTX Speedster Merc 310
Storage 2x Crucial P5 Plus 2TB PCIe 4.0 NVMe SSDs
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) TOSLINK->Schiit Modi MB->Asgard 2 DAC Amp->AKG Pro K712 Headphones or HDMI->B9 OLED
Power Supply FSP Hydro Ti Pro 850W
Mouse Logitech G305 Lightspeed Wireless
Keyboard WASD Code v3 with Cherry Green keyswitches
Software Windows 11 Enterprise (legit), Gentoo Linux x64
As for MKL - it's used by a lot of computing software. Why? Becase it makes stuff run faster on Intel CPUs. Why would it not be used? This is how computing works. Intel has given developers an API to speed up their programs. Why is Intel attacked for this on this forum? It should be praised.

AMD is also allowed to offer an API optimized for Zen. And I'm sure software developers will gladly implement it as AMD CPUs gain popularity.

For a decade there was really no reason to optimize software for AMD.

Because it's anticompetitive and fragments the marketplace?

Compilers have had a ability to generate binaries that use flags for what they are running on since... forever. Intel should absolutely not be praised for what it is doing here.
 
Joined
Jun 12, 2017
Messages
136 (0.05/day)
This is a modification that you are really risking your own lives. You know, within one update Intel can make some modifications that "unintentionally" cause numerical bugs on some user-modified systems. There may well be some already.
 
Joined
Jun 28, 2016
Messages
3,595 (1.27/day)
First of all, before I answer a few posts, I have to say... I'm really shocked and disappointed by how little some of you know about software and this kind of APIs.
It's not like I expect everyone to be a developer, but having a minimal understanding of how software works would be useful while discussing this topic...
I think I expected more...
Because it's anticompetitive and fragments the marketplace?

Compilers have had a ability to generate binaries that use flags for what they are running on since... forever. Intel should absolutely not be praised for what it is doing here.
Intel is entitled to provide an API optimized for their CPUs (that's the whole point).
AMD is entitled to provide a similar product.

The main goal of software like Matlab is not to support CPU market or promote competition.
The goal is to compute efficiently. And since Intel provides an API that makes Matlab faster on Intel CPUs, why would they not use it? In fact: shouldn't we demand that they use it? Because the gains on Intel CPUs is really significant.

AMD can also provide such an API and I'm sure MathWorks (like every other major software maker) will happily provide a backend otpimized for AMD.

And most importantly: I have no idea why the criticism is aimed at Intel and not MathWorks. Intel gives no guarantee of MKL performance on AMD platform. In fact they may as well block it completely. It's software maker role to provide compatibility.

If AMD felt this is unfair or "anticompetitive", they should have pointed this out. They didn't. Why?
The fact (or problem) is that as demonstrated by this article you don't actually need an AMD provided API to achieve better performance.
Crippling other companies' products is not speeding your product up although it looks better in comparison.
The article OP is referring to is proving that you can work around the crippling procedure Intel has implemented with AMD processors.
Yes. MKL run on AMD CPU is very slow because of falls back to the simplest instruction set.
Of course we could argue if this is OK or not. Intel can't guarantee that AMD CPUs support AVX2 or not. What if they suddenly stopped? Would we them blame Intel for making a library that crashes on competition's CPUs?
But let's not do that.
Let's focus on the very simple fact: it's an Intel library. For the most part it's not open source. It's not designed to become a market-wide standard. And it simply shouldn't be used with AMD CPUs.

Similarly, we could criticize Nvidia because CUDA doesn't work with Radeon. Or blame Ford because their navigation system doesn't work in a Toyota. Why would it?

I mean... seriously... it's Matlab. Hardware makers should fight for performance in such applications. Intel does. Nvidia does.
AMD doesn't. And AMD fanboys - instead of expecting AMD to try harder - criticize everyone else.
 
Joined
Mar 16, 2017
Messages
211 (0.08/day)
Location
behind you
Processor Threadripper 1950X (4.0 GHz OC)
Motherboard ASRock X399 Professional Gaming
Cooling Enermax Liqtech TR4
Memory 48GB DDR4 2934MHz
Video Card(s) Nvidia GTX 1080, GTX 660TI
Storage 2TB Western Digital HDD, 500GB Samsung 850 EVO SSD, 280GB Intel Optane 900P
Display(s) 2x 1920x1200
Power Supply Cooler Master Silent Pro M (1000W)
Mouse Logitech G602
Keyboard Corsair K70 MK.2
Software Windows 10
Anyone know if this applies to GNU Octave as well?
 

Cheeseball

Not a Potato
Supporter
Joined
Jan 2, 2009
Messages
1,834 (0.33/day)
Location
Pittsburgh, PA
System Name 2023 AMD Work & Gaming Rig
Processor AMD Ryzen™ 7 7950X3D
Motherboard ASUS ROG Strix X670E-I Gaming WiFi
Cooling ID-COOLING SE-207-XT Slim Snow
Memory TEAMGROUP T-Force Delta RGB 2x16GB DDR5-6000 CL30
Video Card(s) ASRock Radeon RX 7900 XTX 24 GB GDDR6 (MBA)
Storage 2TB Samsung 990 Pro NVMe
Display(s) AOpen Fire Legend 24" 390Hz (25XV2Q), Alienware 34" 165Hz (AW3423DWF), LG C2 42" 120Hz (OLED42C2PUA)
Case Cooler Master Q300L V2
Audio Device(s) Kanto Audio YU2 and SUB8 Desktop Speakers and Subwoofer, Cloud Alpha Wireless
Power Supply Corsair RM850x White (2021)
Mouse Logitech Pro Superlight (White), G303 Shroud Edition
Keyboard Corsair K70 RGB TKL Champion Series / Wooting 60HE / NuPhy Air75
VR HMD Occulus Quest 2 128GB
Software Windows 11 Pro 64-bit 22H2 Build 22621.1992
Anyone know if this applies to GNU Octave as well?

GNU Octave will compile under any competent C++ compiler, including Intel's C++ Compiler, Gcc and Clang. It isn't any faster with any specific compiler as it is not heavy (and not meant to be) on vectorized processing compared to MATLAB.

Similarly, we could criticize Nvidia because CUDA doesn't work with Radeon.

Technically CUDA can work on any modern GPU through HIP, but it won't be as efficient (due to AMD's target architecture, not because of a limitation).

Also, MATLAB isn't being unfair by going with Intel's MKLs. They need to because of AVX-512 and efficient FFTs. If your code is mostly linear algebra and not implementing any NLP, then MATLAB on AMD CPUs should be fine, which is why they implemented the MKL_DEBUG_CPU_TYPE=5 environment variable in the first place.
 
Joined
Mar 16, 2017
Messages
211 (0.08/day)
Location
behind you
Processor Threadripper 1950X (4.0 GHz OC)
Motherboard ASRock X399 Professional Gaming
Cooling Enermax Liqtech TR4
Memory 48GB DDR4 2934MHz
Video Card(s) Nvidia GTX 1080, GTX 660TI
Storage 2TB Western Digital HDD, 500GB Samsung 850 EVO SSD, 280GB Intel Optane 900P
Display(s) 2x 1920x1200
Power Supply Cooler Master Silent Pro M (1000W)
Mouse Logitech G602
Keyboard Corsair K70 MK.2
Software Windows 10

Cheeseball

Not a Potato
Supporter
Joined
Jan 2, 2009
Messages
1,834 (0.33/day)
Location
Pittsburgh, PA
System Name 2023 AMD Work & Gaming Rig
Processor AMD Ryzen™ 7 7950X3D
Motherboard ASUS ROG Strix X670E-I Gaming WiFi
Cooling ID-COOLING SE-207-XT Slim Snow
Memory TEAMGROUP T-Force Delta RGB 2x16GB DDR5-6000 CL30
Video Card(s) ASRock Radeon RX 7900 XTX 24 GB GDDR6 (MBA)
Storage 2TB Samsung 990 Pro NVMe
Display(s) AOpen Fire Legend 24" 390Hz (25XV2Q), Alienware 34" 165Hz (AW3423DWF), LG C2 42" 120Hz (OLED42C2PUA)
Case Cooler Master Q300L V2
Audio Device(s) Kanto Audio YU2 and SUB8 Desktop Speakers and Subwoofer, Cloud Alpha Wireless
Power Supply Corsair RM850x White (2021)
Mouse Logitech Pro Superlight (White), G303 Shroud Edition
Keyboard Corsair K70 RGB TKL Champion Series / Wooting 60HE / NuPhy Air75
VR HMD Occulus Quest 2 128GB
Software Windows 11 Pro 64-bit 22H2 Build 22621.1992

tabascosauz

Moderator
Supporter
Staff member
Joined
Jun 24, 2015
Messages
7,457 (2.33/day)
Location
Western Canada
System Name ab┃ob
Processor 7800X3D┃5800X3D
Motherboard B650E PG-ITX┃B550-I Strix
Cooling PA120+T30┃AXP120x67
Memory 64GB 6000CL30┃32GB 3600CL14
Video Card(s) RTX 4070 Ti Eagle┃RTX A2000
Storage 8TB of SSDs┃1TB SN550
Display(s) 43" QN90B / 32" M32Q / 27" S2721DGF
Case Caselabs S3┃Lone Industries L5
Power Supply Corsair HX1000┃HDPlex
First of all, before I answer a few posts, I have to say... I'm really shocked and disappointed by how little some of you know about software and this kind of APIs.
It's not like I expect everyone to be a developer, but having a minimal understanding of how software works would be useful while discussing this topic...
I think I expected more...

Maybe those far-fetched analogies don't work nearly as well as you thought they would in your head, since every mainstream and higher end chip from the two camps in recent history is compatible with at least AVX? AVX instructions are not a partisan matter, unlike CUDA that is a fundamental part of Nvidia architectures, and car headunits which employ a vastly different variety of hardware and software platforms. I mean, unless you really want to pull out a random Nehalem or Thuban CPU...

AMD doesn't support AVX-512, but they can make use of AVX at the very least (just like Intel since SB) and AVX2 (just like Intel since Haswell). Even on Intel, AVX-512 support for its various instructions is still selective and patchy on the whopping two current platforms that can support it (Xeon Phi and non-mainstream Skylake). By that logic, Broadwell-E and Haswell-E should also be kicked all the way down to hilarious SSE despite AVX and AVX-256 support. But the "GenuineIntel" string means that they aren't, now, are they?
 
Joined
Mar 23, 2016
Messages
4,839 (1.65/day)
Processor Ryzen 9 5900X
Motherboard MSI B450 Tomahawk ATX
Cooling Cooler Master Hyper 212 Black Edition
Memory VENGEANCE LPX 2 x 16GB DDR4-3600 C18 OCed 3800
Video Card(s) XFX Speedster SWFT309 AMD Radeon RX 6700 XT CORE Gaming
Storage 970 EVO NVMe M.2 500 GB, 870 QVO 1 TB
Display(s) Samsung 28” 4K monitor
Case Phantek Eclipse P400S (PH-EC416PS)
Audio Device(s) EVGA NU Audio
Power Supply EVGA 850 BQ
Mouse SteelSeries Rival 310
Keyboard Logitech G G413 Silver
Software Windows 10 Professional 64-bit v22H2
Joined
Jan 8, 2017
Messages
8,860 (3.36/day)
System Name Good enough
Processor AMD Ryzen R9 7900 - Alphacool Eisblock XPX Aurora Edge
Motherboard ASRock B650 Pro RS
Cooling 2x 360mm NexXxoS ST30 X-Flow, 1x 360mm NexXxoS ST30, 1x 240mm NexXxoS ST30
Memory 32GB - FURY Beast RGB 5600 Mhz
Video Card(s) Sapphire RX 7900 XT - Alphacool Eisblock Aurora
Storage 1x Kingston KC3000 1TB 1x Kingston A2000 1TB, 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) LG UltraGear 32GN650-B + 4K Samsung TV
Case Phanteks NV7
Power Supply GPS-750C
This is a modification that you are really risking your own lives. You know, within one update Intel can make some modifications that "unintentionally" cause numerical bugs on some user-modified systems. There may well be some already.

What's ironic is that Intel's compiler is known for generating unsafe optimizations and use floating point math that goes outside of IEEE standards all the time, by default. And many wonder why it's faster, it's not like Intel's engineers know some crazy algorithms that others don't.
 
Last edited:
Joined
Aug 22, 2014
Messages
39 (0.01/day)
System Name Bird's Monolith
Processor Intel i7-4770k 4.6 GHz (liquid metal)
Motherboard Asrock Z87 Extreme3
Cooling Noctua NH-D14, Noctua 140mm Case Fans
Memory 16 GB G-Skill Trident-X DDR3 2400 CAS 9
Video Card(s) EVGA 1080ti SC2 Hybrid
Storage 2 TB Mushkin Triactor 3D (RAID 0)
Display(s) Dell S2716DG / Samsung Q80R QLED TV
Case Fractal Design Define R4
Audio Device(s) Audio Engine D1 DAC, A5+ Speakers, SteelSeries Arctis 7
Power Supply Seasonic Platinum 660 W
Mouse SteelSeries Rival
Keyboard SteelSeries Apex
Software Windows 10 Pro x64
Anyone using Matlab here? Would love to get some real-life scenario data for my CPU reviews

I've got 10 years of MATLAB experience under my belt. I've got some scripts that were heavily multi-threaded for my master's degree that can definitely put a CPU to work. I also use MATLAB extensively at work for data acquisition and signal processing purposes, I've also tapped it some for machine learning tasks. I'm very glad this made it to the news feed because I just got a brand new ThreadRipper 2990WX workstation that we intend to use MATLAB on it quite extensively and given how good a value Zen has been, getting a lot more them so I will definitely be making these tweaks.

There are some tricks to measuring MATLAB performance, especially because it is not a compiled language but it can do just in time compiling, you can get variations in performance run-to-run. Feel free to send me a PM, I'd be happy to give you my 2 cents where I can.
 
Joined
Feb 18, 2005
Messages
5,239 (0.75/day)
Location
Ikenai borderline!
System Name Firelance.
Processor Threadripper 3960X
Motherboard ROG Strix TRX40-E Gaming
Cooling IceGem 360 + 6x Arctic Cooling P12
Memory 8x 16GB Patriot Viper DDR4-3200 CL16
Video Card(s) MSI GeForce RTX 4060 Ti Ventus 2X OC
Storage 2TB WD SN850X (boot), 4TB Crucial P3 (data)
Display(s) 3x AOC Q32E2N (32" 2560x1440 75Hz)
Case Enthoo Pro II Server Edition (Closed Panel) + 6 fans
Power Supply Fractal Design Ion+ 2 Platinum 760W
Mouse Logitech G602
Keyboard Logitech G613
Software Windows 10 Professional x64
First of all, before I answer a few posts, I have to say... I'm really shocked and disappointed by how little some of you know about software and this kind of APIs.
It's not like I expect everyone to be a developer, but having a minimal understanding of how software works would be useful while discussing this topic...
I think I expected more...

...

Thank you. I don't understand why it's so difficult for people to understand that MKL is Intel's software, therefore Intel is free to do whatever they want with it. They would be an issue if they were forcing people to use that software, but they aren't - nothing's stopping AMD from writing a library that does the exact same thing as MKL but isn't artificially hobbled on non-Intel CPUs, and nothing's stopping MATLAB from using that replacement library. Except for the fact that it doesn't exist.

Is it a s**tty, idiotic, anticompetitive practice? Yes. Does it achieve anything else than making Intel look like idiots? No. Is it their right to do this? Absolutely.

Finally, I'm not sure why this is even making news now. It's been common knowledge in ICC since 2009 and in MKL since 2013, so it's hardly new, and anyone who knows anything about ICC or MKL already knows how to patch the offending check out.
 
Joined
Mar 16, 2017
Messages
211 (0.08/day)
Location
behind you
Processor Threadripper 1950X (4.0 GHz OC)
Motherboard ASRock X399 Professional Gaming
Cooling Enermax Liqtech TR4
Memory 48GB DDR4 2934MHz
Video Card(s) Nvidia GTX 1080, GTX 660TI
Storage 2TB Western Digital HDD, 500GB Samsung 850 EVO SSD, 280GB Intel Optane 900P
Display(s) 2x 1920x1200
Power Supply Cooler Master Silent Pro M (1000W)
Mouse Logitech G602
Keyboard Corsair K70 MK.2
Software Windows 10
GNU Octave will compile under any competent C++ compiler, including Intel's C++ Compiler, Gcc and Clang. It isn't any faster with any specific compiler as it is not heavy (and not meant to be) on vectorized processing compared to MATLAB.

Wait, really? Matrices are one of (if not THE) fundamental data types in MATLAB and parallel operations are the norm. I'm surprised Octave isn't similarly optimized for them, though that would be typical of GNU's software.
 

Cheeseball

Not a Potato
Supporter
Joined
Jan 2, 2009
Messages
1,834 (0.33/day)
Location
Pittsburgh, PA
System Name 2023 AMD Work & Gaming Rig
Processor AMD Ryzen™ 7 7950X3D
Motherboard ASUS ROG Strix X670E-I Gaming WiFi
Cooling ID-COOLING SE-207-XT Slim Snow
Memory TEAMGROUP T-Force Delta RGB 2x16GB DDR5-6000 CL30
Video Card(s) ASRock Radeon RX 7900 XTX 24 GB GDDR6 (MBA)
Storage 2TB Samsung 990 Pro NVMe
Display(s) AOpen Fire Legend 24" 390Hz (25XV2Q), Alienware 34" 165Hz (AW3423DWF), LG C2 42" 120Hz (OLED42C2PUA)
Case Cooler Master Q300L V2
Audio Device(s) Kanto Audio YU2 and SUB8 Desktop Speakers and Subwoofer, Cloud Alpha Wireless
Power Supply Corsair RM850x White (2021)
Mouse Logitech Pro Superlight (White), G303 Shroud Edition
Keyboard Corsair K70 RGB TKL Champion Series / Wooting 60HE / NuPhy Air75
VR HMD Occulus Quest 2 128GB
Software Windows 11 Pro 64-bit 22H2 Build 22621.1992
Wait, really? Matrices are one of (if not THE) fundamental data types in MATLAB and parallel operations are the norm. I'm surprised Octave isn't similarly optimized for them, though that would be typical of GNU's software.

Octave is pretty optimized for what it is. Just don't expect it to be faster than MATLAB or Scilab. Remember you should be using different Octave builds for your use purpose and not just using a generic build (e.g. FFT), unless you're just starting out or doing more numerical stuff.
 
Low quality post by SKD007
Joined
Jan 8, 2009
Messages
548 (0.10/day)
System Name AMD RyZen PC
Processor AMD RyZen 5950x
Motherboard ASUS Crosshair VIII Hero 570x WIFI
Cooling Custom Loop
Memory 64GB G.Skill Trident Z DDR4 3200 MHz 14C x4
Video Card(s) Evga 3080 TI
Storage Seagate 8TB + 3TB + 4TB + 2TB external + 512 Samsung 980
Display(s) LG 4K 144Hz 27GN950-B
Case Thermaltake CA-1F8-00M1WN-02 Core X71 Tempered Glass Edition Black
Audio Device(s) XI-FI 8.1
Power Supply EVGA 700W
Mouse Microsoft
Keyboard Microsoft
Software Windows 10 x64 Pro
I remember posting my find about crysis in ngohq website. It made quite a big noise at that time. Nvidia influenced game developer to make the the game to use 4x2AA and used 4x4sample when user select 4xAA In game by detecting vendor ID.. it’s a shame they have such shady business model.
 
Joined
Jun 28, 2016
Messages
3,595 (1.27/day)
AMD doesn't support AVX-512, but they can make use of AVX at the very least (just like Intel since SB) and AVX2 (just like Intel since Haswell). Even on Intel, AVX-512 support for its various instructions is still selective and patchy on the whopping two current platforms that can support it (Xeon Phi and non-mainstream Skylake). By that logic, Broadwell-E and Haswell-E should also be kicked all the way down to hilarious SSE despite AVX and AVX-256 support. But the "GenuineIntel" string means that they aren't, now, are they?
I don't intend to go into technicalities of how this works. It does. Libraries and compiler guarantee that unsupported instructions aren't sent to CPU (unless you force them in Assembly).

As I said earlier: Intel MKL is not supposed to serve the whole market. It's not universal. It's their software - made for their hardware.
They took things that existed (BLAS, LAPACK, FFT etc) and they've rewritten them to make the best use of what Intel CPU can provide. That's it.

MKL is not meant to replace the open-source libraries. Software makers can (and should) provide a separate implementation for AMD - just like they would have to do for ARM etc.
Intel and AMD share the same fundamental architecture, but there are significant differences in instruction set (not just AVX-512, but also DNN and more things will follow soon).

Is Matlab optimally coded for AMD CPUs? No. But it's MathWorks' and AMD's fault, not Intel's.

Is it a s**tty, idiotic, anticompetitive practice? Yes.
Why is this anticompetitive? And if yes, then who is to blame?

If someone said MathWorks promotes Intel (i.e. Intel pays them not to make an AMD version), it would smell flat-Earth conspiracy, but I couldn't really prove that it's wrong.
But the thesis in this discussion, that Intel should optimize their software for competing hardware, is just bizarre.

Code:
Supported Hardware
Intel® Xeon® processor
Intel® Core™ processor family
Intel Atom® processor
Intel® Xeon Phi™ processor
It's official. AMD isn't supported. Can we move on? :)
 
Joined
Feb 18, 2005
Messages
5,239 (0.75/day)
Location
Ikenai borderline!
System Name Firelance.
Processor Threadripper 3960X
Motherboard ROG Strix TRX40-E Gaming
Cooling IceGem 360 + 6x Arctic Cooling P12
Memory 8x 16GB Patriot Viper DDR4-3200 CL16
Video Card(s) MSI GeForce RTX 4060 Ti Ventus 2X OC
Storage 2TB WD SN850X (boot), 4TB Crucial P3 (data)
Display(s) 3x AOC Q32E2N (32" 2560x1440 75Hz)
Case Enthoo Pro II Server Edition (Closed Panel) + 6 fans
Power Supply Fractal Design Ion+ 2 Platinum 760W
Mouse Logitech G602
Keyboard Logitech G613
Software Windows 10 Professional x64
Why is this anticompetitive? And if yes, then who is to blame?

Anticompetitive in terms of it deliberately generating worse code for non-Intel processors for no good reason. Intel created the CPUID instruction back in 1993 to allow programs to determine what features the system processor supports, it's absolutely impossible that the people who write ICC and MKL are unaware of this. And any coder fresh out of school could tell you that using a string to check for features is bad on so many levels. So there's zero possibility this is a mistake or incompetence, which can only mean it's intended to disadvantage non-Intel CPUs, and that is the very definition of anticompetitive behaviour.

Given the above, and the fact that MKL is essentially the only library available that does what it does, it could likely be argued that Intel's behaviour here violates antitrust laws. Certainly, if someone wanted to sue Intel on this basis, they would likely have a better chance than when they were sued for doing this in ICC - at that time Intel was able to weasel their way out of a deserved smackdown by virtue of the fact that consumers weren't forced to use ICC, as there were other compilers that could be used. Yes, you could argue that AMD has had, and does have, the opportunity to create a competing library - but everyone knows how difficult it is to dislodge the market incumbent, even with a superior product.

Honestly though, I don't care if this breaks the law or not, it's just really terrible and unnecessary behaviour that goes against the grain of everything that is responsible and ethical software engineering. I don't like to blow the "all software should be free" horn, but this is an example where it's really necessary.
 
Top