"git@developer.sourcefind.cn:hehl2/torchaudio.git" did not exist on "01764deeb3a1ffa21e4dc01e802ea335398cf0ba"
Commit 152c41ed authored by rusty1s's avatar rusty1s
Browse files

bugfixes

parent cf125967
...@@ -2,6 +2,7 @@ import torch ...@@ -2,6 +2,7 @@ import torch
from torch._tensor_docs import tensor_classes from torch._tensor_docs import tensor_classes
tensors = [t[:-4] for t in tensor_classes] tensors = [t[:-4] for t in tensor_classes]
tensors.remove('ShortTensor') # TODO: PyTorch `atomicAdd` bug with short type.
def Tensor(str, x): def Tensor(str, x):
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
template<typename Real, int Dims> template<typename Real, int Dims>
__global__ void mulKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) { __global__ void mulKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) {
KERNEL_LOOP(i, n) { KERNEL_LOOP(i, n) {
int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;; int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;
IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset); IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset);
atomicMul(&output.data[outputOffset], input.data[inputOffset]); atomicMul(&output.data[outputOffset], input.data[inputOffset]);
} }
...@@ -25,7 +25,7 @@ __global__ void mulKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, Te ...@@ -25,7 +25,7 @@ __global__ void mulKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, Te
template<typename Real, int Dims> template<typename Real, int Dims>
__global__ void divKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) { __global__ void divKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) {
KERNEL_LOOP(i, n) { KERNEL_LOOP(i, n) {
int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;; int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;
IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset); IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset);
atomicDiv(&output.data[outputOffset], input.data[inputOffset]); atomicDiv(&output.data[outputOffset], input.data[inputOffset]);
} }
...@@ -44,7 +44,7 @@ __global__ void meanKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, T ...@@ -44,7 +44,7 @@ __global__ void meanKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, T
template<typename Real, int Dims> template<typename Real, int Dims>
__global__ void maxKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) { __global__ void maxKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) {
KERNEL_LOOP(i, n) { KERNEL_LOOP(i, n) {
int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;; int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;
IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset); IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset);
atomicMax(&output.data[outputOffset], input.data[inputOffset]); atomicMax(&output.data[outputOffset], input.data[inputOffset]);
} }
...@@ -53,7 +53,7 @@ __global__ void maxKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, Te ...@@ -53,7 +53,7 @@ __global__ void maxKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, Te
template<typename Real, int Dims> template<typename Real, int Dims>
__global__ void minKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) { __global__ void minKernel(TensorInfo<Real> output, TensorInfo<int64_t> index, TensorInfo<Real> input, const int dim, const int n) {
KERNEL_LOOP(i, n) { KERNEL_LOOP(i, n) {
int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;; int outputOffset = 0; int indexOffset = 0; int inputOffset = 0;
IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset); IndexToScatterOffsets3<Real, Real, Dims>::compute(i, dim, index, &indexOffset, input, &inputOffset, output, &outputOffset);
atomicMin(&output.data[outputOffset], input.data[inputOffset]); atomicMin(&output.data[outputOffset], input.data[inputOffset]);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment