Heteregeneous memory management (HMM) is the name of an upcoming Linux kernel patchset, authored by Red Hat's Jerome Glisse. The patchset enables GPU programmers (CUDA programmers, for example) to write code that treats "a pointer as a pointer": the same pointer values can be used in both CPU and GPU code. This significantly simplifies writing new CUDA programs and porting older C/C++ (or even Fortran) programs to use GPU acceleration. In other words, malloc(3) can be called to allocate a buffer on the CPU, and that buffer's address can be passed to a CUDA kernel that runs on the GPU. HMM migrates the pages automatically. This session includes: improved programming model, some bandwidth and tuning considerations, kernel details.