ste*_*vew 5 amd anaconda openblas
像许多其他人一样,我给自己买了一个新的 Ryzen CPU。我需要在我的博士学位中使用 Anaconda Python(以及 Tensorflow 等)。由于 Anaconda 现在预装了 MKL,这在 AMD CPU 上很慢,那么使用 openblas 设置 Anaconda 环境并链接 numpy 和 scikit-learn,同时保持所有其他软件包相同的最佳方法是什么?
我发现以下帖子都指向以某种方式安装某些软件包。
https://anaconda.org/anaconda/nomkl
Reddit 上的这篇文章对正在发生的事情进行了更彻底的解释,但这只是终端中的一个行,用于欺骗 MKL 认为您是 Intel 系统,因为 MKL 对非 Intel 设备做了一些令人讨厌的事情: \n https://www.reddit.com/r/MachineLearning/comments/f2pbvz/discussion_workaround_for_mkl_on_amd/
\n\n视窗:
\n\n使用管理员权限打开命令提示符 (CMD)并输入:
\n\nsetx /M MKL_DEBUG_CPU_TYPE 5\n
Run Code Online (Sandbox Code Playgroud)\n\n执行此操作将使更改永久生效,并且可供系统上使用 MKL 的所有程序使用,直到您再次从变量中删除该条目。
\n\n操作系统:
\n\n只需在终端中输入:
\n\nexport MKL_DEBUG_CPU_TYPE=5 \n
Run Code Online (Sandbox Code Playgroud)\n\n在从终端的同一实例运行脚本之前。
\n\nLinux 的永久解决方案:
\n\necho \'export MKL_DEBUG_CPU_TYPE=5\' >> ~/.profile\n
Run Code Online (Sandbox Code Playgroud)\n\n将在整个配置文件范围内应用该设置。
\n\n一些亮点,因为我认为如果有兴趣,您可以点击链接阅读全文:
\n\n“但是,默认情况下,许多软件包附带的数字库是 Intel MKL。对于某些操作,MKL 在 AMD CPU 上运行速度非常慢。这是因为 Intel MKL 使用区分性 CPU 调度程序,该调度程序不使用高效的代码路径CPU支持SIMD,但基于供应商字符串查询的结果。如果CPU来自AMD,则无论AMD CPU是否支持,MKL都不会使用SSE3-SSE4或AVX1/2扩展,而是回退到SSE是否更高效的 SIMD 扩展(例如 AVX2)。
\n\n此处提供的方法强制 MKL 支持 AVX2,与供应商字符串结果无关,并且应用时间不到一分钟。如果您拥有基于 Zen/Zen+/Zen2 \xc2\xb5Arch Ryzen/Threadripper 的 AMD CPU,这将极大地提高您的性能。”
\n