Ubuntu 24.04 에서 그래픽카드 (GPU) 선택적 비활성화 하기
일반적으로 GPU 는 1, 2, 4, 8, 16, ... 의 개수로 동작을 하기 때문에 애매한 수의 그래픽카드는 낭비일 수 있습니다.
아래에서는 필요에따라 그래픽카드를 비활성화 하는 방법을 안내합니다.
본 환경은 Ubuntu 24.04 에서 진행하였습니다.
1. 장착된 그래픽카드 확인
# lspci -nn | grep -i nvidia
4f:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
4f:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
52:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
52:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
53:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
53:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
56:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
56:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
57:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
57:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
ce:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
ce:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
d1:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d2:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d5:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d6:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
여기에서는 A6000 이 6개, 6000ADA 가 4개로 확인되었습니다.
테스트를 위해 A6000 6개를 비활성화 할 것인데, 방법은 특정 GPU의 PCI 장치를 커널이 무시하도록 설정하는 것입니다.
2. 일시적 제거
여기서 맨 왼쪽 열(4f:00.0, 4f:00.1 등 오디오장치 포함)이 PCI 버스 및 슬롯 번호인데 이것에 아래값을 입력하면 간단히 제거됩니다.
삭제할 모든 행에 대해 명령을 수행합니다.
echo "none" > "/sys/bus/pci/devices/0000:4f:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:4f:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:4f:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:4f:00.1/remove"
echo "none" > "/sys/bus/pci/devices/0000:52:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:52:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:52:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:52:00.1/remove"
echo "none" > "/sys/bus/pci/devices/0000:53:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:53:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:53:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:53:00.1/remove"
echo "none" > "/sys/bus/pci/devices/0000:56:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:56:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:56:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:56:00.1/remove"
echo "none" > "/sys/bus/pci/devices/0000:57:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:57:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:57:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:57:00.1/remove"
echo "none" > "/sys/bus/pci/devices/0000:ce:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:ce:00.0/remove"
echo "none" > "/sys/bus/pci/devices/0000:ce:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:ce:00.1/remove"
재부팅 없이도 장치가 제거된 것이 확인됩니다.
# lspci -nn | grep -i nvidia
d1:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d2:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d5:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d6:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
3. 영구적 제거
udev 설정 등 몇가지 방법이 있지만 여기에서는 가장 쉬운 방법으로 진행합니다.
위에서 사용했던 echo 명령 행 전부를 사용자 .bashrc 파일에 넣어주세요.
로그인 할 때마다 장치가 비활성화 됩니다.
'AI' 카테고리의 다른 글
GGUF 파일을 Llama.cpp 도구로 실행하는 방법 (0) | 2025.04.14 |
---|