실시간 데이터 관리 솔루션을 배포하는 SigmaX

SigmaX는 데이터 관리 스택을 인텔 FPGA 및 Open FPGA Stack(OFS)과 결합하여 중앙 브로커로 생성되는 데이터의 효율성을 크게 향상했습니다.

개요

  • SigmaX는 데이터 수집에서 소비자까지 놀랍도록 빠른 엔드 투 엔드 데이터 흐름을 개발하여 거의 실시간으로 의사를 결정할 수 있습니다.

  • SigmaX는 인텔® 제온® 프로세서, 인텔® Agilex™ FPGA, Open FPGA Stack(OFS)을 사용하여 Apache 오픈 소스 소프트웨어를 확장하고 가속합니다.

  • SigmaX는 CPU 전용 기반 접근 방식과 비교했을 때 FPGA 기반 가속을 통해 지연 시간을 줄이고 데이터 수집량을 늘립니다.

author-image

기준

요약

SigmaX는 대규모 엔터프라이즈 데이터 관리 문제 해결이라는 최신 과제에 대응합니다. 고객은 오픈 소스 Apache 소프트웨어와 Open FPGA Stack(OFS)과 같은 FPGA 개발 리소스를 사용하므로 공급업체에 종속될 의무 없이 데이터 관리 솔루션의 이점을 누릴 수 있습니다. FPGA 가속 기반 SigmaX 솔루션은 놀랍도록 빠른 속도로 데이터를 전송하여 사용자가 거의 실시간으로 의사를 결정할 수 있습니다.

 

  • Apache Pulsar와 Apache Arrow를 기반으로 하는 SigmaX 데이터 흐름 솔루션을 통해 지연 시간 100배 감소1
  • Apache Pulsar만 사용한 SigmaX 벤치마크에서 Kafka를 사용한 경쟁사 대비 스트리밍 속도가 즉각적으로 250% 증가1
  • Apache Pulsar와 Apache Arrow의 통합으로 처리량이 20배 증가하며 수천 개의 노드로 확장 가능1

배경 및 과제:

데이터 브로커는 구독으로 제공되는 이벤트 스트리밍 데이터(퍼블릭, 프라이빗 또는 모두) 모음입니다. 데이터 브로커는 게시된 데이터를 처리, 정제, 구조화하여 비즈니스 내의 다른 기업이나 소비자에게 해당 데이터를 제공합니다. 데이터 생산자는 사용자 인터페이스, 서비스, 에지 및 사물 인터넷(IoT) 장치 등 데이터의 루트 소스를 의미합니다. 수백만 명의 데이터 생산자가 동시에 데이터 브로커로 정보를 보낼 수 있습니다. 그런 다음 소비자는 데이터 브로커에서 처리, 정제, 구조화를 거친 최근 데이터를 검색할 수 있습니다. 이러한 데이터 브로커는 최대 수천 개까지 확장하여 엄청난 양의 데이터를 병렬로 처리할 수 있습니다. 5G, 자율 주행 차량, 예측 유지 관리, 기타 에지 컴퓨팅 및 전송 플랫폼 등의 산업에서는 점점 더 커지는 데이터 세트에 대응하고 있으며, 해당 데이터 세트는 수천 개의 데이터 브로커와 생산자로 확장할 수 있습니다.

이러한 산업에서는 실시간으로 의사를 결정하고 거의 즉각적으로 문제에 대응하는 것이 종종 매우 중요합니다. 자율 주행 차량 산업에서만 시간당 4TB~최대 40TB의 데이터가 생성되는 것으로 추정됩니다. 이렇게 데이터 처리에 대한 엄청난 수요와 함께 CPU, GPU, 병렬 처리의 성능이 향상되면서 새로운 유형의 데이터 구조와 데이터 표현도 등장했습니다.

Apache Arrow는 언어에 구애받지 않는 표준 소프트웨어 프레임워크로, 실제 경과 시간을 80% 절감하며 표준 열 기반 메모리 형식을 생성하여 데이터 분석 속도를 향상하는 데 일반적으로 사용됩니다. 에지, IoT, 대규모 응용 프로그램의 센서에서 대규모 데이터 세트가 생성되는 상황에 자주 사용됩니다. Apache Arrow는 열 기반 데이터 구조의 이점과 CPU, GPU, FPGA가 사용할 수 있는 인메모리 컴퓨팅을 결합하여 데이터를 복사하거나 이동하지 않고도 플랫폼 간 원활하고 효율적인 데이터 공유를 지원합니다.

SigmaX는 Apache 소프트웨어, OFS 등의 오픈 소스 도구와 함께 이기종 처리를 활용하여 솔루션을 제공하며, 인텔 제온 프로세서만 사용하여 스케일 아웃할 때보다 100배 짧아진 지연 시간과 20배 증가한 데이터 수집 속도로 JSON에서 Apache Arrow로의 데이터 형식 변환을 개선해 줍니다.

솔루션

SigmaX는 데이터 관리 스택을 인텔 FPGA 및 OFS와 결합하여 중앙 브로커로 생성되는 데이터의 효율성을 크게 향상했습니다. 다음은 SigmaX 솔루션의 세부 사항입니다.

1단계: Bolson에서 센서 데이터를 Apache Arrow 형식으로 변환

오픈 소스 OFS 인프라를 사용하여 인텔 Agilex FPGA에서 실행되는 Bolson이 JSON 센서 데이터를 처음 수신합니다. 그런 다음 Bolson은 JSON 센서 데이터를 범용 데이터 형식인 Apache Arrow로 변환합니다. Apache Arrow로 데이터를 저장하면 브로커의 응답 속도와 반응 속도가 수십 배 빨라집니다. 따라서, 이 경로는 CPU만을 기반으로한 접근 방식 이점에 지연 시간 및 처리량 이점을 더해 줍니다.

2단계: Apache Pulsar에서 데이터 처리 및 정제

다음으로 데이터 브로커인 Apache Pulsar가 Apache Arrow 형식으로 메시지를 수신합니다. 이제 Apache Pulsar에서 수신한 데이터를 그대로 계산할 수 있습니다. 그런 다음 Apache Pulsar가 데이터를 처리, 정제, 재구조화합니다.

Apache Pulsar는 Apache Kafka에 필적하는 분산 메시징 및 스트리밍 플랫폼입니다. 그러나 지리적 복제와 같은 내장 데이터 신뢰성 기능을 통해 보안, 속도, 지연 시간, 성능을 향상하는 등 Apache Kafka보다 상당한 이점을 제공합니다. 일반적으로 지연 시간에 민감한 응용 분야(복잡성이 높은 스키마 또는 실시간 데이터 요구 사항과 관련됨)에 사용됩니다.

3단계: 데이터 브로커가 소비자에게 정보 전송

브로커에서 위임한 후 데이터는 구독하는 소비자 응용 프로그램으로 전송됩니다.

SigmaX는 인텔 기술 기반 하드웨어를 사용하여 이러한 데이터 관리 워크로드를 검증했습니다. SigmaX의 오픈 소스 스택은 클라이언트 응용 프로그램에서 구동되는 인텔 제온 프로세서와 인텔 Agilex FPGA 기반 Hitek Systems HiPrAcc* NC100 보드를 사용하여 Bolson을 실행합니다.

HiPrAcc NC100 보드는 OFS와 oneAPI를 모두 지원합니다. OFS는 FPGA 개발자가 맞춤형 FPGA 기반 워크로드 및 응용 프로그램을 구축할 수 있도록 지원하는 핵심 기본 도구입니다. FPGA 기반 개발을 시작하는 데 필요한 모든 하드웨어 및 소프트웨어 소스 코드, 문서, 참조 예제, 도구를 제공합니다. OFS용 소프트웨어 및 하드웨어 코드는 GitHub에서 오픈 소스로 제공됩니다.

결과:

SigmaX의 데이터 관리 워크로드는 두 가지 주요 인텔 기술인 인텔 Agilex FPGA와 OFS를 사용하여 Apache Arrow로의 데이터 변환을 가속합니다. FPGA 가속 및 OFS를 사용하면 SigmaX의 데이터 변환 워크로드에서 20배 더 많은 데이터를 100배 더 빠르게 처리합니다1. 이러한 데이터 관리 워크로드는 의료, 보험, 5G, 예측 유지 관리 등 다양한 응용 분야에 적용할 수 있습니다.

OFS는 시작에 필요한 모든 하드웨어 및 소프트웨어 소스 코드, 문서, 참조 예제, 도구를 제공하여 FPGA를 일일이 손보지 않고도 FPGA 가속 워크로드를 만들 수 있었습니다.

Robert Morrow, CEO, SigmaX

Open FPGA Stack을 사용하여 FPGA 가속을 시작하는 방법:

FPGA 개발자는 다양한 맞춤형, 인텔 제공 또는 타사 OFS 지원 보드 중에서 선택하고 오픈 소스 문서 및 소스 코드를 사용하여 맞춤형 워크로드 구축을 시작할 수 있습니다.

다음 표에서는 개발자가 인텔 제공 보드 또는 타사 보드를 사용하여 FPGA 기반 워크로드 개발을 시작하는 방법을 간략하게 설명합니다.

  인텔 보드 사용 에코시스템 보드 사용
1단계: 보드 선택

OFS 참조 플랫폼 사용

참조 플랫폼은 평가 또는 초기 가동을 신속히 처리할 수 있지만, 필수는 아닙니다.

맞춤형 또는 타사 보드 사용

OFS 보드 카탈로그를 검색하여 사용 가능한 보드를 확인하십시오.

2단계: OFS 오픈 소스 리소스 평가 기술 문서는 GitHub에서 확인할 수 있습니다. 보드 공급업체에서 해당 OFS 기술 문서를 제공합니다.
3단계: 오픈 소스 하드웨어 및 소프트웨어 코드에 액세스 GitHub(OFS)에서 제공되는 OFS 소프트웨어 및 하드웨어 코드를 수정하거나 사용할 수 있습니다. 보드 공급업체에서 해당 OFS 소프트웨어/하드웨어 코드를 제공합니다.
4단계: RTL 또는 C/C++를 사용하여 워크로드 개발(oneAPI 활용)

OFS RTL 흐름 따라가기

또는

OFS를 사용하면 oneAPI 커널을 컴파일할 수 있습니다. C/C++에서 oneAPI 개발 흐름을 활용하고 FPGA 워크로드를 구축합니다.

참고:

1다음에 게시된 수치입니다. "FPGA 가속기를 사용한 초당 수십 기가바이트의 JSON-Arrow 변환", IEEE Xplore, 2021년 12월. ieeexplore.ieee.org/documents/9609833

테스트는 역직렬화된 데이터를 Apache Arrow 열 기반 인메모리 형식으로 호스트 메모리에 쓰는 JSON 구문 분석용 FPGA 가속기 설계로 구성됩니다. 5단계인 JSON 문서 수신, JSON 문서 구문 분석 및 Arrow RecordBatch로 데이터 역직렬화, Arrow RecordBatch 크기 조정, Arrow IPC 메시지로 Arrow RecordBatch 직렬화, Pulsar 브로커를 통해 Pulsar Topic에 IPC 메시지 게시로 이루어져 있습니다. 모든 구현은 최대 8바이트를 사용하므로, 200MHz로 실행 시 각 구문 분석기의 이론상 입력 처리량은 최대 1.6GBps이 됩니다.