четвер, 23 квітня 2015 р.

Створення оптимізованої програмної бібліотеки ATLAS на ОС Ubuntu 14.10 (64 bit)

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

...але зазнаємо невдачу:
Тут у нас є два шляхи:
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, але попередньо видалимо її вже встановлені файли.
 

Немає коментарів:

Дописати коментар