gpt4 book ai didi

caching - GPU L2 缓存命中率为 100%,DRAM 加载事务有时为 0

转载 作者:行者123 更新时间:2023-12-04 13:46:36 24 4
gpt4 key购买 nike

我正在试验一个简单的矩阵乘法 CUDA 程序。我发现如果矩阵大小很小(512*512 或更小),L2 缓存命中率总是 100%。 profiled DRAM read transactions 不稳定,有时值甚至为0。这可能吗?因为 L2 缓存中应该总是有一些冷未命中,然后 L2 从 DRAM 中获取这些数据。因此 DRAM 读取事务永远不应为 0,L2 命中率应低于 100%。

仅供引用:我在使用 Kepler 40 架构的 Quadro K6000 GPU 上测试了该程序。无论 L1 缓存打开或关闭,指标值都是相同的。我使用的指标包括 l2_l1_read_hit_rate 和 dram_read_transactions。

最佳答案

Is this possible?

是的,这是可能的。

请注意,所有 DRAM 事件都流经 L2 缓存,无法禁用(原子是一种特殊情况,但可能不在此处查看。)这包括 cudaMemcpy交通也是如此。

因此,如果我将一个完全适合 L2 缓存的“小”数据集从主机传输到设备,然后启动一个读取该数据集的内核,它可能已经驻留在 L2 中,并且读取事务将在 L2 中“命中”并且可能不会生成任何实际的 DRAM 事件。

(对于启用了 L1 的设备,有许多流量类型流经 L1,包括 cudaMemcpy 流量。因此启用/禁用 L1 应该通常对我在这里概述的假设情况没有影响。初始内核读取将在 L1 中全部“未命中”,但在 L2 中“命中”)。

关于caching - GPU L2 缓存命中率为 100%,DRAM 加载事务有时为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34005844/

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