Установка ATLAS: действительно нужно пройти проверку дроссельной заслонки CPU
ATLAS 3.10.1 не будет устанавливаться на моей платформе CentOS 6.x, потому что он обнаруживает дросселирование процессора. В более старых версиях пакета был флаг настройки, чтобы отключить дроссель (-Si cputhrchk 0
) и независимо от того, чтобы продвигаться вперед. Этот вариант был вывезен несколько версий назад. Я понимаю причины этого решения - разработчики беспокоились о производительности и репутации своего программного обеспечения и дросселирования процессора, что делает невозможным настройку ATLAS. Хорошо. Моя проблема заключается в том, что, независимо от производительности ATLAS, я просто должен получить эту вещь. Есть способы остановить дросселирование, я знаю, но у меня нет и, вероятно, не получится получить разрешение на беспорядок с частотой процессора на этой машине. Так что мне нужно, чтобы пройти проверку дроссельной заслонки ATLAS. Я видел некоторое обсуждение взлома configure script, но я не вижу, как это сделать сам. Никто не отвечает на сайт SourceFge на ATLAS, который никого не критикует. Просто хочу показать, какова моя ситуация. Итак: кто-нибудь знает, как пройти проверку дроссельной заслонки ATLAS? Спасибо.
Ответы
Ответ 1
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Ниже приведен грязный, неряшливый, сдержанный взлом (со всеми отрицательными коннотациями, которые подразумевают, и ни один из положительных), только для использования в качестве последнего средства. Ни я, ни разработчики ATLAS не несут никакой ответственности за работу вашей библиотеки ATLAS в результате использования этого.
Удостоверьтесь, что вы понимаете, почему в первую очередь используется проверка дросселирования ЦП: ATLAS обеспечивает "автоматическую настройку" некоторых алгоритмов и не может настраиваться, если включен режим дросселирования ЦПУ (поскольку контрольные тайминги не являются сплошными). По словам INSTALL.txt
: "Дросселирование процессора делает практически все тайминги совершенно случайными, а , поэтому любая установка ATLAS будет неактивной" (акцент мой). Если возможно, выключите дросселирование процессора.
Если вы абсолютно не можете отключить дросселирование процессора, и вам просто нужна работающая установка 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
Патч работает для атласа 3.10.1.
Ответ 2
Еще один способ отключить дросселирование ЦП (начиная с 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). Рецепт:
1) С правами root откройте файл /etc/default/grub и добавьте параметр "intel_pstate = disable" в переменную GRUB_CMDLINE_LINUX и сохраните файл, например. что-то вроде
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
Ну, это не очень ответ, но на всякий случай кому-то интересно: администраторы sys здесь фактически дали мне разрешение обезьяне с дросселированием процессора, так что теперь ATLAS строит. Но, эй, если у кого-то есть реальный ответ, пожалуйста, позвольте мне и другим людям, которые просмотрели этот вопрос. Я почти уверен, что снова столкнусь с этой ситуацией и, возможно, с гораздо более упрямым администратором sys, о котором нужно беспокоиться.