inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Thiết kế bộ tăng tốc HW sử dụng FPGA thực tế của Seolgye Dokhak Matbi (Từ điều khiển LED đến thiết kế bộ tăng tốc Fully Connected Layer)

HW가속기 설계에서 더 보완할 수 있는 방법이 있을까요?

2

dlrwo0904

1 câu hỏi đã được viết

0

안녕하세요 🙂

[1. 질문 챕터] : FPGA 19장

[2. 질문 내용] : 이 챕터에서 실제로 PS영역(CPU)으로만 계산을 했을 때와 PL영역(DSP)을 이용해서 계산 후 PS영역으로 데이터를 옮겼을 때의 시간을 비교해서 HW 가속기 컨셉을 배웠습니다. 하지만 데이터의 이동 시간이 너무 오래 걸렸기 때문에 "데이터를 어떻게 주고 받을 것인가"가 HW 가속기 core 설계의 핵심이라고 말씀주셨습니다. 그럼 PS영역과 PL영역의 데이터를 주고 받는 것은 어떻게 개선할 수 있나요?? AXI4-Lite 말고 AXI4-Standard를 쓰면 해결이 될까요? 아니면 따로 Synchronous FIFO 같은 것을 설계하면 데이터를 좀 더 빠르고 원할하게 PS->PL, PL->PS로 옮기는 것이 가능해 질까요? 실제로 HW 가속기를 설계할 때는 어떻게 데이터를 주고 받는 시간을 줄이나요?

그리고 혹시 PL영역에서 verilog IP를 설계할 때도 Synchronous FIFO를 사용하면 HW 가속기의 계산을 더 빠르고 원할하게 만들 수 있나요?

[3. 시도했던 내용, 그렇게 생각하는 이유] : 수업에 어떻게하면 이 데이터의 이동 시간을 줄일수 있는지 까지는 구체적으로 언급이 없어서 궁금해서 여쭈어봅니다!

 

fpga 임베디드

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. dlrwo0904님이 FPGA에서 HW 가속기 설계 시 데이터 이동의 효율성을 보완할 수 있는 방법에 대해 문의주셨네요.

FPGA 데이터 이동 효율화 방법

  1. AXI4-Standard 활용:

    • AXI4-Lite는 단순한 제어 용도로 최적화되어 있으며, 데이터 전송 속도에 한계가 있습니다. 반면 AXI4-Standard는 더 많은 버스트 전송 모드를 지원하므로 전체적인 데이터 전송 속도를 향상시킬 수 있습니다. 다량의 데이터를 고속으로 전송해야 하는 경우라면 AXI4-Standard로 전환하는 것이 도움이 될 수 있습니다.
  2. DMA(Direct Memory Access) 사용:

    • DMA는 CPU의 개입 없이 메모리 간의 직접적인 데이터 이동을 가능하게 하여 CPU의 부담을 줄이고 데이터 전송 효율을 높일 수 있습니다. AXI DMA 모듈을 사용하여 데이터 전송 작업을 병렬화하면 시스템 성능을 크게 개선할 수 있습니다.
  3. Synchronous FIFO:

    • Verilog IP 설계에서 Synchronous FIFO를 사용하면, 데이터의 버퍼링 및 순차 이동이 원활해져 데이터 전송 지연을 줄이는 데 도움이 될 수 있습니다. 이를 통해 PL에서의 데이터 처리 속도를 향상시킬 수 있습니다. FIFO를 사용하는 것은 특히 데이터가 불규칙하게 도착하는 환경에서 유리합니다.
  4. Custom Bus 설계:

    • AXI을 사용하지 않고, 버스 혼잡을 줄이기 위해 Custom한 설계를 시도해볼 수도 있습니다. 그러나 이는 프로젝트 및 요구사항에 따라 결정되어야 합니다.

추가 학습 자료

유사한 주제와 관련하여 참고할 수 있는 추가 링크를 추천드립니다:

이러한 방법들을 적용하여 FPGA와 관련된 프로젝트에서 데이터 이동 및 처리의 속도를 최적화할 수 있습니다. 각각의 방법에 따른 장단점을 고려하여 사용 환경에 가장 적합한 솔루션을 선택하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

UART0, 1 중 선택

1

60

2

datamoverbram모듈질문

1

66

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

103

2

vitis 설치 관련 질문 있습니다!

1

90

2

FPGA 공식문서 읽는법

1

102

2

보드 추가의 클릭창이 없습니다.

1

75

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

85

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

109

1

Vitis 코드 작성

1

131

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

298

3

[9장 led 점등 시간 제어 불가]

1

84

2

Platform Invalid 오류

1

154

3

WSL 설치 관련 문의드립니다!!

1

103

2

Vivado 툴, 파일 질문드립니다!

1

163

2

9장 LED 점등 안됨

1

114

3

Edit in IP Packager 이후에

1

91

1

Fpga 로직

1

94

2

pmu-fw is not running

1

133

2

Create Project에 대해서 궁금해요

1

93

2

장치관리자 USB 포트

1

105

2

FPGA 7장 AXI_LITE I/F질문

1

93

1

bram mover에서 합성할때

1

82

2

타이밍 위반 질문

1

83

2

rvalid 초기화

1

69

2