update_tile.hpp Source File

update_tile.hpp Source File#

Composable Kernel: update_tile.hpp Source File
update_tile.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2018-2024, Advanced Micro Devices, Inc. All rights reserved.
3
4#pragma once
5
14
15namespace ck_tile {
16
17template <typename BottomTensorView_,
18 typename WindowLengths_,
19 typename TileDistribution_,
20 typename DataType_>
24{
26 using TileDstr = remove_cvref_t<TileDistribution_>;
27
28 static_assert(std::is_same_v<remove_cvref_t<DataType_>, DataType>, "wrong!");
29
30 constexpr auto tile_dstr = TileDstr{};
31
32 auto tile_window = make_tile_window(tile_window_tmp.get_bottom_tensor_view(),
33 tile_window_tmp.get_window_lengths(),
34 tile_window_tmp.get_window_origin(),
35 tile_dstr);
36
37 tile_window.update(dstr_tensor);
38}
39
40template <typename BottomTensorView_,
41 typename WindowLengths_,
42 typename TileDistribution_,
43 index_t NumCoord,
44 typename DataType_,
45 index_t i_access = -1,
46 bool oob_conditional_check = true>
49 WindowLengths_,
50 TileDistribution_,
51 NumCoord>& tile_window,
55{
56 tile_window.update(dstr_tensor, number<i_access>{}, bool_constant<oob_conditional_check>{});
57}
58
59template <typename BottomTensorView_,
60 typename WindowLengths_,
61 typename TileDistribution_,
62 index_t NumCoord,
63 typename DataType_,
64 index_t i_access = -1,
65 bool oob_conditional_check = true,
66 bool pre_nop = false>
69 WindowLengths_,
70 TileDistribution_,
71 NumCoord>& tile_window,
76{
77 tile_window.update_raw(dstr_tensor,
81}
82
83template <typename BottomTensorView_,
84 typename WindowLengths_,
85 typename TileDistribution_,
86 typename LinearBottomDims_,
87 typename DataType_,
88 index_t i_access = -1,
89 bool oob_conditional_check = true,
90 bool pre_nop = false>
104
105} // namespace ck_tile
#define CK_TILE_DEVICE
Definition config.hpp:41
Definition tile/core/algorithm/cluster_descriptor.hpp:13
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
constant< b > bool_constant
Definition tile/core/numeric/integral_constant.hpp:43
constant< v > number
Definition tile/core/numeric/integral_constant.hpp:37
CK_TILE_DEVICE constexpr auto make_tile_window(null_tensor_view, const WindowLengths &window_lengths, const multi_index< WindowLengths::size()> &, Ts &&...)
Definition null_tile_window.hpp:75
CK_TILE_DEVICE void update_tile(tile_window_with_static_lengths< BottomTensorView_, WindowLengths_ > &tile_window_tmp, const static_distributed_tensor< DataType_, TileDistribution_ > &dstr_tensor)
Definition update_tile.hpp:22
int32_t index_t
Definition integer.hpp:9
CK_TILE_DEVICE void update_tile_raw(tile_window_with_static_distribution< BottomTensorView_, WindowLengths_, TileDistribution_, NumCoord > &tile_window, const static_distributed_tensor< DataType_, TileDistribution_ > &dstr_tensor, number< i_access >={}, bool_constant< oob_conditional_check >={}, bool_constant< pre_nop >={})
Definition update_tile.hpp:68
Definition static_distributed_tensor.hpp:21
CK_TILE_DEVICE constexpr auto get_window_origin() const
Definition tile_window_base.hpp:45
CK_TILE_DEVICE constexpr auto get_bottom_tensor_view() const
Definition tile_window_base.hpp:47
CK_TILE_DEVICE constexpr auto get_window_lengths() const
Definition tile_window_base.hpp:46
Definition tile_window_linear.hpp:55
CK_TILE_DEVICE void update_raw(const static_distributed_tensor< typename Base::DataType, typename Base::TileDstr > &dstr_tensor, number< i_access >={}, bool_constant< oob_conditional_check >={}, bool_constant< pre_nop >={}) const
Definition tile_window_linear.hpp:811
This class provides tile (windowed) view and access to the device memory.
Definition tile_window.hpp:46
This class provides description of tile windowed view on the device memory.
Definition tile_window.hpp:1016