Xgboost: R์—์„œ OpenMP ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•(Mac OS)

์— ๋งŒ๋“  2016๋…„ 04์›” 22์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dmlc/xgboost

์ธ์‚ฌ๋ง.

R(Mac OS)์— OpenMP ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ง„์ˆ ์€ ๋‚˜์—๊ฒŒ ์กฐ์šฉํ•˜๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Makevars ํŒŒ์ผ์„ R์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์š”์ ์€ ~/.R/Makevars, xgboost/R-package/src/Makevars ๋ฐ /usr/local/Cellar/r/3.2.0/R.framework/Resources/etc/Makeconf์˜ ์„ธ ๊ฐ€์ง€ Makevar๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. file.path(R.home("etc"), "Makeconf") in R) ๋ฐ SHLIB_OPENMP_CXXFLAGS๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์–ป์€ ๋งˆ์ง€๋ง‰ ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!! ์‹œ๋„ํ•œ ํ›„ ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์ด ๊ฐ€์žฅ ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ–๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋†€๋ž์Šต๋‹ˆ๋‹ค!).

"R์— ๋Œ€ํ•ด Makevars ํŒŒ์ผ์„ ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์„ค์ •"์€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์šฐ์„ ์ˆœ์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? "SHLIB_OPENMP_CXXFLAGS" ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ œ ๊ฒฝ์šฐ์—๋Š” ์ž‘๋™ํ•˜๋ ค๋ฉด CXX ๋ฅผ ๋” ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋ชจ๋“  3 ๋Œ“๊ธ€

re: Makevars... ~/.R/Makevars์—์„œ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. SHLIB ํ”Œ๋ž˜๊ทธ ์™ธ์—๋„ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ "clang-omp"๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ brew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OpenMP๋ฅผ ์ง€์›ํ•˜๋Š” clang ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

@jimthompson5802 ์˜ ๋‹ต๋ณ€ ์—์„œ ์ˆ˜์ •๋œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์นจ๋‚ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ~/.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

์ œ ๊ฒฝ์šฐ์— R์€ /Library/Frameworks/R.framework/Resources/etc/Makeconf ์— ์ •์˜๋˜์ง€ ์•Š์€ ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ~/.R/Makevars ํ•ฉ๋‹ˆ๋‹ค. CXX1X ์—์„œ Makeconf CXX1X ์— ๋Œ€ํ•œ ์„ค์ •์„ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ clang++ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด์ „ ๊ฒŒ์‹œ๋ฌผ ์˜ ์˜ค๋ฅ˜์—์„œ ๋น„๋กฏ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[-Wunused-variable] ๊ฒฝ๊ณ ๋ฅผ ๋งŽ์ด ๋ฐ›์•˜์ง€๋งŒ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” OpenMP is not available ๊ฒฝ๊ณ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ mac os์— ๋Œ€ํ•œ ๊ณต์‹ ๊ตฌ์ถ• ์ง€์นจ์„ ๋”ฐ๋ž๊ธฐ ๋•Œ๋ฌธ์— gcc๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ ์ด์ „์— OpenMP๋กœ "๋ฉ”์ธ" xgboost๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚˜์™€ ๊ฐ™์€ ์ง€์นจ์„ ๋”ฐ๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” Makevars ๋ฅผ ์ด์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์ž‘๋™ํ•˜๋ ค๋ฉด CXX ๋ฅผ ๋” ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰