Commit 2db9e84d authored by Jianfeng yan's avatar Jianfeng yan
Browse files

add some comments

parent 2399f77b
...@@ -117,8 +117,14 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve ...@@ -117,8 +117,14 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve
constexpr auto dst_scalar_step_in_vector = constexpr auto dst_scalar_step_in_vector =
generate_sequence(detail::lambda_scalar_step_in_vector<DstVectorDim>{}, Number<nDim>{}); generate_sequence(detail::lambda_scalar_step_in_vector<DstVectorDim>{}, Number<nDim>{});
using SpaceFillingCurve = using SpaceFillingCurve = SpaceFillingCurve<SliceLengths,
SpaceFillingCurve<SliceLengths, DimAccessOrder, remove_cv_t<decltype(dst_scalar_per_access)>>; DimAccessOrder,
remove_cv_t<decltype(dst_scalar_per_access)>>;
// TODO: Use SpaceFillingCurve::ScalarsPerAccess instread of DstScalarPerVector?
static_assert(DstScalarPerVector == SpaceFillingCurve::ScalarPerVector);
typename vector_type_maker<DstData, DstScalarPerVector>::type dst_vector;
using dst_vector_t = typename vector_type_maker<DstData, DstScalarPerVector>::type::type;
constexpr auto num_accesses = SpaceFillingCurve::GetNumOfAccess(); constexpr auto num_accesses = SpaceFillingCurve::GetNumOfAccess();
...@@ -126,12 +132,6 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve ...@@ -126,12 +132,6 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve
constexpr auto idx_md = SpaceFillingCurve::GetIndex(idx_1d); constexpr auto idx_md = SpaceFillingCurve::GetIndex(idx_1d);
static_assert(DstScalarPerVector == SpaceFillingCurve::ScalarPerVector);
typename vector_type_maker<DstData, DstScalarPerVector>::type dst_vector;
using dst_vector_t =
typename vector_type_maker<DstData, DstScalarPerVector>::type::type;
// copy data from src_buf into dst_vector // copy data from src_buf into dst_vector
static_for<0, DstScalarPerVector, 1>{}([&](auto i) { static_for<0, DstScalarPerVector, 1>{}([&](auto i) {
constexpr index_t src_offset = src_desc.CalculateOffset( constexpr index_t src_offset = src_desc.CalculateOffset(
...@@ -146,7 +146,6 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve ...@@ -146,7 +146,6 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve
dst_vector.template AsType<DstData>()(i) = type_convert<DstData>(dst_v); dst_vector.template AsType<DstData>()(i) = type_convert<DstData>(dst_v);
}); });
const bool is_dst_valid = const bool is_dst_valid =
coordinate_has_valid_offset_assuming_visible_index_is_valid(dst_desc, dst_coord_); coordinate_has_valid_offset_assuming_visible_index_is_valid(dst_desc, dst_coord_);
...@@ -182,10 +181,15 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve ...@@ -182,10 +181,15 @@ struct ThreadwiseTensorSliceTransfer_v1r3_using_space_filling_curve
dst_vector.template AsType<dst_vector_t>()[Number<0>{}]); dst_vector.template AsType<dst_vector_t>()[Number<0>{}]);
} }
constexpr auto forward_step = SpaceFillingCurve::GetForwardStep(idx_1d); // TODO: wrap into a function, say SpaceFillingCurve::MoveCoordForward(dst_desc, dst_cood_, idx_1d)?
// move_tensor_coordinate(dst_desc, dst_coord_, make_tensor_coordinate_step(dst_desc, forward_step, dst_step_hacks[I0])); // TODO: Do we need the if-statement? GetForwardStep is not well-defined for the last access.
move_tensor_coordinate(dst_desc, dst_coord_, make_tensor_coordinate_step(dst_desc, forward_step)); if constexpr(idx_1d.value != num_accesses - 1)
{
constexpr auto forward_step = SpaceFillingCurve::GetForwardStep(idx_1d);
move_tensor_coordinate(
dst_desc, dst_coord_, make_tensor_coordinate_step(dst_desc, forward_step));
}
}); });
// move dst coordinate back to slice origin (or not) // move dst coordinate back to slice origin (or not)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment