mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
103 lines
4.9 KiB
TeX
103 lines
4.9 KiB
TeX
\section{Comparison with External GPU EVM Projects}
|
|
|
|
\label{sec:comparison}
|
|
%% ============================================================================
|
|
|
|
Several projects have explored GPU-accelerated EVM execution. We compare cevm against
|
|
the most relevant:
|
|
|
|
\subsection{CuEVM (FaceBlockTeam/gpuEVM)}
|
|
|
|
CuEVM~\cite{cuevm} is a CUDA-based GPU EVM implementation using CGBN (Cooperative Groups
|
|
Big Number) for 256-bit arithmetic. Key characteristics:
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Backend}: CUDA only (NVIDIA GPUs). Uses cooperative groups for 256-bit
|
|
integer operations, requiring warp-level synchronization.
|
|
\item \textbf{Performance}: 60--100K TPS experimental, primarily benchmarked on simple
|
|
transfer workloads.
|
|
\item \textbf{Target}: Designed for EVM fuzzing and testing, not production block execution.
|
|
Lacks conflict detection (no Block-STM or equivalent).
|
|
\item \textbf{State}: No GPU-resident state---state is transferred from CPU per block.
|
|
\end{itemize}
|
|
|
|
\subsection{GatlingX}
|
|
|
|
GatlingX~\cite{gatlingx} claims 200$\times$ speedup for GPU-accelerated EVM but provides
|
|
no reproducible benchmarks, no open source implementation, and no peer-reviewed evaluation.
|
|
We do not consider unverifiable claims.
|
|
|
|
\subsection{cevm Differentiation}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\small
|
|
\begin{tabular}{lllll}
|
|
\toprule
|
|
\textbf{Feature} & \textbf{cevm} & \textbf{CuEVM} & \textbf{GatlingX} \\
|
|
\midrule
|
|
GPU backend & Metal + CUDA + Dawn/WebGPU & CUDA only & Unknown \\
|
|
Block-STM on GPU & Yes (novel) & No & Unknown \\
|
|
GPU-resident state & Yes (hash table) & No & Unknown \\
|
|
Production target & Yes & No (fuzzing) & Claimed \\
|
|
Conflict detection & GPU atomics & None & Unknown \\
|
|
Open benchmarks & This paper & Partial & None \\
|
|
PQ crypto on GPU & Yes (ML-DSA/ML-KEM/SLH) & No & No \\
|
|
FHE on GPU & Yes (TFHE) & No & No \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Feature comparison of GPU EVM implementations. cevm ships three backends
|
|
(Metal, CUDA, Dawn/WebGPU) with CPU SIMD fallback, and is the only implementation
|
|
with GPU-resident Block-STM, persistent GPU state, and post-quantum/FHE acceleration.}
|
|
\label{tab:gpu_comparison}
|
|
\end{table}
|
|
|
|
The key novelty of cevm is \textbf{Metal Block-STM on GPU}: no published work combines
|
|
the Block-STM optimistic concurrency protocol~\cite{blockstm} with GPU execution. CuEVM
|
|
executes transactions independently without conflict detection, which is sufficient for
|
|
fuzzing but not for production block processing where transactions share state.
|
|
|
|
\subsection{Comparison with CPU-Side Parallel EVM}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\small
|
|
\begin{tabular}{lrrp{4cm}}
|
|
\toprule
|
|
\textbf{System} & \textbf{Throughput} & \textbf{Type} & \textbf{Notes} \\
|
|
\midrule
|
|
Ethereum mainnet & $\sim$30\,Mgas/s & Production & Sequential geth, 12s blocks, $\sim$30M gas/block \\
|
|
Lux C-Chain (Go) & 534--1{,}038\,Mgas/s & Measured & Sequential, execution only \\
|
|
Solana & $\sim$50k TPS & Production & Not EVM; SVM/BPF runtime \\
|
|
Monad (claimed) & 10{,}000 TPS & Claimed & Proprietary parallel EVM, not open source \\
|
|
pevm (Rust) & 19--22\,Ggas/s & Published & Parallel Block-STM, ETH transfers \\
|
|
CuEVM (CUDA) & 60--100K TPS & Experimental & Fuzzing target, no conflict detection \\
|
|
\midrule
|
|
\textbf{cevm} C++ & 20.9\,Ggas/s & Measured & EVM-only, full state \\
|
|
\textbf{cevm} GPU & 85.9\,M ops/s & Measured & GPU kernel, 4.85$\times$ \\
|
|
\textbf{cevm} Block-STM & 3{,}390\,Mgas/s & Measured & 10-thread, mixed workload \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Throughput comparison with external systems. Ethereum and Lux numbers are
|
|
directly comparable (both EVM). Solana uses a different VM (SVM) and is not directly
|
|
comparable. Monad's numbers are self-reported and not independently verified.
|
|
pevm numbers from published benchmarks on ETH transfers (zero-conflict, best case).
|
|
CuEVM numbers from~\cite{cuevm}.}
|
|
\label{tab:external}
|
|
\end{table}
|
|
|
|
\textbf{Key observations:}
|
|
\begin{itemize}
|
|
\item cevm C++ matches pevm Rust on EVM-only throughput ($\sim$20\,Ggas/s vs 19--22\,Ggas/s),
|
|
confirming that the execution engine is not the differentiator at this performance level.
|
|
\item cevm's GPU acceleration (4.85$\times$) applies \emph{on top of} the C++ interpreter,
|
|
targeting the opcode dispatch that C++ and Rust handle equally well.
|
|
\item The real differentiator is the GPU pipeline: crypto offloading (ecrecover, Keccak-256,
|
|
PQ signatures) addresses the 87\% of time that pure interpreter optimization cannot touch.
|
|
\item CuEVM's lack of conflict detection limits it to embarrassingly parallel workloads
|
|
(fuzzing, independent transfers). cevm's GPU Block-STM handles real-world DeFi workloads
|
|
with shared state.
|
|
\end{itemize}
|
|
|
|
%% ============================================================================
|