Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
990ff5f
Applying first 4 diffs using diff.diff
yoonseoch Mar 4, 2025
6f391ef
Buildable minimal
yoonseoch Mar 4, 2025
573b3b0
Adding changes on CommandSolution - buildable
yoonseoch Mar 4, 2025
f18cfbf
Adding default <=> operator to GEMMProblem - buildable
yoonseoch Mar 4, 2025
b7baa4a
Before adding AddressCalculationTest.cpp - buildable
yoonseoch Mar 4, 2025
409496e
Adding AddressCalculationTest.cpp - buildable/testable
yoonseoch Mar 4, 2025
33c9d13
Move the location of test utility from ExpressionTransform
yoonseoch Mar 5, 2025
05f9cc5
Adding missing header file
Mar 5, 2025
002aa30
Renaming of member variables to remove CodeQL errors
yoonseoch Mar 6, 2025
df63368
Reorganize the tests to cover multiple sizes and data types.
yoonseoch Mar 7, 2025
0b52467
wMerge branch 'main' into yoonchoi/addrcalc_test
Mar 10, 2025
c4b92fe
Merge branch 'main' into yoonchoi/addrcalc_test
yoonseoch Mar 10, 2025
d3cec12
Using GEMM(DataType ..) in place of GEMM<typedef Type>
yoonseoch Mar 10, 2025
efa60db
Allow configuration of mxDataGenerator source
lawruble13 Mar 10, 2025
e764a5e
Merge branch 'main' into mxdatagen-source
lawruble13 Mar 11, 2025
4114e73
Merge branch 'main' into mxdatagen-source
lawruble13 Mar 11, 2025
729a266
actually use computed mxDataGenerator URL
lawruble13 Mar 11, 2025
89c72f2
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 11, 2025
a5bfea9
Merge remote-tracking branch 'origin/mxdatagen-source' into yoonchoi/…
yoonseoch Mar 11, 2025
1f31f5b
Merge remote-tracking branch 'origin/mxdatagen-source' into yoonchoi/…
yoonseoch Mar 12, 2025
efba1dc
LWP100-1465 Common GEMM graph: replacing templatized dataType with me…
yoonseoch Mar 12, 2025
f106099
Resolved merge conflicts in formatting
yoonseoch Mar 12, 2025
fada98a
Adding jamm factors to CommonGraph
yoonseoch Mar 12, 2025
86d0b72
Chaniging macro tile size for a unit test to match jamming factors af…
yoonseoch Mar 12, 2025
a6c9f49
Restore jamming factors in common GEMM graph and restore original tests
yoonseoch Mar 12, 2025
9b94d9c
Merge remote-tracking branch 'origin/main' into yoonchoi/gemm-common-…
yoonseoch Mar 12, 2025
82ca486
Resolving conflicts
yoonseoch Mar 13, 2025
0f16b1f
Adding filename in a correct CMakeLists.txt
yoonseoch Mar 13, 2025
6ab41fc
For modulo/divide the second operand should be a leaf value
yoonseoch Mar 13, 2025
b827c06
Adding license
yoonseoch Mar 13, 2025
bbb69a1
Introducing GENERATE/DYNAMIC_SECTION and adding passing configurations
yoonseoch Mar 14, 2025
5819487
Changes with bitwiseand
yoonseoch Mar 17, 2025
3db748d
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 17, 2025
3346358
Fix compile-errors after merge from origin/main
yoonseoch Mar 17, 2025
a772811
Merge remote-tracking branch 'origin/main' into yoonchoi/gemm-common-…
yoonseoch Mar 17, 2025
df8e919
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 18, 2025
064d8e7
clean ups and for debugging
yoonseoch Mar 18, 2025
f58c8e9
Merge remote-tracking branch 'origin/main' into yoonchoi/gemm-common-…
yoonseoch Mar 18, 2025
8b2d8bf
Fixing logical errors in AddressCalculationTest after merging Scott's…
yoonseoch Mar 19, 2025
b0899d1
Remove std::cout and add CAPTURE
yoonseoch Mar 19, 2025
c95cbb9
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 19, 2025
421daf5
Changing/Remove codes after merging from origin/main
yoonseoch Mar 19, 2025
4b49476
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 19, 2025
3be5565
Move kerner bodies into test
yoonseoch Mar 19, 2025
84c8f05
Merge remote-tracking branch 'origin/main' into yoonchoi/gemm-common-…
yoonseoch Mar 20, 2025
a7871a9
Merge branch 'yoonchoi/gemm-common-graph' into yoonchoi/addrcalc_test
yoonseoch Mar 20, 2025
b542e93
Fix an assertion failure by hoisting coordinate transformer's fillExe…
yoonseoch Mar 20, 2025
152ebfc
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 20, 2025
a529b85
Small changes
yoonseoch Mar 20, 2025
8a8439d
Adding transpose
yoonseoch Mar 25, 2025
a2e3000
Merge remote-tracking branch 'origin/main' into yoonchoi/addrcalc_test
yoonseoch Mar 25, 2025
f72ba8f
Clean up some old comments
yoonseoch Mar 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/include/rocRoller/AssemblyKernel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ namespace rocRoller
* @param args Vector of CommandArgument pointers that should be added as arguments.
*/
void addCommandArguments(std::vector<CommandArgumentPtr> args);
void addNewCommandArguments(std::vector<CommandArgumentPtr> args);
Expression::ExpressionPtr addCommandArgument(CommandArgumentPtr arg);

std::string args_string();
Expand Down
9 changes: 9 additions & 0 deletions lib/include/rocRoller/AssemblyKernel_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,15 @@ namespace rocRoller
}
}

inline void AssemblyKernel::addNewCommandArguments(std::vector<CommandArgumentPtr> args)
{
for(auto arg : args)
{
if(m_argumentNames.find(arg->name()) == m_argumentNames.end())
addCommandArgument(arg);
}
}

inline Expression::ExpressionPtr AssemblyKernel::addCommandArgument(CommandArgumentPtr arg)
{
return addArgument({arg->name(),
Expand Down
11 changes: 11 additions & 0 deletions lib/include/rocRoller/CommandSolution.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,17 @@ namespace rocRoller
*/
void generateKernel();

/**
* @brief Generates the kernel Graph by graph lowering and
* doesn't do code-generation.
*/
void generateKernelGraphOnlyAfterTransforms();

/**
* @brief Lower command arguments to kernel arguments.
*/
void lowerToKernelArguments();

/**
* @brief Assembles a generated kernel. Does not try to load
* it.
Expand Down
40 changes: 40 additions & 0 deletions lib/source/CommandSolution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ namespace rocRoller

rv.reserve(m_context->kernel()->argumentSize(), argStructs.size());

Log::debug("== getKernelArguments ==");

for(auto& arg : argStructs)
{
auto value = Expression::evaluate(arg.expression, args);
Expand All @@ -145,6 +147,8 @@ namespace rocRoller
arg.name));
}

Log::debug(" arg.name {} value {}", arg.name, toString(value));

rv.append(arg.name, value);
}

Expand All @@ -161,11 +165,21 @@ namespace rocRoller

auto const& workitems = m_context->kernel()->workitemCount();
if(workitems[0])
{
rv.workitemCount[0] = getUnsignedInt(evaluate(workitems[0], args));
Log::debug("== getKernelInvocation ==");
Log::debug(" workitemCount[0] {}", rv.workitemCount[0]);
}
if(workitems[1])
{
rv.workitemCount[1] = getUnsignedInt(evaluate(workitems[1], args));
Log::debug(" workitemCount[1] {}", rv.workitemCount[1]);
}
if(workitems[2])
{
rv.workitemCount[2] = getUnsignedInt(evaluate(workitems[2], args));
Log::debug(" workitemCount[2] {}", rv.workitemCount[2]);
}

auto const& sharedMem = m_context->kernel()->dynamicSharedMemBytes();
if(sharedMem)
Expand Down Expand Up @@ -211,6 +225,15 @@ namespace rocRoller
co_yield Instruction::Comment(m_command->argInfo());
}

void CommandKernel::lowerToKernelArguments()
{
for(auto arg : m_command->getArguments())
{
Log::debug("command argument: {}, {}", arg->toString(), toString(arg->expression()));
}
m_context->kernel()->addNewCommandArguments(m_command->getArguments());
}

void CommandKernel::generateKernelGraph(std::string name)
{
TIMER(t, "CommandKernel::generateKernelGraph");
Expand Down Expand Up @@ -396,6 +419,23 @@ namespace rocRoller
generateKernelSource();
}
else
{
Log::debug("generateKernel() is doing nothing");
// Probably from a unit test. The context should contain
// scheduled instructions already.
}
}

void CommandKernel::generateKernelGraphOnlyAfterTransforms()
{
TIMER(t, "CommandKernel::generateKernelGraphOnlyAfterTransforms()");

if(m_command)
{
// Only lower the KernelGraph and don't generate codes.
generateKernelGraph(m_name);
}
else
{
// Probably from a unit test. The context should contain
// scheduled instructions already.
Expand Down
1 change: 1 addition & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ set(
catch/CustomAssertions.cpp
catch/TestKernels.cpp

catch/AddressCalculationTest.cpp
catch/AnnotateInstructionsTest.cpp
catch/BinaryExpressionTest.cpp
catch/BranchGeneratorTest.cpp
Expand Down
Loading