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

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

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

#include <armadillo>

в среде Linux.

На этом сайте

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

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


ОБНОВИТЬ

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

4 ответа

Решение

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

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

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 в противном случае вы будете иметь ошибки ссылки.

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

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

Так:

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

Другие вопросы по тегам