Skip to content

Commit 25a9fc9

Browse files
YuriPlyakhinigcbot
authored andcommitted
Implement SPV_INTEL_subgroup_matrix_multiply_accumulate
Implement SPV_INTEL_subgroup_matrix_multiply_accumulate
1 parent ed453f9 commit 25a9fc9

File tree

10 files changed

+1415
-0
lines changed

10 files changed

+1415
-0
lines changed

IGC/AdaptorOCL/UnifyIROCL.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ SPDX-License-Identifier: MIT
132132
#include "Compiler/Optimizer/OpenCLPasses/BufferBoundsChecking/BufferBoundsCheckingPatcher.hpp"
133133
#include "Compiler/Optimizer/OpenCLPasses/MinimumValidAddressChecking/MinimumValidAddressChecking.hpp"
134134
#include "Compiler/Optimizer/OpenCLPasses/Spv2dBlockIOResolution/Spv2dBlockIOResolution.hpp"
135+
#include "Compiler/Optimizer/OpenCLPasses/SpvSubgroupMMAResolution/SpvSubgroupMMAResolution.hpp"
135136

136137
#include "common/debug/Debug.hpp"
137138
#include "common/igc_regkeys.hpp"
@@ -413,6 +414,8 @@ static void CommonOCLBasedPasses(OpenCLProgramContext* pContext)
413414
// This pass should be run before BuiltInImport and before Inlining to allow cache control to be resolved
414415
mpm.add(new Spv2dBlockIOResolution());
415416

417+
mpm.add(new SpvSubgroupMMAResolution());
418+
416419
mpm.add(new PreBIImportAnalysis());
417420
mpm.add(createTimeStatsCounterPass(pContext, TIME_Unify_BuiltinImport, STATS_COUNTER_START));
418421
mpm.add(createBuiltInImportPass());

IGC/Compiler/InitializePasses.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ void initializeSimd32ProfitabilityAnalysisPass(llvm::PassRegistry&);
151151
void initializeSetFastMathFlagsPass(llvm::PassRegistry&);
152152
void initializeSPIRMetaDataTranslationPass(llvm::PassRegistry&);
153153
void initializeSpv2dBlockIOResolutionPass(llvm::PassRegistry&);
154+
void initializeSpvSubgroupMMAResolutionPass(llvm::PassRegistry&);
154155
void initializeStatelessToStatefulPass(llvm::PassRegistry&);
155156
void initializeSubGroupFuncsResolutionPass(llvm::PassRegistry&);
156157
void initializeSubGroupReductionPatternPass(llvm::PassRegistry&);

IGC/Compiler/Optimizer/OpenCLPasses/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ add_subdirectory(RewriteLocalSize)
4949
add_subdirectory(ScalarArgAsPointer)
5050
add_subdirectory(SetFastMathFlags)
5151
add_subdirectory(Spv2dBlockIOResolution)
52+
add_subdirectory(SpvSubgroupMMAResolution)
5253
add_subdirectory(StackOverflowDetection)
5354
add_subdirectory(StatelessToStateful)
5455
add_subdirectory(SubGroupFuncs)
@@ -101,6 +102,7 @@ set(IGC_BUILD__SRC__Optimizer_OpenCLPasses_All
101102
${IGC_BUILD__SRC__OpenCLPasses_ScalarArgAsPointer}
102103
${IGC_BUILD__SRC__OpenCLPasses_SetFastMathFlags}
103104
${IGC_BUILD__SRC__OpenCLPasses_Spv2dBlockIOResolution}
105+
${IGC_BUILD__SRC__OpenCLPasses_SpvSubgroupMMAResolution}
104106
${IGC_BUILD__SRC__OpenCLPasses_StackOverflowDetection}
105107
${IGC_BUILD__SRC__OpenCLPasses_StatelessToStateful}
106108
${IGC_BUILD__SRC__OpenCLPasses_SubGroupFuncs}
@@ -158,6 +160,7 @@ set(IGC_BUILD__HDR__Optimizer_OpenCLPasses_All
158160
${IGC_BUILD__HDR__OpenCLPasses_ScalarArgAsPointer}
159161
${IGC_BUILD__HDR__OpenCLPasses_SetFastMathFlags}
160162
${IGC_BUILD__HDR__OpenCLPasses_Spv2dBlockIOResolution}
163+
${IGC_BUILD__HDR__OpenCLPasses_SpvSubgroupMMAResolution}
161164
${IGC_BUILD__HDR__OpenCLPasses_StackOverflowDetection}
162165
${IGC_BUILD__HDR__OpenCLPasses_StatelessToStatefull}
163166
${IGC_BUILD__HDR__OpenCLPasses_SubGroupFuncs}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#=========================== begin_copyright_notice ============================
2+
#
3+
# Copyright (C) 2024 Intel Corporation
4+
#
5+
# SPDX-License-Identifier: MIT
6+
#
7+
#============================ end_copyright_notice =============================
8+
9+
include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
10+
11+
set(IGC_BUILD__SRC__SpvSubgroupMMAResolution
12+
"${CMAKE_CURRENT_SOURCE_DIR}/SpvSubgroupMMAResolution.cpp"
13+
)
14+
set(IGC_BUILD__SRC__OpenCLPasses_SpvSubgroupMMAResolution ${IGC_BUILD__SRC__SpvSubgroupMMAResolution} PARENT_SCOPE)
15+
16+
set(IGC_BUILD__HDR__SpvSubgroupMMAResolution
17+
"${CMAKE_CURRENT_SOURCE_DIR}/SpvSubgroupMMAResolution.hpp"
18+
)
19+
set(IGC_BUILD__HDR__OpenCLPasses_SpvSubgroupMMAResolution ${IGC_BUILD__HDR__SpvSubgroupMMAResolution} PARENT_SCOPE)
20+
21+
igc_sg_register(
22+
Compiler__OpenCLPasses_SpvSubgroupMMAResolution
23+
"SpvSubgroupMMAResolution"
24+
FILES
25+
${IGC_BUILD__SRC__SpvSubgroupMMAResolution}
26+
${IGC_BUILD__HDR__SpvSubgroupMMAResolution}
27+
)

0 commit comments

Comments
 (0)