2023-03-31 02:04:21 +08:00
|
|
|
#include <torch/extension.h>
|
|
|
|
|
|
2023-09-06 10:54:33 +08:00
|
|
|
void rotary_embedding(
|
2023-03-31 02:04:21 +08:00
|
|
|
torch::Tensor& positions,
|
|
|
|
|
torch::Tensor& query,
|
|
|
|
|
torch::Tensor& key,
|
2023-04-28 15:32:10 +08:00
|
|
|
int head_size,
|
2023-09-06 10:54:33 +08:00
|
|
|
torch::Tensor& cos_sin_cache,
|
|
|
|
|
bool is_neox);
|
2023-03-31 02:04:21 +08:00
|
|
|
|
|
|
|
|
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
|
|
|
|
|
m.def(
|
2023-09-06 10:54:33 +08:00
|
|
|
"rotary_embedding",
|
|
|
|
|
&rotary_embedding,
|
|
|
|
|
"Apply GPT-NeoX or GPT-J style rotary embedding to query and key");
|
2023-03-31 02:04:21 +08:00
|
|
|
}
|