2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение29.11.2022, 20:40 


31/08/22
181
Прочитал, что есть такой пакет как Midnight Commander, поставил пошло веселее.
Обнаружил, что есть mxe в корневом каталоге, видимо тот который я клонировал с гит хаба. Который не виден из под винды.
Допер как поправить MakeFile. Прям ощутил ностальгию, конец 80х ZXSpectrum... 90е Volkov Commander, чтобы поиграть в Duna2 (2 дискеты 3.5") надо мудрить со страницами памяти в DOS... Turbo Pascal... :D
Запускаю make lapack

(Оффтоп)

Код:
sergey@DESKTOP-UD37R4O:~/mxe$ make lapack
bash: - : invalid option
Usage:  bash [GNU long option] [option] ...
        bash [GNU long option] [option] script-file ...
GNU long options:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --pretty-print
        --rcfile
        --restricted
        --verbose
        --version
Shell options:
        -ilrsD or -c command or -O shopt_option         (invocation only)
        -abefhkmnptuvxBCHP or -o option
[check reqs]
[build]       mxe-conf               x86_64-w64-mingw32.shared

Failed to build package mxe-conf for target x86_64-w64-mingw32.shared!
------------------------------------------------------------
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
python --version
bash: python: command not found
make[1]: *** [Makefile:889: build-only-mxe-conf_x86_64-w64-mingw32.shared] Error 127
make[1]: Leaving directory '/home/sergey/mxe'
real    0m6.748s
user    0m5.889s
sys     0m0.212s
------------------------------------------------------------
[log]      /home/sergey/mxe/log/mxe-conf_x86_64-w64-mingw32.shared

make: *** [Makefile:888: /home/sergey/mxe/usr/x86_64-w64-mingw32.shared/installed/mxe-conf] Error 1


Попробовал так же mxe который я в винде клонировал

(Оффтоп)

Код:
sergey@DESKTOP-UD37R4O:/mnt/d/Program Files/mxe$ make lapack
bash: - : invalid option
Usage:  bash [GNU long option] [option] ...
        bash [GNU long option] [option] script-file ...
GNU long options:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --pretty-print
        --rcfile
        --restricted
        --verbose
        --version
Shell options:
        -ilrsD or -c command or -O shopt_option         (invocation only)
        -abefhkmnptuvxBCHP or -o option
Makefile:382: *** GNU Make chokes on paths with spaces.  Stop.


Cygwin установленный в винде может мешать? Может его удалить нафиг?

Цитата:
1. В каталоге mxe делаем make cmake

Попробовал

(Оффтоп)

Код:
sergey@DESKTOP-UD37R4O:~/mxe$ make cmake
bash: - : invalid option
Usage:  bash [GNU long option] [option] ...
        bash [GNU long option] [option] script-file ...
GNU long options:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --pretty-print
        --rcfile
        --restricted
        --verbose
        --version
Shell options:
        -ilrsD or -c command or -O shopt_option         (invocation only)
        -abefhkmnptuvxBCHP or -o option
[build]       mxe-conf               x86_64-pc-linux-gnu

Failed to build package mxe-conf for target x86_64-pc-linux-gnu!
------------------------------------------------------------
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
python --version
bash: python: command not found
make[1]: *** [Makefile:889: build-only-mxe-conf_x86_64-pc-linux-gnu] Error 127
make[1]: Leaving directory '/home/sergey/mxe'
real    0m7.090s
user    0m6.014s
sys     0m0.230s
------------------------------------------------------------
[log]      /home/sergey/mxe/log/mxe-conf_x86_64-pc-linux-gnu

make: *** [Makefile:888: /home/sergey/mxe/usr/x86_64-pc-linux-gnu/installed/mxe-conf] Error 1

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение30.11.2022, 15:21 


27/08/14
206
Необходимо установить python-is-python3:
Код:
sudo apt install python-is-python3

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 09:56 


31/08/22
181
Progger
Все получилось. После установки пакета, lapack из mxe собрался сразу, со сборкой скачанного lapack из папки немного поплясал и тоже запустился.
Огромное спасибо.
1) Почему при сборке из mex он собрал много библиотек, а при сборке из каталога он собрал всего 2ве (блас и лапак)?
2) Зачем при сборке из каталога мы запускали "-DTEST_FORTRAN_COMPILER=OFF .."? Что он означает? Нагуглить не смог, но догадываюсь... DisableTEST... А зачем мы его отключили...
В добавок что означают две точки после команды?
3) А статические библиотеки *.lib он не собирает? Пытался читать описание MXE, но пока только каша в голове.
4) Линукс как то можно очистить от временных файлов? За все время экспериментирования он сожрал порядка 20гб, свободное место под системой почти закончилось...

traffic_lights
Не могли бы Вы сказать пару слов по oneAPI раз уж у Вас уже есть опыт применения. Что нужно в минимуме (кроме установки) для начала использования, что подключать... Гугл не выдает четкого и понятного hello world.

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 12:16 


12/07/21
108
Интересно, кому нужны библиотеки, полученные из LAPACK, если сгенерированные библиотеки из Intel MKL с абсолютно таким же интерфейсом, как и в LAPACK, "работают" в 50 раз быстрей? Впрочем, некоторым по каким-то неведомым причинам нравится заниматься мазохизмом. Хочется отметить, что грамотное распараллеливание, например, перемножения матриц (?gemm из пакета LAPACK) требует достаточно высокой квалификации: одними директивами OpenMP здесь не обойтись: необходимо писать обертку.

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 13:15 


31/08/22
181
Не знаю как там некотрые, но если Вам интересны мои мотивации то они следующие:
1) О Make знал давно, и даже несколько небольших попыток предпринимал что то собрать с нулевым результатом, в общем не дружил с ним от слова совсем.
Понадобилось собрать конкретную библиотеку, раз такое дело, решил уделить этому вопросу больше времени и сил, дабы хоть как то приоткрыть эту завесу тайны.
До этого момента в основном пользовался NuGet, нажал кнопку, модуль закачался, все работает, красота. Максимум сам скачал собрал в той же IDE и вот тебе модуль. Или прямо в свой проект сорцы закинул и все. Но Make по сравнению с этим какая то жесть.
2) С линуксом в плане командной строки тоже опыта ровно 0. Когда то давно пробовал ставить и пользоваться через графическую морду, но из за проблем с драйверами практически сразу пришлось обратно перейти на винду. По части дров винда просто рвет.
3) Учитывая 1 и 2 - получение опыта и новых знаний, за что участникам темы очень благодарен.
4) Вопрос скорости сейчас на втором плане.
5) Для меня это все хобби, так что я много го не знаю.

traffic_lights спасибо за то, что делитесь опытом использования но то, что MKL работает в 50 раз быстрее Вы озвучили уже достаточное количество раз.
MKL я опосредованно уже использовал в C# MathNet, там в качестве провайдера можно установить MKL и убедиться в 20 кратном увеличении скорости.
Об OpenMP знаю, но не использовал.
Так же как то давно сам писал функции на ассемблере с применением SSE. Так что какая там нужна квалификация чтобы родить такую библиотеку представляю.
Но я спрашивал не об этом, а как создать Hello world под рекламируемый Вами oneAPI! Впервые его вижу, только что установил, выглядит монструозно, простых примеров применения не нагуглил. Вот если бы Вы этим поделились было бы замечательно.

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 15:29 


12/07/21
108
В 50 раз - это на задачах большой размерности с BLAS Level 3 (типа ?gemm post1568867.html#p1568867, т.е. перемножение (и то при грамотном распараллеливании, которое большинству не под силу) заняло бы не 10 мин. 40 с., а почти 9 часов). Именно BLAS Level 3 отвечает за скорость самых важных задач линейной алгебры (таких, как решение систем линейных уравнений, диагонализация, сингулярный анализ). Снижение скорости (< 50) обусловлено в основном примешиванием в алгоритмах BLAS Level 2, а также немного BLAS Level 1. 50 - это в задачах, где превалирует BLAS Level 3. Но и эта задача не всегда тривиальна, о чем идет речь в одной моей статье в академическом журнале (заключительный этап диагонализации вещественных симметричных матриц). Intel MKL тут же слямзил мою идею, не сославшись на меня, причем слямзил довольно хитрым образом: в функциях Intel MKL, которая включает заключительный этап диагонализации скорость увеличивается, но если этапы диагонализации реализовывать последовательно (вызов 3-х функций), то используется старый алгоритм, опубликованный в LAPACK.

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 18:55 


27/08/14
206
Schrodinger's cat в сообщении #1572241 писал(а):
1) Почему при сборке из mex он собрал много библиотек, а при сборке из каталога он собрал всего 2ве (блас и лапак)?
Это стандартные библиотеки gcc, они всегда собираются, но не обязательно используются. При сборке из каталога получилось 2 библиотеки, но они тоже скорее всего зависят как минимум от libgcc_s_seh-1.dll и libgfortran-5.dll, может ещё от каких-нибудь. Это можно посмотреть с помощью Dependency Walker.
Schrodinger's cat в сообщении #1572241 писал(а):
2) Зачем при сборке из каталога мы запускали "-DTEST_FORTRAN_COMPILER=OFF .."? Что он означает? Нагуглить не смог, но догадываюсь... DisableTEST... А зачем мы его отключили...
В cmake скрипте сборки lapack есть проверка того, что компилятор фортрана соответствует требованиям. Она выполняется компиляцией и запуском тестового приложения. Т.к. компиляция происходив в linux, то полученный exe-шник просто не может запустится :-) . параметр -D означает установку переменной, которая используется в CMakeLists.txt (в данном случае TEST_FORTRAN_COMPILER).
Schrodinger's cat в сообщении #1572241 писал(а):
3) А статические библиотеки *.lib он не собирает? Пытался читать описание MXE, но пока только каша в голове.
Eсли выставить MXE_TARGETS x86_64-w64-mingw32.static, то в usr/x86_64-w64-mingw32.static/lib будет liblapack.a. По идее его можно можно использовать напрямую (например как тут).
Schrodinger's cat в сообщении #1572241 писал(а):
4) Линукс как то можно очистить от временных файлов? За все время экспериментирования он сожрал порядка 20гб, свободное место под системой почти закончилось...
Странно, что там могло на 20ГБ получится, у меня в mxe после всего около 3ГБ занимает. А так может помочь команда du или с помощью того же mc можно найти что заняло столько места. Что касается самого линукса, то ненужные файлы (т.е. те, которые можно безопасно удалить) могут быть в .cache каталоге пользователя и в /var/cache системные (тут особенно много занимает кеш apt).

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение02.12.2022, 22:29 


31/08/22
181
Progger исчерпывающе, большое спасибо Вам и всем кто помогал.

traffic_lights очень информативно, спасибо. Что же, разберусь, не впервой.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group