https://blog.alpindale.net/posts/top_k_cuda/