核心概念
RAVE 플러그인은 QEMU를 사용하여 RISC-V 벡터 확장 v1.0 및 v0.7.1을 빠르게 시뮬레이션하고 분석할 수 있습니다. 이를 통해 벡터 명령, 길이, 데이터 유형, 레지스터 사용 등의 정보를 수집하고 보고할 수 있습니다.
要約
이 논문은 RISC-V 가속기 개발을 위한 시뮬레이터 도구인 RAVE 플러그인을 소개합니다.
RAVE는 QEMU에 구현된 플러그인으로, RISC-V 벡터 확장 v1.0 및 v0.7.1을 시뮬레이션하고 분석할 수 있습니다. 이전에는 Vehave 시뮬레이터를 사용했지만, QEMU가 RISC-V 벡터 확장을 지원하게 되면서 RAVE로 전환했습니다.
RAVE는 다음과 같은 기능을 제공합니다:
- 실행된 벡터 명령어 시퀀스 출력
- 각 명령어에 대해 벡터 길이, 요소 폭, LMUL, 사용된 레지스터 보고
- 애플리케이션 코드에서 추적 영역 정의를 위한 API 제공
- Paraver 도구로 열 수 있는 실행 추적 생성
- 스칼라 명령어 수 계산, 벡터화 지표 정의 및 보고
RAVE는 QEMU 플러그인으로 구현되었으며, QEMU 소스 코드에 일부 수정을 가했습니다. 이를 통해 RISC-V 벡터 확장을 지원하고 일관된 시스템 상태를 읽을 수 있습니다.
RAVE의 성능을 평가한 결과, 벡터 명령어가 많은 경우 QEMU 기반 시뮬레이션이 가장 빠른 것으로 나타났습니다. 또한 RAVE의 보고서와 추적 기능을 통해 벡터화된 그래프 알고리즘의 특성을 분석할 수 있었습니다.
향후 계획으로는 시뮬레이션 성능 및 메모리 사용량 분석, 다중 코어 지원, 사용자 피드백 반영 등이 있습니다.
統計
전체 명령어 중 벡터 명령어 비율이 0.02% 미만일 때 Vehave 시뮬레이터가 QEMU보다 빠름
벡터 명령어 비율이 높은 GEMM 벤치마크에서 QEMU가 Vehave보다 크게 빠름
BFS 알고리즘의 BU 영역에서 벡터 명령어 중 45.86%가 마스크 명령어, 22.67%가 기타 명령어였으나 최적화 후 37.37%, 21.39%로 감소
引用
"RAVE 플러그인은 RISC-V 벡터 확장 v1.0 및 v0.7.1을 빠르게 시뮬레이션하고 분석할 수 있습니다."
"RAVE는 벡터 명령어, 길이, 데이터 유형, 레지스터 사용 등의 정보를 수집하고 보고할 수 있습니다."