Rób*_*kus 1 cuda gpu-shared-memory
如果我每个 SM 有 48kB 共享内存,并且我编写了一个分配 32kB 共享内存的内核,这意味着一个 SM 上只能同时运行 1 个块?
对,那是正确的。
共享内存必须支持所有“常驻”线程块的“占用空间”。为了在 SM 上启动线程块,必须有足够的共享内存来支持它。如果没有,它将等待,直到当前正在执行的线程块完成。
Maxwell GPU(cc 5.0、5.2)对此有一些细微差别。这些 GPU 支持 64KB (cc 5.0) 或 96KB (cc 5.2) 共享内存。在这种情况下,单个线程块可用的最大共享内存仍然限制为 48KB,但多个线程块在单个 SM 上总共可以使用超过 48KB。这意味着 cc 5.2 SM 可以支持 2 个线程块,即使它们都使用 32KB 共享内存。
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |