인텔 로고OpenCL 보드용 AN 824 FPGA SDK
지원 패키지 평면도
사용자 가이드

 인텔® FPGA SDK: OpenCL ™ 보드 지원 패키지 평면도 최적화 가이드
OpenCL™ 보드 지원 패키지(BSP)용 인텔/® FPGA SDK 평면도 최적화 가이드는 OpenCL) BSP에 대한 평면도 지침을 제공합니다. 또한, 평균 최대 작동 빈도가 가장 좋은 기본 시드를 획득하고 BSP 자원 활용 효율성을 평가하는 방법에 대한 지침을 제공합니다.
이 문서에서는 사용자가 Khronos Group의 OpenCL 사양 버전 2에 설명된 OpenCL(1.0) 개념에 익숙하다고 가정합니다.

OpenCL BSP 컴파일 흐름
OpenCL BSP는 다음 유형의 컴파일 흐름을 지원합니다.

  • 플랫 컴파일 [-bsp-flow flat]: 전체 디자인(커널 생성 하드웨어와 함께 BSP)의 플랫 컴파일을 수행합니다.
  • 기본 컴파일 [-bsp-flow base]: base.qsf의 LogicLock 제한 사항을 사용하여 기본 컴파일을 수행합니다. file. BSP 하드웨어가 타이밍을 더 자유롭게 충족할 수 있도록 커널 클럭 목표가 완화되었습니다. 정적 영역인 BSP 하드웨어를 보존하기 위해 base.qar 데이터베이스가 생성됩니다.
  • 가져오기 컴파일 [ ]: base.qar 데이터베이스에서 타이밍이 닫힌 정적 영역을 복원하고 커널에서 생성된 하드웨어만 컴파일합니다. 또한 최상의 커널 최대 작동 주파수(fmax)를 얻기 위해 커널 클럭 목표를 늘립니다.

OpenCL BSP 평면도 파티션
OpenCL BSP 평면도는 주로 다음 두 영역으로 나뉩니다.

  • 정적 영역: 정적 상태로 유지되는 BSP 관련 하드웨어가 있는 영역을 나타냅니다. 기본 컴파일 중에 이 영역에 대한 타이밍이 닫힙니다. 일반적으로 목표는 타이밍을 닫기 위해 이 영역에서 사용되는 칩 자원을 최소화하는 것입니다.
  • 커널 영역: 커널이 포함된 Freeze_wrapper_inst|kernel_system_inst 모듈용으로 예약된 부분 재구성(PR) 영역을 나타냅니다. 일반적으로 목표는 이 지역에 대해 칩 자원을 최대한 확보하는 것입니다.
  1. OpenCL용 Intel FPGA SDK는 공개된 Khronos 사양을 기반으로 하며 Khronos 적합성 테스트 프로세스를 통과했습니다. 현재 적합성 상태는 다음에서 확인할 수 있습니다. www.khronos.org/conformance.
  2. OpenCL 및 OpenCL 로고는 Apple Inc.의 상표이며 Khronos Group™의 허가를 받아 사용되었습니다.

인텔사. 판권 소유. 인텔, 인텔 로고 및 기타 인텔 마크는 인텔사 또는 그 자회사의 상표입니다. Intel은 Intel의 표준 보증에 따라 현재 사양에 대한 FPGA 및 반도체 제품의 성능을 보증하지만, 사전 통지 없이 언제든지 제품 및 서비스를 변경할 수 있는 권리를 보유합니다. 인텔은 인텔이 서면으로 명시적으로 동의한 경우를 제외하고 여기에 설명된 정보, 제품 또는 서비스의 적용 또는 사용으로 인해 발생하는 책임이나 책임을 지지 않습니다. 인텔 고객은 게시된 정보에 의존하기 전, 그리고 제품이나 서비스를 주문하기 전에 최신 버전의 장치 사양을 구하는 것이 좋습니다.
*다른 이름과 브랜드는 다른 사람의 재산이라고 주장될 수 있습니다.

OpenCL BSP 평면도 계획 지침

  • BSP의 모든 주요 구성요소(특히 PCIe 또는 DDR과 같은 I/O 연결이 있는 IP 블록)가 자연스럽게 배치되는 위치를 이해하려면 플랫 컴파일부터 시작하십시오. BSP를 설계하는 동안 파이프라인 설정을 고려해야 할 수도 있습니다.tag타이밍을 종료하기 위해 IP 사이에 있습니다. 먼저 플랫 컴파일 시드 스윕을 실행하여 반복적으로 실패하는 경로를 식별한 다음 수정을 시도해야 합니다.
    팁: — 플랫 컴파일 시드 스윕보다 타이밍 종료 속도가 좋으면 기본 컴파일 타이밍을 닫을 확률이 높아집니다.
    — mm_interconnect*(Qsys에서 추가한 구성 요소)에서 지속적인 오류가 관찰되면 Qsys Interconnect를 사용하여 시스템을 엽니다. view그리고 실패한 상호 연결의 복잡성을 관찰하십시오. 파이프라이닝 플립플롭을 추가할 수 있습니다. view타이밍을 개선하기 위해서죠. 여전히 문제를 해결할 수 없는 경우 Avalon 파이프라인 브리지를 추가하여 mm_interconnect* 주요 경로를 분해해야 할 수도 있습니다.
  • 기본 컴파일 중에 Freeze_wrapper_inst|kernel_system_inst가 포함된 커널 영역에서 LogicLock으로 시작합니다. 다른 제한 없이 Intel Quartus Prime은 칩의 나머지 정적 영역에 BSP 하드웨어를 자유롭게 배치할 수 있습니다. 플랫 컴파일 및 칩 플래너를 사용하여 PCIe 및 DDR과 같은 BSP 하드웨어의 크기와 위치를 식별합니다. 그런 다음 BSP 하드웨어의 주요 클러스터 영역을 피하면서 LogicLock을 사용하여 커널 영역을 예약합니다.
    팁: 사용된 칩 제품군이 참조 플랫폼과 동일하고 BSP 구성 요소가 유사한 경우 OpenCL 참조 BSP와 함께 제공되는 Freeze_wrapper_inst|kernel_system_inst에 대한 LogicLock 영역으로 시작하여 오류를 해결하는 것이 더 빠를 수 있습니다.
  • BSP에 다음과 같은 추가 구성 요소를 추가할 수 있습니다.
    — 메모리 뱅크: 메모리 뱅크를 더 추가하는 경우 타이밍을 맞추기 위해 파이프라인 브리지를 추가해야 할 수 있으므로 I/O 뱅크 위치를 식별해야 합니다.
    — I/O 채널: 비디오, 이더넷 또는 직렬 인터페이스와 같은 I/O 채널을 추가할 수 있습니다. I/O 채널을 추가하는 경우 마감 타이밍이 어려운 경우 파이프라인을 위해 새로운 LogicLock 영역을 적용해야 할 수 있으므로 I/O 뱅크 위치를 식별해야 합니다.
    팁: 파이프라인 브리지를 추가해야 하는 경우(예:amp(타이밍 오류를 일으키는 큰 라우팅 지연으로 인해) 칩의 소스에서 대상 로직까지의 라우팅 거리를 고려하고 커널 영역에 예약된 일부 공간을 해제합니다.
  • 커널용 LogicLock 영역을 예약할 때 다음 일반 지침을 따르십시오.
    — BSP에서 요구하지 않는 한 모든 DSP 열을 kernel_system에 배치하려고 시도합니다.
    — kernel_system에 대해 더 많은 리소스를 예약해 보십시오.
    — 커널 영역의 노치 수를 최소로 유지하십시오.
    다음 그림은 PCIe와 DDR 뱅크 사이에 파이프라인 브리지를 배치하기 위해 추가된 노치를 보여줍니다.

그림 1. 10 릴리스의 Intel Arria® 17.0 GX용 OpenCL BSP 평면도

OpenCL 보드 지원 패키지 평면도용 인텔 AN 824 FPGA SDK

최대 작동 주파수에 대한 지침
커널이 달성하는 최대 작동 주파수(fmax)는 대부분의 IP가 이미 최적화되어 있으므로 FPGA 속도에 크게 좌우됩니다. 그러나 BSP 평면도에 따라 약간의 fmax 손실이 있을 수 있습니다. 예를 들어amp즉, 일반적으로 BSP 커널 영역의 컷아웃 수가 커널 fmax에 영향을 미칩니다.
다음 그림에 설명된 대로 최상의 평균 fmax를 산출하는 최상의 기본 시드를 획득하려면 다음을 수행합니다.

  1. 타이밍에 맞는 첫 번째 기본 시드를 선택하는 대신 기본 컴파일에서 시드 스윕을 수행합니다.
  2. 가져오기 컴파일 수행(ex에서 몇 가지 커널을 사용하여)ample designs)를 통과하는 모든 베이스 시드에 적용합니다.
  3. 모든 기본 시드에 대한 평균 fmax를 계산합니다.
  4. 가장 높은 평균 fmax를 산출하는 기본 시드를 선택합니다.
    최고의 평균 fmax를 가진 기본 시드는 BSP로 출시하기에 좋은 후보입니다. 권장 단계와 다른 접근 방식을 따르기로 결정한 경우 커널 가져오기 컴파일 프로세스의 fmax에서 5~10% 변동이 관찰될 수 있습니다.

그림 2. 최상의 기본 시드 식별OpenCL 보드 지원 패키지 평면도용 인텔 AN 824 FPGA SDK - 그림

  • 평면도 제한 없이 커널이 얼마나 빨리 실행될 수 있는지 이해하려면 다음을 수행하십시오.
    1. 커널의 플랫 컴파일을 수행하고 fmax를 관찰합니다.
    2. 동일한 커널에서 가져오기 컴파일을 수행하고 fmax를 관찰합니다.
    3. fmax 결과를 비교합니다.
    평면도 제한으로 인해 가져오기 컴파일 fmax는 항상 플랫 컴파일 fmax보다 낮습니다. 시드 노이즈를 방지하려면 더 많은 기본 시드로 커널을 컴파일하고 fmax 결과를 비교하는 동안 평균 fmax를 고려하십시오.
  • 기본 컴파일의 커널 fmax를 플랫 또는 가져오기 컴파일과 비교하지 마십시오. 커널 시계 대상은 기본 컴파일 중에 완화되므로 좋은 결과를 얻을 수 없습니다.
  • 기본 또는 가져오기 컴파일에서 커널 시계 중요 경로를 관찰하세요. 중요 경로가 커널에서 평면도의 정적 영역으로 교차하는 경우 평면도를 변경하거나 기본 시드를 몇 개 더 실행하여 이 중요 경로를 피하세요.

BSP 자원 활용 효율성 평가 지침

자원 활용률이 높을수록tage, BSP의 정적 영역에서 영역 활용도가 향상됩니다. 높은 자원 활용률tage는 또한 커널 영역에 더 많은 리소스를 사용할 수 있음을 의미합니다.
리소스 활용률을 계산하려면 아래 단계를 따르세요.tagBSP의 e:

  1. Fitter 보고서의 Partition Statistics 섹션에 있는 top.fit.rpt 또는 base.fit.rpt에서 FPGA의 모든 리소스에 대한 값을 가져옵니다.
  2. "freeze_wrapper_inst|kernel_system_inst"(커널 영역) 값을 공제합니다.

팁:
다른 리소스의 가치보다 적응형 논리 모듈(ALM)의 가치에 더 중점을 둡니다. 리소스 활용률을 확인하세요.tagALM의 e는 OpenCL 참조 BSP에 더 가깝습니다. 매우 높은 퍼센트tagALM의 경우 정체가 발생할 수 있으며, 이로 인해 컴파일 시간이 늘어나고 복잡한 커널에 라우팅 정체가 발생할 수 있습니다. 그러나 언제든지 정적 영역 영역을 늘리거나 줄일 수 있으며 컴파일 시간과 fmax를 관찰할 수 있습니다.
다음 표는 10 릴리스에서 Arria ® 17.0 GX 장치의 OpenCL BSP 리소스 활용도를 반영합니다.

표 1.
10 릴리스에서 IntelArria 17.0 GX 장치의 OpenCL BSP 리소스 활용

총 사용 가능 커널용으로 예약됨 BSP에 사용 가능 BSP에서 사용 0/0
ALM 427200 393800 33400 23818. 71. %
레지스터 1708800 1575200 133600 38913 29. %
M2OK 2713 2534 179 134 75. %
디에스피(DSP) 1518 1518 0 0 없음

정적 영역에 DSP 블록이 없는 방식으로 평면도가 실행되는지 확인하세요.

문서 개정 내역

표 2.
OpenCL 보드 지원 패키지 평면도 최적화 가이드용 인텔 FPGA SDK의 문서 개정 내역

날짜 버전 변화
17월-XNUMX일 최초 출시.

상 온라인 버전
cardo 590878 Spirit 블루투스 인터콤 - ICON 14 피드백 보내기
아이디: 683312
AN-824
버전: 2017.08.08
AN 824: OpenCL™ 보드용 Intel® FPGA SDK

지원 패키지 평면도 최적화 가이드

문서 / 리소스

OpenCL 보드 지원 패키지 평면도용 인텔 AN 824 FPGA SDK [PDF 파일] 사용자 가이드
OpenCL 보드 지원 패키지 평면도용 AN 824 FPGA SDK, AN 824, OpenCL 보드 지원 패키지 평면도용 FPGA SDK, OpenCL 보드 지원 패키지 평면도, 보드 지원 패키지 평면도, 지원 패키지 평면도, 패키지 평면도, 평면도

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *