Xgboost: Cómo instalar la versión OpenMP en R (Mac OS)

Creado en 22 abr. 2016  ·  3Comentarios  ·  Fuente: dmlc/xgboost

Saludos.

Necesito ayuda para comprender las instrucciones para instalar la versión OpenMP en R (Mac OS). La siguiente declaración me confunde bastante:

Establezca el archivo Makevars en la máxima prioridad para R.

El punto es que hay tres Makevars: ~ / .R / Makevars, xgboost / R-package / src / Makevars y /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf ( el último obtenido al ejecutar file.path (R.home ("etc"), "Makeconf") en R), y SHLIB_OPENMP_CXXFLAGS no está configurado por defecto. Después de intentarlo, parece que el primero tiene la máxima prioridad (¡sorpresa!).

¿Qué significa "Establecer el archivo Makevars en la máxima prioridad para R"? ¿Cómo puedo lidiar con la prioridad? ¿Qué debo hacer para configurar la variable "SHLIB_OPENMP_CXXFLAGS"?

Comentario más útil

En mi caso, tengo que configurar más CXX para que funcione:

CC=gcc-7
CXX=g++-7
CXX1X=g++-7
CXX11=g++-7
CXX14=g++-7
CXX17=g++-7

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp

Todos 3 comentarios

re: Makevars ... Hice los cambios en ~ / .R / Makevars. Además de las banderas SHLIB, tuve que cambiar al compilador a "clang-omp". Para el compilador, utilicé brew para instalar la versión de clang que admitía OpenMP.

Finalmente consigo que esto funcione usando el siguiente código modificado de la respuesta de @ jimthompson5802 . El código se coloca en ~/.R/Makevars :

CC=gcc-5
CXX=g++-5
CXX1X = g++-5

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp

En mi caso, R buscaría /Library/Frameworks/R.framework/Resources/etc/Makeconf para los parámetros necesarios indefinidos en ~/.R/Makevars . Intentaría encontrar la configuración para CXX1X en Makeconf . De ahí es de donde viene el cumplidor clang++ en los errores de mi publicación anterior .

Recibo un montón de advertencias de [-Wunused-variable] pero supongo que está bien. No hay OpenMP is not available advertencia esta vez.

Además, como he seguido las instrucciones de construcción oficiales para mac os, he instalado gcc y con él he construido con éxito el xgboost "principal" con OpenMP antes. Por lo tanto, sugiero que cualquiera que haya seguido las mismas instrucciones como yo, tenga su Makevars configurado de esta manera.

En mi caso, tengo que configurar más CXX para que funcione:

CC=gcc-7
CXX=g++-7
CXX1X=g++-7
CXX11=g++-7
CXX14=g++-7
CXX17=g++-7

SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp
¿Fue útil esta página
0 / 5 - 0 calificaciones