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

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

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/tensor_operation/gpu/device/device_gemm_streamk_v2.hpp Source File
device_gemm_streamk_v2.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2024, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
8 
9 namespace ck {
10 namespace tensor_operation {
11 namespace device {
12 
13 template <typename ALayout,
14  typename BLayout,
15  typename CLayout,
16  typename ADataType,
17  typename BDataType,
18  typename CDataType,
19  typename AElementwiseOperation,
20  typename BElementwiseOperation,
21  typename CElementwiseOperation>
23 {
24  virtual std::unique_ptr<BaseArgument> MakeArgumentPointer(
25  const void* p_a,
26  const void* p_b,
27  void* p_c,
28  ck::index_t M,
29  ck::index_t N,
30  ck::index_t K,
31  ck::index_t StrideA,
32  ck::index_t StrideB,
33  ck::index_t StrideC,
34  ck::index_t Streamk_sel,
35  ck::index_t Grid_size,
36  AElementwiseOperation a_element_op,
37  BElementwiseOperation b_element_op,
38  CElementwiseOperation c_element_op,
40 
41  virtual std::unique_ptr<BaseInvoker> MakeInvokerPointer() = 0;
42 };
43 
44 } // namespace device
45 } // namespace tensor_operation
46 } // namespace ck
Definition: ck.hpp:267
StreamKReductionStrategy
Definition: block_to_ctile_map.hpp:1010
@ Atomic
Definition: block_to_ctile_map.hpp:1011
int32_t index_t
Definition: ck.hpp:298
Definition: device_base.hpp:77
Definition: device_gemm_streamk_v2.hpp:23
virtual std::unique_ptr< BaseInvoker > MakeInvokerPointer()=0
virtual std::unique_ptr< BaseArgument > MakeArgumentPointer(const void *p_a, const void *p_b, void *p_c, ck::index_t M, ck::index_t N, ck::index_t K, ck::index_t StrideA, ck::index_t StrideB, ck::index_t StrideC, ck::index_t Streamk_sel, ck::index_t Grid_size, AElementwiseOperation a_element_op, BElementwiseOperation b_element_op, CElementwiseOperation c_element_op, StreamKReductionStrategy reduction_strategy=StreamKReductionStrategy::Atomic)=0