cuda 一些实用函数
CUDA 笔记 一些实用函数
在调优的时候能用得到,获取一些占用率相关的信息
cudaOccupancyAvailableDynamicSMemPerBlock ( size_t dynamicSmemSize, const void func, int numBlocks, int blockSize )**
返回在当前的numBlock下(numBlock/SM)每个block能用的SMem大小
cudaOccupancyMaxActiveBlocksPerMultiprocessor ( int numBlocks, const void func, int blockSize, size_t dynamicSMemSize )**
根据当前的使用的寄存器,SMem等信息判断每个SM上能驻存的Block数。
cudaOccupancyMaxPotentialBlockSize ( int minGridSize, int blockSize, T func, size_t dynamicSMemSize = 0, int blockSizeLimit = 0 ) [inline]**
根据当前信息算核函数达到最大占用率Occupy时的BlockSize和GridSize,因为只能分析静态信息,所以如果有动态信息,则需要用cudaOccupancyMaxPotentialBlockSizeVariableSMem
cudaOccupancyMaxPotentialBlockSizeVariableSMem ( int minGridSize, int blockSize, T func, UnaryFunction blockSizeToDynamicSMemSize, int blockSizeLimit = 0 ) [inline]**
当有动态SMem分配时计算最大Occupy时的BlockSize和GridSize,blockSizeToDynamicSMemSize是一个函数,传入BlockSize返回Smem Size