Merged
修复Fill样例的L1地址重叠和流水同步错误 #6242
GRJ_XIDUOAdd on Sep 20
修复Fill样例的L1地址重叠和流水同步错误 #6242
Merged
Total: 1 files changed+3-2
| @@ -127,7 +127,8 @@ public: | |||
| 127 | // Ascend 950PR/Ascend 950DT不支持直接初始化L0A和L0B,所以通过Fill初始化L1,再通过LoadData搬运到L0A和L0B | 127 | // 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 | #endif | 134 | #endif |
| @@ -142,7 +143,7 @@ public: | |||
| 142 | 143 | ||
| 143 | private: | 144 | private: |
| 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); |