我在开发算子的过程中碰到了下面的问题:
1、现有的Ascend CL中的aclnndiag , aclnngemm等算子是否使用到了NPU芯片的所有32个核心,如果不是,是否有设置方法。
2、请问如何监控NPU的性能数据,比如核心使用率,数据传输量等
3、是否有办法用下标索引进行矩阵计算。场景描述如下:
预先在NPU中用类似数组的方法存储上百万个点,每个点都是连续的1024维*float的数据,是否可以通过指针或者下标索引,直接得出得出参与计算的矩阵的数据,
也就是说 通过索引直接指定数据的第2,6,8,3的矩阵进行计算,而不是通过malloc+copy操作创建新的矩阵。
区别在于前者没有创建矩阵的过程,后者的时间开销较为庞大
4、在测试过程中,通过for循环直接进行DEVICE到DEVICE的copy操作,为什么时间随循环次数是线性增加,是否考虑加入相应的编译优化?,以下为通过chorono进行计时得到的传输速率
我在开发算子的过程中碰到了下面的问题:
1、现有的Ascend CL中的aclnndiag , aclnngemm等算子是否使用到了NPU芯片的所有32个核心,如果不是,是否有设置方法。
2、请问如何监控NPU的性能数据,比如核心使用率,数据传输量等
3、是否有办法用下标索引进行矩阵计算。场景描述如下:
预先在NPU中用类似数组的方法存储上百万个点,每个点都是连续的1024维*float的数据,是否可以通过指针或者下标索引,直接得出得出参与计算的矩阵的数据,
也就是说 通过索引直接指定数据的第2,6,8,3的矩阵进行计算,而不是通过malloc+copy操作创建新的矩阵。
区别在于前者没有创建矩阵的过程,后者的时间开销较为庞大
4、在测试过程中,通过for循环直接进行DEVICE到DEVICE的copy操作,为什么时间随循环次数是线性增加,是否考虑加入相应的编译优化?,以下为通过chorono进行计时得到的传输速率