2023-03-31 09:51:22 -07:00
|
|
|
#include <torch/extension.h>
|
|
|
|
|
|
|
|
void rms_norm(
|
|
|
|
torch::Tensor& out,
|
|
|
|
torch::Tensor& input,
|
|
|
|
torch::Tensor& weight,
|
|
|
|
float epsilon);
|
|
|
|
|
2023-11-19 10:18:02 +08:00
|
|
|
void fused_add_rms_norm(
|
|
|
|
torch::Tensor& input,
|
|
|
|
torch::Tensor& residual,
|
|
|
|
torch::Tensor& weight,
|
|
|
|
float epsilon);
|
|
|
|
|
2023-03-31 09:51:22 -07:00
|
|
|
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
|
|
|
|
m.def(
|
|
|
|
"rms_norm",
|
|
|
|
&rms_norm,
|
|
|
|
"Apply Root Mean Square (RMS) Normalization to the input tensor.");
|
2023-11-19 10:18:02 +08:00
|
|
|
m.def(
|
|
|
|
"fused_add_rms_norm",
|
|
|
|
&fused_add_rms_norm,
|
|
|
|
"In-place fused Add and RMS Normalization");
|
2023-03-31 09:51:22 -07:00
|
|
|
}
|