MATLAB®에서 생성된 C/C++에서 고위 합성 가속

2786 단어 C++FPGAmatlab

소개



자기소개
십년간 내장 OS 분야에서 FAE/프로젝트 매니저를 경험.
현재는 헤테로 멀티 코어용의 소스 코드 해석이나 최적화를 실시하는 Silexica로 분투중.

HLS의 일반적인 사용 사례는 타사에 의해 생성된 알고리즘 또는 기존 C/C++ 알고리즘을 HLS 컴파일러를 사용하여 하드웨어 구현으로 변환합니다. 그러나 기본 코드에 대한 통찰력이나 이해가 거의 없다면 개발자에게 많은 어려움을 줄 수 있습니다. SLX FPGA는 개발자가 HLS 알고리즘 코드를 이해하고 최적화를 지원함으로써 이러한 문제에 대한 솔루션을 제공합니다.

최근 발표 된 백서에서는 SLXFPGA를 사용하여 MATLAB Embedded Coder ™에서 생성 된 C/C + 알고리즘 (이 경우 칼만 필터)을 사용하여 HLS 용 C/C++ 코드를 최적화하는 방법에 대해 설명합니다. 되었습니다. 이 예제에서는 pragma가 삽입되지 않은 원래 코드에 대해 HLS 컴파일러에서 생성한 솔루션과 비교하여 SLX FPGA가 HLS pragma를 자동으로 삽입한 코드가 성능이 62배 이상 향상되었습니다.


백서에서는 다음 설계 흐름 절차에 대해 자세히 설명합니다.



HLS에 대한 합성 불가능한 코드 리팩토링



MATLAB Embedded Coder에서 알고리즘 C/C++ 코드를 생성한 후 SLX FPGA는 HLS 컴파일러에서 합성 불가능한 코드를 식별하고 코드를 HLS 합성 가능한 코드로 변환하는 자동 및 가이드 코드 리팩토링을 제공합니다. 합니다.


병렬 처리 감지



SLX FPGA는 병렬 처리를 감지하고 하드웨어 구현에서 어떻게 활용하는지 개발자에게 안내합니다. 또한 병렬 처리 오류를 플래그로 표시하여 사용자가 이러한 장애를 제거하고 추가 병렬 처리를 수행할 수 있도록 합니다.


하드웨어 최적화



SLX FPGA는 적절한 함수의 파이프라인화와 루프 배포를 조사하고 대상 플랫폼에서 사용 가능한 배열 분할 및 사용 가능한 인터페이스의 디자인 공간을 통해 하드웨어에 데이터를 제공합니다.


pragma 삽입



SLX FPGA는 컴파일러 최적화를 안내하는 HLS pragma를 자동으로 삽입합니다. 또한 HLS pragma에는 튜닝이 필요한 다양한 매개 변수가 포함되어 있습니다. SLX FPGA는 정적 및 동적 분석 데이터를 활용하고 최적화 알고리즘과 결합하여 개발자가 제공하는 제약 조건에 따라 조정 및 최적화된 pragma를 삽입합니다.


SLX와 Vivado HLS를 사용하여 MATLAB Embedded 코더에 의해 생성 된 알고리즘을 FPGA에 구현하는 방법에 대한 자세한 내용은 백서 "MATLAB에서 생성 된 C / C ++에서 고위 합성 가속"을 다운로드하십시오. 라이브 데모 및 SLX FPGA 평가를 고려하려면 여기에서 문의하십시오.

좋은 웹페이지 즐겨찾기