算法复杂度:如何将"耗电量"视为参数?

Kun*_*ava 6 algorithm big-o gpu metal

空间和时间被认为是分析算法复杂性的晴雨表.但是现在随着GPU在移动设备上的出现,有许多可能的应用程序可以使用这种高性能在移动设备上运行复杂的算法.例如:iOS的Metal框架可用于GPGPU操作.但不用说它耗费了很多力量.所以,我的问题是,如果我在移动设备上开发/实现图形搜索算法,我是否也应该考虑算法的"功率"复杂性以及时空?现在,我知道争论可能是权力是算法不直接消耗的东西,我完全赞同.所以,也许我的语法不正确,说权力是衡量算法的另一个方面' 效率.但是,不应该将功率视为算法的性能指标吗?

小智 1

为了实现这一点,您需要一个可以与算法中的原子操作相关联的能耗模型。

\n\n

就像“乘法消耗一个单位的能量”和“内存插槽每单位时间使用两个单位的能量”。也许能量 = 时间 x 空间的关系是有意义的。

\n\n

无论如何,这样的“na\xc3\xafve”模型可能会遇到与时间复杂度模型相同的现象:它与现代体系结构的行为没有任何相似之处,并且可能会出现几个数量级的错误。

\n\n

使用更准确的模型在分析上会很困难。

\n