ATLAS (Automatically Tuned Linear Algebra Software) - це програмна бібліотека для лінійної алгебри.
Згідно статті у вікіпедії, ATLAS використовується у наступних добре відомих програмах математичних розрахунків: MATLAB, Mathematica, Scilab, Sage та GNU Octave.
Найкращий спосіб побудувати бібліотеку ATLAS, налаштовану для конкретного процесора, це слідувати інструкції README.Debian, котру ви можете знайти у теці: /usr/share/doc/libatlas3-base
Спочатку нам потрібно вимкнути режим дроселювання частоти всіх ядер/потоків процесора. Для цього відкриваємо Термінал та виконуємо команди (нижче подаю команди для процесора Intel® Core™ i7-3930K
на 6 ядер/12 потоків):
sudo apt-get install cpufrequtils
sudo cpufreq-set -g performance -c 0
sudo cpufreq-set -g performance -c 1
sudo cpufreq-set -g performance -c 2
sudo cpufreq-set -g performance -c 3
sudo cpufreq-set -g performance -c 4
sudo cpufreq-set -g performance -c 5
sudo cpufreq-set -g performance -c 6
sudo cpufreq-set -g performance -c 7
sudo cpufreq-set -g performance -c 8
sudo cpufreq-set -g performance -c 9
sudo cpufreq-set -g performance -c 10
sudo cpufreq-set -g performance -c 11
Після цього, ми можемо почати створювати власне оптимізовану програмну бібліотеку ATLAS.
Виконуємо у Терміналі наступні команди:
apt-get source atlas
sudo apt-get build-dep atlas
sudo apt-get install devscripts
Опис команд:
1. команда apt-get source atlas завантажує у домашню теку програмні коди
ATLAS: наразі то версія atlas-3.10.2
2. команда sudo apt-get build-dep atlas пише сама за себе:
Зчитування переліків пакунків... Виконано
Побудова дерева залежностей
Зчитування інформації про стан... Виконано
3. команда sudo apt-get install devscripts встановлює devscripts - "Сценарії, що спрощують життя супроводжувачам пакунків Debian".
Тепер можемо почати збирати оптимізовані пакунки. Для цього переходимо у теку із завантаженими кодами та виконуємо команду:
cd atlas-3.10.2
fakeroot debian/rules custom
...але зазнаємо невдачу:
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
Згідно статті у вікіпедії, ATLAS використовується у наступних добре відомих програмах математичних розрахунків: MATLAB, Mathematica, Scilab, Sage та GNU Octave.
Найкращий спосіб побудувати бібліотеку ATLAS, налаштовану для конкретного процесора, це слідувати інструкції README.Debian, котру ви можете знайти у теці: /usr/share/doc/libatlas3-base
Спочатку нам потрібно вимкнути режим дроселювання частоти всіх ядер/потоків процесора. Для цього відкриваємо Термінал та виконуємо команди (нижче подаю команди для процесора Intel® Core™ i7-3930K
на 6 ядер/12 потоків):
sudo apt-get install cpufrequtils
sudo cpufreq-set -g performance -c 0
sudo cpufreq-set -g performance -c 1
sudo cpufreq-set -g performance -c 2
sudo cpufreq-set -g performance -c 3
sudo cpufreq-set -g performance -c 4
sudo cpufreq-set -g performance -c 5
sudo cpufreq-set -g performance -c 6
sudo cpufreq-set -g performance -c 7
sudo cpufreq-set -g performance -c 8
sudo cpufreq-set -g performance -c 9
sudo cpufreq-set -g performance -c 10
sudo cpufreq-set -g performance -c 11
Після цього, ми можемо почати створювати власне оптимізовану програмну бібліотеку ATLAS.
Виконуємо у Терміналі наступні команди:
apt-get source atlas
sudo apt-get build-dep atlas
sudo apt-get install devscripts
Опис команд:
1. команда apt-get source atlas завантажує у домашню теку програмні коди
ATLAS: наразі то версія atlas-3.10.2
2. команда sudo apt-get build-dep atlas пише сама за себе:
Зчитування переліків пакунків... Виконано
Побудова дерева залежностей
Зчитування інформації про стан... Виконано
3. команда sudo apt-get install devscripts встановлює devscripts - "Сценарії, що спрощують життя супроводжувачам пакунків Debian".
Тепер можемо почати збирати оптимізовані пакунки. Для цього переходимо у теку із завантаженими кодами та виконуємо команду:
cd atlas-3.10.2
fakeroot debian/rules custom
...але зазнаємо невдачу:
Тут у нас є два шляхи:
1. клянемо Linux :)
2. латаємо коди та повторно виконуємо команду fakeroot debian/rules custom
Якщо вас зацікавив другий шлях, то відкриваємо ще один Термінал, щоб залатати коди наступними командами (див. сторінку, звідки я взяв ту латку):
cd atlas-3.10.2/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
Правка кодів завершилась успішно:
Повертаємось у перший Термінал, у котрому ми вже пробували зібрати оптимізовану бібліотеку, та повторно виконуємо команду:
fakeroot debian/rules custom
Операції команди закінчуються десь через 5 хвилин (або більше для слабших процесорів!) створенням файлів, серед яких шість deb:
Тепер ми можемо встановити оптимізований
ATLAS, але попередньо видалимо її вже встановлені файли.