gpt4 book ai didi

julia - 规模的替代品!对于 SubArray 对象

转载 作者:行者123 更新时间:2023-12-01 10:09:08 25 4
gpt4 key购买 nike

我听说 SubArray 和其他数组操作在未来是 eventually due for a performance overhaul。目前,由于 SubArray 运行缓慢,我的代码出现了一些相当小的减速。这是一个例子:

A=rand(Float32,20000,20000);
B=sub(A,2:19999,2:19999);
@time scale!(A,0.2f0);
@time scale!(B,0.2f0);

导致

elapsed time: 0.245619038 seconds
elapsed time: 11.706939438 seconds

所以 scale! 在类似大小的 SubArray 上比在 Array 上慢大约 40-50 倍。

目前是否有一个简单的解决方法可以用于 SubArray 上的 scale!?还是我应该等待下一个版本的改进?

如果没有变通办法,这不是什么大问题,我只是好奇。

最佳答案

如果您愿意,从根本上提高性能并不是特别困难。 scale! 只需要一个使用笛卡尔(多维)而非线性索引的实现。目前,这确实意味着您必须使用可能不熟悉的 Base.Cartesian 语法。 .

scale! 的核心代码is here .你会想让它看起来更像 this implementation of copy! .函数体将逐字变化两个字符(将 s* 添加到该赋值的 RHS)。

当然,如果您想坚持使用 Julia 0.3,最好的办法是使用您自己的自定义实现。

关于julia - 规模的替代品!对于 SubArray 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com