作者takahashikag (アナタハソコニイマスカ)
看板PC_Shopping
标题Re: [闲聊] 如何绕过matlab 弱化AMD CPU功能
时间Fri Nov 29 14:08:00 2019
: 推 a58524andy : 懒人包:if amd ignore avx2 sse3 sse4 11/28 11:35
: → windrain0317: 就matlab用了intel mkl啊 11/28 11:39
: → a58524andy : 里面是说mkl开哪些指令是依据vendor而非指令列表 11/28 11:40
: → a58524andy : 所以用一些环境变数硬让他开起来ryzen就扳回一城惹 11/28 11:41
: → a58524andy : 测试结果来说i+mkl还是有些优势啦,像是矩阵乘法那 11/28 11:42
: → a58524andy : 项,18c36t的10980xe还是赢过24c48t的3960x 11/28 11:43
: → a58524andy : 3970x才赢过10980xe 11/28 11:43
: 推 ariadne : AMD也可以自己出MKL 这方面intel真的有下成本 11/28 11:47
: 推 doom3 : 对手CPU只用SSE1 也太针对了吧 11/28 13:34
: 推 twosheep0603: numpy系列好像也有MKL的问题 改参数会起飞XD 11/28 15:31
: → pig : 堆土机时代根本不会有人在乎这个啊 AVX1/2 有开跟没 11/28 15:42
: → pig : 开差不了多少吧 XD 11/28 15:43
: → pig : 到了 zen 才开始有人注意,用的人多了自然就会改正 11/28 15:44
有玩机械学习写 Python Code 的,如果换香香机应该也会想:
喵的怎麽有时候 3700x 跑不赢不知到多少年前的 E3-1230v2
对,我就是跑 SVM 跟 Naive Bayes 时越想越不对劲
然後我找到了 Reddit 讨论串跟 GitHub 上的资源
http://bit.ly/2L3w5Fy ,
Reddit, Ryzen and Intel's Anti-competitive MKL
http://bit.ly/2R0sD2j ,
Ryzen 3900X vs Intel Xeon 2175W, Python numpy
重点就是这段,尤其开发环境是 Anaconda 的用户应该连署去逼社群改写这种垃圾奥步
Intel's MKL check the CPUID is GenuineIntel or not, if detected the non-intel cpu, MKL will choose the "maximum capability" code (i.e. SSE2 - slowset) Intel's "cripple AMD" function Anaconda's numpy use Intel TBB instead of OpenMP, Intel TBB use the intel's proprietary method to detect the CPU or NUMA topology, in this situation zen's SMT will be recognize to the real core, it hurt the ALU performance.
GitHub 上有改善方案,但我怕把 Anaconda 炸掉所以观望
http://bit.ly/34vjvqr
但光是用 n_jobs 这个参数去强迫 sklearn 使用 Ryzen 的所有核心,都能把原来的运算时间压缩到 20% 甚至更少
https://i.imgur.com/Dqfz9ta.png
https://i.imgur.com/XAua4cn.png
这招真的是 intel 效能输人家的时候最爱在编译器搞的烂招
我想应该最早可以追溯到 2000 前後的 3DMark,就是那个 Pentium4 被 Athlon 鎚爆的时代
对,
AMD Ryzen 的 Python Performance 就是输在 intel 把二十年前的烂招回锅
--
while(
user==
alone){
user=
find(
girlfriend);}
return user;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.23.182.59 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PC_Shopping/M.1575007686.A.28E.html
1F:→ commandoEX : 2000年应该是Pentium/PentiumII 11/29 14:16
当年的 Willamette 架构 2000 Q4,Northwood 架构 2002 Q1
常看痴汉水球大的文章,真的要干古时很方便
2F:推 WARgame723 : 简单来说,AMD理论数据很强,使用体验很糟 11/29 14:17
http://i.imgur.com/iUKNJl2.jpg
3F:推 yankeefat : 这应该可以命名为"软体中立性"的问题了 11/29 14:18
4F:推 Leohs : 推分享! 另外...桌布的程式是什麽阿 很好看 11/29 14:20
5F:推 hcwang1126 : 不要用Intel mkl就好了 来个open mkl 11/29 14:21
6F:推 ChangWufei : 打断你手脚就赢了 11/29 14:25
7F:→ commandoEX : 查了一下是我记错了 11/29 14:28
8F:嘘 SungHyun : 烂就烂牵拖有的没的 人家可以对软体优化你就不行 11/29 14:30
9F:→ SungHyun : 全世界就你毛病最多 11/29 14:30
http://i.imgur.com/iUKNJl2.jpg
10F:推 Mistborn : 楼上是不是看不懂乱嘘… 11/29 14:34
11F:推 elyjames : 欢乐 11/29 14:45
12F:推 slsamg7112 : 想请问桌面左边的监控程式是什麽(重点误 11/29 14:47
Rainmeter
https://i.imgur.com/YXQk4nj.png
13F:推 wenli978 : 乱嘘真的可拨 11/29 14:51
14F:推 kamir : 软体公司政策 11/29 14:53
15F:推 AreLies : SH不意外 去A一下ID 11/29 14:56
16F:嘘 BFer : 全世界就SH你毛病最多 11/29 15:01
17F:推 extraymond : 加conda-forge的repo可以装nomkl或是用其他mkl 11/29 15:11
18F:推 twosheep0603: 一次钓出两只XDDD 11/29 15:11
19F:推 yu76 : 2只无教化可能 好怀念c52 风趣多了 11/29 15:17
20F:推 AISC : 奥步 11/29 15:18
21F:→ mikapauli : scikit-learn本来就要设定n_jobs,这即使用Intel也 11/29 15:22
22F:→ mikapauli : 一样吧。mkl影响的是numpy模组。 11/29 15:23
我的感觉是多核心使用率的问题,4C8T 他是可以吃到一定使用量,但 8C16T 就不行
如果用 Ryzen Master 把星星的频率拉上来是可以改善,但的确用 n_jobs 设定最快
不过 Ryzen Python Issue 在技术社群的讨论一直都有
http://bit.ly/2qZ9tzd,stackoverflow, 参见回答部分
而且在这个 Sklearn 测试的部分,明明大家测试的时候 Ryzen 在 IPC 不论单核心或多核心表现平均都更佳
但跑起来就是惨不忍睹,你不觉得很怪吗?
http://bit.ly/2Y78I3n
23F:推 etrogpx : svm 可以用 thundersvm 11/29 15:25
24F:→ mikapauli : 而且如果Intel的OpenMP遇到其他公司的CPU选择最快的 11/29 15:28
25F:→ mikapauli : code,结果连执行都不能执行不就更惨 11/29 15:29
※ 编辑: takahashikag (59.124.231.117 台湾), 11/29/2019 15:42:05
26F:推 w180112 : 机器学习不都只要显卡吗 为何需要CPU效能 11/29 15:40
27F:推 tiayafu : 52教了女友後就不见了 11/29 15:43
28F:→ mikapauli : 难道用Intel就不用设定n_jobs? 11/29 16:07
29F:→ mikapauli : 因为支援Windows的GPU机器学习方案比起Linux少很多 11/29 16:09
30F:→ mikapauli : 在多GPU串联方案上也是如此。 11/29 16:11
31F:推 toppop : 777 原来如此 11/29 17:17
32F:推 matyih : AMD这领域真惨 GPU也被n卡整个占走ML市场 11/29 17:28
33F:→ suitup : 粉丝还是会护航人家intel肯砸资源 巴拉巴拉的 11/29 17:48
34F:→ school4303 : 难怪上次在用的时候 那个cpu使用率有够低... 11/29 18:00
35F:嘘 saimeitetsu : 红明显 Intel Skype 事件 11/29 18:16
36F:推 pipi5867 : 实际上就是intel肯花资源没错呀 还是学生? 11/29 18:43
37F:推 exeex : anaconda 要特别装openBLAS的numpy= = 预设都是inte 11/29 18:59
38F:→ exeex : l mkl 11/29 18:59
39F:推 hcwang1126 : 不过广为人知後 ryzen数学运算都会去避开intel的雷 11/29 19:14
40F:→ hcwang1126 : 我自己关察intel在其他的案子也开始伸手 11/29 19:14
41F:→ hcwang1126 : server还有很多攻防 主要的cpu不行 还是很辛苦 11/29 19:15
42F:→ windrain0317: 文中测试numpy,intel就靠AVX512冲的 11/29 19:28
43F:推 ejsizmmy : yoyodiy应该十年前就绕过intel mkl了 11/29 19:38
44F:→ ejsizmmy : 然後直接写微代码更新推土机code提升80%速度 11/29 19:40
45F:→ ejsizmmy : 後来还破解intelME直接安在推土机里面,直接欺骗M 11/29 19:41
46F:→ ejsizmmy : atlab绕过验证机制 11/29 19:41
47F:→ ejsizmmy : 可惜numpy太新了他那时已经回家耕田不问世事了 11/29 19:42
48F:→ ejsizmmy : 好了我掰不下去了 11/29 19:42
49F:嘘 saimeitetsu : 01小笨贤:继续秀下限 11/29 20:33
50F:→ saimeitetsu : Intel 微码 跟AMD跑分低无关 = = 11/29 20:35
51F:→ windrain0317: AMD低分就开相容模式跑啊 11/29 20:48
52F:→ windrain0317: 看那结果就完全针对Intel U打造 11/29 20:48
53F:推 ltyintw : 全世界就sh相容性最差 11/29 21:51
54F:推 AmigoSin : AMD不爽就花钱去买软体公司帮你最佳化啊 11/30 12:04
55F:→ huckerbying : AMD砸钱好像都砸在OpenSource Code居多.... 11/30 12:51
56F:嘘 saimeitetsu : 对选举选输的人说怪你自己不买票 11/30 12:59
57F:推 BFer : 楼上神比喻 11/30 13:26
58F:推 nucleargod : 自己 openMP 不用担心这种问题 11/30 13:35
59F:推 sppmg : 对选举选输的人说怪你自己不买票 还是学生?(帮补) 11/30 16:05
60F:推 superuser : 贿选仔:社会和你学生想的不一样啦 11/30 17:03
61F:推 leftless : 不是啊 别人出钱做的函式库没必要关心能不能用在 12/01 22:05
62F:→ leftless : 你的CPU上吧 既然不知道别人的CPU能不能跑就相容性 12/01 22:05
63F:→ leftless : 开到最大最保险呀 不然跑一跑不是更惨 12/01 22:06
64F:→ leftless : 不然跑一跑蓝屏不是更惨 12/01 22:06
65F:→ leftless : 这问题应该要算在Anaconda那些社群头上 12/01 22:07
66F:推 hakugetsu : 但是函式库不也可以侦测CPU支援哪些指令集吗? 12/02 17:24
67F:→ lionell : Intel没必要保证MKL能在AMD跑 12/04 17:49
68F:→ lionell : 原厂没保证那Matlab开了跑错谁负责? 12/04 17:50
69F:→ lionell : 用社群开发的OpenBLAS跑错的话 12/04 17:51
70F:→ lionell : Matlab要出来坦吗? 12/04 17:51
71F:→ lionell : 商业软体就是会这样绑手绑脚的顾虑一堆 12/04 17:53