RISC-V 에뮬레이션의 한계를 밀어붙이다
Pushing the limits of RISC-V emulation

OpenVM의 개발자가 RISC-V 프로그램을 네이티브 성능에 근접하게 실행하는 방법을 탐구합니다. 해석기에서 시작해 사전 디코딩, 계산된 goto, 테일 콜 스레딩을 거쳐 AOT 리컴파일러로 발전시키며, 각 단계의 오버헤드를 제거합니다. 핵심은 기본 블록을 별도의 C 함수로 생성하고 Clang의 preserve_none 호출 규약을 활용해 핫 게스트 상태를 호스트 레지스터에 유지하는 것입니다. 이 접근법은 해석기보다 수십 배 빠른 실행을 가능하게 하며, OpenVM의 증명 생성 병목을 해소합니다.
프로그램을 가장 빠르게 실행하는 방법은 방해하지 않고 하드웨어가 직접 실행하도록 두는 것입니다.
- dmitrygr
결국은 에뮬레이션이 아니라 정적 재컴파일(static recompilation)이다. (그게 아마 더 멋지다)