Files
papers/gpu-evm-whitepaper/sections/09-comparison-with-external-gpu-evm-project.tex
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
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.
2026-04-18 21:50:07 -07:00

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}
%% ============================================================================