OpenCL FPGA 도구 상자

OpenCL

인텔 FPGA 소프트웨어 개발용

인텔 OpenCL SDK를 지원하는 Arria 10 및 Stratix 10 FPGA 카드용 BSP

개요

OpenCL FPGA 개발은 FPGA 개발에 대한 지식이 거의 또는 전혀 없는 팀에게 적합합니다. 또한 기존 HDL 워크플로보다 더 빠른 처리가 필요한 모든 팀에게 적합한 솔루션입니다. BittWare FPGA 카드의 OpenCL은 더 많은 개발자 풀을 제공하여 당사 제품이 제공하는 고급 하드웨어를 활용할 수 있도록 합니다.

BittWare는 BittWare 튜닝 보드 지원 패키지(BSP)를 통해 인텔 OpenCL SDK를 지원하는 Arria 10 및 Stratix 10 디바이스가 포함된 다양한 인텔 FPGA 기반 카드를 제공합니다.

기존 CPU 또는 GPU 기반 애플리케이션이 FPGA 가속화의 이점을 누릴 수 있는지 궁금하신가요? 벤치마크를 수행하여 잠재적인 성능 향상을 예측할 수 있습니다. 시작하려면 애플리케이션 최적화 서비스에 대해 문의하세요.

OpenCL 지원은 인텔 Stratix 10 및 Arria 10 FPGA가 탑재된 일부 카드로 제한됩니다. Agilex를 비롯한 최신 세대 FPGA의 고급 툴플로우를 위해 유니티는 다음을 제공합니다. oneAPI(지원되는 제품에 대해 알아보려면 여기를 탭하세요).

인텔 스트라틱스 10 배지
인텔 아리아 10 배지

툴 흐름 유연성
소프트웨어 또는 하드웨어 기반 개발용

  • 소프트웨어 지향 고객을 위한 OpenCL 지원
  • 더 빠른 개발을 위한 기권
  • FPGA 실행 파일, 드라이버 및 API를 위한 푸시 버튼 흐름
  • 최적화된 HDL IP 코어를 OpenCL 설계에 라이브러리로 추가합니다.

OpenCL이란 무엇인가요?

OpenCL 소프트웨어 언어

OpenCL(Open Computing Language) 표준은 이기종 시스템에서 알고리즘을 가속화하기 위한 최초의 개방형, 로열티 없는 통합 프로그래밍 모델입니다. OpenCL 소프트웨어를 사용하면 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), 필드 프로그래밍 가능 게이트 어레이(FPGA) 등 다양한 플랫폼에서 코드를 개발하기 위해 C 기반 프로그래밍 언어를 사용할 수 있습니다.

OpenCL 산업 표준을 통해 엔지니어링 팀은 하드웨어 및 펌웨어 엔지니어가 HDL로 프로그래밍해야 하는 수준의 세부 사항 없이도 FPGA 기술 기반 제품을 타겟팅할 수 있습니다. 기존 CPU/GPU C 또는 OpenCL 코드는 인텔 OpenCL 소프트웨어 개발 키트로 다시 컴파일하여 FPGA 하드웨어 리소스를 즉시 활용할 수 있습니다.

기존 코드를 포팅하거나 새로운 알고리즘을 개발할 때 OpenCL 소프트웨어를 새로운 표준으로 사용하면 FPGA 기반 가속기 제품의 출시 시간을 단축할 수 있습니다.

OpenCL을 사용한 FPGA 프로그래밍

프로그래머는 OpenCL 코드에서 하드웨어 수준 최적화를 자동으로 수행하여 전용 FPGA 가속기를 구성할 수 있습니다. 주요 FPGA 기능과 이점은 구문에 추상화되어 있으며 프로그래머는 컴파일러를 사용하여 고도로 병렬화된 애플리케이션을 생성합니다. 재구성 가능한 FPGA 로직을 통해 하드웨어 전용 기능을 위한 최적화된 전용 블록을 생성할 수 있습니다.

역사적으로 FPGA는 정수 연산 가속기로 사용되어 왔지만, 이제 Arria 10 FPGA 제품군은 전용 부동 소수점 리소스를 통해 더 높은 FLOPS(최대 1.5 TFLOPS)를 제공하며, OpenCL 소프트웨어가 이를 원활하게 활용하여 완전히 새로운 범위의 애플리케이션이 FPGA의 이점을 누릴 수 있습니다.

이전 세대의 FPGA 가속기는 IO 처리량 또는 메모리 대역폭에 의해 제한되었지만, OpenCL 소프트웨어 개발 키트는 OpenCL 채널 확장을 통해 고속 커널 간 및 커널 간 데이터 전송을 가능하게 하여 FPGA 로직의 높은 컴퓨팅 성능과 IO의 속도 간의 균형을 맞추는 데 도움이 됩니다.

채널 기능과 내부 및 온보드 메모리를 GPU와는 다른 방식으로 애플리케이션의 필요에 맞게 사용자 정의할 수 있는 매우 유연한 메모리 구성이 결합되어 고객 인프라에서 최적화된 스트림 컴퓨팅 노드로서 비트웨어 FPGA 가속기를 구현할 수 있는 플랫폼을 제공합니다.

OpenCL 소프트웨어 개발 키트를 지원합니다:

  • 수천 개의 병렬 커널 실행
  • 정수 연산에 최적화된 구성 가능한 FPGA 로직
  • 새로운 전용 부동 소수점 FPGA 리소스(최대 1.5 TFLOPS)
  • 구성 가능한 로컬 및 글로벌 메모리
  • 커널 간/커널-IO 간 고대역폭 채널
  • 저전력

인텔 도구 흐름

인텔 OpenCL SDK는 소프트웨어 프로그래머를 위한 개발 환경으로, FPGA 설계 고려 사항은 추상화되어 컴파일러에서 자동으로 처리됩니다. 이 흐름은 소프트웨어의 디버그 및 최적화 주기를 기반으로 하며, 대부분의 애플리케이션이 설계 및 최적화되었을 때 FPGA 컴파일은 제한된 횟수만 수행됩니다.

  1. 기능 검증을 위한 에뮬레이터
  2. FPGA 아키텍처를 위한 OpenCL 최적화 - 300개 이상의 최적화
    a. 병렬 처리 증가
    b. 파이프라인 확보
    c. FPGA 하드웨어 리소스 사용
    d. ...
  3. 프로필 커널 성능
  4. FPGA 하드웨어 타깃으로 컴파일

프로그래머는 간단한 설계 지침에 따라 최소한의 노력으로 커널 코드를 플랫폼 간에 포팅하여 게이트 레벨의 고성능 OpenCL 코드를 얻을 수 있는 OpenCL용 인텔 SDK가 정식 프로덕션 릴리스에 출시되었습니다. OpenCL SDK는 FPGA 가속기 솔루션의 생산 및 배포를 위한 가장 효율적인 경로입니다.

HDL과 OpenCL 성능 비교

CERN은 BittWare 385 보드에서 HDL과 OpenCL로 프로그래밍된 두 가지 알고리즘을 비교한 연구 결과를 발표했습니다.

개발 기간 단축: 2.5개월 대 2주

더 쉬운 개발: 3,400개 라인 대 250개 라인

비슷한 성능: 35배 대 26~30배 가속

CERN은 코드 기반이 작을수록 업데이트하기가 더 쉽다는 점에서 OpenCL을 사용하는 HDL 지원 팀도 이점을 누릴 수 있다고 언급했습니다. FPGA 로직/DSP 리소스 사용량도 두 접근 방식에서 비슷하게 나타났습니다.

출처: 재구성, 트리거 및 머신 러닝을 위한 재구성, 재구성을 위한 코프로세서로서의 FPGA, MIT HL-LHC 워크샵 슬라이드 19.

페이드가 있는 A10SA4 세로 사진

보드 지원 패키지

BSP란 무엇인가요?

FPGA 기반 하드웨어 및 알고리즘 가속에 대한 비트웨어의 전문 지식은 OpenCL 보드 지원 패키지에 집중되어 있습니다. 온보드 리소스와 FPGA 로우레벨 리소스는 BSP에 의해 자동으로 활용되므로 프로그래머는 FPGA에서의 물리적 구현이 아닌 알고리즘에 집중할 수 있습니다.

비트웨어 BSP 제품은 특정 요구 사항에 맞게 조정됩니다. 컴퓨팅 집약적인 애플리케이션의 경우, HPC BSP는 FPGA의 리소스 활용을 극대화합니다. 데이터 스트리밍 가속화를 위해 네트워크 스트림 지원 MAC BSP는 스트림 내 비트 연산을 위해 FPGA 패브릭으로 바로 데이터 흐름을 제공합니다.

인텔의 OpenCL SDK와 비트웨어의 BSP를 결합하면 새롭게 제공되는 OpenCL 채널 기능을 사용할 수 있습니다. 채널은 커널 간 또는 IO-커널 간 고대역폭 데이터 전송을 허용하는 OpenCL 구조입니다. 고대역폭 FPGA 패브릭 로컬 메모리 대역폭은 이러한 OpenCL 채널에서 활용할 수 있습니다.

완전 통합 솔루션

BittWare OpenCL 지원 FPGA 가속기는 완전히 통합되고 생산 준비가 완료된 솔루션으로 제공됩니다. BSP는 개발 및 런타임 시스템에 단일 인스톨러로 설치 및 배포할 수 있습니다. 또한 BittWare는 필요한 고객을 위해 인텔 쿼터스-II/오픈CL SDK 라이선스가 포함된 BSP 디버그 키트를 제공합니다.

BittWare OpenCL BSP에는 프로덕션 시스템 배포를 용이하게 하는 몇 가지 기능도 포함되어 있습니다:

  • 보드 상태(전력 소비 및 온도)
  • 인텔 PCIe 하드 IP 코어(업계 표준 시스템에서 테스트 완료)
  • 플래시 복구 메커니즘

또한 모든 소프트웨어 및 하드웨어가 포함된 사전 설치되어 바로 사용할 수 있는 통합 서버를 제공합니다.

HPC BSP

고성능 컴퓨팅 BSP 또는 HPC BSP는 사용자 알고리즘에 더 많은 양의 FPGA 리소스를 제공합니다.

최적화된 OpenCL 커널 코드의 여러 병렬 인스턴스를 복제하여 FPGA 패브릭 활용도를 극대화하려면 OpenCL SDK 기능을 사용하세요.

고대역폭 커널 간 채널 지원

일반적인 애플리케이션:리소스 사용량:
  • 암호화
  • 압축
  • 기타
  • PCIe 호스트 인터페이스
  • 온보드 글로벌 메모리 버퍼

맞춤형 BSP

비트웨어는 또한 고객의 특정 요구에 맞는 맞춤형 보드 지원 패키지를 개발할 수 있습니다. 비트웨어 FPGA 액셀러레이터는 다양한 입출력 프로토콜을 지원합니다. 당사의 FPGA 가속 전문가 팀은 귀사와 협력하여 맞춤형 보드 지원 패키지를 개발할 수 있습니다.

가속기 메트릭

OpenCL과 호환되는 비트웨어 FPGA 액셀러레이터는 세 가지 FPGA 제품군을 기반으로 합니다: 시스템 요구 사항에 맞는 FPGA 가속기를 선택할 때 고객은 먼저 최상위 레벨에서 알고리즘의 FPGA 리소스 요구 사항과 FPGA 가속기 기능을 살펴봐야 합니다.

다음 섹션에서는 이러한 요구 사항을 충족하기 위해 다양한 FPGA 가속기 및 보드 지원 패키지를 제공하며, BittWare BSP IP 제품에 대해 설명합니다.

메트릭385395385A510T520N(L-타일) (**) (**)520N(H-타일) (**) (**)520N-MX(H-타일)
호스트에서 글로벌 메모리 대역폭까지8레인 PCIe 2.08레인 PCIe 2.08레인 PCIe 3.016레인 PCIe 3.0(8레인 2개)16-레인 PCIe 3.0(*)16-레인 PCIe 3.0(*)16-레인 PCIe 3.0(*)
글로벌 메모리 깊이4GB 2개8GB 4개(*)최대 2x 4GB최대 4GB(*) 4개4x 8GB4x 8GBHBM2 (*)
IO 채널네트워크: 10GbE MAC 2개(MAC BSP)네트워크: 4x 10GbE MAC(MAC BSP)보드 투 보드: 40Gbps 직렬 링크 2개 또는 네트워크: 10GbE MAC(MAC BSP) 2개보드 투 보드: 40Gbps 직렬 링크 2개보드 투 보드: 40Gbps 직렬 링크 4개보드 투 보드: 100Gbps 직렬 링크 4개보드 간 연결: 100Gbps 직렬 링크 4개(QSFP28을 통한)

(*) 구매 가능 여부 및 자세한 내용은 문의
(**) 520C와도 호환되지만 보드 간 IO 채널은 지원하지 않습니다.

OpenCL 경험

경험 및 혁신

비트웨어와 인텔의 OpenCL SDK 지원 파트너십은 지난 20년간 FPGA의 고급 언어 프로그래밍을 촉진해 온 비트웨어의 경험을 논리적으로 이어받은 것입니다. 고객의 시스템 과제를 이해하고 고객의 애플리케이션을 가속화하고 최적화하기 위한 최상의 접근 방식을 파악하는 것은 BittWare의 DNA입니다.

비트웨어 포커스

비트웨어는 FPGA 기반 제품이 그래야 한다고 믿습니다:

  • 직관적이고 간편한 사용
  • 유연성
  • 프로덕션 준비 완료
  • 손쉬운 배포
  • 고객 시스템에 통합

유니티는 OpenCL이 이러한 목표를 달성할 수 있다고 믿으며, 여러분의 성공을 기대합니다!

시스템 가속 전문가 팀

비트웨어는 프로그램의 성공을 보장하기 위해 고객과 협력할 수 있는 최고의 설계 및 엔지니어링 팀을 구성했습니다. 개발 초기 단계부터 고객과 긴밀히 협력하여 다양한 분야를 활용하여 최소한의 리스크로 정시에, 예산에 맞춰, 사양에 맞는 솔루션을 제공할 때 최고의 성과를 거둘 수 있습니다.

비트웨어 디자인 서비스 핵심 가치:

  • 위험 감소
  • 비용 절감
  • 시장 출시 시간 단축

비트웨어의 R&D 부서는 업계의 과제에 대한 새로운 솔루션을 지속적으로 제공하고 있습니다.

사전 컴파일된 AOCX

비트웨어는 인텔 예제 페이지에서 제공되는 모든 예제 디자인에 대해 사전 컴파일된 패키지를 제공합니다.

OpenCL을 지원하는 제품 찾아보기