已关闭
torch.repeat_interleave的api在处理数据时太慢 #1474
g创建于  2025年12月26日关闭于  3月9日
g
g
2025年12月26日 创建

image.pngimage.png
你好,我想知道这个 aclnnRepeatInterleave配置是固定block就是1吗,但是速度太慢了,我在跑代码中发现这个地方甚至不如切换为cpu运行。有没有可以提高性能的方法或者替换的api使用?

likedislike
huangyunlong成员
2025年12月26日 评论:

block不固定是1,针对Atlas A2或A3产品,cann 8.3.rc1的版本可以考虑torch.repeat_interleave(x, repeats, 0)来替换,多传一个dim值即可,或者考虑第一个参数使用int32类型

likedislike
g
g
2025年12月28日 评论:

block不固定是1,针对Atlas A2或A3产品,cann 8.3.rc1的版本可以考虑torch.repeat_interleave(x, repeats, 0)来替换,多传一个dim值即可,或者考虑第一个参数使用int32类型

@huangyunlong2022

你好,感谢回复,考虑第一个参数使用int32类型的方法确实有用,但是tqdm显示的速度波动比较大,我profile了速度较慢的几个step,发现较慢的几个相邻step中,关于repeat的block数量是不一致的,有些block还是分配了1个,怎么解决。
image.png

likedislike
huangyunlong成员
2025年12月29日 评论:

这种情况推荐使用dim=0,用torch.repeat_interleave(x, repeats, 0)来替换

likedislike
g
g
2025年12月29日 评论:

这种情况推荐使用dim=0,用torch.repeat_interleave(x, repeats, 0)来替换

@huangyunlong2022

我的代码中就是使用torch.repeat_interleave(x, repeats, 0)来进行计算的
image.png

likedislike
g
g
2025年12月29日 评论:

我查文档发现8.3RC1更新写了这个算子的性能优化,我现在版本是8.2RC1,我先升级版本试一试

likedislike
Hhuangyunlong成员
3月9日 issue状态由 TODO 改变为 DONE
Hhuangyunlong成员
3月9日 关闭了 issue
huangyunlong成员
3月9日 评论:

当前issue长期未更新,暂时先关闭,如果还有疑问可以继续提问

likedislike