Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified M...
summary
Prototype allocates the JVM heap in unified memory inside MaxineVM so host and accelerators share pages, implemented for CUDA (discrete NVIDIA) and Intel Level Zero (integrated). It adds an XPU interface and a GC synchronization point to track object migration and pointers, paying page migration costs but avoiding SE faults. Results show up to 9.3x speedup on integrated GPUs, a 12% worst-case slowdown on CPU-only runs, and up to ~2.1x penalty when forcing GC with discrete GPUs, so it works with clear tradeoffs.
AI-written summary · about
chapters (13)
- 0:00Unified shared memory in Java
- 2:45Motivation behind research
- 5:33Maxine VM and GPU background
- 8:25Unified memory simplifies GPU workflow
- 10:53Pointer sharing challenges
- 13:19Implementation with CUDA and Level Zero
- 15:03Performance impact on CPU workloads
- 16:30Benchmark results discrete GPUs
- 17:55Benchmark results integrated GPUs
- 18:58Garbage collection impact
- 20:21Level Zero integration efforts
- 21:04Conclusions and future directions
- 21:25Q&A
related talks
34mGMEM: Generalized OS Memory Management for Accelerators
50mUnder the HAT: Empowering GPU Acceleration for Java
39mBeyond the Baseline: Experimental WebAssembly for High Performance
36mCUDA Kernels with C++
18mGRANNY: Granular Management of Compute-Intensive Applications in the Cloud
37mC++ for multi-accelerator, multi-vendor systems
25mVectorVisor: A Binary Translation Scheme for Throughput-Oriented GPU Acceleration
37mBridging the Architecture Divide: How Hardware Limits Wasm, and How We Can Do Better
