AMD ROCm: GPU 레지던트 YOLO26 파이프라인, 비디오 프레임을 디코딩부터 감지까지 VRAM에 유지
AMD는 rocDecode, DLPack, PyTorch, MIGraphX를 활용하여 최종 감지 결과가 확정될 때까지 비디오 프레임이 VRAM을 벗어나지 않도록 하는 GPU 레지던트 객체 감지 파이프라인을 공개했습니다.
이 기사는 AI가 1차 출처를 기반으로 생성했습니다.
AMD는 ROCm 블로그에서 rocDecode, DLPack, PyTorch, MIGraphX를 결합한 4단계 GPU 레지던트 객체 감지 파이프라인을 상세히 설명하며, 비디오 프레임이 압축 비트스트림에서 바운딩 박스까지 불필요한 데이터 복사 없이 전체 경로를 통과하는 방법을 시연했습니다.
「GPU 레지던시」가 실시간 감지에 중요한 이유는 무엇인가요?
객체 감지를 위한 비디오 처리의 고전적 접근 방식은 CPU 디코딩, RAM으로 프레임 이동, 그 후 GPU 메모리로 전송에 의존합니다. 이러한 각 전환에는 비용이 따릅니다. PCIe 버스가 병목 현상이 되고, 레이턴시가 증가하며, CPU는 스마트한 작업 대신 단순한 데이터 복사로 바빠집니다.
AMD의 접근 방식은 이러한 전환을 제거합니다. 압축된 H.264 또는 H.265 비트스트림이 PCIe 버스를 단 한 번 통과하고, 나머지는 GPU 내부에서만 발생합니다. 프레임은 rocDecode 라이브러리를 통해 VRAM에 직접 디코딩되고, 전처리와 추론 내내 그곳에 머뭅니다. 호스트 메모리에는 최종 감지 결과, 즉 신뢰도 점수와 클래스 ID를 가진 바운딩 박스만 도달합니다. 이는 일반적으로 프레임당 수백 바이트에 불과한 무시할 수 있는 대역폭입니다.
파이프라인의 4단계
첫 번째 단계는 하드웨어 비디오 디코딩입니다. AMD GPU 내부의 전용 블록인 **Video Core Next(VCN)**는 GFX 컴퓨팅 코어를 사용하지 않고 H.264와 H.265를 네이티브로 디코딩합니다. ROCm 7.2.2와 1920×1080 H.264 입력으로 AMD Radeon AI PRO R9700에서의 측정 결과 VCN 가동률은 약 **10%**에 불과하며, 컴퓨팅 코어는 약 21% 가동률로 병렬로 작동합니다. 두 엔진은 동시에 독립적으로 작동합니다.
두 번째 단계는 프레임다운 간의 제로 카피 전송입니다. DLPack 라이브러리는 모든 인기 있는 프레임워크가 이해하는 메모리 내 텐서의 표준 레이아웃을 정의합니다. 디코딩된 프레임 표면은 새 버퍼로 복사되지 않습니다. DLPack 래퍼는 기존 VRAM 위치를 참조하여 할당 없이 PyTorch에 전달합니다. 출력 텐서는 한 번 할당되고 모든 프레임에서 재사용됩니다.
세 번째 단계는 추론입니다. AMD의 그래프 추론 엔진인 MIGraphX는 FP16 양자화로 YOLO26 모델을 컴파일하고 중간 소프트웨어 레이어 없이 AMD GPU에서 네이티브로 실행합니다.
네 번째 단계는 감지 필터링입니다. Ultralytics의 YOLO26 모델은 엔드투엔드 NMS(비최대 억제)가 내장되어 있습니다. 출력은 프레임당 차원이 **[1, 300, 6]**인 텐서로, 각 행에는 바운딩 박스 좌표(x1, y1, x2, y2), 신뢰도 점수, 클래스 ID가 포함됩니다. YOLO11 같은 구형 모델은 추론 후 별도의 NMS 단계가 필요했는데, YOLO26은 이를 제거합니다.
PCIe 버스를 통과하는 것과 통과하지 않는 것
CPU 디코딩과의 핵심 차이점입니다. PCIe 버스를 통과하는 것은 오직 입력의 압축 비디오 비트스트림뿐입니다. 원시 디코딩 프레임(1920×1080, YUV420의 경우 각 약 6MB)은 VRAM을 벗어나지 않습니다. 호스트 메모리에는 최종 감지 결과만 도달합니다. 일반적으로 프레임당 수백 바이트로, 무시할 수 있는 대역폭입니다.
기준 하드웨어 및 소프트웨어 스택
파이프라인은 전용 VCN 엔진을 갖춘 워크스테이션 GPU인 AMD Radeon AI PRO R9700에서 시연되었습니다. 동일한 스택은 AMD Instinct MI300X, MI325X, MI350X, MI355X 패밀리의 데이터센터 카드에서도 작동합니다. 소프트웨어 레이어는 ROCm 7.2 / ROCm 7.2.2를 기반으로 합니다.
테스트 입력은 H.264 코덱의 1920×1080 해상도에서 16fps로 AI 생성 사이클링 비디오 15초였습니다. OpenCV 기준선(CPU 디코딩)과의 비교는 rocDecode 경로에서 더 높은 VCN 및 GFX 활동을 보여줍니다. 즉, GPU 리소스 활용도는 높지만 CPU 개입은 훨씬 적고 프레임의 PCIe 트래픽은 없습니다. 지원 코덱에는 H.264와 H.265가 포함되며, 최신 세대 GPU에서는 VCN 엔진이 AV1과 VP9도 지원합니다.
메모리 모델 측면에서 rocDecode는 DLPack 호환 표면을 생성하는 「디바이스 복사」 출력 모드를 사용합니다. 즉, 프레임당 출력 텐서는 각 프레임마다 할당이 필요하지 않습니다. 한 번 할당된 버퍼가 전체 세션 동안 재사용되어 GPU 할당자의 부담을 제거합니다.
프로덕션 객체 감지에 대한 시사점
AMD가 시연하는 접근 방식은 학문적 실험이 아닙니다. 공개적으로 사용 가능한 구성 요소(rocDecode, PyTorch, MIGraphX)와 프로덕션에서 사용 중인 모델(Ultralytics YOLO26)의 구체적인 통합입니다. 비디오를 실시간으로 처리하는 모든 애플리케이션—감시 카메라, 산업 검사, 자율주행 차량—에 있어 이러한 파이프라인은 CPU 오버헤드 감소, 레이턴시 감소, 멀티 스트림 시나리오에서의 더 나은 확장성을 의미합니다. 디코딩과 복사에서 해방된 CPU는 객체 추적이나 결과 직렬화와 같은 다운스트림 작업을 병렬로 처리할 수 있습니다.
자주 묻는 질문
- GPU 레지던트 파이프라인이란 무엇이며 왜 중요한가요?
- GPU 레지던트 파이프라인은 비디오 프레임이 디코딩, 전처리, 추론, 필터링 등 모든 처리 단계에서 VRAM에 머물며 호스트 메모리로 복사되지 않음을 의미합니다. 이를 통해 PCIe 버스 병목 현상이 제거되고 CPU가 다른 작업에 자유롭게 활용됩니다.
- VCN이란 무엇이며 비디오 디코딩에 어떻게 도움이 되나요?
- Video Core Next(VCN)은 컴퓨팅 코어(GFX)를 사용하지 않고 H.264 및 H.265 비디오를 디코딩하는 AMD GPU 내부의 전용 하드웨어 블록입니다. VCN이 약 10% 가동률로 작동하는 동안 GFX 컴퓨팅은 약 21%로 추론을 병렬로 실행합니다. 두 전문 엔진이 동시에 작동합니다.
- YOLO26 모델의 출력 텐서는 어떻게 생겼으며 무엇이 새로운가요?
- Ultralytics의 YOLO26은 프레임당 [1, 300, 6] 형태의 텐서를 출력합니다. 바운딩 박스 좌표, 신뢰도 점수, 클래스 ID를 포함하며 NMS 단계가 엔드투엔드로 내장되어 있습니다. 이는 별도의 NMS 단계가 필요했던 YOLO11 같은 구형 모델과 다릅니다.