GPU Kill: NVIDIA, AMD, Intel, Apple Silicon 등, 다양한 GPU를 관리하는 CLI 도구

GPU Kill 소개

GPU Kill은 NVIDIA, AMD, Intel, 그리고 Apple Silicon 등 다양한 GPU 플랫폼을 단일 인터페이스에서 통합적으로 관리할 수 있도록 설계된 Rust 기반 CLI(명령줄 도구) 입니다. 단순한 GPU 모니터링 툴을 넘어, 이 도구는 프로세스 제어, 보안 스캔, 정책 기반 자원 관리, 원격 GPU 제어 등 GPU 인프라 운영 전반을 자동화할 수 있습니다.

GPU Kill 프로젝트는 AI 인프라 엔지니어링과 클라우드 GPU 관리 환경을 염두에 두고 만들어졌습니다. 특히 대규모 딥러닝 학습이나 분산 훈련 중 GPU 자원이 과도하게 점유되거나 ‘stuck’ 상태가 발생할 때, GPU Kill을 통해 실시간으로 GPU 상태를 모니터링하고, 프로세스를 강제 종료하거나, GPU를 리셋할 수 있습니다.

또한 GPU Kill은 MCP(Machine Control Protocol) 서버 기능을 내장하고 있어, ChatGPT나 기타 AI 비서가 직접 GPU 제어 명령을 내릴 수도 있습니다. 즉, AI와 인프라가 긴밀히 연동되는 “AI-Orchestrated GPU Management” 환경을 구현할 수 있습니다.

GPU Kill은 특정 벤더의 GPU 모니터링 도구(nvidia-smi, rocm-smi 등)와 달리 멀티 벤더 지원, 보안 감시, 정책 기반 자원 제어, AI 통합 제어(MCP) 기능을 제공합니다.

예를 들어, nvidia-smi는 NVIDIA GPU 상태를 실시간 확인할 수 있지만, AMD나 Intel GPU를 지원하지 않습니다. 반면 GPU Kill은 하나의 커맨드로 모든 GPU를 탐색할 수 있으며, 보안 스캔(--audit --rogue)을 통해 암호화폐 채굴 프로세스나 비정상적인 GPU 사용 패턴도 탐지합니다.

또한, gpukill --guard 기능은 GPU 자원 오남용을 사전에 차단하는 정책 기반 보호 모드로, 클러스터 환경에서 특히 유용합니다.

GPU Kill의 주요 기능 및 사용법

  • GPU 실시간 모니터링: GPU Kill의 기본 기능은 GPU 상태를 실시간으로 조회하는 것입니다. 다음 명령으로 GPU 상태를 확인할 수 있습니다.

    gpukill --list --watch
    

    위 명령어를 실행하면 GPU 이름, 메모리 사용량, 온도, 그리고 프로세스 점유 상태를 실시간 스트리밍 형태로 표시합니다. NVIDIA, AMD, Intel, Apple Silicon GPU 모두 동일한 인터페이스로 관리됩니다.

  • 프로세스 제어 및 GPU 리셋: GPU Kill의 이름 그대로, GPU 자원을 점유하고 있는 프로세스를 직접 종료할 수 있습니다. 예를 들어, 다음과 같이 사용 가능합니다:

    gpukill 12345             # PID 12345 프로세스 종료
    gpukill --kill --gpu 0    # GPU 0에 점유된 모든 프로세스 종료
    gpukill --reset 0         # GPU 0 리셋
    

    실제 실행 전 “미리보기(dry-run)”를 원할 경우 --safe 플래그를 추가하여 안전하게 동작을 검토할 수 있습니다.

  • 보안 및 정책 기능: GPU Kill은 암호화폐 채굴 탐지 및 악성 GPU 사용 감시 기능 을 포함하고 있습니다. 다음 명령으로 시스템을 점검할 수 있습니다:

    gpukill --audit --rogue
    

    또한, 아래와 같이 “Guard Mode”를 활성화하여 GPU 사용량을 정책적으로 제한할 수 있습니다:

    gpukill --guard --guard-enable
    gpukill --guard --guard-test-policies
    

    이 기능을 통해 특정 사용자나 프로세스가 GPU 메모리를 과도하게 사용하는 것을 사전에 방지할 수 있습니다.

  • MCP 서버: AI 통합 제어 기능: GPU Kill의 핵심 차별점 중 하나는 MCP(Machine Control Protocol) 서버입니다. MCP 기능을 통해 ChatGPT 같은 AI 비서가 GPU 상태를 읽고, 프로세스를 종료하거나 정책을 생성할 수 있습니다. 이 기능을 사용하기 위해서는 다음과 같이 서버를 실행하면 됩니다:

    cargo run --release -p gpukill-mcp
    

    위 명령어를 실행하면 http://localhost:3001/mcp 에서 MCP 서버가 실행되며, LLM 모델은 MCP 서버를 통해 다음과 같은 명령을 수행할 수 있습니다:

    • GPU 상태 조회
    • GPU 리셋
    • 암호화폐 채굴 탐지
    • 자원 정책 생성 및 관리
  • 원격 GPU 관리: 또한, GPU Kill은 SSH를 통해 여러 서버의 GPU를 원격 제어할 수 있습니다:

    gpukill --remote gpu-cluster --list
    gpukill --remote gpu-cluster --kill --pid 1234
    gpukill --remote gpu-cluster --reset --gpu 0
    

    클라우드 GPU 인스턴스(AWS, GCP, Azure)나 온프레미스 클러스터 모두 동일한 방식으로 제어할 수 있으며, GitHub CI/CD 환경에서도 GPU가 감지되면 자동으로 테스트가 실행됩니다.

라이선스

GPU Kill 프로젝트는 FSL-1.1-MIT License로 배포되고 있습니다. 이 라이선스(FSL-1.1-MIT)가 적용된 소프트웨어는 공개 후 2년 동안은 상업적 사용이 제한되며, 경쟁 제품이나 유사 서비스를 만드는 데 사용할 수 없습니다. 이 기간에는 내부 사용, 비상업적 연구·교육 목적으로만 이용이 가능합니다. 재배포 시에는 반드시 원문 라이선스와 저작권 표시를 유지해야 하며, 상표 사용은 허용되지 않습니다. 공개 후 2년이 지나면 MIT 라이선스로 자동 전환되어 상업적 사용이 완전히 자유로워집니다. 상세한 내용은 라이선스 원문을 읽어주세요.

:house: GPU Kill 공식 홈페이지

:github: GPU Kill 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: