[Linux][LLM] Ubuntu kernel update

Dawoon·2024년 1월 23일

문제 상황

서버에서 조금 큰 용량의 llm 모델을 여러 대의 gpu를 사용해 돌리려는데, 다음과 같은 에러가 발생하였습니다.

RuntimeError: CUDA error: device-side assert triggered
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

에러 메세지를 구글링 해보니 가장 상단에 뜨는 말이 "가장 추상적인 에러" 랍니다. 해당 오류의 원인이 다양하다는겁니다. 처음엔 stackoverflow도 찾아보고 chatGPT에게도 방법을 물어봤지만 오류의 원인을 찾을 수 없을 뿐더러 문제가 해결되지도 않았습니다.

그러던 중, multiGPU를 사용해 LLM을 실행하는 방법에 대해 작성하신 분이 있어 그 분의 방법을 그대로 따라해보게 되었습니다.

제가 시도하던 방법과 다른 점은 모델을 Multi GPU 분산 구성을 똑같이 100%로 활용하도록 하는 Accelerator 라이브러리를 사용한 것이였는데요, 이를 설치하고 실행하자 에러 메세지가 해당 라이브러리가 없다"로 바뀌었습니다. 찾아보니 Accelerator 라이브러리는 Ubuntu 20.04 LTS에선 5.5버전 이상의 kernel이 필요했습니다.


해결: Accelerator 사용을 위한 커널 업데이트

kernel 업데이트 방법은 이 분의 글을 참고하였습니다.
우선 사용중인 kernel의 버전을 조회합니다.

uname -r

> 5.4.0.109-generic #이런식으로 출력됩니다.

제 서버 kernel의 경우 5.4 버전이였기 때문에 Accelerator를 사용할 수 없었습니다.
이후 공식에서 지원하는 레포를 등록한 후, update&install 해주면 됩니다.

add-apt-repository ppa:canonical-kernel-team/proposed -y

apt update && apt install linux-headers-5.15.*-*-generic linux-image-5.15.*-*-generic

설치 이후 서버를 재시작 해주셔야 적용이 완료됩니다.
원래는 서버에 등록된 레포와 그에 설치 가능한 버전을 조회하고 진행하지만 위와 같이 레포를 새로 등록하고 그에 맞는 버전을 설치해주는 방법도 있습니다.

이후 모델을 돌려보니 잘 돌아갔습니다.

Accelerator 라이브러리에 대한 글은 추후 새 글로 다뤄보겠습니다.

0개의 댓글