Reducing the Cost of Dropout in Flash-Attention by Hiding RNG with GEMM
<|reference_start|>Reducing the Cost of Dropout in Flash-Attention by Hiding RNG with GEMM: Dropout, a network operator, when enabled is likely to dramatically impact the performance of Flash-Attention, which in turn increases the end-to-end training time of Large-Language-Models (LLMs). The main contributor to such performance degradation is the Random Number Generation (RNG) phase that is traditionally fused into the Flash-Attention kernel. As RNG and Attention have the same hardware bottlenecks, RNG latency can hardly be hidden within the Attention kernel.   We propose overlapping RNG with previous GEMM layers in the network to hide RNG runtime and improve end-to-end performance. RNG and GEMM have distinct resource requirements and hardware bottlenecks, so they can run in parallel without compromising each other's performance. Our fine-grained performance model, cross-validated by silicon results, shows 1.14x speedup on one transformer block (including multi-head attention and feed-forward layers) for Llama2, and up to 1.23x speedup when varying workload sizes, on GH100 GPUs with FP8 precision. Further, we extend our theoretical model to different RNG implementations and hardware architectures, and discuss the widely applicable benefits for overlapping RNG with GEMM layers.<|reference_end|>
@article{ma2024reducing,
    title={Reducing the Cost of Dropout in Flash-Attention by Hiding RNG with GEMM},
    author={Haiyue Ma, Jian Liu, Ronny Krashinsky},
    journal={arXiv preprint arXiv:2410.07531},
    year={2024},
    archivePrefix={arXiv},
    eprint={2410.07531},
    primaryClass={cs.AR cs.AI}
}