device_permute.hpp Source File

device_permute.hpp Source File#

Composable Kernel: 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
12namespace ck {
13namespace tensor_operation {
14namespace device {
15
16template <index_t NumDim, typename InDataType, typename OutDataType, typename ElementwiseOperation>
18{
19 using Lengths = std::array<index_t, NumDim>;
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 convolution_backward_data_specialization.hpp:8
Definition convolution_backward_data_specialization.hpp:7
Definition ck.hpp:268
Definition device_permute.hpp:18
Lengths Strides
Definition device_permute.hpp:20
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0
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
std::array< index_t, NumDim > Lengths
Definition device_permute.hpp:19