Shuhai: Xilinx FPGA에서 메모리 벤치마킹을 위한 도구
요약
Shuhai는 Xilinx FPGA 환경에서 HBM 및 DDR4와 같은 메모리 대역폭을 벤치마킹하는 도구입니다. 이 도구는 CPU/GPU의 캐시 영향을 배제하고, 메모리가 애플리케이션 병목 지점인지 정확하게 측정할 수 있게 합니다. 사용자는 Shuhai를 통해 특정 메모리 접근 패턴을 사전에 테스트하여 성능 최적화가 필요한 부분을 식별할 수 있습니다.
핵심 포인트
- FPGA 기반 벤치마킹으로 캐시/TLB의 영향을 제거합니다.
- HBM, DDR4 등 다양한 메모리의 근본적인 세부 사항 이해에 도움을 줍니다.
- 애플리케이션 구현 전 메모리 병목 여부를 사전에 검증할 수 있습니다.
Shuhai
Shuhai는 FPGA 프로그래머가 Xilinx FPGA 상에서 HBM 및 DDR4와 같은 메모리의 모든 근본적인 세부 사항을 명확히 이해할 수 있도록 하는 벤치마킹-메모리(benchmarking-memory) 도구입니다.
Shuhai가 필요한 두 가지 이유?
첫째, 메모리를 벤치마킹하는 측면에서 볼 때, CPU/GPU보다는 FPGA에서 더 잘 수행될 수 있습니다. 특히 CPU/GPU에서 메모리를 벤치마킹할 경우 캐시(cache)/TLB의 부정적인 영향을 제거할 수 없습니다. 따라서 직접적으로 메모리를 벤치마킹하기보다는 CPU/GPU의 캐시를 벤치마킹하는 작업이 많습니다. 반면에 FPGA에서 메모리를 벤치마킹할 경우, 벤치마킹 하드웨어 엔진이 대상 메모리에 직접 연결될 수 있어 대상 메모리와 벤치마킹 엔진 사이에 노이즈가 없습니다.
둘째, 각 메모리/FPGA마다 바퀴를 재발명할 필요가 없습니다. Shuhai를 사용하면 FPGA에 특정 메모리 접근 패턴을 포함하는 구체적인 애플리케이션을 구현하기 전에, 해당 메모리 접근 패턴을 벤치마킹하여 메모리가 병목(bottleneck)이 되지 않을지 확인할 수 있습니다. 만약 병목이라면, 작성자는 애플리케이션이 메모리에 의해 제한되지 않도록 더 효율적인 메모리 접근 패턴을 갖도록 구현을 조정해야 합니다.
1. 시작하기 (Getting Started)
$ git clone https://github.com/RC4ML/Shuhai.git
$ git submodule update --init --recursive
2. FPGA 프로젝트 빌드 (Build FPGA Project)
$ cd hw/
hw/README.md에 따라 vivado 프로젝트를 빌드하고 생성된 비트스트림(bitstream)으로 FPGA를 프로그래밍합니다.
3. 소프트웨어 프로젝트 빌드 (Build Software Project)
$ cd sw/
sw/README.md에 따라 소프트웨어 프로젝트를 빌드하고 애플리케이션을 실행합니다.
자주 묻는 질문 (Frequently Asked Questions)
- Q. 커널 모듈을 로드할 때 FPGA에서 PCIe 감지 실패했습니다.
A. JTAG를 FPGA 이미지를 다운로드하는 과정에서 충돌하지 않을 다른 장치에 연결하십시오. 즉, 같은 장치를 사용하여 비트스트림을 로드할 수는 없습니다.
이 연구를 인용해주세요
논문에 사용하신다면, 저희의 연구를 인용해 주십시오 (전체 버전).
@inproceedings{wang_fccm20,
title={Shuhai: Benchmarking High Bandwidth Memory On FPGAs},
author={Zeke Wang and Hongjing Huang and Jie Zhang and Gustavo Alonso},
...
관련 출판물
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub ML Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기