diff --git a/build.toml b/build.toml index 40ae9b5fc173fe3c4b142eab93910e9945f57aab..5727557f56706b11d406c48b18fb6760abc3950c 100644 --- a/build.toml +++ b/build.toml @@ -1,16 +1,18 @@ [general] -version = "0.0.1" +name = "mel_spectrogram" [torch] -name = "mel_spectrogram" src = [ - "ext-torch/registration.h", - "ext-torch/torch_binding.cpp", - "ext-torch/torch_binding.h", + "torch-ext/torch_binding.cpp", + "torch-ext/torch_binding.h" ] -pyroot = "ext-torch" [kernel.mel_spectrogram] -capabilities = ["7.0", "7.2", "7.5", "8.0", "8.6", "8.7", "8.9", "9.0"] -src = ["mel_spectrogram/mel_spectrogram.cu"] -depends = ["torch"] +cuda-capabilities = [ + # "7.0", "7.2", "7.5", + "8.0", "8.6", "8.7", "8.9", "9.0" +] +src = [ + "mel_spectrogram/mel_spectrogram.cu" +] +depends = [ "torch" ] diff --git a/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 4c5f93e39eeb66a51d644c4299356ebc4541200e..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d23c602fb3ff07cd05745af022156bd7fea563c9e7e85cda47ce5b59f49910e -size 56832 diff --git a/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 4ff46124cc6711d9fe17a555536a325bc7ed9b3e..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6d28cf590e366a96f1a9b68fdc73a52acd909a6c2c828e0e7724ce0ed4bfbc4 -size 52328 diff --git a/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index f89dd98ded730118ffc990ead8c1aa61bad0b34e..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86654dcf62b8e5a226eab8191e156368cbafe973eda7e719efdf628002cda52d -size 52120 diff --git a/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index f5da61888aaea62f668c8d1f131d1c67e3f734d2..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7b04d9d71064fc2219d5bc522caec86b07f7b3b73a72894c6221315b7833914 -size 57128 diff --git a/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 340db958c0d94d6aacf8cbcc1e50a1ec612e268f..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d53f5e8ce2a7dae51f5481b23a378ec0b71b681705f77b43626fc66980e26751 -size 56640 diff --git a/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index dbb2b7231221271900734da0315b23a13559b115..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:891c8c25a5d4ccdd25458f940d83e21665fb8d1936a6990fb169420dc375dea7 -size 52216 diff --git a/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py deleted file mode 100644 index 968c58e6fd5f40c871b182bfd6869b0bde154378..0000000000000000000000000000000000000000 --- a/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py +++ /dev/null @@ -1,3 +0,0 @@ -import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 diff --git a/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 240c03b3787152fdde732ff9924a058850f54623..0000000000000000000000000000000000000000 --- a/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:93bc59bb2ba5e7a1bdccf6cf76bf9a902a9fe5db14de1114f343ac3a7e1efc78 -size 56832 diff --git a/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..3a147448c96cfe040204fdbf8f5529bc92afd403 --- /dev/null +++ b/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9fd70ede706f4c301b0a956581e1eca47fd59ffe151b02bae892acaedff1119 +size 2019488 diff --git a/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 9f543f73dbe45141ec18c9a671222aebb8770c6d..0000000000000000000000000000000000000000 --- a/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:93cbaec30c56f75ef21a299cf551fcbc4bc66cd1a9b32560c1fddaf403f093d7 -size 52328 diff --git a/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..39cb9d67241b32df3a759af3fb5fef3b45a8f9c6 --- /dev/null +++ b/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8be112fecfd9abc4fd2916d6352e5b5ce1d327d16966faddf7739c5f7a812368 +size 2042320 diff --git a/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx11-cu121-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 1e739f05d030d62fc577b87b2474dde3f824cc56..0000000000000000000000000000000000000000 --- a/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bdb6dfbb056ca9f0ab604f4d18558dfec95fa8df6968b40eb3ac40bfda413912 -size 52120 diff --git a/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..920b6b8a560d23c10b834e550f2727d10ca337a7 --- /dev/null +++ b/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88b0a4333c16b4c8e0e307f2cdfa4461e3a2f0a7a00007f81193c5f4bfbdc658 +size 2056320 diff --git a/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index fa257618253447c1aa2a64a62e1e2297572fd17d..0000000000000000000000000000000000000000 --- a/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9c16679793bf509d85bbd2f58d63ef7235b07c617fe44189781a2622cca9a7b -size 57128 diff --git a/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..821e11fb51b2b715ed849063c0cc217cba4d6a72 --- /dev/null +++ b/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3675a983b7da77eeaa944185ad5b579687866f38d254c3c0be9207473c4f1733 +size 2012128 diff --git a/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index 57aa3f460f6f8f31108adc1fa8eb16ecb94ae8c7..0000000000000000000000000000000000000000 --- a/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee2b160940af6bb144e78c37a91b365ad6744a266b68a085a772a6d94dec2ae8 -size 56640 diff --git a/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..0d54dd5b219544298e784675341c9fd8c4103e23 --- /dev/null +++ b/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67c2dbe9bdb3a6c8f8eb1bcc7ece574467db1697ee95e273c9addc6a3bc601b +size 2039192 diff --git a/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx98-cu121-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so b/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so deleted file mode 100755 index bacf7e0f2565a94b6807955998a952f0b4623088..0000000000000000000000000000000000000000 --- a/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_0_0_1.abi3.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4cfd1fc6fc2210c286dd909951b8554262646aba8382f8a9bbb1e0db4819f44 -size 52216 diff --git a/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..305ce40beb59b568f85409905af5e0d7f1cfa7e7 --- /dev/null +++ b/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:289311e0fc29f6dfa7561b4d5bd83d7e43330e6d2fc8e3d7242b516a63eb94eb +size 2053192 diff --git a/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py index 968c58e6fd5f40c871b182bfd6869b0bde154378..4c85f93439024f23ee79e405c626717645055804 100644 --- a/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py +++ b/build/torch25-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py @@ -1,3 +1,9 @@ import torch -from . import _mel_spectrogram_0_0_1 -ops = torch.ops._mel_spectrogram_0_0_1 +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx11-cu118-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..b738eb57b832edfffc495d4c8b7b77a262758111 --- /dev/null +++ b/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d0ed57bdcc97d6cbdf4b9002e1f6c9939aaa911ef5a69ffaf89682ce473feb7 +size 2019712 diff --git a/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx11-cu118-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx11-cu121-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..09e41bcd8d28e9a812d1d9a80be9dd91ac91766a --- /dev/null +++ b/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:804671cc1e390382553d29afbe8daf05a65e4cf8b6785d1585e5d791b91d8c10 +size 2056536 diff --git a/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx11-cu124-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx11-cu124-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..dbd9e833aeb2be8b64418ca694898eb7066c520d --- /dev/null +++ b/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff08507c8dac97d4f9dbb817cba14a35a48df9f63a5be1cf4b3c02fd4d6cc44 +size 2061080 diff --git a/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx11-cu126-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx98-cu118-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..c61e6c54bfd28c1e5d811750b4f66cfc6c20ee40 --- /dev/null +++ b/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dfe82be4faeafacd152915330f041edec27b426604feca191075b0889850cd8 +size 2012400 diff --git a/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx98-cu118-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx98-cu121-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..e3a6b02bf616535692ce0ca56c0a761cf41424f5 --- /dev/null +++ b/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a455e5d5c93bd47127c9061e9b1084625e0405bee8bd6958abb559998a62bc28 +size 2053408 diff --git a/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx98-cu124-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/__init__.py b/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/__init__.py similarity index 100% rename from build/torch24-cxx98-cu124-x86_64-linux/mel_spectrogram/__init__.py rename to build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/__init__.py diff --git a/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so b/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so new file mode 100755 index 0000000000000000000000000000000000000000..57b53d81ee79a07c11d2a2bd747ea656c631c81e --- /dev/null +++ b/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_mel_spectrogram_dff20e5_dirty.abi3.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5a10c07449a64d5d58d1126778d9a620bf74abf227dbb37a1cde9d06236f7cd +size 2057952 diff --git a/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_ops.py b/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..4c85f93439024f23ee79e405c626717645055804 --- /dev/null +++ b/build/torch26-cxx98-cu126-x86_64-linux/mel_spectrogram/_ops.py @@ -0,0 +1,9 @@ +import torch +from . import _mel_spectrogram_dff20e5_dirty +ops = torch.ops._mel_spectrogram_dff20e5_dirty + +def add_op_namespace_prefix(op_name: str): + """ + Prefix op by namespace. + """ + return f"_mel_spectrogram_dff20e5_dirty::{op_name}" \ No newline at end of file diff --git a/ext-torch/torch_binding.h b/ext-torch/torch_binding.h deleted file mode 100644 index b2c2c0385125a2dd6209adfc07cba265a18c0797..0000000000000000000000000000000000000000 --- a/ext-torch/torch_binding.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include - -void mel_spectrogram( - torch::Tensor &out, - torch::Tensor const &samples, - torch::Tensor const &filters, - int64_t fft_size, - int64_t fft_step); diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000000000000000000000000000000000000..d2531333294a2f9e07035d5b246afbea0f313235 --- /dev/null +++ b/flake.lock @@ -0,0 +1,117 @@ +{ + "nodes": { + "flake-compat": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "kernel-builder": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "rocm-nix": "rocm-nix" + }, + "locked": { + "lastModified": 1743422493, + "narHash": "sha256-3RBEo/vw1p1CMGHsZEyP9Z9gRmJN+USoDMCSVlxHGXg=", + "owner": "huggingface", + "repo": "kernel-builder", + "rev": "2170048e94663eb8012e62a84b0ba9c1a637e2b3", + "type": "github" + }, + "original": { + "owner": "huggingface", + "repo": "kernel-builder", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1740557110, + "narHash": "sha256-D2waFyJkaepTchTrGVAIfCd/YP+37bgXWg9cXwuxuT0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b89a821293c3872992137114d0db9a791243a41b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "rocm-nix": { + "inputs": { + "nixpkgs": [ + "kernel-builder", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743085847, + "narHash": "sha256-uWG29p+nhZmGRV1LffWwRGjwtPIXeu1F0YTQbXgB+GU=", + "owner": "huggingface", + "repo": "rocm-nix", + "rev": "245cdc9bfb4bfafa818711c5f5e0b889afe1ba39", + "type": "github" + }, + "original": { + "owner": "huggingface", + "repo": "rocm-nix", + "type": "github" + } + }, + "root": { + "inputs": { + "kernel-builder": "kernel-builder" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 88b714a469014cccd85e667de617793f11bfd1b2..c13da8edc392859c5807c4bf3c1bd737a01a0df8 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Flake for mel_spectogram"; inputs = { - kernel-builder.url = "git+ssh://git@github.com/huggingface/kernel-builder"; + kernel-builder.url = "github:huggingface/kernel-builder"; }; outputs = diff --git a/mel_spectrogram/mel_spectrogram.cu b/mel_spectrogram/mel_spectrogram.cu index 4bd8878c992dbd66e6b6057db8fe84b4dae905b2..bf6e035a8defdd9bdcf2a7f27db821902e189f06 100644 --- a/mel_spectrogram/mel_spectrogram.cu +++ b/mel_spectrogram/mel_spectrogram.cu @@ -100,9 +100,9 @@ __global__ void normalize_mel_spec_kernel( } void mel_spectrogram( - torch::Tensor &out, // [n_mel, n_frames] - torch::Tensor const &samples, // [n_samples] - torch::Tensor const &filters, // [n_mel, n_fft] + const torch::Tensor &out, // [n_mel, n_frames] + const torch::Tensor &samples, // [n_samples] + const torch::Tensor &filters, // [n_mel, n_fft] const int64_t fft_size, const int64_t fft_step) { diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/test_spectrogram.py b/tests/test_spectrogram.py new file mode 100644 index 0000000000000000000000000000000000000000..373d98c75a1bfcf74cca1bf2536a9fbf36f91201 --- /dev/null +++ b/tests/test_spectrogram.py @@ -0,0 +1,115 @@ +from typing import Tuple +import pytest +import torch +import mel_spectrogram + + +def torch_mel_spectrogram( + samples: torch.Tensor, + filters: torch.Tensor, + fft_size: int, + fft_step: int, + n_frames: int, +) -> torch.Tensor: + """Native PyTorch implementation of mel spectrogram generation.""" + # Calculate frames based on CUDA implementation's frame count + frames = [] + + # Frame the audio to match CUDA implementation + for i in range(n_frames): + start = i * fft_step + end = min(start + fft_size, samples.size(0)) + if end - start < fft_size: + # Zero-pad if needed + frame = torch.zeros(fft_size, device=samples.device) + frame[: end - start] = samples[start:end] + frames.append(frame) + else: + frames.append(samples[start:end]) + + # Stack frames + frames = torch.stack(frames) # [n_frames, fft_size] + + # Apply Hanning window + window = torch.hann_window(fft_size, device=samples.device) + windowed = frames * window + + # Compute FFT + fft_complex = torch.fft.rfft(windowed, dim=1) # [n_frames, n_fft] + fft_magnitudes = torch.abs(fft_complex) # [n_frames, n_fft] + + # Apply mel filterbank + mel_spec = torch.matmul(fft_magnitudes, filters.T) # [n_frames, n_mel] + + # Log-scale and normalization + eps = 1e-10 + mel_spec = torch.log10(torch.clamp(mel_spec, min=eps)) + + # Normalize like the CUDA implementation + max_val = mel_spec.max() + min_val = max_val - 8.0 + mel_spec = torch.clamp(mel_spec, min=min_val) / 4.0 + 1.0 + + # Transpose to match CUDA implementation output shape [n_mel, n_frames] + return mel_spec.T + + +@pytest.mark.parametrize( + "n_samples, n_mel, fft_size, fft_step, seed", + [ + (16000, 80, 1024, 512, 42), + (32000, 40, 1024, 256, 123), + (8000, 60, 512, 256, 987), + ], +) +def test_mel_spectrogram( + n_samples: int, n_mel: int, fft_size: int, fft_step: int, seed: int +) -> None: + """Test the CUDA mel_spectrogram function against a native PyTorch implementation.""" + if not torch.cuda.is_available(): + pytest.skip("CUDA not available") + + # Set seed for reproducibility + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + + device = "cuda" + + # Calculate the number of frames and FFT bins + n_frames = n_samples // fft_step + n_fft = 1 + fft_size // 2 # Number of unique FFT bins + + # Create tensors with the correct shapes + samples = torch.randn(n_samples, dtype=torch.float32, device=device) + filters = torch.abs(torch.randn(n_mel, n_fft, dtype=torch.float32, device=device)) + filters = filters / filters.sum(dim=1, keepdim=True) # Normalize filters + + # Run the CUDA implementation + cuda_output = torch.zeros(n_mel, n_frames, dtype=torch.float32, device=device) + mel_spectrogram.mel_spectrogram( + cuda_output, + samples, + filters, + fft_size, + fft_step, + ) + + # Get actual frame count from CUDA output + actual_frames = cuda_output.shape[1] + + # Run the PyTorch implementation with matched frame count + torch_output = torch_mel_spectrogram( + samples, filters, fft_size, fft_step, actual_frames + ) + + # Check shapes match + assert cuda_output.shape == torch_output.shape + + # Compare results (allowing for numerical differences) + mae = torch.abs(cuda_output - torch_output).mean().item() + print(f"Mean Absolute Error: {mae}") + + # Simple validation + assert not torch.isnan(cuda_output).any(), "CUDA output contains NaN values" + assert not torch.allclose(cuda_output, torch.zeros_like(cuda_output)) + diff --git a/ext-torch/mel_spectrogram/__init__.py b/torch-ext/mel_spectrogram/__init__.py similarity index 100% rename from ext-torch/mel_spectrogram/__init__.py rename to torch-ext/mel_spectrogram/__init__.py diff --git a/ext-torch/registration.h b/torch-ext/registration.h similarity index 100% rename from ext-torch/registration.h rename to torch-ext/registration.h diff --git a/ext-torch/torch_binding.cpp b/torch-ext/torch_binding.cpp similarity index 65% rename from ext-torch/torch_binding.cpp rename to torch-ext/torch_binding.cpp index 83575e182f291828e8de60531c0f2cf30c5ae628..e6e7d93f39db36aac854d9de8e7648acc0c03e10 100644 --- a/ext-torch/torch_binding.cpp +++ b/torch-ext/torch_binding.cpp @@ -5,7 +5,7 @@ TORCH_LIBRARY_EXPAND(TORCH_EXTENSION_NAME, ops) { - ops.def("mel_spectrogram(Tensor! out, Tensor samples, Tensor filters, int fft_size, int fft_step) -> ()", &mel_spectrogram); + ops.def("mel_spectrogram(Tensor! out, Tensor! samples, Tensor! filters, int fft_size, int fft_step) -> ()"); ops.impl("mel_spectrogram", torch::kCUDA, &mel_spectrogram); } diff --git a/torch-ext/torch_binding.h b/torch-ext/torch_binding.h new file mode 100644 index 0000000000000000000000000000000000000000..c6e71c6e0cdac58c4875a2784380c0139dab59a0 --- /dev/null +++ b/torch-ext/torch_binding.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +void mel_spectrogram( + const torch::Tensor &out, + const torch::Tensor &samples, + const torch::Tensor &filters, + const int64_t fft_size, + const int64_t fft_step);