Что такое Армадилло + Атлас, Армадилло + OpenBLAS, Армадилло + UBLAS, Армадилло + MKL?

На многих сайтах они говорят об Armadillo + что-то еще. Что они имеют в виду?

Я использую библиотеку Armadillo в форме

#include <armadillo>

в среде Linux.

На этом сайте

http://nghiaho.com/?p=1726

Armadillo+OpenBLAS упомянуто. Что они имеют в виду? Как пользоваться Armadillo+OpenBLAS?


ОБНОВИТЬ

Сейчас прошло больше года. Я просто добавляю это Armadillo является оберткой над реализациями, такими как BLAS или же OpenBLAS, Это не реализация операции матрицы.

2

Решение

Вместо того, чтобы связывать код на основе Armadillo с BLAS, вы связываетесь с OpenBLAS. Это можно сделать вручную или установщик Armadillo может выяснить, присутствует ли OpenBLAS. Увидеть Часто задаваемые вопросы для деталей.

В основном вам нужно сначала установить OpenBLAS, а затем установить Armadillo (не из репозитория Linux, но загруженный версия).

3

Другие решения

Armadillo может выполнять свою собственную математику или вызывать сторонние библиотеки для выполнения математических операций. Atlas, BLAS, OpenBLAS, uBLAS, lapack, MKL являются примерами таких сторонних библиотек. Если Armadillo делает свою собственную математику, это будет один поток. Некоторые из этих сторонних библиотек могут выполнять многопоточность, например, OpenBLAS. Некоторые библиотеки могут использовать GPU, например, nvBLAS от Nvidia. Обратите внимание, что nvBLAS выполняет только частичную реализацию blas, и вам все еще нужна другая библиотека blas для того, что не делает nvBLAS.

Вы можете управлять Armadillo, отредактировав armadillo_bits / config.hpp или используя опцию -D compiler, чтобы установить соответствующие директивы прекомпилятора для ваших нужд.

Что-то, что может сэкономить ваше время: важен порядок, в котором вы связываете броненосец и сторонние библиотеки. Armadillo звонит, чтобы сказать lapack, а lapack звонит в blas, поэтому порядок должен быть:

-larmadillo -llapack -lblas в противном случае вы будете иметь ошибки ссылки.

2

Будьте осторожны с версией OpenBLAS, то есть вы должны установить версию 0.2.14.
В противном случае у вас будут проблемы, если вы захотите использовать многопоточность.

Так:

1 — удалить все, что вы уже установили (Armadillo или openBLAS).
2 — Установите openBLAS ver 0.2.14
3 — Установите Armadillo (если вы используете репозиторий, вероятно, у вас не будет доступа к последней версии).
4 — Наслаждайся этим!

1

Кроме того, вы должны использовать ключ -lopenblas вместо -lblas, Кроме того, вы должны добавить путь к папкам (включая, lib) в openblas пакет (предварительно скачанный и сделанный). По моему опыту, порядок и количество установленных пакетов не имеет значения. Я экспериментировал с разными версиями openblas пакеты без переустановки armadillo,

0
По вопросам рекламы [email protected]