device_batchnorm_infer.hpp Source File

device_batchnorm_infer.hpp Source File#

Composable Kernel: device_batchnorm_infer.hpp Source File
device_batchnorm_infer.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
9#include "ck/ck.hpp"
11
12namespace ck {
13namespace tensor_operation {
14namespace device {
15
16template <typename XDataType,
17 typename YDataType,
18 typename AccDataType,
19 typename ScaleDataType,
20 typename BiasDataType,
21 typename MeanVarDataType,
22 typename YElementwiseOp,
23 index_t Rank,
24 index_t NumBatchNormReduceDim>
26{
27 virtual std::unique_ptr<BaseArgument> MakeArgumentPointer(
28 const std::array<index_t, Rank> xyLengths,
29 const std::array<index_t, Rank> xStrides,
30 const std::array<index_t, Rank> yStrides,
31 const std::array<int, NumBatchNormReduceDim> reduceDims,
32 const std::array<index_t, Rank - NumBatchNormReduceDim> bnScaleBiasMeanVarLengths,
33 const std::array<index_t, Rank - NumBatchNormReduceDim> bnScaleStrides,
34 const std::array<index_t, Rank - NumBatchNormReduceDim> bnBiasStrides,
35 const std::array<index_t, Rank - NumBatchNormReduceDim> bnMeanVarStrides,
36 const void* p_x,
37 const void* bnScale,
38 const void* bnBias,
39 double epsilon,
40 const YElementwiseOp y_elementwise_op,
41 const void* estimatedMean,
42 const void* estimatedInvVariance,
43 void* p_y) = 0;
44
45 virtual std::unique_ptr<BaseInvoker> MakeInvokerPointer() = 0;
46};
47
48template <typename XDataType,
49 typename YDataType,
50 typename AccDataType,
51 typename ScaleDataType,
52 typename BiasDataType,
53 typename MeanVarDataType,
54 typename YElementwiseOp,
55 index_t Rank,
56 index_t NumBatchNormReduceDim>
57using DeviceBatchNormInferPtr = std::unique_ptr<DeviceBatchNormInfer<XDataType,
58 YDataType,
59 AccDataType,
60 ScaleDataType,
61 BiasDataType,
62 MeanVarDataType,
63 YElementwiseOp,
64 Rank,
65 NumBatchNormReduceDim>>;
66
67} // namespace device
68} // namespace tensor_operation
69} // namespace ck
Definition convolution_backward_data_specialization.hpp:8
std::unique_ptr< DeviceBatchNormInfer< XDataType, YDataType, AccDataType, ScaleDataType, BiasDataType, MeanVarDataType, YElementwiseOp, Rank, NumBatchNormReduceDim > > DeviceBatchNormInferPtr
Definition device_batchnorm_infer.hpp:57
Definition convolution_backward_data_specialization.hpp:7
Definition ck.hpp:268
int32_t index_t
Definition ck.hpp:299
Definition device_batchnorm_infer.hpp:26
virtual std::unique_ptr< BaseArgument > MakeArgumentPointer(const std::array< index_t, Rank > xyLengths, const std::array< index_t, Rank > xStrides, const std::array< index_t, Rank > yStrides, const std::array< int, NumBatchNormReduceDim > reduceDims, const std::array< index_t, Rank - NumBatchNormReduceDim > bnScaleBiasMeanVarLengths, const std::array< index_t, Rank - NumBatchNormReduceDim > bnScaleStrides, const std::array< index_t, Rank - NumBatchNormReduceDim > bnBiasStrides, const std::array< index_t, Rank - NumBatchNormReduceDim > bnMeanVarStrides, const void *p_x, const void *bnScale, const void *bnBias, double epsilon, const YElementwiseOp y_elementwise_op, const void *estimatedMean, const void *estimatedInvVariance, void *p_y)=0
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0