• 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
419 (0.07/day)
System Name Octopussy
Processor 1x Intel Core-i7 3930K @ 4.8GHz
Motherboard ASUS Rampage IV Extreme
Cooling Full water cooling, mostly Aqua Computer and EKWB stuff!
Memory 4x 4GB Corsair Dominator GT DDR3-2133 9-11-10-27-1T
Video Card(s) 2x Gigabyte GTX 980Ti G1 Gaming in SLI
Storage 8x Hitachi 5K3000 3TB RAID-6 (Adaptec 5805); 1x 512GB Samsung 950Pro (Angelbird Wings PX1)
Display(s) PLP: Dell 2007FBb 20" TFT + Dell U3011 30" TFT + Dell 2007FBb 20" TFT
Case CaseLabs TH10A
Audio Device(s) ASUS Xonar Phoebus
Power Supply SeaSonic SS-1000XP
Mouse Logitech MX Master
Keyboard SteelSeries Apex M800
Software MS Windows 10 Pro x64
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
 

OGoc

New Member
Joined
Aug 12, 2018
Messages
13 (0.03/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.
 
Joined
Oct 17, 2014
Messages
3,953 (2.10/day)
Location
USA
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
114 (0.05/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.
 

Mouth of Sauron

New Member
Joined
Oct 12, 2019
Messages
23 (0.38/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
1,471 (0.64/day)
Location
Athens, Greece
System Name 3 systems: Gaming / Internet / HTPC
Processor Intel i5 4460 / Thuban 1455T(Unlocked 645) @ 3.7GHz @ 1.30V / A6 7400K
Motherboard ASRock Z97 Extreme6 / Gigabyte GA-990XA-UD3 / ASUS FM2+
Cooling Modified AM2 Asetek MicroChill / Noctua U12S / CoolerMaster TX2
Memory 16GB Kingston KHX1866C10D3 / 16GB Adata 2133MHz / 8GB Kingston 2400MHz (DDR3)
Video Card(s) GT 620 / ASUS HD7870 2GB + GT 710 (PhysX) / A6 7400K iGPU
Storage Intel NVMe 500GB, Samsung NVMe 250GB + more / Kingston 240GB + more / Samsung SSD 120GB
Display(s) Samsung LE32D550 32'' TV(2 systems connected) / LG 42''
Case Sharkoon Rebel 12 / Sharkoon Rebel 9 / Xigmatek Midguard
Audio Device(s) onboard
Power Supply Chieftec 850W / Sharkoon 650W / Chieftec 560W
Mouse CoolerMaster / Rapoo / Logitech
Keyboard CoolerMaster / Microsoft / Logitech
Software Windows
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
3,119 (2.30/day)
Processor Ryzen 5 3600
Motherboard MSI B450 Tomahawk ATX
Cooling Scythe Kotetsu with AM4 bracket
Memory PNY Anarchy-X XLR8 Red DDR4 3200 MHz C15-17-17-17-35
Video Card(s) MSI GeForce RTX 2060 GAMING Z 6G
Storage Samsung 970 EVO NVMe M.2 500 GB, SanDisk Ultra II 480 GB
Display(s) Samsung SyncMaster C27H711 OC refresh rate 110Hz
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 v1903
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.
 
Joined
Jan 2, 2009
Messages
895 (0.22/day)
Location
Pittsburgh, PA
System Name Dell G5 15 5587 (2018)
Processor Intel® Core™ i7-8750H Processor (Coffee Lake)
Motherboard Intel HM370
Cooling Stock Dell twin-fan and copper heatpipes cooling system
Memory SK hynix 16GB (8GBx2) - 2Rx8 DDR4 SODIMM 2666MHz
Video Card(s) GeForce GTX 1060 Max-Q 6 GB GDDR5 RAM
Storage ADATA XPG SX8200 Pro 512GB NVMe M.2 / ADATA SU800 1TB SATA 2.5"
Display(s) Stock Dell 60 Hz IPS LCD panel
Case Stock Dell G5 15 5587 (2018) case
Power Supply Dell Power Adapter 180W NDFTY
Mouse Dell touchpad / D.Va Razer Abyssus Elite
Keyboard Stock Dell G5 15 5587 laptop keyboard with backlit RED LEDs
Software Windows 10 Home 64-bit
Joined
Aug 20, 2007
Messages
12,099 (2.69/day)
System Name Pioneer
Processor Intel i9 9900k
Motherboard ASRock Z390 Taichi
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory G.SKILL TridentZ Series 32GB (4 x 8GB) DDR4-3200 @ 13-13-13-33-2T
Video Card(s) EVGA GTX 1080 FTW2
Storage Mushkin Pilot-E 2TB NVMe SSD w/ EKWB M.2 Heatsink
Display(s) LG 32GK850G-B 1440p 32" AMVA Panel G-Sync 144hz Display
Case Thermaltake Core X31
Audio Device(s) Onboard TOSLINK to Schiit Modi MB to Schiit Asgard 2 Amp to AKG K7XX Ruby Red Massdrop Headphones
Power Supply EVGA SuperNova T2 850W 80Plus Titanium
Mouse ROCCAT Kone EMP
Keyboard WASD CODE 104-Key w/ Cherry MX Green Keyswitches, Doubleshot Vortex PBT White Transluscent Keycaps
Software Windows 10 x64 Enterprise... yes, it's legit.
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
75 (0.08/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
2,875 (2.28/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
194 (0.19/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 Microsoft wireless 3500
Keyboard Corsair K70 MK.2
Software Windows 10
Anyone know if this applies to GNU Octave as well?
 
Joined
Jan 2, 2009
Messages
895 (0.22/day)
Location
Pittsburgh, PA
System Name Dell G5 15 5587 (2018)
Processor Intel® Core™ i7-8750H Processor (Coffee Lake)
Motherboard Intel HM370
Cooling Stock Dell twin-fan and copper heatpipes cooling system
Memory SK hynix 16GB (8GBx2) - 2Rx8 DDR4 SODIMM 2666MHz
Video Card(s) GeForce GTX 1060 Max-Q 6 GB GDDR5 RAM
Storage ADATA XPG SX8200 Pro 512GB NVMe M.2 / ADATA SU800 1TB SATA 2.5"
Display(s) Stock Dell 60 Hz IPS LCD panel
Case Stock Dell G5 15 5587 (2018) case
Power Supply Dell Power Adapter 180W NDFTY
Mouse Dell touchpad / D.Va Razer Abyssus Elite
Keyboard Stock Dell G5 15 5587 laptop keyboard with backlit RED LEDs
Software Windows 10 Home 64-bit
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
194 (0.19/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 Microsoft wireless 3500
Keyboard Corsair K70 MK.2
Software Windows 10
Joined
Jan 2, 2009
Messages
895 (0.22/day)
Location
Pittsburgh, PA
System Name Dell G5 15 5587 (2018)
Processor Intel® Core™ i7-8750H Processor (Coffee Lake)
Motherboard Intel HM370
Cooling Stock Dell twin-fan and copper heatpipes cooling system
Memory SK hynix 16GB (8GBx2) - 2Rx8 DDR4 SODIMM 2666MHz
Video Card(s) GeForce GTX 1060 Max-Q 6 GB GDDR5 RAM
Storage ADATA XPG SX8200 Pro 512GB NVMe M.2 / ADATA SU800 1TB SATA 2.5"
Display(s) Stock Dell 60 Hz IPS LCD panel
Case Stock Dell G5 15 5587 (2018) case
Power Supply Dell Power Adapter 180W NDFTY
Mouse Dell touchpad / D.Va Razer Abyssus Elite
Keyboard Stock Dell G5 15 5587 laptop keyboard with backlit RED LEDs
Software Windows 10 Home 64-bit
Joined
Jun 24, 2015
Messages
1,298 (0.80/day)
Location
Western Canada
System Name Ol' Beastie | 雨上がりの空
Processor R7 3700X | i7-4790K
Motherboard B450I Aorus (F50) | H97N-WIFI (F7)
Cooling NH-U9S | NH-C14S
Memory 32GB Trident Z RGB (DJR, 16-19-20-32) | 16GB Fury 10-11-10-30
Video Card(s) NVIDIA RTX 2060 S FE | EVGA GTX 1070 SC ACX3.0
Storage SX8200 - MX300 - Blue3D | 850 EVO
Display(s) BenQ GW2765HT | Samsung F2380
Case M1v5 + Pelican 1514 | TJ08T-E
Audio Device(s) DT 770 80Ω - Blue Snowball iCE
Power Supply Corsair SF600G + Cablemod | Seasonic SSR-550PX
Mouse Logitech G602 | Logitech MX Master
Keyboard Noxary X60 R - FMJ - Noxary T60 R2 - RAMA M10-B
Software Windows 10 1909
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
3,119 (2.30/day)
Processor Ryzen 5 3600
Motherboard MSI B450 Tomahawk ATX
Cooling Scythe Kotetsu with AM4 bracket
Memory PNY Anarchy-X XLR8 Red DDR4 3200 MHz C15-17-17-17-35
Video Card(s) MSI GeForce RTX 2060 GAMING Z 6G
Storage Samsung 970 EVO NVMe M.2 500 GB, SanDisk Ultra II 480 GB
Display(s) Samsung SyncMaster C27H711 OC refresh rate 110Hz
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 v1903
Joined
Jan 8, 2017
Messages
4,608 (4.31/day)
System Name Good enough
Processor AMD Ryzen R7 1700X - 4.0 Ghz / 1.350V
Motherboard ASRock B450M Pro4
Cooling Scythe Katana 4 - 3x 120mm case fans
Memory 16GB - Corsair Vengeance LPX
Video Card(s) OEM Dell GTX 1080
Storage 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) 4K Samsung TV
Case Zalman R1
Power Supply 500W
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.02/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
2,259 (0.42/day)
Location
United Kingdom
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
194 (0.19/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 Microsoft wireless 3500
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.
 
Joined
Jan 2, 2009
Messages
895 (0.22/day)
Location
Pittsburgh, PA
System Name Dell G5 15 5587 (2018)
Processor Intel® Core™ i7-8750H Processor (Coffee Lake)
Motherboard Intel HM370
Cooling Stock Dell twin-fan and copper heatpipes cooling system
Memory SK hynix 16GB (8GBx2) - 2Rx8 DDR4 SODIMM 2666MHz
Video Card(s) GeForce GTX 1060 Max-Q 6 GB GDDR5 RAM
Storage ADATA XPG SX8200 Pro 512GB NVMe M.2 / ADATA SU800 1TB SATA 2.5"
Display(s) Stock Dell 60 Hz IPS LCD panel
Case Stock Dell G5 15 5587 (2018) case
Power Supply Dell Power Adapter 180W NDFTY
Mouse Dell touchpad / D.Va Razer Abyssus Elite
Keyboard Stock Dell G5 15 5587 laptop keyboard with backlit RED LEDs
Software Windows 10 Home 64-bit
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 saikamaldoss
Joined
Jan 8, 2009
Messages
459 (0.12/day)
Location
Florida
System Name AMD RyZen PC
Processor AMD RyZen 1800x
Motherboard ASUS Crosshair VI Hero 370x
Cooling Corsair H100i
Memory 64GB G.Skill Trident Z DDR4 3200 MHz 14C x4
Video Card(s) AMD Radion VEGA 64
Storage Seagate 3TB + 2TB + 2TB external + 256 Samsung M.2
Display(s) Samsung UN65KS8000F 4K, LG 4K 27UD69P-W
Case NZXT - H440
Audio Device(s) XI-FI 8.1
Power Supply EVGA 700W
Mouse Microsoft
Keyboard Microsoft
Software Windows 10 x64
Benchmark Scores https://valid.x86.fr/njplmm
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
2,875 (2.28/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
2,259 (0.42/day)
Location
United Kingdom
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