Versal AI Engine으로 DSP 워크로드 가속화
전체 시스템 성능 개선의 열쇠
프로그래밍 가능한 로직 또는 Versal AI Engine에서 효율적으로 실행되는 위치에 워크로드를 배치하면 에너지 효율성과 전반적인 성능에 큰 차이를 가져올 수 있습니다. Versal AI Engine이 고성능 DSP 애플리케이션에 적합한 이유를 알아보세요.
Versal AI Engine 기술로 고성능 DSP(Digital Signal Processing) 요구 사항을 충족합니다.
차세대 DSP 애플리케이션을 사용하는 고객에게는 기존 FPGA 아키텍처에서는 효율적으로 구현할 수 없는 엄청난 컴퓨팅 기능이 필요합니다. FIR, FFT, General Matrix Multiply와 같은 컴퓨팅 집약적 DSP 애플리케이션은 상당한 양의 DSP 블록과 프로그래밍 가능한 로직 리소스를 사용할 수 있습니다.
이와 같은 요구 사항으로 인해 기존의 프로그래밍 가능 로직 디바이스에서 사용할 수 있는 전체 컴퓨팅 용량이 크게 감소할 수 있습니다. 단순히 DSP 블록과 프로그래밍 가능한 로직을 늘리는 방안은 전력 예산이 엄격하고 강도가 높은 DSP 워크로드를 위해 확장 가능한 솔루션이 아닙니다.
Versal AI Engine은 이러한 경우에 보다 효율적인 컴퓨팅 솔루션을 제공하도록 설계되었습니다.
AMD Versal™ AI Engine을 대상으로 하는 고성능 DSP 기능을 설계하려면 AMD Vitis™ 개발 도구 또는 Vitis Model Composer 흐름을 사용하여 MathWorks Simulink® 도구의 시뮬레이션 및 그래픽 기능을 활용해야 합니다.
두 경우 모두 DSP 애플리케이션을 FPGA 또는 AI 엔진에서 구현할 기능에 매핑하거나 FPGA 로직과 AI 엔진을 조합하는 것이 중요합니다. 이를 위해서는 전체 시스템뿐만 아니라 디바이스 기능에 대한 이해가 필요합니다.
일반적으로 컴퓨팅 집약적인 기능은 AI 엔진 구현에 더 적합하고, 데이터 이동/재정렬이 필요한 기능은 FPGA 구현에 더 적합합니다.
아래에 나와 있는 예시에서는 복잡한 필터링과 푸리에 변환이 일반적으로 AI 엔진 어레이 내에서 더 적합합니다.
기능이 AI 엔진에 적합한 것으로 명확하게 식별되면 아래 옵션 중 하나를 사용하여 해당 기능을 AI 엔진에 구현할 수 있습니다.
참고: 아래 목록의 여러 옵션을 사용하는 하이브리드 접근 방식도 가능합니다.
Vitis 플랫폼은 DSP 라이브러리, API, 내장 함수를 활용하는 두 가지 프로그래밍 환경 제공
C/C++에서 빌드
Vitis 플랫폼은 일반적인 DSP 알고리즘, 함수, 디바이스 그래프를 위한 오픈 소스 빌딩 블록을 갖추고 있습니다. 신속한 테스트를 위해 있는 그대로 사용하거나 필요에 맞게 사용자 지정할 수 있습니다.
C/C++ 흐름
AI 엔진을 DSP에 적용하기 위해 시작하려면 Vitis DSP 라이브러리 함수(C 기반)부터 시작하는 것을 강력히 권장합니다. 수동 코딩을 사용하면 더 최적화된 구현이 가능하지만, 아래 방법을 사용하면 DSP용 AI 엔진을 가장 빠르게 시작하면서 우수한 성능을 제공할 수 있습니다. (아래 목록의 여러 옵션을 사용하는 하이브리드 접근 방식도 가능)
dsplib::fft::dit1ch::fft_ifft_dit_1ch
aie::vector<int8_t, sizeTileA> A0
aie::vector<int8_t, sizeTileA> A1
Acc0 = mac16(acc0, Bbuff, 0, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);
Acc0 = mac16(acc0, Bbuff, 32, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);
그러면 다양한 AI 엔진 함수가 그래프 C 코드를 사용하여 상호 연결됩니다. 그래프 C 코드는 여러 AI 엔진 타일의 네트워크를 설명하는 C++ 코드입니다.
Vitis 모델 컴포저를 통한 모델 기반 흐름
이 컴포저는 MathWorks MATLAB®/Simulink® 환경에 개발 기능을 도입하여 Versal AI 엔진용 커널을 생성하고 프로그래밍 가능 로직 모듈을 통합하며 시스템을 시뮬레이션할 수 있습니다.
Vitis 모델 컴포저 흐름
Vitis 모델 컴포저를 사용하면 다양한 AI 엔진 함수 간의 그래픽 상호 연결이 가능합니다. 이 그래픽 표현은 Vitis 모델 컴포저를 통해 푸시 버튼을 그래프 C 코드로 변환할 수 있습니다. MathWorks Simulink 환경의 강력한 시뮬레이션 기능을 활용하여 설계를 검증할 수도 있습니다.
Vitis 모델 컴포저를 사용하는 Versal AI Engine 개발에 대해 자세히 알아보려면 Vitis 모델 컴포저를 사용하는 Versal AI Engine 개발 페이지를 참조하세요.
AI 엔진 컴파일러 및 시뮬레이터 도구는 AMD Vitis™ 소프트웨어 설치 프로그램의 일부이지만, 이러한 도구를 사용하려면 무료 라이선스가 필요합니다. 이 라이선스는 제품 라이선스 사이트에서 얻을 수 있습니다.
세부 정보를 입력하고 "AI Engine Tools License(AI 엔진 도구 라이선스)" 옵션을 선택하세요.
다상 채널라이저는 DSP(Digital Signal Processing)에 기반한 효율적인 접근 방식을 사용하여 단일 데이터 스트림에서 전달되는 FDM(Frequency Division Multiplexed) 채널 세트를 동시에 하향 변환합니다. 채널라이저는 수많은 무선 통신, 레이더, 항공우주/국방 및 의료 영상 시스템에서 널리 사용됩니다. 이 튜토리얼에서는 AMD Versal™ Adaptive SoC 디바이스의 AI 엔진 및 PL(프로그래밍 가능 로직) 리소스 조합을 사용하여 두 가지 채널라이저 설계를 구현합니다.
AMD Versal Adaptive SoC를 사용하는 프로그래밍 가능 로직 전용 설계와 Adaptive SoC + AI Engine 설계의 일대일 벤치마크 비교에 대해서는 영업 담당자 또는 FAE에 벤치마크 결과 및 소스 설계에 대해 문의하세요.