Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 当您有AMD CPU时,您能加速使用英特尔MKL的代码吗?_Performance_Cross Platform_X86 64_Intel Mkl_Scientific Computing - Fatal编程技术网

Performance 当您有AMD CPU时,您能加速使用英特尔MKL的代码吗?

Performance 当您有AMD CPU时,您能加速使用英特尔MKL的代码吗?,performance,cross-platform,x86-64,intel-mkl,scientific-computing,Performance,Cross Platform,X86 64,Intel Mkl,Scientific Computing,我有一个AMD的cpu,我正在尝试运行一些使用英特尔MKL的代码。代码比我预期的要慢得多 当您有AMD CPU时,您能加速使用英特尔MKL的代码吗?怎么做?是的,你可以加速你的代码。设置环境变量MKL\u DEBUG\u CPU\u TYPE=5,然后运行代码。 Fy这个慢会影响 > MKL库,并运行在AMD CPU上(即影响所有操作系统,影响所有编程语言和所有程序(C++、C++、Python、AcANDA DA Python,再加上“强< >任何/强”,使用AMD CPU上的英特尔MKL

我有一个AMD的cpu,我正在尝试运行一些使用英特尔MKL的代码。代码比我预期的要慢得多

当您有AMD CPU时,您能加速使用英特尔MKL的代码吗?怎么做?是的,你可以加速你的代码。设置环境变量
MKL\u DEBUG\u CPU\u TYPE=5
,然后运行代码。

Fy这个慢会影响<强> > <英特尔> MKL库,并运行在AMD CPU上(即影响所有操作系统,影响所有编程语言和所有程序(C++、C++、Python、AcANDA DA Python,再加上“强< >任何/强”,使用AMD CPU上的英特尔MKL库)) 仅供参考,设置和获取环境变量超出了此问题的范围,但以下是一些有用的链接:

  • 为及
    • 就我个人而言:“旧”控制面板-->系统-->高级-->环境变量-->系统变量-->ceate新
  • 对于Linux
    • 对于希望仅为自己用户设置环境变量的
      bash
      用户的简单情况,请将行
      export MKL\u DEBUG\u CPU\u TYPE=5
      附加到用户的
      .bashrc
      文件中



p、 美国

关于“为什么/如何设置环境变量导致代码运行速度显著加快?”
  • 默认行为是英特尔MKL检查CPU,如果检测到非英特尔,则运行较慢的代码
  • 设置环境变量会覆盖默认行为,并导致在没有英特尔硬件的情况下执行更快的代码
您可能想知道“为什么英特尔的MKL库中的软件速度会变慢?”?
  • 英特尔多年来一直让他们的编译代码先检查CPU,然后如果CPU被检测为非英特尔,代码会选择运行较慢的代码
  • 有一场官司
  • 诉讼的结果是,英特尔必须披露他们正在做的事情,但不必停止他们正在做的事情
  • 这是包含更多历史记录和信息的wiki页面:

测量问题说明:@ead我编辑了我的答案,提供了一些关于“为什么”设置环境变量加快代码速度的信息。详细信息是,慢的非英特尔路径使用SSE,而快的路径(由MKL_DEBUG_CPU_TYPE=5触发)使用AVX2可能值得一提…@ead鉴于Intel MKL是封闭源代码软件,我无法查看代码,因此除了观察到其运行速度较慢之外,我无法就其他细节发表任何声明。无需查看代码:
perf
告诉人们需要知道的一切……虽然琐事并不乏味,但我认为t太抽象了,无法真正理解两者的区别。@ead我从来没有使用过
perf
,所以使用开源工具您可以找到类似的东西真是太神奇了。