// Copyright (c) 2023, Tri Dao. // Splitting the different head dimensions to different files to speed up compilation. #include "flash_fwd_launch_template.h" // template<> // void run_mha_fwd_(Flash_fwd_params ¶ms, cudaStream_t stream) { // using elem_type = cutlass::half_t; // BOOL_SWITCH(params.p_dropout < 1.f, Is_dropout, [&] { // run_flash_fwd, Is_dropout>(params, stream); // run_flash_fwd, Is_dropout>(params, stream); // // This 3rd one is good for H100, and A100, A6000 // run_flash_fwd, Is_dropout>(params, stream); // run_flash_fwd, Is_dropout>(params, stream); // // These two are always slower // // run_flash_fwd>(params, stream); // // run_flash_fwd>(params, stream); // }); // } template<> void run_mha_fwd_(Flash_fwd_params ¶ms, cudaStream_t stream) { run_mha_fwd_hdim96(params, stream); }