본문 바로가기
python/딥러닝

llama.cpp GPU 가속 설치 error : which is required to install pyproject.toml-based projects

by _avocado_ 2024. 2. 22.

llama.cpp를 이용하면서 GPU를 이용한 가속이 가능하다.

기존 모델보다 적은 메모리를 이용하면서 매우 빠른 속도로 모델을 이용할 수 있다.

llama-cpp-python install 중에 제목과 같은 에러가 발생했다. cpu만 사용하는 llama-cpp-python은 설치가 가능했지만 GPU 가속을 사용하는 llama-cpp-python은 설치가 되지 않았다. 시도했던 방법과 해결된 방법은 다음과 같다.

 

  1. 설치 명령어
  2. 발생한 error
  3. 여러 시도
    • 실패한 시도(이것도 해결하는데 도움이 되었을 수 있다.)
    • 성공한 시도 - 정확한 원인 포함

1. 설치 명령어

CUBLAS = on이 GPU 가속을 사용하는 버전을 설치하겠다는 의미이다. (linux, nvidia gpu 사용 시)

CMAKE_ARGS=-DLLAMA_CUBLAS=on FORCE_CMAKE=1 pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir

2. 발생한 error

캡처를 깜빡해서 정확한 에러는 남기지 못했지만 다음과 같은 내용이 들어있는 error였다.

Value 'sm_30' is not defined for option 'gpu-name'
Could not build wheels for llama-cpp-python, 
which is required to install pyproject.toml-based projects

 

위 내용을 검색한 결과 크게 3가지 해결 방안이 제시되어 있었다.


3. 여러 시도

3가지 방법은 아래와 같다. 해결된 방법은 마지막에 시도한 방법이었다.

  1. gcc update
  2. wheels 재설치
  3. cudatoolkit 제거

gcc update

gcc와 g++가 11 버전 이상이어야 한다는 내용이 있었다. 실제로 사용 중인 환경에서 버전이 9.x 버전이었다.

버전 업을 해주었다. 이 작업 이후에 바로 해결되지는 않았지만 이 부분도 영향이 있을 수 있다고 생각한다.

# 버전 확인
gcc --version

# 버전 업
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 
update-alternatives: using /usr/bin/gcc-11 to provide /usr/bin/gcc (gcc) in auto mode
sudo update-alternatives --config gcc

 

wheels 재설치

이미 가장 높은 버전의 wheels를 사용하고 있었으며 추천된 버전을 설치해도 해결되지 않았다.

 

cudatoolkit 제거

나의 주된 문제는 cudatoolkit이었다. 위 에러 메시지 중 Value 'sm_30' is not defined for option 'gpu-name'이 부분을 검색했을 때 이미 설치된(CUDA 버전과 맞지 않는) cudatoolkit이 있을 경우 발생할 수 있다고 설명되어 있었다.

실제로 최근 cuda 버전을 11.1에서 12.1로 업데이트하였으며 실제 설치된 cudatoolkit은 10.1이었다. 다음 명령어를 통해 cudatoolkit을 제거해준다. 제거 후 1번 llama-cpp-python 설치 명령어로 설치하면 된다.

# 설치된 cudatoolkit 확인

apt-cache policy nvidia-cuda-toolkit

# cudatoolkit 제거

sudo apt remove nvidia-cuda-toolkit

댓글