2014 dxdy logo

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

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




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


31/08/22
183
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 
Заслуженный участник


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

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


12/07/21
108
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 
Заслуженный участник


18/09/21
1764
traffic_lights в сообщении #1571438 писал(а):
Под Linux' ом виндовые библиотеки вы не получите
Можно получить при желании. Называется кросс-компиляция (например MXE, или тут, или вот про dll).

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


12/07/21
108
zykov

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

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение25.11.2022, 12:46 
Заслуженный участник


18/09/21
1764
traffic_lights
EXE у меня без проблем собирался и потом под виндос запускался.
DLL я не пробовал, не было нужды, но принципиально не должен отличатся (выше приводил ссылку, как другие делали).

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


31/08/22
183
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 
Заслуженный участник


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

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


12/07/21
108
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 


31/08/22
183
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 


27/08/14
207
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 


31/08/22
183
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 


27/08/14
207
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 


31/08/22
183
Progger
Выполнил, make lapack все равно не работает. Самому разобраться не удалось.
К сожалению не понимаю, поясните пожалуйста подробнее, где какой патч я должен поправить?

 Профиль  
                  
 
 Re: Собрать lapack.dll и не застрелиться
Сообщение29.11.2022, 07:47 


27/08/14
207
Просто выполнить приведённую команду перед 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  След.

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



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

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


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

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