Commit 128685c3 authored by Andriy Roshchenko's avatar Andriy Roshchenko
Browse files

Refactor A data load

parent 1c10bc59
...@@ -91,9 +91,9 @@ __device__ AFragT load_A_col_major(AType const* input_ptr) ...@@ -91,9 +91,9 @@ __device__ AFragT load_A_col_major(AType const* input_ptr)
// BLOCK_M is a stride in A matrix // BLOCK_M is a stride in A matrix
auto startOffset = col_major(startCoord2D, BLOCK_M); auto startOffset = col_major(startCoord2D, BLOCK_M);
auto kOffset = col_major(stepCoord2D, BLOCK_M); auto kOffset = col_major(stepCoord2D, BLOCK_M);
// kOffset == BLOCK_M
// kOffset == BLOCK_M // This means every BLOCK_M element is loaded into output vector
// This means every BLOCK_M element is loaded into output vector #if 0
auto fragA = AScalarFragT{ auto fragA = AScalarFragT{
bit_cast<ARawT>(input_ptr[startOffset]), // XXX v[0] = Reg 0 [0:7] bit_cast<ARawT>(input_ptr[startOffset]), // XXX v[0] = Reg 0 [0:7]
bit_cast<ARawT>(input_ptr[startOffset + 1 * kOffset]), // XXX v[1] = Reg 0 [8:15] bit_cast<ARawT>(input_ptr[startOffset + 1 * kOffset]), // XXX v[1] = Reg 0 [8:15]
...@@ -127,6 +127,13 @@ __device__ AFragT load_A_col_major(AType const* input_ptr) ...@@ -127,6 +127,13 @@ __device__ AFragT load_A_col_major(AType const* input_ptr)
bit_cast<ARawT>(input_ptr[startOffset + 29 * kOffset]), // XXX v[29] = Reg 7 [8:15] bit_cast<ARawT>(input_ptr[startOffset + 29 * kOffset]), // XXX v[29] = Reg 7 [8:15]
bit_cast<ARawT>(input_ptr[startOffset + 30 * kOffset]), // XXX v[30] = Reg 7 [16:23] bit_cast<ARawT>(input_ptr[startOffset + 30 * kOffset]), // XXX v[30] = Reg 7 [16:23]
bit_cast<ARawT>(input_ptr[startOffset + 31 * kOffset])}; // XXX v[31] = Reg 7 [24:31] bit_cast<ARawT>(input_ptr[startOffset + 31 * kOffset])}; // XXX v[31] = Reg 7 [24:31]
#else
auto fragA = AScalarFragT{};
static_for<0, VW, 1>{}([&](auto i) {
fragA[static_cast<int>(i)] =
bit_cast<ARawT>(input_ptr[startOffset + static_cast<int>(i) * kOffset]);
});
#endif
return fragA; return fragA;
} }
......
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