| | #include "scaled_mm_kernels.hpp" |
| | #include "scaled_mm_blockwise_sm100_fp8_dispatch.cuh" |
| | #include "cutlass_extensions/epilogue/scaled_mm_epilogues_c3x.hpp" |
| |
|
| | namespace vllm { |
| |
|
| | void cutlass_scaled_mm_blockwise_sm100_fp8(torch::Tensor& out, |
| | torch::Tensor const& a, |
| | torch::Tensor const& b, |
| | torch::Tensor const& a_scales, |
| | torch::Tensor const& b_scales) { |
| | if (out.dtype() == torch::kBFloat16) { |
| | cutlass_gemm_blockwise_sm100_fp8_dispatch<cutlass::bfloat16_t>( |
| | out, a, b, a_scales, b_scales); |
| |
|
| | } else { |
| | TORCH_CHECK(out.dtype() == torch::kFloat16); |
| | cutlass_gemm_blockwise_sm100_fp8_dispatch<cutlass::half_t>( |
| | out, a, b, a_scales, b_scales); |
| | } |
| | } |
| |
|
| | } |
| |
|