同一 AI CORE 不同 AIV 之间的同步问题怎么解?使用原子累加前如何将 GM 初始化?
收藏回复举报
同一 AI CORE 不同 AIV 之间的同步问题怎么解?使用原子累加前如何将 GM 初始化?
t('forum.solved') 已解决
发表于2025-01-13 11:49:18
0 查看
 

====== ERROR: Potential WAW hazard detected at GM : 

======    PIPE_MTE3 Write at WAW()+0x12c0c0016000 in block 0 (aiv) at pc current 0x58e8 (serialNo:298) 

======    #0 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/impl/dav_c220/kernel_operator_data_copy_impl.h:130:9 

======    #1 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/inner_interface/inner_kernel_operator_data_copy_intf.cppm:168:9 

======    #2 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/inner_interface/inner_kernel_operator_data_copy_intf.cppm:494:5 

======    #3 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:232:13 

======    #4 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

======    PIPE_S Write at WAW()+0x12c0c0016000 in block 1 (aiv) at pc current 0x24bc (serialNo:365) 

======    #0 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:132:16 

======    #1 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

 

====== ERROR: Potential WAW hazard detected at GM : 

======    PIPE_S Write at WAW()+0x12c0c0016000 in block 0 (aiv) at pc current 0x24bc (serialNo:179) 

======    #0 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:132:16 

======    #1 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

======    PIPE_S Write at WAW()+0x12c0c0016000 in block 1 (aiv) at pc current 0x24bc (serialNo:365) 

======    #0 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:132:16 

======    #1 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

 

====== ERROR: Potential WAW hazard detected at GM : 

======    PIPE_S Write at WAW()+0x12c0c0016000 in block 0 (aiv) at pc current 0x24bc (serialNo:179) 

======    #0 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:132:16 

======    #1 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

======    PIPE_MTE3 Write at WAW()+0x12c0c0016000 in block 1 (aiv) at pc current 0x58e8 (serialNo:484) 

======    #0 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/impl/dav_c220/kernel_operator_data_copy_impl.h:130:9 

======    #1 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/inner_interface/inner_kernel_operator_data_copy_intf.cppm:168:9 

======    #2 /usr/local/Ascend/ascend-toolkit/8.0.RC3.alpha003/aarch64-linux/tikcpp/tikcfw/inner_interface/inner_kernel_operator_data_copy_intf.cppm:494:5 

======    #3 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/src/nll_loss.cpp:232:13 

======    #4 /home/cx/perf/NLLLoss2/build_out/op_kernel/binary/ascend910b/kernel_meta_NLLLoss_474f84dd649ef459d8f205471f7a286e/kernel_meta/NLLLoss_474f84dd649ef459d8f205471f7a286e_2954632_kernel.cpp:27:5 

这两行分别是(对所有AIV都是):

PIPE_S         ygm(0) = 0;

PIPE_MTE3       DataCopy(ygm, outTensor, 8);

想使用原子累加,累加前需要将待累加GM清空,不知该如何处理才能既不引入 SyncAll 又没有同步问题。

我要发帖子