Cybersecurity / Fraud Detection

NVIDIA DOCA GPUNetIO로 실시간 네트워크 처리의 성능 실현

Reading Time: 8 minutes

네트워크 트래픽의 실시간 처리는 GPU가 제공하는 높은 수준의 병렬 처리를 활용할 수 있습니다. 이러한 유형의 애플리케이션에서 패킷 수집 또는 전송을 최적화하면 병목 현상을 방지하고 전체 실행이 고속 네트워크를 따라잡을 수 있습니다. 이러한 맥락에서 DOCA GPUNetIO는 GPU를 CPU의 개입 없이 네트워크 및 컴퓨팅 작업을 수행할 수 있는 독립적인 구성 요소로 장려합니다.

이 게시물에서는 지연 시간을 줄이고 성능을 극대화하기 위해 NVIDIA DOCA GPUNetIO가 통합된 서로 다른 관련 없는 컨텍스트에 초점을 맞춘 GPU 패킷 처리 애플리케이션 목록을 제공합니다.

NVIDIA DOCA GPUNetIO API

NVIDIA DOCA GPUNetIO는 NVIDIA DOCA 소프트웨어 프레임워크와 함께 출시된 새로운 라이브러리 중 하나입니다. DOCA GPUNetIO 라이브러리는 하나 이상의 CUDA 커널을 통해 NIC와 GPU 간의 직접 통신을 가능하게 합니다. 이렇게 하면 CPU가 중요 경로에서 제거됩니다.

DOCA GPUNetIO 라이브러리의 CUDA 장치 기능을 사용하면 CUDA 커널은 CPU 코어나 메모리 없이도 GPU와 직접 패킷을 주고받을 수 있습니다. 이 라이브러리의 주요 기능은 다음과 같습니다:

  • GPUDirect 비동기 커널 시작 네트워크(GDAKIN): 이더넷을 통한 통신; GPU(CUDA 커널)가 네트워크 카드와 직접 상호 작용하여 CPU의 개입 없이 GPU 메모리에서 패킷을 송수신할 수 있습니다(GPUDirect RDMA).
  • GPU 메모리 노출: 단일 함수 내에서 기본 CUDA 메모리 할당 기능과 GDRCopy 라이브러리를 결합하여 CUDA API를 사용하지 않고도 CPU에서 직접 액세스(읽기 또는 쓰기)할 수 있도록 GPU 메모리 버퍼를 노출합니다.
  • 정확한 전송 스케줄링: GPU에서 향후 패킷 버스트 전송을 예약하고 타임스탬프를 연결한 후 이 정보를 네트워크 카드에 제공하면 네트워크 카드가 적시에 패킷을 전송할 수 있습니다.
  • 세마포어: 서로 다른 CUDA 커널 간 또는 CUDA 커널과 CPU 스레드 간에 정보를 공유하고 동기화하는 데 유용한 메시지 전달 객체입니다.

DOCA GPUNetIO의 원리와 이점에 대해 자세히 알아보려면 NVIDIA DOCA GPUNetIO를 사용한 인라인 GPU 패킷 처리를 참조하세요. DOCA GPUNetIO API에 대한 자세한 내용은 DOCA GPUNetIO SDK 프로그래밍 가이드를 참조하십시오.

그림 1. NVIDIA DOCA GPUNetIO 애플리케이션의 수신 프로세스 레이아웃. GPU가 독립적으로 네트워크 패킷을 수신하고 처리할 수 있으므로 CPU가 관여하지 않습니다.

라이브러리와 함께 다음 NVIDIA DOCA 애플리케이션과 NVIDIA DOCA 샘플은 라이브러리에서 제공하는 기능 및 특징을 사용하는 방법을 보여줍니다.

  • NVIDIA DOCA 애플리케이션: UDP, TCP 및 ICMP 트래픽을 감지, 관리, 필터링 및 분석할 수 있는 GPU 패킷 처리 애플리케이션입니다. 이 애플리케이션은 HTTP over TCP 서버도 구현합니다. 간단한 HTTP 클라이언트(예: curl 또는 wget)를 사용하면 TCP 3방향 핸드셰이크 연결을 설정하고 GPU에 HTTP GET 요청을 통해 간단한 HTML 페이지를 요청할 수 있습니다.
  • NVIDIA DOCA 샘플: 정확한 전송 스케줄링 기능(시스템 구성, 사용할 기능)을 사용하는 방법을 보여주는 GPU 전송 전용 예제입니다.

실제 애플리케이션에서의 DOCA GPUNetIO

DOCA GPUNetIO는 CPU를 사용하지 않고 GPU를 사용하여 송수신할 수 있도록 NVIDIA Aerial SDK의 기능을 강화하는 데 사용되었습니다. 자세한 내용은 NVIDIA DOCA GPUNetIO를 사용한 인라인 GPU 패킷 처리를 참조하십시오. 아래 섹션에서는 DOCA GPUNetIO를 사용하여 GDAKIN 기법으로 GPU 패킷 수집을 성공적으로 활용하는 새로운 예제를 제공합니다.

NVIDIA Morpheus AI

NVIDIA Morpheus는 사이버 보안 개발자가 대량의 실시간 데이터를 필터링, 처리, 분류하기 위해 완전히 최적화된 AI 파이프라인을 생성할 수 있도록 지원하는 성능 지향 애플리케이션 프레임워크입니다. 이 프레임워크는 Python 및 C++ API로 구성된 접근 가능한 프로그래밍 모델을 통해 GPU와 CPU 병렬 처리 및 동시성을 추상화합니다.

개발자는 이 프레임워크를 활용하여 다운스트림 소비자를 위해 데이터를 수집, 변경 또는 게시하는 단계로 구성된 임의의 데이터 파이프라인을 빠르게 구축할 수 있습니다. Morpheus는 멀웨어 탐지, 피싱/스피어 피싱 탐지, 랜섬웨어 탐지 등 다양한 상황에 적용할 수 있습니다. 유연성과 고성능은 실시간 네트워크 트래픽 분석에 이상적입니다.

네트워크 모니터링 사용 사례의 경우, NVIDIA Morpheus 팀은 최근 DOCA 프레임워크를 통합하여 패킷의 내용을 분석하는 AI 파이프라인에 실시간 패킷을 공급하는 고속, 저지연 GPU 패킷 수집 소스 단계를 구현했습니다. 자세한 내용은 Morpheus를 GitHub에서 확인하세요.

그림 2. DOCA GPUNetIO와 NVIDIA Morpheus AI 파이프라인은 들어오는 패킷을 수신, 필터링, 분석하는 CUDA 커널로 연결됩니다.

그림 2에서 볼 수 있듯이 GPU 패킷 수집은 실시간으로 이루어집니다. DOCA Flow를 통해 흐름 조정 규칙이 이더넷 수신 대기열에 적용되므로 대기열은 특정 유형의 패킷(예: TCP)만 수신할 수 있습니다. Morpheus는 CUDA 커널을 실행하여 다음 단계를 반복적으로 수행합니다:

  1. DOCA GPUNetIO 수신 함수를 사용하여 패킷을 수신합니다.
  2. GPU 메모리에서 병렬 패킷 필터링 및 분석
  3. GPU 메모리 버퍼 목록에 관련 패킷 정보 복사
  4. 버퍼에 충분한 정보 패킷이 축적되면 관련 DOCA GPUNetIO 세마포어 항목이 READY로 설정됩니다.
  5. AI 파이프라인 앞의 CUDA 커널이 세마포어 항목을 폴링합니다.
  6. 항목이 READY이면 버퍼에 패킷 정보가 준비되었으므로 AI가 차단 해제됩니다.

엣지 네트워크의 DCO(방어적 사이버 운영) GTC 세션에서는 이 아키텍처를 활용하여 고성능 AI 지원 SPAN/네트워크 TAP 솔루션을 배포하는 구체적인 사례를 소개합니다. 이 솔루션은 정보 기술(IT) 및 운영 기술(OT) 네트워크의 엄청난 데이터 속도, 레이어 7 애플리케이션 데이터의 이질성, 엣지 컴퓨팅의 크기, 무게, 전력(SWaP) 제약으로 인해 개발되었습니다.

엣지 컴퓨팅의 경우, 특히 연결되지 않은 엣지 네트워크에서 컴퓨팅 수요가 증가할 때 많은 조직이 “클라우드로의 버스트”를 수행하지 못합니다. 이 시나리오에서는 SWaP 스펙트럼 전반에서 성능을 제공하는 I/O 및 컴퓨팅 과제를 위한 아키텍처를 설계해야 합니다.

이 DCO 예시는 일반적인 사이버 보안 문제의 렌즈를 통해 이러한 제약을 해결하고 암호화되지 않은 TCP 트래픽에서 유출된 데이터(예: 유출된 비밀번호, 비밀 키, PII)를 식별하며, Morpheus SID 데모의 확장을 나타냅니다. 이러한 취약점을 식별하고 해결하면 공격 표면이 줄어들고 조직의 보안 태세가 강화됩니다.

이 예제에서 DCO 솔루션은 레이어 7 애플리케이션 데이터에서 유출된 민감한 데이터를 탐지하기 위해 트랜스포머 모델을 적용하는 이기종 Morpheus 파이프라인(Python과 C++의 혼합으로 작성된 GPU 및 동시 CPU 스테이지)으로 패킷을 수신합니다. 이 대시보드는 보안 운영 센터(SOC) 분석가들이 활용할 수 있는 직관적인 시각화를 포함해 출력을 ELK 스택과 통합합니다(그림 3 및 4).

그림 3. 각 유형의 총 탐지 수, 쌍별 네트워크 지도, 패킷 크기 분포를 포함한 DOCA GPUNetIO와 Morpheus 민감 정보 탐색의 결과를 보여주는 Kibana 대시보드

그림 4. 유출된 비밀 키가 있는 페이로드 테이블을 포함해 초당 최대 50K 패킷에서 필터링 및 처리된 네트워크 패킷 인덱스를 포함한 DOCA GPUNetIO와 Morpheus 민감한 정보 탐색의 결과를 보여주는 Kibana 대시보드

실험 설정에는 100Gbps NVIDIA BlueField-2 DPU가 있는 가상 머신에서 실행되는 클라우드 네이티브 UDP 멀티캐스트 및 REST 애플리케이션이 포함되었습니다. 이러한 애플리케이션은 SWaP 효율이 높은 NVIDIA Spectrum SN2100 이더넷 스위치를 통해 통신했습니다. 패킷 생성기는 이러한 애플리케이션이 전송하는 패킷에 민감한 데이터를 주입했습니다. 네트워크 패킷은 NVIDIA Spectrum SN2100의 SPAN 포트에서 집계 및 미러링되어 모피어스 패킷 검사 파이프라인을 구동하는 NVIDIA A30X 컨버지드 가속기로 전송되어 인상적인 처리량 결과를 달성했습니다.

  • 이 파이프라인에는 I/O, 패킷 필터링, 패킷 처리, 타사 SIEM 플랫폼(Elasticsearch)의 인덱싱 등 여러 구성 요소가 포함되어 있습니다. I/O 측면에만 초점을 맞춘 DOCA GPUNetIO는 단일 수신 대기열로 최대 100Gbps의 속도로 모피어스가 GPU 메모리로 패킷을 수신할 수 있도록 하여 사이버 패킷 처리 애플리케이션에서 중요한 병목 현상을 제거합니다.
  • 스테이지 수준의 동시성을 활용하는 이 파이프라인은 Elasticsearch 인덱싱 처리량을 60% 향상시켰습니다.
  • 엔드투엔드 데이터 파이프라인을 NVIDIA A30X 컨버지드 가속기에서 실행하면 Elasticsearch 인덱서 용량의 최대 50%에서 강화된 패킷이 생성되었습니다. 두 배의 A30X를 사용하면 인덱서가 완전히 포화되어 편리한 확장 휴리스틱을 제공할 수 있습니다.
그림 5. 엔드투엔드 패킷 처리 애플리케이션으로 민감한 정보 탐지를 가속화합니다.

이 사용 사례는 Morpheus의 특정 애플리케이션을 보여 주지만, 사이버 패킷 처리 애플리케이션의 기본 구성 요소를 나타냅니다. Morpheus와 DOCA GPUNetIO는 지연 시간에 민감하고 컴퓨팅 집약적인 수많은 패킷 처리 애플리케이션을 위한 성능과 확장성을 함께 제공합니다.

회선 속도 레이더 신호 처리

이 섹션에서는 레이더 감지 애플리케이션이 시뮬레이션된 범위 전용 레이더 시스템에서 100Gbps의 회선 속도로 다운컨버팅된 I/Q 샘플을 수집하여 수신된 I/Q RF 샘플을 실시간으로 물체 감지로 변환하는 데 필요한 모든 신호 처리를 수행하는 예제를 살펴봅니다.

레이더, 라이더, 광학 플랫폼과 같은 원격 감지 애플리케이션은 신호 처리 알고리즘을 사용하여 측정하는 환경에서 수집한 원시 데이터를 실행 가능한 정보로 변환합니다. 이러한 알고리즘은 병렬 처리가 가능하고 계산 부하가 높은 경우가 많기 때문에 GPU 기반 처리에 이상적입니다.

또한 입력 센서는 엄청난 양의 원시 데이터를 생성하므로 처리 솔루션의 수신/전송 기능이 낮은 지연 시간으로 매우 높은 대역폭을 처리할 수 있어야 합니다.

문제를 더욱 복잡하게 만드는 것은 많은 엣지 기반 센서 시스템에는 엄격한 SWaP 제약이 있어 DPDK 기반 GPUDirect RDMA와 같은 다른 고처리량 네트워킹 접근 방식에서 사용할 수 있는 CPU 코어의 수와 전력이 제한된다는 점입니다.

DOCA GPUNetIO를 사용하면 GPU가 실시간 센서 스트리밍 애플리케이션을 성공적으로 만드는 데 필요한 신호 처리뿐만 아니라 네트워킹 부하를 직접 처리할 수 있습니다.

레이더 감지 애플리케이션에는 일반적으로 사용되는 신호 처리 알고리즘이 사용되었습니다. 그림 6의 순서도는 I/Q 샘플을 감지값으로 변환하는 데 사용되는 신호 처리 파이프라인의 그래픽 표현을 보여줍니다.

그림 6. 범위 전용 레이더 시스템에서 반사된 RF 파형에서 감지를 계산하기 위한 신호 처리 파이프라인

MTI 필터링은 레이더 시스템에서 반사된 RF 파형에서 지면이나 건물과 같은 고정된 배경 잡음을 제거하는 데 사용되는 일반적인 기술입니다. 여기서 사용되는 접근 방식은 3-펄스 캔슬러로 알려져 있으며, 이는 단순히 펄스 차원의 I/Q 데이터를 필터 계수 ‘[+1, -2, +1]을 사용하여 컨볼루션하는 것입니다.

펄스 압축은 타겟의 존재 여부에 따라 수신된 파형의 신호 대 잡음비(SNR)를 최대화합니다. 이는 수신된 RF 데이터와 전송된 파형의 교차 상관 관계를 계산하여 수행됩니다.

일정한 오경보율(CFAR) 감지기는 필터링된 데이터의 각 범위 구간으로 국한된 노이즈에 대한 경험적 추정치를 계산합니다. 그런 다음 각 빈의 파워를 노이즈와 비교하여 노이즈 추정치와 분포를 고려할 때 통계적으로 가능성이 있는 경우 감지를 선언합니다.

(# Waveforms) x (# Channels) x (# Samples) 크기의 3D 버퍼는 수신되는 정리된 RF 데이터를 보관하는 데 사용됩니다(패킷 수신 시 MTI 필터를 적용하면 펄스 치수의 크기가 1로 줄어듭니다). 패킷의 오름차순 파형 ID 순서대로 스트리밍되는 것을 제외하고는 스트리밍되는 UDP 데이터에는 순서가 정해져 있지 않습니다. 패킷당 약 500개의 복잡한 샘플이 전송되며, 3D 버퍼에서 샘플의 위치는 파형 ID, 채널 ID, 샘플 인덱스에 따라 달라집니다.

이 애플리케이션은 두 개의 CUDA 커널과 하나의 CPU 코어를 지속적으로 실행합니다. 첫 번째 CUDA 커널은 DOCA GPUNetIO API를 사용하여 NIC에서 GPU로 패킷을 읽는 역할을 담당합니다. 두 번째 CUDA 커널은 패킷 헤더의 메타데이터를 기반으로 패킷 데이터를 올바른 메모리 위치에 배치하고 MTI 필터를 적용하며, CPU 코어는 펄스 압축 및 CFAR을 처리하는 CUDA 커널을 실행하는 역할을 담당합니다. FFT는 cuFFT 라이브러리를 사용하여 수행되었습니다.

그림 7은 애플리케이션의 그래픽 표현을 보여줍니다.

그림 7.GPU 기반 신호 처리 파이프라인의 작업 분배 방식 그래픽 표현

레이더 감지 파이프라인의 처리량은 100Gbps 이상입니다. 1백만 개의 16채널 파형에 대해 100Gbps의 회선 속도로 실행한 결과, 패킷이 삭제되지 않았으며 신호 처리가 데이터 스트림의 처리량에 뒤처지지 않았습니다. 독립 파형 ID에 대한 마지막 데이터 패킷이 수신된 시점부터 측정한 지연 시간은 3밀리초 정도였습니다. NVIDIA ConnectX-6 Dx SmartNIC와 NVIDIA A100 80GB GPU가 사용되었습니다. 데이터는 이더넷을 통해 UDP 패킷을 통해 전송되었습니다.

향후 작업에서는 GPU가 통합된 블루필드 DPU에서만 실행될 때 이 아키텍처의 성능을 평가할 예정입니다.

GPU를 통한 실시간 DSP 서비스

아날로그 신호는 인공적인 신호(예: Wi-Fi 라디오)와 자연적인 신호(예: 태양 복사 및 지진) 모두 어디에나 존재합니다. 아날로그 데이터를 디지털로 캡처하려면 샘플 속도 및 샘플 비트 심도와 같은 매개변수로 제어되는 D-A 컨버터를 사용하여 음파를 변환해야 합니다. 디지털 오디오 및 비디오는 FFT로 처리할 수 있으므로 사운드 디자이너는 이퀄라이저(EQ)와 같은 툴을 사용하여 신호의 일반적인 특성을 변경할 수 있습니다.

이 예제에서는 네트워크를 통해 GPU로 실시간 오디오 DSP를 수행하기 위해 NVIDIA 제품과 SDK를 사용한 방법을 설명합니다. 이를 위해 개발팀은 WAV 파일을 파싱하고 데이터를 여러 이더넷 패킷으로 프레임하여 네트워크를 통해 서버 애플리케이션으로 전송하는 클라이언트를 구축했습니다.
이 애플리케이션은 패킷을 수신하고, FFT를 적용하고, 오디오 신호를 조작하고, 마지막으로 수정된 데이터를 다시 전송하는 역할을 담당합니다.

클라이언트의 책임은 신호 처리 체인을 위해 ‘서버’로 보내야 할 부분과 처리된 샘플이 서버에서 다시 수신될 때 어떻게 처리할지를 인식하는 것입니다.
이 접근 방식은 오버랩 추가와 같은 여러 DSP 알고리즘과 다양한 샘플 창 선택을 지원합니다.

서버 애플리케이션은 DOCA GPUNetIO를 사용하여 CUDA 커널에서 GPU 메모리로 패킷을 수신합니다. 패킷의 하위 집합이 수신되면 CUDA 커널은 cuFFTDx 라이브러리를 통해 각 패킷의 페이로드에 FFT를 병렬로 적용합니다. 동시에 각 패킷에 대해 다른 CUDA 스레드가 저주파 또는 고주파의 진폭을 줄이는 주파수 필터를 적용합니다. 기본적으로 저역 통과 또는 고역 통과 필터를 적용합니다.

그림 8. 네트워크를 통해 GPU를 사용하여 실시간 DSP 서비스를 수행하는 방법을 보여주기 위해 구축된 클라이언트-서버 아키텍처

각 패킷에 역 FFT가 적용됩니다. CUDA 커널은 DOCA GPUNetIO를 통해 수정된 패킷을 클라이언트로 다시 보냅니다. 클라이언트는 패킷을 재정렬하고 재빌드하여 음향 효과가 적용된 가청 및 재생 가능한 WAV 오디오 파일을 다시 생성합니다.

팀은 클라이언트를 사용하여 매개변수를 조정하여 성능과 오디오 출력의 품질을 최적화할 수 있습니다. 흐름과 멀티플렉스 스트림을 처리 체인으로 분리하여 많은 복잡한 연산을 GPU로 오프로드할 수 있습니다. 이는 클라우드 DSP 서비스 제공업체에게 새로운 시장 기회를 열어줄 수 있는 이 솔루션의 잠재력을 극히 일부에 불과합니다.

요약

DOCA GPUNetIO 라이브러리는 실시간 트래픽 분석을 수행하는 네트워크 애플리케이션에서 패킷의 수집과 전송을 위한 일반적인 GPU 중심 접근 방식을 촉진합니다. 이 게시물에서는 이 라이브러리를 다양한 맥락의 광범위한 애플리케이션에 적용하여 지연 시간, 처리량 및 시스템 리소스 활용도를 크게 개선할 수 있는 방법을 보여줍니다.

GPU 패킷 처리 및 GPUNetIO에 대해 자세히 알아보려면 다음 리소스를 참조하세요:

NVIDIA DOCA GPUNetIO를 사용한 인라인 GPU 패킷 처리
DOCA GPUNetIO 프로그래밍 가이드
DOCA GPUNetIO 애플리케이션 가이드
엣지 네트워크에서 방어적인 사이버 보안 운영

관련 리소스

GTC 세션: Connect with the Experts: GPU 간 통신 기법 및 라이브러리
SDK: Magnum IO
SDK: Nsight 시스템
SDK: GPUDirect 스토리지
웨비나: NVIDIA A100X로 저지연 마켓 데이터 가속화하기
웨비나: 저지연 네트워크 어댑터의 대중화

Discuss (0)

Tags