gpt4 book ai didi

c++ - 转置数组时如何有效地使用缓存?

转载 作者:搜寻专家 更新时间:2023-10-31 01:07:14 24 4
gpt4 key购买 nike

如果我有一个表示 MxN 矩阵内容的一维数组(其中最低有效维度在内存中是连续的),我如何在转置它时充分利用缓存(将最重要维度的内容放在连续内存中的维度)。这个问题可以改写如下;

如果我可以在读取连续内存但写入随机访问位置或从随机访问位置读取并写入连续内存之间做出选择,在所有条件相同的情况下,我应该选择哪个?

最佳答案

只有一种普遍正确的方法:编码、剖析、测量和比较。

例如:是否需要实际转置数组?或者是否足以读取它的转置(在这种情况下,迭代器可以解决问题)。很多时候,当我与我最喜欢的敌人(Fortran)互动时,我不得不“阅读转置”,因为傻瓜是专栏专业。

使用 Eigen,您可以指定存储顺序。

但是——再一次——测试看看。很可能我们会遇到这样的情况,即您正在寻找一个转移注意力的东西,并且性能上的差异不值得您花时间使代码复杂化。

关于c++ - 转置数组时如何有效地使用缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614019/

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