核心概念
本文提出了RAVE,一個用於模擬和分析RISC-V向量指令執行的QEMU插件。RAVE能夠快速模擬和分析在RISC-V v1.0和v0.7.1向量擴展上運行的應用程序,並提供詳細的向量化指標報告。
要約
本文介紹了RAVE插件的實現。RAVE是為了解決之前用於RISC-V模擬的Vehave工具的一些缺點而開發的。Vehave只能捕獲向量指令的執行,無法獲取標量指令的信息,並且對於高度向量化的代碼會產生較大的開銷。
RAVE基於QEMU進行模擬,並實現了以下功能:
- 報告執行的向量和標量指令,包括向量長度、元素寬度、寄存器使用等指標。
- 提供API供應用程序控制RAVE插件的跟蹤功能,並生成可用Paraver工具分析的跟蹤文件。
- 在模擬過程中收集向量化指標,如向量指令比例、平均向量長度等。
- 支持RISC-V v1.0和v0.7.1兩個版本的向量擴展。
作者對RAVE的性能進行了評估,包括使用合成基準和實際HPC應用程序,並與Vehave和FPGA硬件仿真進行了比較。結果顯示,QEMU+RAVE是一個快速、可移植且功能強大的RISC-V向量指令模擬解決方案。
統計
在低向量化比例(小於0.02%)下,Vehave在Unmatched板卡上的模擬速度最快,除非生成Paraver跟蹤。
對於圖算法等主要使用標量指令的應用,Vehave仍然是最快的模擬方法。
對於GEMM等高度向量化的應用,QEMU+RAVE明顯優於其他方法。