요약
BittWare는 20년 이상 인텔 FPGA를 탑재한 FPGA 기반 가속 보드 솔루션을 개발해 왔습니다. 최근 최신 인텔® Agilex™ 7 FPGA로 마이그레이션한 BittWare는 FPGA 솔루션에서 oneAPI를 지원하는 데 관심이 있습니다. 이를 위해 BittWare는 Open FPGA Stack(OFS) 및 제공된 오픈 소스 oneAPI 가속기 지원 패키지(ASP)를 활용하여 인텔 Agilex FPGA 기반 플랫폼에서 고수준 설계(HLD) 응용 프로그램 커널을 컴파일했습니다.
배경 및 과제
인텔은 2019년에 인텔 Agilex 7 제품군을 출시했습니다. 그 이후로 인텔 Agilex 제품군은 다양한 응용 분야에서 여러 저전력 및 고전력 FPGA과 로직 밀도를 포함하도록 확장되었습니다. 인텔 Agilex 7 FPGA 시리즈는 최초의 고성능 인텔 Agilex FPGA 제품군입니다. FPGA 시리즈는 업계의 최고 성능 FPGA를 통합하여 경쟁사의 최신 세대 FPGA보다 약 2배 향상된 와트당 패브릭 성능1을 제공합니다. 새로운 인텔 Agilex FPGA는 더 강력하고, 전력 소비량이 더 적고, PCIe* 4.0 및 5.0과 같은 I/O 기능을 포함하며, 광범위한 대역폭, 컴퓨팅 및 메모리 집약적 응용 분야를 대상으로 합니다.
이러한 성능 향상은 에지 장치를 위한 더 높은 와트당 성능이든, 데이터 센터를 위한 컴퓨팅 밀도이든, BittWare의 고객에게 더 나은 가치를 제공합니다. 고성능 컴퓨팅(HPC) 응용 프로그램의 경우, FPGA는 응용 프로그램 맞춤화를 제공하므로 범용 가속기보다 워크로드를 실리콘에 더 잘 일치시킬 수 있습니다. 인텔과 BittWare는 oneAPI를 사용하여 바르셀로나 슈퍼컴퓨팅 센터의 HPC 워크로드를 IA-840f 카드로 포팅하기 위해 협력했으며 233배 속도 향상을 달성했습니다. 이 프로젝트는 BittWare의 차세대 인텔 Agilex FPGA를 통한 고성능 컴퓨팅 온디맨드 웨비나에 소개되었습니다.
또한, BittWare는 다운로드 가능한 샘플 코드가 있는 화이트 페이퍼 등 고수준 프로그래밍 도구를 위한 리소스를 제공합니다. 이러한 리소스는 고수준 도구가 인텔 Agilex 7 FPGA의 고성능을 활용하는 동시에 개발 프로세스를 어떻게 가속화하는지를 보여줍니다.
oneAPI와 같은 도구는 FPGA 개발의 추상화를 통해 램프업 및 디버그 시간을 개선할 수 있도록 병렬 프로그래밍 언어를 제공합니다. NVIDIA의 CUDA* 또는 AMD ROCm*과 비교할 수 있는 oneAPI는 SYCL을 구현하는 병렬 프로그래밍 언어인 Data Parallel C++(DPC++)를 제공합니다. 그러나 인텔의 oneAPI 배포는 GPU뿐만 아니라 Gaudi/Gaudi2 AI 프로세서와 같은 CPU, FPGA, VPU용 통합 프로그래밍 환경, 도구 세트, 라이브러리를 위한 솔루션을 제시합니다.
FPGA 프로그래밍에 익숙하지 않은 개발자는 oneAPI를 활용함으로써 FPGA 고유의 유연하고 재프로그래밍 가능한 아키텍처의 이점을 누리면서 C/C++와 같은 친숙한 설계 언어와 Visual Studio 또는 Eclipse와 같은 개발 환경을 사용할 수 있습니다. 또한, oneAPI를 통해 고수준 설계 흐름을 사용하면 CPU, GPU, FPGA 등의 아키텍처와 보드 공급업체 전반에서 워크로드의 이식성이 향상됩니다.
Molex를 모회사로 두고 있는 BittWare는 인텔의 오랜 파트너로, 엔터프라이즈급 FPGA 하드웨어 가속 제품을 설계하고 제조하여 고객이 더 낮은 위험으로 솔루션을 더 빠르게 배포할 수 있도록 지원합니다. 20년 동안 FPGA 가속 업계의 시장 리더였던 BittWare는 최초의 인텔 Stratix® 및 인텔 Arria® FPGA에서 최신 인텔 Agilex 제품군으로 마이그레이션했습니다. 인텔 Agilex FPGA 보드의 “IA” 시리즈의 최신 릴리스를 준비할 때 BittWare는 OFS 인프라를 활용하여 플랫폼에서 oneAPI 개발 흐름을 지원하고자 했습니다.
솔루션
보드가 oneAPI 개발 흐름을 지원하도록 하기 위해 BittWare는 최신 오픈 소스 FPGA 개발 리소스 및 인프라인 OFS를 활용했습니다. OFS는 100% 오픈 소싱된 최초의 완전한 하드웨어 및 소프트웨어 인프라로, FPGA 개발자의 협업 커뮤니티를 지원할 수 있도록 구성 가능 하드웨어 코드와 kernel.org에 업스트림된 커널 코드로 구성됩니다.
OFS 인프라는 일반적으로 '셸'이라고 하는 FPGA 인터페이스 관리자(FIM)와 워크로드 개발용으로 지정된 영역인 가속기 기능 장치(AFU) 영역으로 구성됩니다. 보드 개발자는 OFS를 통해 오픈 소스 인프라를 활용하여 대상 응용 분야 또는 산업을 토대로 보드에 맞춤화된 FIM을 빠르게 개발할 수 있습니다. 마찬가지로 OFS에는 개발자가 업스트림 및 오픈 소스 커널 드라이버를 활용하여 공통 프레임워크로의 통합을 가속할 수 있는 오픈 소스 소프트웨어 프레임워크가 포함되어 있습니다. OFS 인프라는 빠르게 발전하는 FPGA 가속 시스템을 위한 강력한 방법론을 제공함으로써 FPGA 가속 보드 및 워크로드에 대한 수요를 충족합니다. 제공된 OFS 하드웨어 및 소프트웨어 인프라를 그대로 활용하거나 빠르게 맞춤화하여 새롭고 역동적인 시장 요구 사항을 충족할 수 있습니다.
인텔이 제공하는 oneAPI 기본 툴킷에는 컴파일러 및 런타임 환경이 포함되어 있습니다. 컴파일러는 SYCL 커널 또는 FPGA 응용 프로그램 코드를 하드웨어 회로로 변환합니다. 이 하드웨어 회로는 런타임 및 FPGA 보드 주변 장치와 통신하기 위해 추가 로직을 필요로 합니다. OFS는 oneAPI ASP에서 이러한 추가 로직을 제공합니다. oneAPI ASP는 오픈 소스 OFS GitHub 리포지토리에 포함되어 있으며 OFS 지원 플랫폼에서 HLD 응용 프로그램 커널을 컴파일하고 실행하는 데 필요합니다. 또한, 이와 함께 기술 문서가 제공됩니다. 여기에는 OFS 플랫폼에서 인텔 oneAPI 기본 툴킷을 설정할 때 참조할 수 있는 빠른 시작 가이드가 포함되어 있습니다.
제공된 오픈 소스 OFS 리포지토리 및 문서를 사용하여 BittWare는 약간의 추가 수정만으로 인텔 Agilex 장치에서 oneAPI 설계 흐름(비 RTL)을 구현할 수 있었습니다.
결과
BittWare는 인텔 Agilex FPGA F-시리즈를 최초로 시장에 출시했습니다. 아래 표는 OFS 인프라 및 oneAPI ASP를 사용하여 개발된 두 보드를 보여줍니다.
|
|
최신 세대 인텔 Agilex FPGA 제품군은 성능이 크게 향상되어 고객에게 간편한 개발 흐름과 함께 강력한 실리콘에 대한 액세스를 제공하며, 이는 성공의 공식입니다. oneAPI와의 협업은 다양한 사용자가 고성능을 유지하면서 더 빠르게 시장에 진출할 수 있음을 입증했습니다.
OFS를 사용하여 FPGA 가속을 시작하는 방법
FPGA 개발자는 BittWare의 IA-420f 또는 IA-840f OFS 지원 보드 중에서 선택하고 오픈 소스 문서 및 소스 코드를 사용하여 맞춤형 워크로드 구축을 시작할 수 있습니다.
다음 표는 개발자가 BittWare 가속 보드를 사용하여 FPGA 기반 워크로드 개발을 시작할 수 있는 방법을 간략하게 설명합니다.
워크로드에 FPGA 가속 활용하기 |
|
---|---|
1단계: 보드 선택 |
BittWare의 OFS 지원 보드인 IA-420f 및 IA-840f |
2단계: OFS 오픈 소스 리소스 평가 |
BittWare는 해당 버전의 OFS 기술 문서를 제공합니다. |
3단계: 오픈 소스 하드웨어 및 소프트웨어 코드에 액세스 |
BittWare는 해당 OFS 소프트웨어 및 하드웨어 코드를 제공합니다. 이는 OFS 기본 코드(인텔에서 제공)에 대한 BittWare의 특정 배포판입니다. |
4단계: RTL 또는 C/C++를 사용하여 워크로드 개발(oneAPI 활용) |
OFS RTL 흐름 따라가기 또는 OFS를 사용하면 oneAPI 커널을 컴파일할 수 있습니다. oneAPI 개발 흐름을 활용하고 C/C++로 FPGA 워크로드를 구축합니다. |