OpenCL™ 빠른 Fourier Transform FFT(1D) 오프칩

권장 대상:

  • 장치: 알 수 없음

  • Quartus®: v17.1

이 벤치마크는 인텔® FPGAs 1D 빠른 Fourier 변환(1D FFT)의 OpenCL™ 구현을 보여줍니다. 벤치마크는 최대 1,600만 개의 복잡한 단일 정밀 부동 소수점 값을 처리할 수 있으며 동적으로 변화하는 데이터 크기를 지원합니다.

이러한 대규모 데이터 세트를 처리하는 데 사용되는 알고리즘은 6단계로 구성되어 있습니다. 예를 들어, 100만 포인트를 처리하려고 합니다.

  • 1M 포인트를 1K x 1K 매트릭스로 처리하고 외부 메모리에서 읽고 즉석에서 변환합니다.
  • 모든 행(트랜스포즈 매트릭스)에서 1K 1D FFT를 실행합니다.
  • 조정 트위들 팩터를 통해 결과 값을 곱합니다.
  • 매트릭스를 변환하고 외부 메모리의 임시 버퍼에 쓰기.
  • 모든 행에서 1K 1D FFT를 실행합니다.
  • 매트릭스를 변환하고 출력을 외부 메모리에 씁니다.

전체 시스템은 채널로 연결된 세 개의 커널로 구성됩니다. 3개의 커널 세트는 호스트가 전체 계산을 수행하도록 두 번 인큐어됩니다. 첫 번째 enqueue는 위의 1-4단계를 수행하며, 두 번째 enqueue는 5-6단계를 수행합니다. 이 코어는 기본적으로 2D FFT 코어로, 추가 트랜지션과 트위들 곱셈이 있습니다.

코드는 다양한 FFT 크기와 다양한 성능 요구 사항을 지원하기 위해 쉽게 매개변수화됩니다.

FFT 성능

코어의 성능은 병렬로 처리되는 포인트 수, 사용된 데이터 레이아웃, 외부 메모리의 수와 속도에 따라 달라집니다. 아래 측정은 두 개의 DDR3-1600이 있는 BittWare S5-PCIe-HQ D8에서 수행되었습니다. 1M 포인트 FFT에서 병렬로 8점, 4M FFT에서 병렬로 4점을 측정했습니다.

MSPS는 "초당 수백만 개의 샘플"입니다.

기능

  • 단일 작업 항목 커널
  • 커널 채널
  • 최적화된 매트릭스 전치

다운로드 수

설계 예에서는 OpenCL 장치(.cl)와 호스트 응용 프로그램에 대한 소스 코드를 제공합니다. 호스트 응용 프로그램을 컴파일하기 위해 Linux* 패키지에는 Makefile이 포함되어 있으며 Windows 패키지에는 Microsoft Visual Studio 2010 프로젝트가 포함되어 있습니다.

다음 다운로드는 이 예에 대해 제공됩니다.

이 설계의 사용은 하드웨어 참조 설계 라이센스 계약의이용 약관에 따라 적용됩니다.

소프트웨어 및 하드웨어 요구 사항

이 설계 예에는 다음 도구가 필요합니다.

  • 인텔® FPGA 소프트웨어 v17.1 이상
  • OpenCL v17.1 이상에 대한 SDK 인텔 FPGA
  • Linux에서: GNU 메이크 및 gcc
  • Windows: Microsoft Visual Studio 2010

인텔 설계 도구를 다운로드하려면 OpenCL 다운로드 페이지를 방문하십시오. 이 설계 예에서는 Linux 운영 체제만 지원됩니다.

OpenCL 및 OpenCL 로고는 Khronos의 허가를 받아 사용하는 Apple Inc.의 상표입니다.

* 제품은 게시된 Khronos 사양을 기반으로 하며 Khronos 적합성 테스트 프로세스를 통과했습니다. 현재 적합성 상태는 www.khronos.org/conformance에서 찾을 수 있습니다.

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.