2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4, 5  След.
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 09:41 
traffic_lights в сообщении #1571398 писал(а):
Я смотрю, у вас "каша" в голове с библиотеками.

Поясните пожалуйста что не так у меня в голове?
Я обозначал в начале, что мне нужно собрать *.dll виндовую.
Собранные по вашему мануалу имеют расширение *.a - библиотека линукса. Оно конечно все прошло замечательно, но не совсем то, что мне нужно.
Так таким способом как Вы описали можно собрать *.dll?

traffic_lights в сообщении #1571398 писал(а):
Поставьте Visual Studio 2022 + oneapi

Имеете в виду VS Code которая. Да, видел что там есть фортран. Но не знаю получится ли там собрать lapack, с Code практически не работал. Данный способ тоже хочу попробовать.

Intel MKL библиотека конечно хорошая, но в данном случае я преследую 2 цели:
1 мне нужен именно lapack, потому что именно он использован в одном алгоритме который я хочу переписать с печатного издания и не хочу лишние заморочки с адаптацией функций иных библиотек. На скорость исполнения мне пока по барабану, лишь бы заработал для начала. Если этот этап будет пройден можно уже и MKL если понадобится скорость...
2 В принципе Progger уже собрал ее, за что ему спасибо. Но хочу научиться собирать подобные библиотеки сам. Выйдет lapack 3.12 я что опять буду по форумам просить собрать... как то не очень.

У меня установлена VS 2019 community предпочитаю ее. Но под нее к сожалению нет фортрана, я уже проверил.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 11:19 
Schrodinger's cat в сообщении #1571425 писал(а):
мне нужен именно lapack, потому что именно он использован в одном алгоритме который я хочу переписать с печатного издания и не хочу лишние заморочки с адаптацией функций иных библиотек
А в статье написано собирать и запускать именно под виндос?
Гораздо проще собрать всё это и запустить под линукс. Под виндос тоже можно, но возни больше.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:19 
Schrodinger's cat

Что .a, Что .lib - это архивы (статические библиотеки), полученные в разных OS. Под Linux' ом виндовые библиотеки вы не получите. Visual Studio 2022 (Кодовое название - Dev17, Внутренняя последняя версия - 17.4.1 (15 ноября 2022 года)) - первая 64-битная Visual Studio. После ее установки поставить oneapi - он интегрируется в Visual Studio (там будет и fortran и Intel MKL и много чего еще). Вам нужен lapack + blas, т.к. lapack интенсивно использует blas (например, функция перемножения матриц из blas встречается в десятках функций lapack). Но часть Intel MKL, посвящённая линейной алгебре, это просто грамотная имплементация пакета LAPACK (lapack + blas) с одним и тем же интерфейсом (т.е. все обращения к функциям пакета LAPACK и Intel MKL идентичны.).

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:28 
traffic_lights в сообщении #1571438 писал(а):
Под Linux' ом виндовые библиотеки вы не получите
Можно получить при желании. Называется кросс-компиляция (например MXE, или тут, или вот про dll).

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:39 
zykov

Я пробовал: у меня не получилось что-то путное скомпилить - недружелюбность систем сборки при конфигурации кросс-компиляции зашкаливает.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:46 
traffic_lights
EXE у меня без проблем собирался и потом под виндос запускался.
DLL я не пробовал, не было нужды, но принципиально не должен отличатся (выше приводил ссылку, как другие делали).

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:59 
zykov в сообщении #1571430 писал(а):
А в статье написано собирать и запускать именно под виндос?

:D в статье конечно не написано, но я потом это буду использовать под виндовс, если понравится конечно, у меня куча кода, проектов и весь опыт разработки под виндовс. Поэтому, вдруг, полный переход на линукс слишком радикален для меня. В будущем плавно... возможно...

traffic_lights в сообщении #1571438 писал(а):
Что .a, Что .lib - это архивы (статические библиотеки), полученные в разных OS. Под Linux' ом виндовые библиотеки вы не получите.

Значит Вы ввели меня в заблуждение :D , но тем не менее много узнал из Ваших сообщений полезного, спасибо.

traffic_lights в сообщении #1571442 писал(а):
Я пробовал: у меня не получилось что-то путное скомпилить - недружелюбность систем сборки при конфигурации кросс-компиляции зашкаливает.

Видимо как и попытки протолкнуть функционал линукса в виндовс, cygwin и т.д.

Итак у меня осталось 3 не испробованных совета, использовать MXE, VS 2022 community, VS Code. Буду пробовать.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 13:53 
Schrodinger's cat в сообщении #1571445 писал(а):
у меня куча кода, проектов и весь опыт разработки под виндовс
Тогда можно пойти по пути наименьшего сопротивления.
Скачать уже готовый Octave. Там уже всё собрано. И библиотека в DLL, и в исходниках актуальные заголовки (если интересно, по исходникам можно посмотреть как они всё это собирали).

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 14:48 
zykov

кросс-компиляция не позволила мне использовать адвизор MKL для различных вариантов сборки (compiler, architecture, dynamic or static linking, interface layer, threading layer, OpenMP library, Link). Провозившись пару дней, плюнул на нее и сумел собрать различные варианты библиотек (более 20 штук) под виндами из исходного кода LAPACK. Если использовать Intel MKL напрямую, то этот гемор совершенно не нужен (при помощи адвизора получаем командную строку на все случаи жизни). Раньше студенты могли пользоваться Intel MKL беспрепятственно, а теперь, в свете последних событий, даже на сайт LAPACK без VPN не зайти. Пришлось напрячься. Но студенты жалуются, что на больших задачах, скорость библиотек очень медленная. Последнюю неделю угробил на получение тех же библиотек из Visual Studio 2022 + oneapi: интерфейс остался тем же, а скорость возросла в 10-ки раз (правда. библиотеки несказанно раздулись).

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 19:29 
Progger в сообщении #1571010 писал(а):
Скачиваем mxe

Я так понимаю это под wsl делать? Запустил "git clone https://github.com/mxe/mxe.git" что то клонировалось, но после этого на компьютере я так и не нашел папку mxe... Где ее искать? (прошерстил Total Commanderom, если бы она была, то он бы ее нашел.)

Progger в сообщении #1571010 писал(а):
и ставим зависимости

Запустил, вроде поставились.

Progger в сообщении #1571010 писал(а):
В Makefile правим MXE_TARGETS на нужный

Где это? В каком Makefile?

zykov в сообщении #1571448 писал(а):
Тогда можно пойти по пути наименьшего сопротивления.
Скачать уже готовый Octave. Там уже всё собрано. И библиотека в DLL, и в исходниках актуальные заголовки (если интересно, по исходникам можно посмотреть как они всё это собирали).

Этот путь оставим как запасной. Хотелось бы собрать самому. Спасибо за наводку.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение26.11.2022, 10:20 
Schrodinger's cat в сообщении #1571475 писал(а):
Я так понимаю это под wsl делать? Запустил "git clone https://github.com/mxe/mxe.git " что то клонировалось, но после этого на компьютере я так и не нашел папку mxe... Где ее искать? (прошерстил Total Commanderom, если бы она была, то он бы ее нашел.)
Можно и в wsl. После git clone в текущем каталоге должен был появится каталог mxe. Можете ещё zip скачать и распаковать.
Schrodinger's cat в сообщении #1571475 писал(а):
Где это? В каком Makefile?
В каталоге mxe в корне лежит

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение26.11.2022, 22:07 
Progger в сообщении #1571010 писал(а):
3. Делаем make lapack и долго ждём.

Ждать пришлось не долго.
Код:
d:\Program Files\mxe>make lapack
/bin/bash: - : invalid option
Usage:  /bin/bash [GNU long option] [option] ...
        /bin/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
/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: `echo /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/bin:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/libnvvp:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/extras/CUPTI/lib64:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/include:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/lib/x64:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/Microsoft SQL Server/120/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/:/mnt/c/Program Files/NVIDIA Corporation/Nsight Compute 2020.3.1/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/d/Program Files/Git/cmd:/mnt/d/Program Files/CMake/bin:/mnt/d/Program Files/cygwin/bin:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/bin:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/extras/CUPTI/lib64:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/include:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/libnvvp:/mnt/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/lib/x64:/mnt/c/Users/Sergey/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Sergey/.dotnet/tools:/mnt/d/Program Files/CMake/bin | sed -e 's,:\.$,,' -e 's,\.:,,g''
Makefile:382: *** GNU Make chokes on paths with spaces.  Stop.

d:\Program Files\mxe>

Полагаю он хочет чтобы я задал опции. Какие прописать подскажите пожалуйста?

traffic_lights
Установил VS2022 community и oneAPI, только пакет для питона что то отказался вставать.
Скажите пожалуйста пару слов как это юзать? Применительно к функциям mkl.
Как выглядит минимальный набор действий чтобы начать писать на С/С++ применяя функции из mkl.
Проект обычный С++ создавать? Там что то надо подключать?
Или можно прямо в C#?

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение27.11.2022, 09:06 
Schrodinger's cat в сообщении #1571582 писал(а):
Полагаю он хочет чтобы я задал опции. Какие прописать подскажите пожалуйста?
Я с wsl не работал, но похоже он неправильно задаёт PATH. Можно попробовать вначале выполнить:
Код:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib
По идее этого должно быть достаточно, чтобы всё отработало, но по-хорошему надо сделать что-то типа того, что советуют тут. У меня нет под рукой Windows с wsl чтобы проверить.

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение28.11.2022, 21:03 
Progger
Выполнил, make lapack все равно не работает. Самому разобраться не удалось.
К сожалению не понимаю, поясните пожалуйста подробнее, где какой патч я должен поправить?

 
 
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение29.11.2022, 07:47 
Просто выполнить приведённую команду перед make. Если есть ошибка, то она должна быть другая. Ещё как вариант выполнить:
Код:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib make lapack

 
 
 [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group