首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GPU L2缓存命中率为100%,DRAM加载事务有时为0。

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

Stack Overflow用户
提问于 2015-11-30 18:53:55
回答 1查看 424关注 0票数 3

我正在实验一个简单的矩阵乘法CUDA程序。我发现,如果矩阵大小较小(512*512或更小),则L2缓存命中率始终为100%。剖析的DRAM读取事务不稳定,有时值甚至为0。这个是可能的吗?因为L2缓存中总是会有一些冷缺失,然后L2从DRAM中获取这些数据。因此,DRAM读取事务不应为0,L2命中率应小于100%。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-30 19:17:33

这个是可能的吗?

是的,有可能。

请注意,所有的 DRAM活动都通过L2缓存进行,这是不能禁用的(DRAM是一个特例,但这里可能没有)。这也包括cudaMemcpy流量。

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

(对于启用L1的设备,有许多流量类型不通过L1,包括cudaMemcpy流量。因此,启用/禁用L1通常不会对我在这里概述的假设情况产生任何影响。在L1中,初始内核读取的所有内容都“错过”,而在L2中“命中”)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34005844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档