CUDA编程-共享内存配置

CUDA编程-共享内存配置,cuda,shared-memory,Cuda,Shared Memory,您能解释一下在CUDA编程中使用“16 KB共享内存+48K一级缓存”和“48 KB共享内存+16 KB一级缓存”的区别吗?我应该期待什么样的及时执行?我什么时候可以期望更小的gpu时间 在费米和开普勒nVIDIA GPU上,每个SM都有64KB的内存块,可以配置为16/48或48/16共享内存/L1缓存。使用哪种模式取决于内核对共享内存的使用量。如果您的内核使用了大量共享内存,那么您可能会发现将其配置为48KB共享内存可以提高占用率,从而提高性能 另一方面,如果内核根本不使用共享内存,或者每个

您能解释一下在CUDA编程中使用“16 KB共享内存+48K一级缓存”和“48 KB共享内存+16 KB一级缓存”的区别吗?我应该期待什么样的及时执行?我什么时候可以期望更小的gpu时间

在费米和开普勒nVIDIA GPU上,每个SM都有64KB的内存块,可以配置为16/48或48/16共享内存/L1缓存。使用哪种模式取决于内核对共享内存的使用量。如果您的内核使用了大量共享内存,那么您可能会发现将其配置为48KB共享内存可以提高占用率,从而提高性能

另一方面,如果内核根本不使用共享内存,或者每个线程只使用很少的内存,那么可以将其配置为48KB的一级缓存


占用率计算器是CUDA工具包中附带的电子表格,也是可用的,它可以很好地说明“非常小的数量”是多少。此电子表格允许您调查每个块的不同共享内存和不同块大小的影响。

在费米和开普勒nVIDIA GPU上,每个SM都有一个64KB的内存块,可以配置为16/48或48/16共享内存/L1缓存。使用哪种模式取决于内核对共享内存的使用量。如果您的内核使用了大量共享内存,那么您可能会发现将其配置为48KB共享内存可以提高占用率,从而提高性能

另一方面,如果内核根本不使用共享内存,或者每个线程只使用很少的内存,那么可以将其配置为48KB的一级缓存


占用率计算器是CUDA工具包中附带的电子表格,也是可用的,它可以很好地说明“非常小的数量”是多少。此电子表格允许您调查每个块的不同共享内存和不同块大小的影响。

请不要发布重复的问题(),如果您需要更改某些内容,请编辑原始问题。公平地说,这不是重复的问题。您链接到的另一个问题是关于一级/二级缓存的,这个问题是关于一级/二级缓存的。Smem(共享内存)是一个与L2完全不同的主题。请不要发布重复的问题(),如果您需要更改某些内容,请编辑您的原始问题。公平地说,这不是重复的问题。您链接到的另一个问题是关于一级/二级缓存的,这个问题是关于一级/二级缓存的。Smem(共享内存)与二语完全不同。