Merged
修复Fill样例的L1地址重叠和流水同步错误 #6242
修复Fill样例的L1地址重叠和流水同步错误 #6242
Merged
GRJ_XIDUOAdd on Sep 20
Total: 1 files changed+3-2
@@ -127,7 +127,8 @@ public:
127 // Ascend 950PR/Ascend 950DT不支持直接初始化L0A和L0B,所以通过Fill初始化L1,再通过LoadData搬运到L0A和L0B127 // Ascend 950PR/Ascend 950DT不支持直接初始化L0A和L0B,所以通过Fill初始化L1,再通过LoadData搬运到L0A和L0B
128 InitConstA1(a1Local);128 InitConstA1(a1Local);
129 InitConstB1(b1Local);129 InitConstB1(b1Local);
130- AscendC::PipeBarrier<PIPE_MTE1>();130+ AscendC::SetFlag<AscendC::HardEvent::MTE2_MTE1>(EVENT_ID0);
131+ AscendC::WaitFlag<AscendC::HardEvent::MTE2_MTE1>(EVENT_ID0);
131 Load2DA1ToA2(a1Local, a2Local);132 Load2DA1ToA2(a1Local, a2Local);
132 Load2DB1ToB2(b1Local, b2Local);133 Load2DB1ToB2(b1Local, b2Local);
133#endif134#endif
@@ -142,7 +143,7 @@ public:
142 143 
143private:144private:
144 uint64_t a1Addr = 0;145 uint64_t a1Addr = 0;
145- uint64_t b1Addr = 0;146+ uint64_t b1Addr = a1Addr + static_cast<uint64_t>(M) * K * sizeof(T);
146 uint64_t a2Addr = 0;147 uint64_t a2Addr = 0;
147 uint64_t b2Addr = a2Addr + static_cast<uint64_t>(M) * K * sizeof(T);148 uint64_t b2Addr = a2Addr + static_cast<uint64_t>(M) * K * sizeof(T);
148 uint64_t co1Addr = b2Addr + static_cast<uint64_t>(N) * K * sizeof(U);149 uint64_t co1Addr = b2Addr + static_cast<uint64_t>(N) * K * sizeof(U);