gpt4 book ai didi

java - 在纯 Java 中确定处理器缓存的大小

转载 作者:行者123 更新时间:2023-11-30 06:23:47 25 4
gpt4 key购买 nike

我正在用纯 Java 微调一个数值算法,它对每核处理器缓存的大小非常敏感:当工作数据集适合 L1 缓存时,它运行速度明显更快。

显然,我可以通过一些基准测试为我的本地机器微调它。但理想情况下,我希望能够根据正在使用的处理器的 L1 缓存大小自动调整工作集的大小。

本地代码不是一个选项:用 Java 编写这个算法的全部目的是让它与平台无关!

纯 Java 中是否有一种可靠地确定每核缓存大小的好方法?

最佳答案

如果它在一组参数下的运行速度明显比另一组参数快,那么我会根据注意到的差异来调整它。在开始进行一长串计算之前(我假设是这种情况,否则您不会在意),运行具有各种不同大小的内部数据存储的较小的集合。 (我假设算法可以像那样在数值上进行调整。)

这样一来,差异是来自 L1 缓存大小,还是 L1 + L2 缓存大小,或者其他完全不同的东西并不重要 - 您会选择最适合手头情况的东西。

您需要注意 JIT 预热期,就像在正常的基准测试中一样,但我认为这是创建通用优化方法的好方法,即使它最终会恰好最重地考虑了 L1 缓存。

您可以将其作为单独的安装时工作,将结果写入配置文件,以便在后续运行中避免额外的工作。 (您可能需要一种重新运行调整步骤的方法,以防处理器发生变化或发生其他情况。)

关于java - 在纯 Java 中确定处理器缓存的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908541/

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