좌충우돌

MinGW에서의 OpenBLAS 빌드

CBLAS의 성능이 좋지 않아 OpenBLAS를 사용하려고 합니다. Windows 환경에서 MinGW 환경에서 빌드하는데 큰 어려움은 없습니다. OpenBLAS의 빌드 스크립트가 아주 잘 짜여서 있기 때문에 Quick Install에서 나와있는대로 make 한방에 설치가 될 것도 같습니다. 하지만 원하는 빌드를 위해서 정확하게 옵션 몇가지를 추가하였습니다.

Quick Install 문서에서 안내하고 있는 옵션은 몇가지가 있는데, 그중 하나가 DYNAMIC_ARCH=1 옵션입니다. 이를 사용하면 실행 시 CPU에 따라 적절한 커널을 선택하여 사용한다고 하여 집, 회사를 오가는데 적절한 옵션이라 생각하고 사용하였습니다. 하지만 Windows 환경이라 이 부분에 관한 스크립트가 작동하지 않고 kernel 부분의 CPU의 종류를 가져오는 스크립트에서 오류가 납니다.

스크립트를 뜯어보면 아래와 같습니다.

CPU 코드명이 보이고 그 안에서 선택하는 구조로 되어있는 것 같습니다. 하지만 %d 로 넘어오는 코드명이 없어 문제가 생기는 것 같네요. 대부분 펜티엄 3, 펜티엄4의 코드명이고 그 시절 CPU를 아직 쓰는 사람은 없는 것 같습니다. Core2 계열이면 CORE2, PENRYN 중 자신의 것을, i3,i5,i7 계열의 CPU를 사용하고 있으면 NEHALEM을 선택하면 될 것 같습니다. 서버 계열 옵테론이나 제온을 쓴다면 유의하여 선택하기 바랍니다.

 

최종적으로 빌드에 성공한 명령은 다음과 같습니다.

참고로 make의 옵션이 바뀐다고 영향이 있는 부분만 다시 빌드 되는 것 같지 않으니 꼭 clean 후 다시 빌드하여야 합니다.


Add a Comment Trackback