aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc
diff options
context:
space:
mode:
authorGravatar Yong Tang <yong.tang.github@outlook.com>2017-10-22 22:50:07 -0700
committerGravatar Vijay Vasudevan <vrv@google.com>2017-10-22 22:50:07 -0700
commit0d437c3beb14c08b5b9c08d806de91d7f3d2c0e3 (patch)
tree82337ab5e0d5f078dc6a7d60f2aa02a93bb9611e /tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc
parent690003cc015d6d56630d5836adb6769729bd9c3d (diff)
Add int64 padding support for MirrorPad (#13907)
* Add int64 padding support for MirrorPad This fix adds int64 padding support for `MirrorPad`. In the `array_ops.cc` the `MirrorPad`/`MirrorPadGrad` has been specified as supporting int64 padding. The related kernels does not have the int64 padding registered though. This fix adds the int64 padding support. This fix also adds additional test cases for coverage. Signed-off-by: Yong Tang <yong.tang.github@outlook.com> * Update template for CPU and GPU support of int64 paddings. Signed-off-by: Yong Tang <yong.tang.github@outlook.com> * Add int64 padding support for MirrorPad Signed-off-by: Yong Tang <yong.tang.github@outlook.com> * Put eigen header first like before, just in case.
Diffstat (limited to 'tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc')
-rw-r--r--tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc32
1 files changed, 21 insertions, 11 deletions
diff --git a/tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc b/tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc
index 8074aa9624..dbd0a9bd8f 100644
--- a/tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc
+++ b/tensorflow/core/kernels/mirror_pad_op_gpu.cu.cc
@@ -25,17 +25,27 @@ namespace tensorflow {
using GpuDevice = Eigen::GpuDevice;
-#define DEFINE_GPU_SPECS(T) \
- template struct functor::MirrorPad<GpuDevice, T, 1>; \
- template struct functor::MirrorPad<GpuDevice, T, 2>; \
- template struct functor::MirrorPad<GpuDevice, T, 3>; \
- template struct functor::MirrorPad<GpuDevice, T, 4>; \
- template struct functor::MirrorPad<GpuDevice, T, 5>; \
- template struct functor::MirrorPadGrad<GpuDevice, T, 1>; \
- template struct functor::MirrorPadGrad<GpuDevice, T, 2>; \
- template struct functor::MirrorPadGrad<GpuDevice, T, 3>; \
- template struct functor::MirrorPadGrad<GpuDevice, T, 4>; \
- template struct functor::MirrorPadGrad<GpuDevice, T, 5>;
+#define DEFINE_GPU_SPECS(T) \
+ template struct functor::MirrorPad<GpuDevice, T, int32, 1>; \
+ template struct functor::MirrorPad<GpuDevice, T, int32, 2>; \
+ template struct functor::MirrorPad<GpuDevice, T, int32, 3>; \
+ template struct functor::MirrorPad<GpuDevice, T, int32, 4>; \
+ template struct functor::MirrorPad<GpuDevice, T, int32, 5>; \
+ template struct functor::MirrorPad<GpuDevice, T, int64, 1>; \
+ template struct functor::MirrorPad<GpuDevice, T, int64, 2>; \
+ template struct functor::MirrorPad<GpuDevice, T, int64, 3>; \
+ template struct functor::MirrorPad<GpuDevice, T, int64, 4>; \
+ template struct functor::MirrorPad<GpuDevice, T, int64, 5>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int32, 1>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int32, 2>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int32, 3>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int32, 4>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int32, 5>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int64, 1>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int64, 2>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int64, 3>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int64, 4>; \
+ template struct functor::MirrorPadGrad<GpuDevice, T, int64, 5>;
TF_CALL_GPU_NUMBER_TYPES(DEFINE_GPU_SPECS);
#undef DEFINE_GPU_SPECS