ARM CPU를 사용하는 보드에서 MXNet을 컴파일하려고 하면 ps-lite를 컴파일하는 과정에서 오류가 발생합니다.
ps-lite(https://github.com/dmlc/ps-lite)는 라이트웨이트 파라미터 서버 프레임워크인데 기본 컴파일 설정이 데스크톱, 서버를 대상으로(x86/x64) 되어있기 때문에 ARM에서는 호환이 되지 않는 옵션이 포함되어있습니다.
발생하는 에러는 아래와 같은 -msse2 인식 불가인데 해당 부분을 수정해주어야 컴파일이 정상적으로 진행됩니다.
g++ -I./src -I./include -I/home/odroid/mxnet/deps/include -std=c++0x -MM -MT build/customer.o src/customer.cc >build/customer.d g++ -std=c++11 -msse2 -fPIC -O3 -ggdb -Wall -finline-functions -I./src -I./include -I/home/odroid/mxnet/deps/include -c src/customer.cc -o build/customer.o g++: error: unrecognized command line option ‘-msse2’ Makefile:41: recipe for target 'build/customer.o' failed make[1]: *** [build/customer.o] Error 1 |
ps-lite는 MXNet 루트 디렉터리에 존재하고, 수정해야 할 파일은 "mxnet/ps-lite/Makefile" 입니다.
nano나 vi를 통해 해당 파일을 열 면 CFLAGS가 아래와 같이 작성되어있는데, -msse2 를 지우고 -mfpu=neon으로 수정합니다(neon이 없는 코어라면 아예 삭제를 하면 됩니다.)
혹시 모르니 줄을 복사한 다음 #으로 주석처리 해놓는 것을 추천합니다.
CFLAGS = -std=c++11 -msse2 -fPIC -O3 -ggdb -Wall -finline-functions $(INCPATH) $(ADD_CFLAGS)
▼▼▼
CFLAGS = -std=c++11 -mfpu=neon -fPIC -O3 -ggdb -Wall -finline-functions $(INCPATH) $(ADD_CFLAGS)
저장을 하고 빌드를 하면 정상적으로 빌드가 진행됩니다.
'IT > Odroid' 카테고리의 다른 글
Odroid-XU4 리눅스 16.04 설치 (0) | 2017.02.27 |
---|---|
Odroid-XU4 스펙 (0) | 2017.02.27 |