RoCE v2가 GigE Vision 3.0에 통합됨에 따라, RDMA(Remote Direct Memory Access)는 고속 이더넷 카메라를 위한 표준으로 자리잡게 되었습니다. 이를 통해 더 낮은 CPU 부하로 안정적인 스트리밍이 가능해지며, 확장 가능한 다중 카메라 환경에 이상적인 솔루션을 제공합니다. GigE Vision 3.0과 RoCE v2: 이더넷 기반 고성능 이미지 전송의 표준화 RDMA Camera Lucid Tech Brief TCP for 10GigE Banner

빠르게 진화하는 혁신

머신 비전 시스템이 더 높은 해상도와 빠른 프레임 속도로 발전함에 따라, 증가하는 이미지 데이터 양은 기존 네트워크 구성의 한계를 시험하고 있으며, 경우에 따라 이를 초과하기도 합니다. 엔지니어들이 고처리량과 복잡한 비전 처리를 요구하는 10GigE 및 25GigE 카메라를 지속적으로 도입함에 따라, 패킷 손실이 발생할 수 있고 이는 CPU 부하 증가와 지연 시간 불균일로 이어질 수 있습니다. 이러한 문제를 해결하기 위해서는 세심한 최적화가 필요하거나, 경우에 따라 맞춤형 또는 독자적 솔루션이 요구되었습니다. 그러나 GigE Vision 3.0의 도입과 RoCE v2 표준을 통한 RDMA 지원으로, 업계는 이미 데이터 센터와 HPC(고성능 컴퓨팅) 환경에서 입증된 고성능 전송 프로토콜을 채택하기 시작했습니다. 본 문서에서는 GigE Vision과 RoCE v2라는 두 표준이 어떻게 융합되어 보다 효율적이고 확장 가능하며 미래지향적인 머신 비전 네트워크를 구현하는지 살펴봅니다.

더 많은 데이터, 더 많은 처리 더 빠른 센서와 고대역폭 인터페이스는 머신 비전 분야에서 빠른 혁신을 이끌고 있으며, 동시에 더 복잡한 검사 작업은 호스트 시스템의 데이터 및 처리 부하를 증가시키고 있습니다. Single Vision system, one computer one camera More complex vision system, multi-camera application Very complex vision system, multi-camera and complex topology Data-processing1 Data-processing2

GigE Vision과 RoCE v2: 각기 다른 길을 걸어온 두 표준

GigE Vision 표준은 2006년에 도입되었으며, 머신 비전 애플리케이션에서 이더넷을 통한 이미지 데이터 전송 방식을 통합하는 것을 목표로 했습니다. 이 표준은 UDP를 기반으로 한 공통 프레임워크를 마련하여 카메라, 소프트웨어, 네트워크 하드웨어 간 상호운용성을 보장했습니다. 이후 GigE Vision은 지속적으로 기능을 확장해왔습니다. 예를 들어, 패킷 재전송 및 청크 데이터 지원(GigE Vision 1.1, 2008), IEEE 802.3ba를 통한 링크 어그리게이션 및 10기가비트 공식 지원, 압축 기능 및 비스트리밍 장치 제어(GigE Vision 2.0, 2012), 버퍼 및 이벤트 처리 개선, 더 복잡한 3D 데이터 구조 지원(GigE Vision 2.1, 2018), 그리고 GenDC 스트리밍 및 다중 이벤트 데이터 지원(GigE Vision 2.2, 2022) 등이 추가되었습니다.

GigE Vision
Infiniband Trade Association

한편, 데이터 센터와 HPC 산업에서는 또 다른 과제를 해결하고 있었습니다. 바로 서버 간 대량의 데이터를 최소한의 지연(latency)과 CPU 부하로 전송하는 방법이었습니다. 이러한 요구는 RDMA 기술의 발전과 RoCE(RDMA over Converged Ethernet)의 도입으로 이어졌습니다. RoCE는 InfiniBand의 고성능 RDMA 전송 방식을 표준 이더넷 네트워크로 확장하기 위해 InfiniBand Trade Association(IBTA)에 의해 개발되었습니다. RoCE v1(2010)은 L2 계층에서 동작하여 로컬 네트워크 세그먼트로 제한되었으나, RoCE v2(2014)는 UDP/IP 캡슐화를 추가하여 라우팅이 가능해지고 표준 이더넷 네트워크 전반으로 확장성과 유연성을 확보했습니다. 지난 10여 년 동안 경쟁 RDMA 기술들이 존재했음에도 불구하고, RoCE v2는 성숙해지며 클라우드 컴퓨팅, 스토리지, 실시간 분석 분야에서 널리 채택되었습니다.

10 Mbps
1983
100 Mbps
1993
1 Gbps
1998
10 Gbps
2002
RoCE v1
Released

2010
InfiniBand
Spec v1 Released

2000
(InfiniBand originated from a merger of Future I/O & Next Generation I/O) 2006 40 / 100 Gbps
2010
InfiniBand
Linux Compatibility

2004
GigE Vision 2.1
2018
RoCE v2
Released

2014
25 Gbps,
2.5 / 5 Gbps
(NBase-T)
2016
200 /
400 Gbps
2017
GigE Vision 2.0
2011
GigE Vision 2.2
2012
800 Gbps - 10 Tbps
2023 and Beyond...
Long ethernet cable GigE Vision logo

GigE Vision과 RoCE RDMA 표준은 모두 확립된 역사를 가지고 있습니다.

지금이 그 시점: RDMA와 GigE Vision의 만남

이더넷 기반 머신 비전 카메라에 RDMA 원리를 적용하는 아이디어는 이미 2016년에 GigE Vision 표준 위원회에서 논의되었습니다. 2017년에는 이 위원회 내에서 RDMA를 위해 설계된 새로운 GVSP 페이로드 타입을 제안한 바 있습니다. 기술적으로는 타당했지만, 당시 머신 비전 생태계 전반은 아직 이를 받아들일 준비가 되어 있지 않았습니다. 당시에는 iWarp 프로토콜이나 Intel의 Omni-Path 아키텍처 등 여러 RDMA 기술이 공존하고 있었기 때문에 어떤 RDMA 기술이 주류가 될지가 명확하지 않았습니다. RoCE v2가 점차 인기를 얻고 있었으나, RoCE v2 NIC은 단일 벤더에서만 생산되었고 가격이 비쌌으며, 비전 시스템에 통합하기 위해서는 추가적인 엔지니어링 작업이 필요했습니다.

HPC and data centers needed RDMA

RoCE는 2010년 IBTA에 의해 고성능 컴퓨팅(HPC)에 RDMA를 도입하기 위해 발표되었으며, RoCE v2(2014)는 IP 라우팅과 플로우 제어를 추가하여 확장 가능하고 표준 기반의 배포를 지원했습니다.

동시에 대부분의 머신 비전 애플리케이션은 여전히 1GigE 카메라로 충분히 지원되고 있었으며, 더 높은 대역폭이 필요한 사용자들은 이미 USB 3.0, CameraLink, CoaXPress와 같은 대안을 사용하고 있었습니다. 고처리량 이더넷에 대한 수요는 계속 증가하고 있었지만, 그 범위는 제한적이었습니다. 초기 10GigE 도입자들은 강력한 호스트 PC와 함께 단순한 비전 처리 방식을 사용했으며, 적절한 튜닝을 통해 UDP 기반 데이터 전송만으로도 대체로 충분했습니다. 그 결과, 많은 카메라 제조업체들은 RDMA 채택에 적극적으로 나서지 않았고, RDMA 호환 생태계를 구축하고 유지하는 데 투자하기를 주저했습니다. 제조업체들의 폭넓은 지원이나 최종 사용자의 강력한 수요가 부족했기 때문에, GigE Vision 표준에 RDMA를 통합하려는 노력은 보류되었습니다.

그러나 시간이 지나면서 다중 10GigE 카메라 애플리케이션에 대한 수요가 RDMA를 다시 평가해야 할 수준으로 증가했습니다. 점점 더 많은 고객들이 단순한 속도뿐만 아니라, 산업용 신뢰성과 네트워크 유연성을 이유로 이더넷을 선택했습니다. 전기적 절연 내장, 긴 케이블 길이 지원, PoE(Power over Ethernet), PTP(Precision Time Protocol), 액션 커맨드와 같은 기능들은 이더넷을 복잡하고 확장 가능한 비전 시스템에 이상적인 선택으로 만들었습니다. 사용자들은 10GigE 이상의 대역폭과 함께 이더넷의 산업적 이점을 원했습니다. 그러나 다중 10GigE 카메라 시스템을 배치하고 더 고도화된 비전 처리를 구현하기 시작하면서, 많은 이들이 UDP 기반 전송에서 발생하는 패킷 손실과 재전송으로 인한 높은 CPU 부하 및 신뢰성 문제에 직면했습니다. 다수의 10GigE 카메라 데이터 스트림을 처리하기 위해 필요한 CPU 자원 증가로 인해, GigE Vision 표준에서 RDMA를 다시 평가해야 할 시점이 도래했음이 분명해졌습니다.

UDP 패킷 재전송 병목 현상: 10GigE 및 25GigE 카메라는 방대한 데이터 스트림을 생성하며, 이는 최적화되지 않은 제한된 CPU 자원을 가진 시스템을 쉽게 압도할 수 있습니다. 패킷 손실이 발생하면, UDP 기반 재전송을 처리하는 데 필요한 오버헤드로 인해 연쇄적인 패킷 손실과 이미지 손상이 발생할 수 있습니다. 특히 다중 카메라 환경에서는 이러한 현상이 악순환을 일으켜 CPU 부하는 지속적으로 증가하고 신뢰성은 저하됩니다. UDP 패킷 재전송 호스트 PC가 순서가 뒤바뀐(out-of-order) 패킷과 손실된 패킷을 처리하는 예시입니다. 카메라 제조업체의 필터 드라이버(Filter Driver)는 GVSP 헤더를 읽어 UDP 트래픽을 모니터링하며, 이를 통해 패킷 재전송을 가능하게 합니다. 이 프로세스는 시스템이 무리 없이 재전송을 처리할 수 있는 낮은 데이터 속도의 1GigE, 2.5GigE, 5GigE 환경에서 안정적으로 동작합니다. Packet Retransmission UDP GigE Vision

한편, RoCE v2 RDMA의 상황도 발전했습니다. UDP 캡슐화 덕분에 RoCE v2의 채택은 기하급수적으로 증가했습니다. Broadcom의 BCM57414 및 BCM957414 칩셋 출시로 RDMA NIC이 더욱 접근 가능하고 저렴해졌으며, 그 가격은 비RDMA NIC과 동등한 수준에 이르렀습니다. 또한 운영체제 지원도 Windows와 Linux 모두에서 성숙 단계에 도달했으며, RoCE v2 프로토콜은 널리 이해되고 배포되어 경쟁 RDMA 기술들을 제쳤습니다. 이러한 이유로 GigE Vision 표준 위원회는 RoCE v2 RDMA를 사양에 선택적 전송 프로토콜로 통합하기로 결정했습니다. 기존 UDP 전송 프로토콜은 여전히 지원되지만, RDMA는 데이터 스트림 관리에 CPU 자원을 소모하지 않고도 더 높은 대역폭을 요구하는 시스템을 위한 표준 호환 대안을 제공합니다.

RoCE v2 RDMA가 비전 시스템에서 CPU 부하를 줄이는 방법

전통적인 UDP 기반 시스템에서는 각 카메라가 이미지 데이터를 호스트로 전송하며, CPU가 패킷 조립, 데이터 검증, 패킷 재전송, 애플리케이션 버퍼로의 메모리 복사 등을 처리합니다. RDMA는 이에 비해 더 효율적인 대안을 제공합니다. RoCE v2를 사용할 경우, 데이터는 카메라의 메모리 버퍼에서 PC 메모리로 직접 전송되며, 커널과 CPU를 우회합니다. RDMA는 PC 메모리를 호스트의 RDMA 지원 네트워크 인터페이스 카드(NIC, Host Channel Adapter, HCA라고도 함)에 등록하여 해당 메모리를 고정(pinning)합니다. 이를 통해 카메라 데이터가 OS에 의해 이동되지 않고 물리적 RAM에 유지되도록 보장합니다. 이후 NIC은 해당 메모리에 직접 접근할 수 있는 권한을 받아 흐름 제어와 패킷 재전송을 포함한 데이터 스트림을 관리합니다.

RDMA가 동작하기 위해서는 NIC이 물리적 RAM의 메모리를 고정(pinning)해야 합니다. 핀닝은 카메라 데이터 전송과 저장을 위해 해당 메모리를 예약하는 과정입니다.

RDMA 데이터 흐름 시각화: RDMA 동작에서 큐 페어(Queue Pair)와 완료 큐(Completion Queue)가 제로 카피(zero-copy) 메모리 전송을 조율하는 방식을 단순화하여 개요로 설명합니다.

각 RDMA 연결은 큐 페어(Queue Pair) 구조를 사용하며, 각 페어는 송신 큐(Send Queue)와 수신 큐(Receive Queue)로 구성됩니다. 또한 각 전송의 상태를 추적하여 애플리케이션이 데이터 처리 준비가 완료되었음을 감지할 수 있도록 하는 완료 큐(Completion Queue)가 존재합니다. 이러한 큐는 호스트의 RDMA NIC 하드웨어에 의해 관리됩니다. 데이터 전송은 카메라와 NIC 하드웨어에서 전적으로 이루어지므로, CPU는 데이터 전송 관리에 관여하지 않습니다. 이러한 메커니즘을 제로 카피(zero-copy) 전송이라고 합니다. 이 방식은 시스템 오버헤드를 크게 줄이고, 결정성을 향상시키며, CPU 자원을 비전 처리, 사용자 인터페이스 처리 또는 제어 로직에 활용할 수 있도록 합니다.

RDMA를 위한 개발자 API 및 소프트웨어 지원

RDMA 통신을 구현하기 위해 개발자들은 verbs라고 불리는 저수준 프로그래밍 API를 사용합니다. Linux에서는 libibverbs 라이브러리가 사용자 공간(user space)에서 이 인터페이스에 대한 접근을 제공합니다. Windows에서는 Microsoft가 Network Direct Service Provider Interface를 제공합니다. 이러한 라이브러리는 고성능 스트리밍에 필요한 RDMA 하드웨어 기능에 소프트웨어 및 카메라 제조업체가 접근할 수 있도록 합니다. 예를 들어, 이를 통해 RDMA 스트리밍 지원을 LUCID의 Arena SDK, ArenaView GUI 및 API, 그리고 다른 GigE Vision 호환 소프트웨어에 통합할 수 있습니다.

RDMA Verbs Microsoft Linux

애플리케이션에서 RDMA 장치는 어떻게 프로그래밍될까요? 그 출발점은 RDMA 애플리케이션을 위한 저수준 구성 요소인 RDMA verbs입니다.

이러한 API는 메모리 등록 및 핀닝(pinning), 큐 페어(Queue Pair) 생성 및 관리, 데이터 전송 작업 게시(post)와 같은 기능을 제공합니다. 이는 RDMA NIC을 통한 제로 카피(zero-copy) 데이터 이동을 가능하게 하는 핵심 요소입니다. 그러나 이러한 API가 RDMA 통신을 가능하게 하기는 하지만, 머신 비전 애플리케이션 내에서 RDMA가 어떤 구조로 구현되고 어떻게 관리되어야 하는지를 규정하지는 않습니다.

RDMA Frame and Packets

Packet sequence number (PSN) is embedded in the InfiniBand Base Transport Header (IB BTH) and the receiver will only accept packets in order.

이 지점에서 GigE Vision 3.0 표준이 등장합니다. 이 표준은 RDMA 기반 이미지 스트림이 어떻게 설정되고, 동작하며, 종료되어야 하는지를 정의합니다. 또한 필요한 디바이스 레지스터와 제어 노드, 메모리 자원 할당 방식, 이미지 데이터 전송에 사용되는 패킷 포맷도 규정합니다. 이를 통해 다양한 구현 간에도 일관되고 예측 가능한 카메라 성능과 상호운용성을 보장할 수 있습니다.

GigE Vision 3.0 표준 내에서 RDMA 사용 방식을 표준화하는 것은 시스템 통합업체(System Integrator)에게 많은 이점을 제공합니다. 그중 가장 큰 이점은 RDMA 채택 시 하드웨어 및 소프트웨어 유연성을 확보할 수 있다는 점입니다. 시스템 통합업체는 단일 하드웨어 제조업체의 생태계에 종속되지 않고, 널리 지원되는 표준 호환 부품을 사용하여 시스템을 구축할 수 있습니다. 또한 RoCE v2는 라우팅 가능한 IP 네트워크 상에서 동작하므로, 일반적인 이더넷 인프라 및 기존 스위치와도 호환되어 배포가 더욱 단순화됩니다.

LUCID Vision Labs는 자사의 10GigE 카메라 제품군인 Atlas10 및 Triton10에 RDMA 지원을 구현했으며, GigE Vision 3.0 표준이 공식 승인되면 이에 대한 공식 지원도 제공될 예정입니다. RDMA NIC(예: LUCID의 저비용 4포트 및 2포트 10GigE PoE 카드)와 함께 사용하면, 이미지 데이터를 호스트 메모리로 직접 전송할 수 있습니다. 이러한 기능은 로봇 가이던스, 공장 및 제조 검사와 같이 실시간 추론이나 고프레임레이트 이미지 처리가 요구되는 애플리케이션에서 특히 유용합니다. 데이터 경로에서 CPU를 제거함으로써, 개발자는 여러 대의 카메라에서 지속적인 부하가 걸리는 상황에서도 일관된 처리량과 저지연 동작을 구현할 수 있습니다.

Triton10 10GigE RDMA machine vision camera

Triton10 카메라

Atlas10 45mp onsemi camera-back-front

Atlas10 카메라

4-port 10GigE RDMA NIC HCA adapter

4-CH PoE RDMA NIC

LUCID RDMA HCA network interface card for Atlas10 Cameras

2-CH PoE RDMA NIC

Broadcom RDMA RoCev2 HCA NIC

2-CH RDMA NIC

GigE Vision을 위한 RDMA – 미래를 위해 설계되고, 오늘 당장 활용 가능한 기술

RoCE v2를 통한 RDMA의 GigE Vision 3.0 표준 통합은 고성능 머신 비전 시스템에 있어 중요한 진전을 의미합니다. RDMA의 기술적 기반은 수년 전부터 존재했지만, 최근에 이르러서야 이를 산업용 이미징 환경에서 실용적이고 비용 효율적으로 만들 수 있는 생태계가 충분히 성숙했습니다.

사용자에게 있어 가치는 단순한 성능 향상에만 있는 것이 아니라, 표준화에 있습니다. GigE Vision 3.0은 RDMA가 장치와 플랫폼 전반에서 어떻게 사용되어야 하는지를 정의하며, RoCE v2는 이미 데이터 센터, 클라우드 인프라, HPC 시스템에서 대규모로 입증된 신뢰할 수 있는 IP 라우팅 기반 전송 방식을 제공합니다. 이는 관련 프로토콜들이 더 이상 실험적이거나 독자적인 기술이 아님을 의미합니다. 이들은 명확하게 정의되어 있고, 널리 구현되었으며, 까다로운 실제 환경에서도 철저히 검증되었습니다. RDMA가 GigE Vision 표준에 추가됨으로써, 사용자는 서로 다른 벤더의 하드웨어와 소프트웨어가 안정적으로 호환될 것임을 보장받을 수 있으며, 이를 통해 통합에 소요되는 시간과 비용을 줄일 수 있습니다. 또한 장기적인 지원, 손쉬운 확장성, 그리고 더 폭넓은 호환 도구 및 부품 생태계 역시 보장됩니다.

AIA GigE Vision 3.0 RDMA Statement

Association for Advancing Automation(A3)의 GigE Vision 3.0 및 RDMA 홍보 성명