gpt4 book ai didi

cuda - 为什么CUDA不允许我们使用所有的SM内存作为L1缓存?

转载 作者:行者123 更新时间:2023-12-02 14:55:39 26 4
gpt4 key购买 nike

在 CUDA 设备中,每个 SM 附近都有 64KB 的片上内存。默认情况下,它被划分为 48KB 的共享内存和 16KB 的L1 缓存。对于内存访问模式难以确定的内核,可以将这种分区更改为16KB共享内存和48KB L1缓存。

为什么 CUDA 不允许将每个 SM 的 64KB 片上内存全部用作L1 缓存

有很多种内核不使用共享内存,但可以使用额外的 16KB L1 缓存。

最佳答案

我相信这是计算机图形学的原因。运行 OpenGL 或 Direct3D 代码时,SM 将直接映射内存(CUDA 共享)用于一个目的(例如顶点属性),并将集合关联内存(L1 缓存)用于另一个目的。对于图形管道,架构师能够根据其他单元的顶点吞吐量限制(例如)专门调整顶点属性等内容所需的内存量。

在考虑 GPU 的架构决策(以及一般的处理器设计)时,重要的是要记住许多决策在很大程度上都是经济性的。 GPU 计算有一项日常工作:游戏和图形。如果没有这份日常工作,GPU 计算在经济上就不会变得可行,大规模并行计算也不会为大众所接受。

几乎用于计算的 GPU 的每个功能都以某种方式在图形管道中使用。如果不是(想想 ECC 内存),那么就必须为使用它的市场提供更高的产品价格(想想 HPC)。

关于cuda - 为什么CUDA不允许我们使用所有的SM内存作为L1缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925549/

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