12

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

4

5 回答 5

9

免责声明:以下内容是一种肮脏、低俗、卑鄙的黑客行为(包含所有暗示的负面含义,没有任何正面含义),仅用作最后的手段。我和 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。

于 2013-07-30T16:36:45.077 回答
3

另一种禁用 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");
 */
于 2015-02-11T21:52:31.550 回答
3

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

于 2017-05-23T06:49:40.747 回答
1

如何在最近使用较新版本的 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

于 2016-02-28T19:35:00.957 回答
0

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

于 2013-01-30T19:04:42.353 回答