1. Mingw64 설치
GPU를 사용하기 위해서는 먼저 MinGW를 설치해야 한다.
공식문서에는 installer를 사용하라고 나와있으나 installer를 사용하면 다운로드가 불가하다 나오고 올해 4월부터 이러한 오류가 있는 것을 알 수 있다. 따라서 Prebuilt된 파일을 사용하면 되는데 아래 링크에서 x86_64-posix-seh를 다운받으면 된다.
위 링크에서 파일을 다운받은 후 압축을 풀어서, mingw64라는 폴더를 아래 경로에 복사해주고,
C:\Program Files\mingw64\bin 를 환경변수에 추가해준다.
(제대로 폴더를 옮겼고, 환경변수가 등록됐는지 확인하려면 cmd에 gcc -v 를 쳐서 무언가 나오는지 확인하면된다. 제대로 되지 않았다면, 올바르지 않은 명령어라고 뜬다.)
C:\Program Files
2. Boost 설치
1. Boost는 설치 시 Visual c++ 14.xx 이상 버전을 요구하므로 만약 Visual c++이 설치되어 있지 않다면 아래 링크에서 설치하면 된다.
2. Visual C++ 준비가 되었다면 아래 링크에서 boost를 다운로드 하면 된다. (여기서는 공식문서에서 사용한 1.6.3 버전을 사용한다)
3. 이후 아래 경로에, boost라는 이름의 폴더를 만들고, 해당 폴더 안에 압축해제한 파일(boost_1_63_0 폴더)를 넣어준다.
폴더를 넣어주면 현재 C:\boost\boost_1_63_0\~ 이 생성되었을 것이다.
C:\boost
4. 폴더 이동까지 완료되었다면, 아래 코드를 cmd에서 차례대로 실행해준다. 중간중간 주석에 적힌 폴더들이 생성되었는지 확인하길 바란다.(주석은 빼고 치셔야 합니다.)
cd C:\boost\boost_1_63_0\tools\build
bootstrap.bat gcc# cd C:\boost\boost_1_63_0\tools\build 폴더에 b2.exe라는 프로그램이 생긴다.
b2 install --prefix="C:\boost\boost-build" toolset=gcc # boost-build라는 폴더에 bin, share폴더가 생긴다cd C:\boost\boost_1_63_0
bootstrap.bat gcc
b2 install --prefix="C:\boost\boost-build" toolset=gcc # boost-build라는 폴더에 lib, include폴더가 생긴다
# 아래 코드의 -j N에서 N은 본인 CPU의 코어수
b2 install --build_dir="C:\boost\boost-build" --prefix="C:\boost\boost-build" toolset=gcc --with=filesystem,system threading=multi --layout=system release -j 16
5. 위 코드 실행 후 명령프롬포트 마지막줄에 error가 몇개 뜨는데 무시해도 된며, 모두 설치되었다면 boost-build폴더에 폴더가 총 4개 있어야 한다.
C
|--- boost
|------ boost_1_63_0
|--------- some folders and files
|------ boost-build
|--------- bin
|--------- include
|------------ boost
|--------- lib
|--------- share
6.설치가 다 되었다면 아래 두 경로를 환경변수에 추가해준다.
C:\boost\boost-build\bin
C:\boost\boost-build\include\boost
7. ( 만약 b2 명령어가 인식할 수 없는 명령어라고 나온다면 b2.exe가 생기지 않았거나 visual c++ 14이상 버전이 없기때문에 생기는 문제이다.)
3. LightGBM 다운로드
그리고 나서 git을 이용해 LightGBM 라이브러리를 C드라이브에 다운받는다.
bash가 없으면 아래 링크에서 직접 다운로드 받고, git이 있으면 git bash에서 아래 코드를 실행시켜 다운로드 받는다.
cd C:/
mkdir github_repos
cd github_repos
git clone --recursive https://github.com/microsoft/LightGBM
4. Cmake 설치
- 아래 링크에서 Windows x64 Installer을 다운받는다.
2. 설치 후 cmake를 실행시키면
'Where is the source code'에 C:\github_repos\LightGBM를 경로로 설정하고,
파일 탐색기에서 방금 다운로드 받은 LightGBM 경로에 build라는 빈폴더를 생성하고,
'Where to build the binaries'에 방금 만든 build 폴더의 경로를 설정해준다.
(해당 경로 C:\github_repos\LightGBM\build)
3. 이후 상단의 Tools->Configure에서 generator를 MinGW Makefiles로 하고 설정하면 된다.(우측상단 이미지)
4. 위까지 진행하면 아래와 같이 나오는데, 이 때 USE_GPU를 체크하고, Configure, Generate를 실행한다.
만약 여기서 오류가 생긴다면 Boost가 제대로 설정되지 않았거나 generator가 잘못됐을 가능성이 있어
상단 메뉴바의 File-> Delete Cash후 generator를 Tools에서 다시 configure하거나
Boost-build폴더에 폴더 4개가 생긴게 맞는지, 환경변수 설정을 맞게 했는지를 보면 된다.
아래 내가 겪으면서 확인한 대략적인 해결법이 있다.
**난 여기서 오류를 겪었었다. 오류를 겪었을 때(configure이 되지 않았음) 내가 해결한 방법을 작성해보겠다.
5. 내가 겪은 해결책
- 상단의 file에서 delete cache를 하고, tools에서 configure하는 부분부터 다시 진행해본다.
- (다시 시도할 때마다 delete cache를 진행해줘야 함.)
- 우선 위 과정을 모든 파일을 지우고 다시 진행해본다. 빠뜨린 부분이 있을 수도 있다. (환경변수, 자기 cpu 코어수로 실행하기 등)
- 폴더, 설치 경로들이 제대로 되었는지 확인한다. (lightgbm 폴더, build폴더 등등)
- 난 위의 과정을 진행했는데도 오류가 반복됐고, 지금은 정상작동 돼서 확인할 수 없는데, 우연히 해결했다. (아래 부분은 우연히 발견한 해결법,,입니다. 공식문서에도 해결방법은 안나와있음.
(지금은 바로 configure이 성공해서 다시 확인할 수가 없음.)
→ configure이 실패하고, delete cache를 진행하지 않고 한번 더 configure을 눌렀더니 위의 빨간 창 (name, value) 부분이 다른 글씨들로 바뀌었고, 거기서 name에 boost 관련 dir라는 이름이 있었고, (아마 Boost_LIBRARY_DIRS, Boost_LIBRARIES ??) value에는 boost에 관련된 결과가 나온 부분(아마, C:/boost/boost_1_63_0 ??) 이 경로가 떴었던 것 같은데, 이 경로를 C:/boost/boost로 바꾸고 다시 해보고, 다시 원래대로 다시 해보고 반복했던 것 같다. 이후, delete cache를 진행하지 않고 바로 configure을 했더니 done이 나왔다. generator를 설정하고 나면 Name Value에 빨간줄들이 생기는데 그 중 USE_GPU를 찾아 선택한 후 Configure, Generate를 순서대로 누르면 차례대로 Configureing done, Generating done이 하단 출력창에 출력된다.
6. lightgbm 마지막 스텝?
- git bash를 열어서 아래 코드를 실행시킨다. (위의 과정이 모두 진행되었어야 함.)
cd C:/github_repos/LightGBM/build
alias make='mingw32-make'
make
위의 과정들을 모두 마친 후, 나는 아래 코드를 이용하여 lightgbm을 가상환경에 설치하였다.
pip install lightgbm --config-settings=cmake.define.USE_GPU=ON
위까지 진행하니, lightgbm이 gpu버전으로 정상적으로 진행되었는데, 사실 위 과정들이 맞는지는 잘 모르겠다.
너무 복잡하여 공식문서랑 몇개 없는 블로그를 참조하며 작성해봤다.
나중에 cmake 오류를 해결하는 방법을 제대로 알게되면 다시 수정하도록 하겠다.
7. 참고자료
(다른 한국인분이 공식문서를 좀 쉽게 써놓은 블로그를 참고했는데, 글이 없어졌다..거의 위와 동일)
'알쓸신잡' 카테고리의 다른 글
카카오톡 access token 발급받기 (0) | 2023.10.26 |
---|---|
티스토리 날짜 수정하기 (0) | 2023.10.26 |
VScode 알쓸신잡 (0) | 2023.10.26 |
YOLO V5 실습 (0) | 2023.10.26 |
가상환경 설정 (anaconda) (0) | 2023.10.26 |