Adds epilogue fusion (relu, sigmoid, tanh, exp, add, sub, mul, div,
dtype cast) to the NVGEMM backend via cutlass_api EpilogueArguments.
The scheduler's fusion loop recognizes NVUniversalGemmCaller, benchmarks
fused vs unfused EFC kernels, and selects the winner.
MultiTemplateBuffer gains swap/finalize_as_nvgemm_caller for the
benchmark swap. When NVGEMM can't fuse, MTBs fall through to Triton
scheduling so Triton choices can still attempt epilogue fusion.
Authored with the help of an AI assistant (Claude).
Test Plan:
python test/inductor/test_nv_universal_gemm.py -v -k Epilogue
python test/inductor/test_max_autotune.py -v -k epilogue_fusion
Pull Request resolved: #186183
Approved by: https://github.com/drisspg
SOCIAL SHARE CARD GENERATOR