GN⁺ 5달전 | parent | ★ favorite | on: AMD GPU 디버거(thegeeko.me)
Hacker News 의견
  • AMD는 아니지만, Metal은 정말 훌륭한 디버거와 개발 도구 세트를 제공함
    그래서 나는 GPU 작업을 할 때 항상 Metal을 먼저 사용하고, 이후 다른 시스템으로 포팅하는 방식을 선호함
    Metal Debugger 문서를 참고하면 좋음
    AAA 게임 개발자는 아니지만, 내 용도에서는 완벽에 가까웠음
    특히 셰이더에서 포맷된 로그 문자열을 출력하면 앱 로그와 함께 섞여 표시되는 기능이 놀라움
    Metal과 OpenGL을 모두 사용하는 GPU 기반 앱을 개발 중인데, OpenGL 쪽에서는 Metal 수준의 툴을 찾기 어려웠음

    • 나는 OpenGL 그래픽 코드를 PS5와 Xbox로 포팅하면서 셰이더를 처음 접했음
      두 플랫폼 모두 전용 디버거를 제공하는데, 그 품질이 꽤 좋았음
      결국 검은 화면만 보일 때는 툴링이 전부임을 깨달았음
      혹시 OpenGL 대신 DirectX를 사용하면 Windows에서 더 나은 툴링을 얻을 수 있는지 궁금함
    • Metal 디버거는 정말 잘 만들어졌지만, 자주 프리징되거나 Xcode가 강제 종료되는 문제가 있음
      특히 compute shader를 다룰 때는 프로파일링이 잘 안 되는 경우가 많음
      그래픽 중심으로 설계된 툴이라, AI나 대용량 버퍼 작업에는 아직 한계가 있는 듯함
    • Xcode의 Metal 디버거는 훌륭하고, Metal API 자체도 직관적임
      OpenGL보다 훨씬 잘 맞았음
      OpenGL 쪽에서는 RenderDoc을 써봤는지? Vulkan/OpenGL용으로는 그게 가장 비슷한 툴임
    • GPU 학습용으로 Mac을 사라는 의견에는 동의하기 어려움
      비싼 컴퓨터를 사서 Metal 전용 API를 디버깅하는 건 비효율적임
      진지하게 그래픽 프로그래밍을 배우려면 Windows나 Linux에서 DX12나 Vulkan을 배우는 게 낫다고 생각함
      RenderDoc 같은 툴을 쓰면 충분히 가능함
      Metal은 좋은 API지만, Apple 플랫폼 밖에서는 쓸 수 없다는 점이 가장 큰 한계임
    • Metal이 멋지긴 하지만, 벤더 종속성(vendor lock-in) 이 문제라고 생각함
      서버나 게임 환경에서는 대부분 AMD나 Nvidia GPU를 사용하므로, Metal 중심 개발은 실용적이지 않음
  • NVIDIA의 CUDA에는 cuda-gdb라는 1st-party GDB가 있음
    공식 문서를 보면 알 수 있듯, CUDA의 스레드 모델과 잘 맞음
    다만 워프 단위로만 단일 스텝 실행이 가능함

  • NVIDIA 카드에서는 NSight를 사용할 수 있고, 다양한 GPU에서 작동하는 RenderDoc도 있음

    • RenderDoc은 고수준 디버거에 가깝고, 성능 분석에도 유용함
      QML이나 QSG_VISUALIZE=overdraw 같은 고수준 시각화가 부족할 때 API 호출 단위로 장면을 추적하는 게 흥미로움
    • nsysnvtx도 훌륭한 도구임
      GPU 없이도 사용할 수 있다는 점을 모르는 사람이 많음
  • AMD용 공식 툴이 있냐는 질문에, GDB가 AMD GPU 디버깅을 지원함
    또한 AMD의 UMR
    Radeon GPU Detective,
    Radeon Developer Tool Suite 같은 도구도 있음

    • 블로그 글을 보면 rocgdb라는 AMD ROCm용 디버거가 언급되어 있음
  • AMD GPU용으로 직접 만든 모니터링 툴을 공유함
    picomon이라는 프로젝트인데, nvtop이 너무 엄격해서 자주 크래시 나는 문제를 해결하려고 만들었음

  • Metal, CUDA, Pix, PS/Switch 등 각 플랫폼마다 전용 툴이 존재함
    이런 이유로 연구자들이 여전히 CUDA를 선호하는 경향이 있음
    Nsight Systems도 그중 하나임

  • 7900 XTX GPU를 로컬 추론(inference) 이나 diffusion에 사용하는 사람 있는지 궁금함
    Linux를 설치했는데 대부분 놀고 있어서 활용하고 싶음

    • Gentoo에서 몇 년째 사용 중임
      예전엔 Python 관련 문제가 있었지만 최근엔 안정화되어 img2video까지 가능함
      24GB VRAM 기준으로는 여전히 가장 가성비 좋은 카드라고 생각함
      ROCm이 최근 UX 개선을 위해 대대적으로 개편되었으니 TheRock을 확인해보길 추천함
    • Windows에서 7900XT로 ollama를 통해 LLM을 로컬 호스팅해봤는데 잘 작동했음
      devstral:24b 모델도 꽤 빠르게 돌았음
    • 출시 초기에 구입했을 때는 ROCm 관련 커널 OOM 오류가 있었음
      ComfyUI에서는 대부분 잘 작동했지만, 특이한 작업에서는 불안정했음
      최근에는 안정화되었다고 들음
    • 6800XT로도 비슷한 작업을 해봤는데, CUDA 중심 생태계라 약간 까다롭지만 가능했음
    • 이미지 및 텍스트 생성 모델을 테스트했는데, 기본 torch 라이브러리를 AMD의 ROCm 버전으로 교체하니 문제없이 작동했음