Skip to content

Commit 76527f9

Browse files
petechouigcbot
authored andcommitted
[Autobackout][FuncReg]Revert of change: 98b5f43
vISA scheduler minor code change. vISA scheduler minor code change.
1 parent c875e79 commit 76527f9

File tree

2 files changed

+24
-41
lines changed

2 files changed

+24
-41
lines changed

visa/LocalScheduler/LatencyTable.cpp

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ class LatencyTableLegacy : public LatencyTable {
3232
template <PlatformGen Gen>
3333
class LatencyTableXe: public LatencyTable {
3434
// Select latency information based on platform generation.
35-
using LI2 = void;
36-
using LI = typename std::conditional<Gen == PlatformGen::XE,
37-
XELatencyInfo, LI2>::type;
35+
using LI = typename std::conditional<Gen >= PlatformGen::XE,
36+
XELatencyInfo,
37+
void>::type;
3838
public:
3939
LatencyTableXe(const IR_Builder& builder) : LatencyTable(builder) {
4040
static_assert(Gen >= PlatformGen::XE);
@@ -50,14 +50,11 @@ class LatencyTableXe: public LatencyTable {
5050
uint16_t getDPASLatency(uint8_t repeatCount) const override;
5151
private:
5252
uint16_t getMsgLatency(const G4_INST *Inst) const;
53-
uint16_t getSamplerLatency() const;
54-
uint16_t getDPL3Latency() const;
55-
uint16_t getLSCL3Latency(bool typed) const;
5653
uint16_t getMathLatency(const G4_INST *inst) const;
57-
uint16_t getBranchLatency() const;
54+
uint16_t getBranchLatency(const G4_INST *inst) const;
5855
uint16_t getIntrinsicLatency(const G4_INST *inst) const;
5956
uint16_t getDPASLatency(const G4_InstDpas *dpas) const;
60-
uint16_t getARFAccessLatency() const;
57+
uint16_t getARFAccessLatency(const G4_INST *inst) const;
6158
uint16_t getArithmeticLatency(const G4_INST *inst) const;
6259
};
6360

@@ -164,14 +161,14 @@ uint16_t LatencyTableXe<Gen>::getLatency(const G4_INST *Inst) const {
164161
if (Inst->isMath())
165162
return getMathLatency(Inst);
166163
if (Inst->isFlowControl())
167-
return getBranchLatency();
164+
return getBranchLatency(Inst);
168165
if (Inst->isIntrinsic())
169166
return getIntrinsicLatency(Inst);
170167
if (Inst->isDpas())
171168
return getDPASLatency(Inst->asDpasInst());
172169
if (Inst->writesFlag() ||
173170
(Inst->getDst() && Inst->getDst()->isDirectA0()))
174-
return getARFAccessLatency();
171+
return getARFAccessLatency(Inst);
175172
if (Inst->isArithmetic())
176173
return getArithmeticLatency(Inst);
177174

@@ -197,50 +194,36 @@ uint16_t LatencyTableXe<Gen>::getMsgLatency(const G4_INST *Inst) const {
197194
bool isCachedInL1 = MsgDesc->getCachingL1() == Caching::CA ||
198195
(MsgDesc->getCachingL1() != Caching::UC &&
199196
m_builder.getOption(vISA_assumeL1Hit));
200-
bool typed = MsgDesc->isTyped();
201-
if (isCachedInL1) {
202-
return typed ? value_of(LI::LSC_TYPED_L1)
203-
: value_of(LI::LSC_UNTYPED_L1);
197+
if (MsgDesc->isTyped()) {
198+
return isCachedInL1 ? value_of(LI::LSC_TYPED_L1)
199+
: value_of(LI::LSC_TYPED_L3);
204200
} else {
205-
return getLSCL3Latency(typed);
201+
return isCachedInL1 ? value_of(LI::LSC_UNTYPED_L1)
202+
: value_of(LI::LSC_UNTYPED_L3);
206203
}
207204
}
208205
}
209206
if (MsgDesc->isSLM())
210207
return Inst->asSendInst()->isFence() ? value_of(LI::SLM_FENCE)
211208
: value_of(LI::SLM16);
212209
if (MsgDesc->isSampler())
213-
return getSamplerLatency();
210+
return value_of(LI::SAMPLER_L3);
214211
if (MsgDesc->isHDC())
215-
return getDPL3Latency();
212+
return value_of(LI::DP_L3);
216213
if (MsgDesc->isBarrier())
217214
return value_of(LI::BARRIER);
218215
return value_of(LI::SEND_OTHERS);
219216
}
220217

221-
template<PlatformGen Gen>
222-
uint16_t LatencyTableXe<Gen>::getSamplerLatency() const {
223-
return value_of(LI::SAMPLER_L3);
224-
}
225-
226-
template<PlatformGen Gen>
227-
uint16_t LatencyTableXe<Gen>::getLSCL3Latency(bool typed) const {
228-
return value_of(typed ? LI::LSC_TYPED_L3 : LI::LSC_UNTYPED_L3);
229-
}
230-
231-
template<PlatformGen Gen>
232-
uint16_t LatencyTableXe<Gen>::getDPL3Latency() const {
233-
return value_of(LI::DP_L3);
234-
}
235-
236218
template<PlatformGen Gen>
237219
uint16_t LatencyTableXe<Gen>::getMathLatency(const G4_INST *Inst) const {
238220
vASSERT(Inst->isMath());
239221
return value_of(LI::MATH);
240222
}
241223

242224
template<PlatformGen Gen>
243-
uint16_t LatencyTableXe<Gen>::getBranchLatency() const {
225+
uint16_t LatencyTableXe<Gen>::getBranchLatency(const G4_INST *Inst) const {
226+
vASSERT(Inst->isFlowControl());
244227
return value_of(LI::BRANCH);
245228
}
246229

@@ -256,7 +239,9 @@ uint16_t LatencyTableXe<Gen>::getDPASLatency(const G4_InstDpas *dpas) const {
256239
}
257240

258241
template<PlatformGen Gen>
259-
uint16_t LatencyTableXe<Gen>::getARFAccessLatency() const {
242+
uint16_t LatencyTableXe<Gen>::getARFAccessLatency(const G4_INST *Inst) const {
243+
vASSERT(Inst->writesFlag() ||
244+
(Inst->getDst() && Inst->getDst()->isDirectA0()));
260245
return value_of(LI::ARF);
261246
}
262247

@@ -308,8 +293,8 @@ LatencyTableXe<PlatformGen::XE>::getDPASLatency(uint8_t repeatCount) const {
308293
case Xe_PVCXT:
309294
return value_of(LI::DPAS) + repeatCount;
310295
default: // Not supported platform
311-
vISA_ASSERT_UNREACHABLE("Unsupported platform");
312-
return value_of(LI::UNKNOWN);
296+
// TODO: Add vISA_ASSERT_UNREACHABLE.
297+
return 46;
313298
}
314299
}
315300
template<>

visa/LocalScheduler/SWSB_G4IR.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ class SWSB {
957957
const unsigned tokenAfterWriteSendSlmCycle;
958958
const unsigned tokenAfterWriteSendMemoryCycle;
959959
const unsigned tokenAfterWriteSendSamplerCycle;
960-
int tokenAfterDPASCycle = 0;
960+
int tokenAfterDPASCycle;
961961

962962
// For profiling
963963
uint32_t syncInstCount = 0;
@@ -1156,10 +1156,8 @@ class SWSB {
11561156
indexes.longIndex = 0;
11571157
indexes.DPASIndex = 0;
11581158
indexes.mathIndex = 0;
1159-
if (k.fg.builder->hasDPAS()) {
1160-
tokenAfterDPASCycle =
1161-
LatencyTable::createLatencyTable(*k.fg.builder)->getDPASLatency(8);
1162-
}
1159+
tokenAfterDPASCycle =
1160+
LatencyTable::createLatencyTable(*k.fg.builder)->getDPASLatency(8);
11631161
}
11641162
~SWSB() {}
11651163
void SWSBGenerator();

0 commit comments

Comments
 (0)