RcppEigen и векторизация - PullRequest
       4

RcppEigen и векторизация

0 голосов
/ 06 декабря 2018

В Eigen FAQ говорится, что необходимо включить векторизацию в компиляторе .

Я пытаюсь разработать пакет R, используя RcppEigen.Мне бы хотелось, чтобы у пользователя была лучшая производительность без необходимости вручную компилировать пакет с указанными флагами.

Каков наилучший метод для пакета R, который ищет возможность векторизации в библиотеке Eigen?

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

Я тоже новичок, и многие часы, пытаясь понять, Rcpp могут иметь отношение к вам @jds.Я хотел включить векторизацию на моем Dell Precision M2800 с архитектурой AVX, поэтому я добавил флаг -mavx2 в свой файл configure , используя следующие три порции:

CXXFLAGS= -O3 -std=c++11 -Wall -mavx2

Это изменение кода ускорило мой код (серия циклов с двойным вложением для циклов) с 4,1 до 1,4 с!

Узнайте, как изменить флаги компилятора, которые используются sourceCpp, путем созданияСкелетный пакет, использующий configure и clean файлы для создания файла Makevars , что прекрасно продемонстрировано @nrussell в Как изменить и установить аргументы компиляции Rcpp

0 голосов
/ 06 декабря 2018

Сделайте именно то, что написано в FAQ, и установите флаги компилятора .Возможно, вам придется включить их из скрипта configure после того, как вы проверите, что поддерживает текущий компилятор - и CRAN может все же сказать вам, что флаги не переносимы.

Кроме того, просто чтобы исправить здесь термины,здесь нет нашей "библиотеки": RcppEigen использует только заголовки от Eigen, который разработан как шаблонный пакет только для заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...