/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_permute.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_permute.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_permute.hpp Source File
device_permute.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2018-2023, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 #include <array>
7 #include <memory>
8 #include <type_traits>
9 
11 
12 namespace ck {
13 namespace tensor_operation {
14 namespace device {
15 
16 template <index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation>
18 {
19  using Lengths = std::array<index_t, NumDim>;
20  using Strides = Lengths;
21 
22  virtual std::unique_ptr<BaseArgument>
23  MakeArgumentPointer(const Lengths& in_lengths,
24  const Strides& in_strides,
25  const Lengths& out_lengths,
26  const Strides& out_strides,
27  const void* in_dev_buffer,
28  void* out_dev_buffer,
29  ElementwiseOperation elementwise_op) = 0;
30 
31  virtual std::unique_ptr<BaseInvoker> MakeInvokerPointer() = 0;
32 };
33 
34 } // namespace device
35 } // namespace tensor_operation
36 } // namespace ck
Definition: ck.hpp:264
Definition: device_base.hpp:76
Definition: device_permute.hpp:18
virtual std::unique_ptr< BaseArgument > MakeArgumentPointer(const Lengths &in_lengths, const Strides &in_strides, const Lengths &out_lengths, const Strides &out_strides, const void *in_dev_buffer, void *out_dev_buffer, ElementwiseOperation elementwise_op)=0
Lengths Strides
Definition: device_permute.hpp:20
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0
std::array< index_t, NumDim > Lengths
Definition: device_permute.hpp:19