由于ATLAS 3.10.1可检测到CPU节流,因此不会安装在我组织的CentOS 6.x平台上。在较早版本的软件包中,有一个configure标志可以关闭 throttle 检查(-Si cputhrchk 0
)并继续前进。该选项是在几个版本之前删除的。我理解该决定的原因-开发人员担心其软件的性能和声誉以及CPU的限制使ATLAS无法进行自我调整。美好的。我的问题是,无论ATLAS的性能如何,我都只需要构建即可。我知道,有几种方法可以停止节流,但是我没有并且可能不会获得允许弄乱这台计算机上CPU频率的权限。因此,我需要的是一种克服ATLAS throttle 检查的方法。我已经看到了一些有关修改配置脚本的讨论,但是我自己却看不到如何做。在ATLAS sourceforge网站上没有人回答,这不是要批评那里的任何人。只想显示我的情况。因此:有人知道如何通过ATLAS的 throttle 检查吗?谢谢。
最佳答案
免责声明:以下是肮脏,肮脏,不熟练的黑客(带有所有暗示的负面含义,而没有正面的含义),只能用作不得已的手段。我和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
该补丁适用于 map 集3.10.1。