Thank you for the detailed and kindly described rebuttal. Sorry for my late reply. I am happy that most of my concerns are resolved, and I want to increase the rating. I am pretty confident that this paper is an acceptable grade. I hope other reviewers will respond soon.
- I briefly looked into triton codes, and they are simple and worth understanding for further researchers. I hope the readability (adding a comment, changing the variable names from A and B.. to something semantically meaningful) will be improved in the public release. I think the modularity of this code is generally good.
- However, the hooker function is implemented with a forward overriding style, and I do not like this style... I hope we have a better way than this because this kind of approach will be broken if the `transformers` framework changes its internal API.
- Since the PCA projection is in a separate kernel, this should be improved also.
- I am very grateful for the latency breakdown plot in the PDF. In every other paper that I reviewed in this NIPS, no other author actually made this chart. I truly think this analysis is critical to find further bottleneck of method for future research.
- I acknowledge the practical impact of this work is understandable by showing reducing the memory footprint of K tokens read by low-rank projection.
- I hope the researchers will find a way to do PCA-took in a fused way (like flash attention. e.g., Flash-PCA-Topk). I think we have two approaches: **(1)** ML perspective: changing algorithms. e.g., change top-k into thresholding function. I think these papers will be helpful for the thresholding approach [1]. Or perform Top-k in hierarchically [2] **(2)** System perspective: preserve algorithm as much as possible, but change the implementation. e.g., implement top-k operation using a bucket (partitioning may also be possible).
- **I think memory reduction is not very critical for this kind of work**. So, I respectfully disagree with aGJV's weakness. I understand why the reviewer points to memory reduction because, often, memory consumption limits the research scales. However, I think the memory access footprint is quite underestimated here. The important point of the whole reduction is reducing K memory **read** footprint. This means we can effectively reduce the latency and total throughput of K reads, which is the most significant part of attention. This means we do not need high bandwidth memory such as HBM3e, and we can just use GDDR6, which is much more cost-effective. Moreover, in much sparse attention works [2], they are struggling to reduce the memory throughput of K tokens because single K tokens are already quite huge (128 * 2 bytes for each token and there are 32 heads. usually 8KB, which is 2 pages of VM). So I really love the reduction of memory footprint, and this make possible to KV cache offloading effectively as shown in [2, 3] I hope other reviewers can acknowledge this practical benefits. Maybe it is good to show, how much memory reads actually happened during PCA-topk vs. FlashAttention using `nsight-compute` [4] in future research. I expect to minimize actual memory reads, we should be careful with memory addressing and formating of KV cache tensor.
Again, thank you for your wonderful work, and I hope this kind of work (improving attention mechanism) continues.
[1] https://arxiv.org/pdf/2107.00910
[2] https://arxiv.org/abs/2406.09827
[3] https://arxiv.org/html/2406.19707v1
[4] https://developer.nvidia.com/nsight-compute