你好,因为项目需要将一个CUDA自定义算子转换成ascendc自定义算子,才去接触和学习ascendc。但是在开发过程中,产生了一下困惑。同样是SPMD数据并行,gpu会有很多thread根据ID去并行处理数据,而npu的aicore数量比gpu的thread少(我看910的aicore好像只有40多个)。我如果用gpu的话,thread够多,可能很快就处理完一个batch的数据,而npu只用这几个aicore速度就要慢些。
我想问一下npu是不是达不到gpu那样的并行程度(很多thread去处理一个batch),只能去用指令流水线去弥补。
你好,因为项目需要将一个CUDA自定义算子转换成ascendc自定义算子,才去接触和学习ascendc。但是在开发过程中,产生了一下困惑。同样是SPMD数据并行,gpu会有很多thread根据ID去并行处理数据,而npu的aicore数量比gpu的thread少(我看910的aicore好像只有40多个)。我如果用gpu的话,thread够多,可能很快就处理完一个batch的数据,而npu只用这几个aicore速度就要慢些。
我想问一下npu是不是达不到gpu那样的并行程度(很多thread去处理一个batch),只能去用指令流水线去弥补。