Fix occupancy calculations API on NVCC (#1941)

NVCC warned if you tried to use hipOccupancyMaxActiveBlocksPerMultiprocessor
because when passing in a device function pointer, "const void* func" was
insufficient to describe it accurately. Adding a C++ templated class type
definition for this function.

[ROCm/hip commit: 4128d68ed7]
This commit is contained in:
Joseph Greathouse
2020-03-17 03:32:48 -05:00
کامیت شده توسط GitHub
والد 8268ddab28
کامیت 122c2f9034
@@ -1708,6 +1708,17 @@ inline static hipError_t hipLaunchCooperativeKernelMultiDevice(hipLaunchParams*
#ifdef __CUDACC__
template<class T>
inline static hipError_t hipOccupancyMaxActiveBlocksPerMultiprocessor(int* numBlocks,
T func,
int blockSize,
size_t dynamicSMemSize) {
cudaError_t cerror;
cerror =
cudaOccupancyMaxActiveBlocksPerMultiprocessor(numBlocks, func, blockSize, dynamicSMemSize);
return hipCUDAErrorTohipError(cerror);
}
template <class T>
inline static hipError_t hipOccupancyMaxPotentialBlockSize(int* minGridSize, int* blockSize, T func,
size_t dynamicSMemSize = 0,