graphsignal-top: 오픈소스 Graphsignal 프로파일러의 추론 GPU를 위한 top 도구
요약
본 글은 오픈소스 Graphsignal 프로파일러를 보완한 'graphsignal-top' 도구를 소개합니다. 이 도구는 GPU의 활용률, 메모리, 전력, 스로틀링 정보와 함께 엔진의 성능 지표(tok/s, TTFT 등)를 실시간으로 제공하여 모델 추론 과정을 심층 분석할 수 있게 합니다.
핵심 포인트
- GPU별 활용률, 메모리, 전력, 스로틀링 정보를 시간 경과에 따라 확인 가능합니다.
- 엔진의 요청 수, tok/s 및 TTFT/TPOT p50/p95 등 핵심 성능 지표를 제공합니다.
- CUDA 그래프 재생, 전송, 동기화(sync)와 같은 세부 GPU 동작을 분석할 수 있습니다.
- 원격 환경에서도 사용할 수 있도록 설계되어 접근성이 높습니다.
몇 주 전, 저희는 오픈소스 Graphsignal 프로파일러를 여기에 게시했습니다. 이 프로파일러는 vllm serve / sglang serve / 무엇이든 graphsignal-run에 래핑하여 측정하는 모든 것을 JSON 형태로 제공하며, 주로 에이전트가 루프(loop)로 읽을 수 있도록 하기 위함이었습니다. 그런데 저희가 직접 JSON을 열어 GPU가 무엇을 하고 있는지 확인하게 되었습니다. 그래서 이제 graphsignal-top이 생겼습니다: graphsignal-run vllm serve <model> --port 8000 # 한 터미널에 실행하고, graphsignal-top # 다른 터미널에서 실행합니다.
무엇을 얻게 될까요? 시간 경과에 따른 GPU별 활용률(util), 메모리, 전력, 스로틀링 정보; 엔진의 실행 중/대기 요청 수, tok/s 및 TTFT/TPOT p50/p95; GPU 시간 분할 (커널 / 그래프 / memcpy / sync); 그리고 지난 5초 동안 시간을 기준으로 순위가 매겨진 모든 커널(kernel)과 읽을 수 있는 이름 및 카테고리 정보, 단순히 난해한 심볼이 아닙니다. CUDA 그래프 재생(replays), 전송(transfers), 동기화(syncs)에 대한 탭도 있습니다.
스크린샷은 Qwen3-32B 모델을 2x RTX PRO 6000, tp 2 환경에서 PCIe를 통해 실행한 것입니다. NCCL all-reduce가 GPU 시간의 4분의 1을 차지하며, 전체 경과 시간(wall time)의 절반이 이 과정에 대한 호스트 동기화 대기 시간인 것을 한눈에 볼 수 있습니다. 원격으로도 작동합니다: graphsignal-top --host gpu-box를 사용하여 --listen-host로 시작된 프로파일러와 함께 사용하거나, ssh를 통해 포트 포워딩을 사용할 수 있습니다. --once 옵션은 로그에 단일 프레임만 받고 싶을 때 사용합니다.
저장소(Repo): https://github.com/graphsignal/graphsignal /u/l0g1cs가 제출했습니다 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기