【问题标题】:ATLAS install: Really need to get past CPU throttle checkATLAS 安装:确实需要通过 CPU 油门检查
【发布时间】:2013-01-29 21:13:25
【问题描述】:

ATLAS 3.10.1 不会安装在我组织的 CentOS 6.x 平台上,因为它检测到 CPU 节流。在旧版本的软件包中,有一个配置标志可以关闭油门检查 (-Si cputhrchk 0) 并继续前进。该选项在几个版本前被取消。我理解该决定背后的原因——开发人员担心他们的软件的性能和声誉,而 CPU 节流使 ATLAS 无法自行调整。美好的。我的问题是,不管 ATLAS 的性能如何,我只是必须把东西建成。我知道有一些方法可以停止节流,但我没有也可能不会获得在这台机器上弄乱 CPU 频率的许可。所以我需要的是一种通过 ATLAS 油门检查的方法。我看过一些关于破解配置脚本的讨论,但我自己看不到如何去做。没有人在 ATLAS sourceforge 网站上回答,这并不是要批评那里的任何人。只是想表明我的情况。所以:有人知道如何通过 ATLAS 的油门检查吗?谢谢。

【问题讨论】:

  • 我打算建议你在 Atlas 讨论组发帖 - 但你已经去过那里/做过那件事:sourceforge.net/p/math-atlas/support-requests/886。
  • @paulsm4,是的。这是我最后的手段!谢谢。
  • 另一种选择是下载和构建 ATLAS 3.9.79(2012 年 6 月 13 日发布)。这是之前的版本,他们禁用了“被滥用的-Si cputhrchk 0”。有关详细信息,请参阅源目录中的“ChangeLog”。
  • 3.9.79 似乎在 sourceforge 上不可用。看起来这个开关被移除之前的最后一个稳定版本是 3.8.4(我想。不要在我面前。)知道关于那个版本的任何信息,比如它是否有问题或有任何问题?谢谢。
  • 对于它的价值,-Si cputhrchk 0 似乎已恢复作为configure 选项(我正在构建 3.10.2)。

标签: linux installation cpu-speed atlas


【解决方案1】:

免责声明:以下内容是肮脏、低俗、卑鄙的 hack(包含所有暗示的负面含义,没有任何正面含义),仅用作最后的手段。我和 ATLAS 开发人员均不对您的 ATLAS 库因使用此功能而遭受的性能损失承担任何责任。

首先确保您了解 CPU 节流检查的原因:ATLAS 提供了对某些算法的“自动调整”,如果启用了 CPU 节流,它就无法调整(因为基准测试时序不可靠)。用INSTALL.txt 的话来说:“CPU 节流使几乎所有时间都完全随机,所以任何 ATLAS 安装都是垃圾”(强调我的)。如果可能,请关闭 CPU 节流。

如果您绝对无法关闭 CPU 节流,并且您只需要安装有效的 ATLAS 即可,无论性能如何下降,请尝试以下操作:

cd /path/to/ATLAS
patch -p0 CONFIG/src/probe_arch.c << EOF
@@ -238,8 +238,7 @@ int main(int nargs, char **args)
       printf("CPU MHZ=%d\n",
              ProbeOneInt(OS, asmd, targ, "-m", "CPU MHZ=", &sure));
    if (flags & Pthrottle)
-      printf("CPU THROTTLE=%d\n",
-             ProbeOneInt(OS, asmd, targ, "-t", "CPU THROTTLE=", &sure));
+      printf("CPU THROTTLE=0\n");
    if (flags & P64)
    {
       if (asmd == gas_x86_64)
EOF

该补丁适用于 atlas 3.10.1。

【讨论】:

  • 谢谢。我理解性能问题。将极其小心地处理。如果我不得不诉诸于此,我保证我不会抱怨性能。非常感谢。
  • 我认为你做到了,鲍勃,但我知道如果我不把它放在那里,其他人会过来被咬。 (:
  • 所以这是 3 年前的事了,Atlas 构建仍然抱怨 - 它仍然是一个问题吗?其次,为什么 Atlas 不能通过节流来自行调整,保存参数,然后让我们将事情恢复“正常”?
【解决方案2】:

另一种禁用 CPU 节流的方法(从 3.10.2 开始)是修改 CONFIG/src/config.c 的 GetFlags() 方法,将 ThrChk 设置为 0。

cd /path/to/ATLAS/CONFIG/src
patch -p0 config.c << EOF
@@ -1026,7 +1026,7 @@
    *verb = 0;
    *NoCygwin = 0;
    *NoF77 = 0;
-   *ThrChk = 1;
+   *ThrChk = 0;
    *nthreads = -1;
    *tids = NULL;
    *omp = *AntThr = 0;
EOF

请注意,维护者删除了 -Si cputhrchk 0 的滥用,正如 config.c 中的以下评论所示:

/* Disabled due to abuse
      fprintf(stderr,
        "      -Si cputhrchk <0/1> : Ignore/heed CPU throttle probe\n");
 */

【讨论】:

    【解决方案3】:

    对于 3.10.3 版本,实际上有一个配置标志 --cripple-atlas-performance,它可以编译 ATLAS 而无需关心限制。

    【讨论】:

      【解决方案4】:

      如何在最近使用较新版本的 Fedora Linux(例如 Fedora 22)的计算机中关闭 CPU 节流。配方:

      1) 以 root 权限打开文件 /etc/default/grub 并在变量 GRUB_CMDLINE_LINUX 中添加参数“intel_pstate=disable”,然后保存文件,例如像

      GRUB_CMDLINE_LINUX="intel_pstate=disable rhgb quiet" #(其他参数)

      2) 重新生成 GRUB 配置以应用新更改:

      a) 对于 BIOS 系统: # grub2-mkconfig -o /boot/grub/grub2.cfg

      b) 对于 UEFI 系统: # grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

      然后重启。

      关于 (i) 配置 GRUB 引导加载程序和 (ii) 当系统是 UEFI 或 BIOS 时,在 Fedora Linux 中,例如见:

      https://docs.fedoraproject.org/en-US/Fedora/22/html/Multiboot_Guide/GRUB-configuration.html

      https://docs.fedoraproject.org/en-US/Fedora/23/html/Multiboot_Guide/BOOT-BIOS_or_UEFI.html

      【讨论】:

        【解决方案5】:

        嗯,这不是一个很好的答案,但以防万一有人想知道:这里的系统管理员实际上允许我对 CPU 节流进行监控,所以现在 ATLAS 正在构建中。但是,嘿,如果有人有真正的答案,请让我和其他看过这个问题的人知道。我很确定我会再次面对这种情况,而且可能还要担心一个更顽固的系统管理员。

        【讨论】:

          猜你喜欢
          • 2023-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-31
          • 1970-01-01
          • 2012-04-12
          • 2019-09-27
          • 2021-07-12
          相关资源
          最近更新 更多