一句话:在 FireSim 中引入带外全系统性能剖析,通过调用栈重构和自动性能计数器插入快速定位软硬件瓶颈。
专用硬件/软件系统开发中,除核心计算内核外,系统级瓶颈往往难以定位;高保真内省与足够长的执行周期也难以兼得。本文提出 FirePerf,将带外系统级性能剖析能力集成到开源 FireSim FPGA 加速硬件仿真平台中。FirePerf 通过带外调用栈重构和自动性能计数器插入,在不扰动端到端系统行为的情况下,从合适的软硬件抽象层次进行内省,快速发现软件优化和硬件专用化机会。评估以带以太网 NIC 的开源 RISC-V SoC 软硬件栈为案例,使 Linux 网络应用可达带宽提升 8 倍;并将 FirePerf 发现的 RISC-V Linux 内核优化部署到商用 RISC-V 芯片,网络性能最高提升 1.72 倍。
Achieving high-performance when developing specialized hardware/software systems requires understanding and improving not only core compute kernels, but also intricate and elusive system-level bottlenecks. Profiling these bottlenecks requires both high-fidelity introspection and the ability to run sufficiently many cycles to execute complex software stacks, a challenging combination. In this work, we enable agile full-system performance optimization for hardware/software systems with FirePerf, a set of novel out-of-band system-level performance profiling capabilities integrated into the open-source FireSim FPGA-accelerated hardware simulation platform. Using out-of-band call stack reconstruction and automatic performance counter insertion, FirePerf enables introspecting into hardware and software at appropriate abstraction levels to rapidly identify opportunities for software optimization and hardware specialization, without disrupting end-to-end system behavior like traditional profiling tools. We demonstrate the capabilities of FirePerf with a case study that optimizes the hardware/software stack of an open-source RISC-V SoC with an Ethernet NIC to achieve 8x end-to-end improvement in achievable bandwidth for networking applications running on Linux. We also deploy a RISC-V Linux kernel optimization discovered with FirePerf on commercial RISC-V silicon, resulting in up to 1.72x improvement in network performance.