Подтвердить что ты не робот

Установка ATLAS: действительно нужно пройти проверку дроссельной заслонки CPU

ATLAS 3.10.1 не будет устанавливаться на моей платформе CentOS 6.x, потому что он обнаруживает дросселирование процессора. В более старых версиях пакета был флаг настройки, чтобы отключить дроссель (-Si cputhrchk 0) и независимо от того, чтобы продвигаться вперед. Этот вариант был вывезен несколько версий назад. Я понимаю причины этого решения - разработчики беспокоились о производительности и репутации своего программного обеспечения и дросселирования процессора, что делает невозможным настройку ATLAS. Хорошо. Моя проблема заключается в том, что, независимо от производительности ATLAS, я просто должен получить эту вещь. Есть способы остановить дросселирование, я знаю, но у меня нет и, вероятно, не получится получить разрешение на беспорядок с частотой процессора на этой машине. Так что мне нужно, чтобы пройти проверку дроссельной заслонки ATLAS. Я видел некоторое обсуждение взлома configure script, но я не вижу, как это сделать сам. Никто не отвечает на сайт SourceFge на ATLAS, который никого не критикует. Просто хочу показать, какова моя ситуация. Итак: кто-нибудь знает, как пройти проверку дроссельной заслонки ATLAS? Спасибо.

4b9b3361

Ответ 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, о котором нужно беспокоиться.