Skip to content

Commit 03ce872

Browse files
authored
Make buffer coherence configurable in tensor view (#2041)
* Make buffer coherence configurable in tensor view * Fix clang-format for tensor_view.hpp
1 parent 2c563fe commit 03ce872

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

include/ck_tile/core/tensor/tensor_view.hpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,18 +411,21 @@ struct null_tensor_view
411411
};
412412

413413
template <address_space_enum BufferAddressSpace = address_space_enum::generic,
414+
amd_buffer_coherence_enum Coherence = amd_buffer_coherence_enum::coherence_default,
414415
typename DataType,
415416
typename... Ts>
416417
CK_TILE_HOST_DEVICE constexpr auto make_tensor_view(DataType* p,
417418
const tensor_descriptor<Ts...>& desc)
418419
{
419-
auto buffer_view = make_buffer_view<BufferAddressSpace>(p, desc.get_element_space_size());
420+
auto buffer_view =
421+
make_buffer_view<BufferAddressSpace, Coherence>(p, desc.get_element_space_size());
420422

421423
return tensor_view<decltype(buffer_view), decltype(desc)>{buffer_view, desc};
422424
}
423425

424426
template <address_space_enum BufferAddressSpace = address_space_enum::generic,
425427
memory_operation_enum DstInMemOp = memory_operation_enum::set,
428+
amd_buffer_coherence_enum Coherence = amd_buffer_coherence_enum::coherence_default,
426429
typename DataType,
427430
typename... Lengths,
428431
typename... Strides,
@@ -441,12 +444,14 @@ make_naive_tensor_view(DataType* p,
441444
number<GuaranteedLastDimensionVectorLength>{},
442445
number<GuaranteedLastDimensionVectorStride>{});
443446

444-
auto buffer_view = make_buffer_view<BufferAddressSpace>(p, desc.get_element_space_size());
447+
auto buffer_view =
448+
make_buffer_view<BufferAddressSpace, Coherence>(p, desc.get_element_space_size());
445449

446450
return tensor_view<decltype(buffer_view), decltype(desc), DstInMemOp>{buffer_view, desc};
447451
}
448452

449453
template <address_space_enum BufferAddressSpace = address_space_enum::generic,
454+
amd_buffer_coherence_enum Coherence = amd_buffer_coherence_enum::coherence_default,
450455
typename DataType,
451456
typename... Lengths,
452457
index_t GuaranteedLastDimensionVectorLength = -1>
@@ -458,7 +463,8 @@ make_naive_tensor_view_packed(DataType* p,
458463
auto desc =
459464
make_naive_tensor_descriptor_packed(lengths, number<GuaranteedLastDimensionVectorLength>{});
460465

461-
auto buffer_view = make_buffer_view<BufferAddressSpace>(p, desc.get_element_space_size());
466+
auto buffer_view =
467+
make_buffer_view<BufferAddressSpace, Coherence>(p, desc.get_element_space_size());
462468

463469
return tensor_view<decltype(buffer_view), decltype(desc)>{buffer_view, desc};
464470
}

0 commit comments

Comments
 (0)