GPU programming and custom kernels