VectorVisor: A Binary Translation Scheme for Throughput-Oriented GPU Acceleration
summary
Describes VectorVisor, a vectorized binary translator that compiles WebAssembly IR to OpenCL C, runs many copies of unmodified single‑threaded server programs concurrently on GPU SMs, and uses memory interleaving so adjacent virtual addresses across VMs coalesce. Implements recursion and syscalls by transforming code to continuation+trampoline form so kernels are preemptible and indirect calls work. Evaluated on real Rust/C/C++ workloads (PDF, crypto, image), supports thousands of VMs at ~3–4 MB each on 16–24 GB GPUs, and improves throughput‑per‑dollar up to 2.9× vs x86-64 VMs, matching native CUDA in some cases.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:03Traditional GPU challenges
- 3:51Hardware and language feature differences between CPUs and GPUs
- 5:37VectorVisor model
- 7:02Cross-vendor goals
- 8:47WebAssembly as IR
- 11:59Preemption and system calls
- 14:07Optimizing continuations
- 16:32System call handling
- 16:54Limitations and workloads
- 17:58Runtime limits
- 18:19Evaluation methodology
- 19:23Throughput vs CPU
- 20:46Throughput per dollar comparison with CPUs and GPUs
- 22:12VectorVisor vs CUDA
- 24:18Conclusion
related talks
31mSeeing Eye To Eye: Computer Vision using wasmVision
18mgVulkan: Scalable GPU Pooling for Pixel-Grained Rendering in Ray Tracing
01h 00mGPU Accelerated Computing & Optimizations on Cross-Vendor Graphics Cards with Vulkan & Kompute
32mBuilding a WebAssembly-first OS – An Adventure Into the Unorthodox
24mOpen Acceleration for RISC-V – Portability, Performance and Partners...
01h 32mHeterogeneous Programming in C++ today
16mCrafting the Impossible: X86 Virtualization in the Browser with WebAssembly
27mWebAssembly for Performant Interactivity
