Skip to content

Commit e5a121b

Browse files
bcheng0127Zuul
authored andcommitted
Enable software scoreboard for TGLLP
Change-Id: I344b30ca5501e0bacf96e04296577f335e1eef5e
1 parent 1608b0d commit e5a121b

28 files changed

+7296
-30
lines changed

IGC/Compiler/CISACodeGen/CISABuilder.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4004,6 +4004,59 @@ namespace IGC
40044004
SaveOption(vISA_IGAEncoder, false);
40054005
}
40064006

4007+
if (IGC_IS_FLAG_ENABLED(EnableIGASWSB))
4008+
{
4009+
SaveOption(vISA_EnableIGASWSB, true);
4010+
}
4011+
4012+
if (IGC_IS_FLAG_ENABLED(EnableSWSB))
4013+
{
4014+
SaveOption(vISA_SoftwareScoreBoard, true);
4015+
SaveOption(vISA_IGAEncoder, true);
4016+
4017+
if (IGC_IS_FLAG_ENABLED(EnableForceDebugSWSB) ||
4018+
IGC_IS_FLAG_ENABLED(EnableSWSBInstStall) ||
4019+
IGC_IS_FLAG_ENABLED(EnableSWSBTokenBarrier))
4020+
{
4021+
if (IGC_IS_FLAG_ENABLED(EnableSWSBInstStall))
4022+
{
4023+
SaveOption(vISA_SoftwareScoreBoard, true);
4024+
SaveOption(vISA_SWSBInstStall, IGC_GET_FLAG_VALUE(EnableSWSBInstStall));
4025+
SaveOption(vISA_SWSBInstStallEnd, IGC_GET_FLAG_VALUE(EnableSWSBInstStallEnd));
4026+
}
4027+
4028+
if (IGC_IS_FLAG_ENABLED(EnableSWSBTokenBarrier))
4029+
{
4030+
SaveOption(vISA_SoftwareScoreBoard, true);
4031+
SaveOption(vISA_SWSBTokenBarrier, IGC_GET_FLAG_VALUE(EnableSWSBTokenBarrier));
4032+
}
4033+
4034+
if (IGC_IS_FLAG_ENABLED(EnableForceDebugSWSB))
4035+
{
4036+
SaveOption(vISA_forceDebugSWSB, true);
4037+
SaveOption(vISA_SoftwareScoreBoard, false);
4038+
SaveOption(vISA_SWSBInstStall, (uint32_t)0);
4039+
SaveOption(vISA_SWSBTokenBarrier, (uint32_t)0);
4040+
}
4041+
SaveOption(vISA_Compaction, false);
4042+
}
4043+
}
4044+
4045+
if (IGC_IS_FLAG_ENABLED(DisableSWSB))
4046+
{
4047+
SaveOption(vISA_SoftwareScoreBoard, false);
4048+
}
4049+
4050+
if (IGC_IS_FLAG_ENABLED(EnableGroupScheduleForBC))
4051+
{
4052+
SaveOption(vISA_EnableGroupScheduleForBC, true);
4053+
}
4054+
4055+
4056+
if (IGC_GET_FLAG_VALUE(SWSBTokenNum) != 0)
4057+
{
4058+
SaveOption(vISA_SWSBTokenNum, IGC_GET_FLAG_VALUE(SWSBTokenNum));
4059+
}
40074060

40084061
if (IGC_IS_FLAG_ENABLED(EnableAccSub))
40094062
{

IGC/common/igc_flags.def

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ DECLARE_IGC_REGKEY(DWORD,ReservedRegisterNum, 0, "Reserve regsiter
5757
DECLARE_IGC_REGKEY(DWORD, GRFNumToUse, 0, "Set the number of general registers to use (64 to totalGRFNum)", false)
5858
DECLARE_IGC_REGKEY(bool, ExpandPlane, 0, "Enable pln to mad macro expansion.", false)
5959
DECLARE_IGC_REGKEY(bool, EnableBCR, false, "Enable bank conflict reduction.", false)
60+
DECLARE_IGC_REGKEY(bool, EnableSWSB, 0, "Enable software scoreboard generation", true)
61+
DECLARE_IGC_REGKEY(bool, DisableSWSB, 0, "Disable software scoreboard generation", true)
62+
DECLARE_IGC_REGKEY(bool, EnableForceDebugSWSB, 0, "Enable force debugging functionality for software scoreboard generation", true)
63+
DECLARE_IGC_REGKEY(DWORD,EnableSWSBInstStall, 0, "Enable force stall to specific(start) instruction start for software scoreboard generation", true)
64+
DECLARE_IGC_REGKEY(DWORD,EnableSWSBInstStallEnd, 0, "Enable force stall to end instruction for software scoreboard generation", true)
65+
DECLARE_IGC_REGKEY(DWORD,EnableSWSBTokenBarrier, 0, "Enable force specific instruction as a barrier for software scoreboard generation", true)
66+
DECLARE_IGC_REGKEY(DWORD,SWSBTokenNum, 0, "Total tokens used for SWSB.", true)
67+
DECLARE_IGC_REGKEY(bool, EnableGroupScheduleForBC, false, "Enable bank conflict reduction in scheduling.", true)
68+
DECLARE_IGC_REGKEY(bool, EnableIGASWSB, false, "Using IGA SWSB", true)
6069
DECLARE_IGC_REGKEY(bool, GlobalSendVarSplit, false, "Enable global send variable splitting when we are about to spill", false)
6170
DECLARE_IGC_REGKEY(DWORD,EnableSendFusion, 1, "Enable(!=0)/disable(0)/force(2) send fusion. Valid for simd8 shader/kernel only.", false)
6271
DECLARE_IGC_REGKEY(bool, EnableAtomicFusion, false, "To enable/disable atomic send fusion (simd8 shaders). Valid if EnableSendFusion is on.", false)

0 commit comments

Comments
 (0)