인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

aaabb12님의 프로필 이미지
aaabb12

작성한 질문수

설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)

[AI HW Lab2] CNN Verilog HDL Practice 3 (Simulation) - 문제해결편

Data형태에 따른 AI가속기 구현 질문

작성

·

26

1

안녕하세요, 강의를 수강하다가 궁금한 점이 있어서 질문드립니다.

강의에서 사용한 Data는 기본 integer를 사용하여 MAC연산을 rtl로 구현 시 +, * 연산자들을 이용하여 구현을 하셨는데 만약 입력으로 들어오는 feature, 학습이 완료된 weight들이 Floating point 32, Brain Floating16 등의 형태를 가지고 있다면 해당 데이터형에 알맞은 ALU 를 따로 설계 후 instance해오는 방식으로 Core를 설계하는지, 그리고 실제 일반적인 AI 가속기 구현 시 주로 어떤 형태의 Data형을 더 많이 사용하는지 궁금합니다!

 

==================

답변 1

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

입력 데이터가 FP32, BP16 등과 같은 부동소수점 데이터일 경우, 해당 데이터형을 지원하는 연산 장치(ALU)를 설계하거나 외부에서 가져와 사용하게 됩니다. 설계 방안은 다음과 같습니다:

  • 부동소수점 데이터의 경우 IEEE 754 표준에 따라 덧셈/곱셈 연산기를 설계해야 합니다.

  • 이를 위해 정밀도와 연산 속도 요구 사항에 맞는 가감산기 및 곱셈기 등을 RTL로 직접 설계하거나, 오픈소스 IP 또는 상용 IP를 사용하는 방식을 고려합니다.

  • 예를 들어, BF16을 사용하는 경우 FP32보다 간소화된 연산기를 설계할 수 있어 전력과 면적을 절감할 수 있습니다.

 

말씀해주신 full FP 를 쓰는 방법도 있지만, 정확도를 최대한 유지하면서 Int 를 가져가는게 PPA 측면에서 유리하기 때문에, Mixed precision 방식을 많이 사용하는 것 같습니다.

즐공하세요 🙂

aaabb12님의 프로필 이미지
aaabb12

작성한 질문수

질문하기