산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

최근 브라이언 베일리가 주최한 원탁 회의가 CPU + FPGA 지원이라는 2부작 기사로 이어졌습니다. 전문가들은 FPGA와 CPU를 융합한 시스템의 진화하는 현실을 논의하며, 새로운 설계 흐름이 소프트웨어 개발자가 CPU-FPGA 플랫폼을 더 빠르게 시장에 내놓을 수 있게 하는 방법을 조명했습니다.

소개

인공지능의 급증, 커넥티드 디바이스의 폭발적 증가, 데이터센터 워크로드 가속화는 모두 하나의 공통 동인을 가리킵니다: 속도를 추구하는 소프트웨어 개발자. FPGA와 CPU 간의 저지연 링크와 최신 FPGA의 적절한 전력 엔벨로프는 하이브리드 CPU-FPGA 시스템을 고성능 요구에 자연스러운 선택으로 만듭니다. 그러나 FPGA 기술의 근본적 복잡성이 개발자를 종종 가로막습니다.

고수준 합성(HLS) 도구가 크게 발전하여 C/C++를 하드웨어로 매핑하기 쉬워졌습니다. 여전히 IP 중심이며 시스템 수준 결정(소프트웨어 vs 하드웨어 작업 분배, 파이프라인 vs 병렬 실행 선택, 데이터 입도 조정, 최적 통신 메커니즘 선택 등)에는 부족합니다.

소프트웨어 엔지니어에게 필요한 것은 표준 소프트웨어 IDE처럼 느껴지면서 하드웨어 인식 피드백을 제공하는 통합 설계 흐름입니다. 최근 상용 솔루션들이 저수준 세부 사항을 추상화하면서 개발자가 원하는 제어권을 유지하는 방식으로 이 간극을 좁히고 있습니다. 이 도구들은 ESL 모델과 그 응용에 설명된 시스템 레벨 설계 철학에 기반합니다.

시스템 레벨 설계 흐름 이해

시스템 레벨 설계는 더 높은 추상화 수준에서 동작하며, 구현 전에 시스템 구성 요소를 검증, 개선, 통합합니다. 대부분의 설계자는 알고리즘 수준에서 시작해 C/C++/SystemC, MATLAB, Simulink, LabVIEW 모델로 전체 시스템 동작을 포착합니다.

여기서는 C/C++ 중심 흐름에 초점을 맞춥니다(그림 1 참조). 첫 단계인 애플리케이션 프로파일링은 어떤 함수나 루프가 하드웨어 가속의 혜택을 볼지 식별합니다. 다음으로 대상 CPU/FPGA 플랫폼(예: ARM Cortex-A53 + FPGA)을 지정하고 클럭, 캐시, 상호연결 등 매개변수를 구성합니다. 마지막으로 프로파일링된 작업을 소프트웨어와 하드웨어 간에 매핑하여 실행 가능한 아키텍처를 도출합니다.

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

그림 1. CPU/FPGA를 위한 일반적인 시스템 레벨 설계 흐름 (출처: Space Codesign Systems, Inc.)

그림 1의 두 번째 블록은 아키텍처 최적화(아키텍처 탐색 또는 성능 검증이라고도 함)를 다루며, 그림 2에 더 자세히 나와 있습니다.

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

그림 2. 아키텍처 최적화 프로세스 (출처: Space Codesign Systems, Inc.)

이 단계에 입력되는 세 가지 핵심 추정기:

종합된 결과는 데이터베이스를 채워 개발자가 시스템 레벨 목표 달성 여부를 검증할 수 있게 합니다. 기준을 만족하는 아키텍처는 다음 단계로 진행하고, 그렇지 않으면 추가 최적화 반복을 수행합니다.

그림 1의 마지막 블록은 아키텍처 구현입니다: 고수준 설계가 자일링스 비바도(Xilinx Vivado)나 인텔 쿼터스 프라임(Intel Quartus Prime) 같은 벤더 도구를 통해 FPGA 비트스트림으로 변환되어 배포 가능한 완전한 합성 및 테스트 시스템이 됩니다.

시스템 레벨 최적화

자동화된 엔드투엔드 최적화 도구의 부재는 FPGA 기반 컴퓨팅의 오랜 병목이었습니다. 여러 설계 차원의 균형을 맞추는 복잡성 때문에 수동 탐색은 노련한 설계자에게도 지루한 작업입니다.

그림 3은 Zynq-7000 플랫폼에 배포된 6개 C/C++ 함수로 구성된 이미지 처리 애플리케이션의 일반적인 최적화 워크플로를 보여줍니다. 8개 후보 아키텍처가 고려되지만, 시장 출시 시간 제약으로 인해 성능, 면적, 전력 간의 최적 타협안을 빠르게 선택해야 합니다.

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

그림 3. 시스템 레벨 결정이 강조된 아키텍처 탐색 (출처: Space Codesign Systems, Inc.)

자일링스 SDSoC/SDAccel, 팔콘 컴퓨팅의 멀린 컴파일러(Merlin Compiler), 스페이스 코드자인의 스페이스스튜디오(SpaceStudio) 같은 상용 솔루션이 이제 엔드투엔드 지원을 제공합니다. 이들은 그림 1과 2의 흐름을 따르면서 자동화된 의사결정 로직을 주입합니다:

상용 생태계 조망

그림 4는 CPU/FPGA 플랫폼 설계를 둘러싼 생태계의 계층적 뷰를 제시합니다. 최상위 계층은 알고리즘 진입점, 중간 계층은 C/C++로부터 시스템 레벨 최적화를 지원하는 도구, 최하위 계층은 비트스트림을 생성하는 벤더 합성 도구입니다. 대표적인 CPU/FPGA 플랫폼이 바닥에 나와 있습니다.

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

그림 4. CPU/FPGA 플랫폼을 위한 상용 생태계 (출처: Space Codesign Systems, Inc.)

표 1은 CPU/FPGA 플랫폼 설계에 사용되는 주요 상용 자동화 도구를 나열합니다.

CPU-FPGA 협력 설계 가속화: 소프트웨어 개발자를 위한 실용적 흐름

표 1. 상용 자동화 도구 (*참고: 이 리뷰에서 제안된 목록)

결론

CPU-FPGA 개발의 민주화가 궁극적 목표로, 더 많은 소프트웨어 개발자가 하드웨어 가속을 활용할 수 있게 합니다. 소프트웨어 산업이 50년간 어셈블리에서 파이썬과 스위프트로 진화했듯, FPGA 프로그래밍도 비슷한 성숙 과정을 겪고 있습니다. 스페이스스튜디오, SDSoC, 멀린 컴파일러 같은 시스템 레벨 도구의 부상은 중대한 전환점을 알리지만, 완전한 자동화와 컴파일러 간 매끄러운 최적화는 여전히 미래의 과제입니다.

기 부아(Guy Bois), Ing., PhD는 스페이스 코드자인 시스템즈(Space Codesign Systems)의 창립자이자 폴리테크니크 몬트리올 소프트웨어 및 컴퓨터 공학과 교수입니다. ST마이크로일렉트로닉스, 그래스 밸리, PMC 시에라, 디자인 워크숍 테크놀로지스, 카다브라 시스템즈 등 업계 리더들과 풍부한 R&D 경험을 쌓았으며, 하드웨어/소프트웨어 공동 설계 전문성을 바탕으로 스페이스스튜디오를 상용화하고 스페이스 코드자인 시스템즈를 설립했습니다.

임베디드

  1. AMendate CEO 토마스 라이허 인터뷰: 자동화된 위상 최적화로 3D 프린팅 혁신
  2. Altair Ravi Kunju 인터뷰: 시뮬레이션 주도 설계와 3D 프린팅용 신규 Inspire Print3D
  3. 보쉬.IO CEO 슈테판 페르버에게 묻는 5가지 통찰력 있는 질문
  4. VE-VIDES 이니셔티브, IoT 보안을 위한 신뢰할 수 있는 설계·검증 프레임워크 공개
  5. Cadence, ML 기반 Cerebrus 툴로 칩 설계 생산성 10배·PPA 20% 향상
  6. Cadence와 UMC, 28HPC+ AMS 설계 플로우 인증... 자동차·IoT·AI 칩 개발 가속화
  7. 이구스, 저비용 자동화 플랫폼에 7번째 축 하드웨어와 무료 디지털 트윈 프로그래밍 소프트웨어 추가
  8. 인피니언 & 일렉트로비트, 커넥티드 카 차세대 보안 솔루션 제공
  9. 오므론, 플로우 코어(Flow Core) 공개…모바일 로봇 신뢰성·유연성 강화 소프트웨어
  10. 새로운 제조 환경 탐색: 성공을 위한 전략