CUDA: Avoid using deprecated cublas_device to identify device lib dirs

Use `curand_static` to identify directories containing device libraries
because `cublas_device` is deprecated and will be removed in the future.

Issue: #18290
This commit is contained in:
Robert Maynard 2018-08-15 11:53:51 -04:00 committed by Brad King
parent c4ab098097
commit 122c79748c
3 changed files with 8 additions and 2 deletions

View File

@ -185,7 +185,7 @@ if(__IMPLICT_DLINK_DIRS)
endif()
set(__IMPLICT_DLINK_FLAGS )
foreach(dir ${__IMPLICT_DLINK_DIRS})
if(EXISTS "${dir}/libcublas_device.a")
if(EXISTS "${dir}/libcurand_static.a")
string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
endif()
endforeach()

View File

@ -44,7 +44,7 @@ if(__IMPLICT_DLINK_DIRS)
endif()
set(__IMPLICT_DLINK_FLAGS )
foreach(dir ${__IMPLICT_DLINK_DIRS})
if(EXISTS "${dir}/cublas_device.lib")
if(EXISTS "${dir}/curand_static.lib")
string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
endif()
endforeach()

View File

@ -3,6 +3,9 @@
#include <cuda_runtime.h>
#include <iostream>
// this test only makes sense for versions of CUDA that ships
// static libraries that have separable compilation device symbols
#if __CUDACC_VER_MAJOR__ <= 9
__global__ void deviceCublasSgemm(int n, float alpha, float beta,
const float* d_A, const float* d_B,
float* d_C)
@ -22,6 +25,7 @@ __global__ void deviceCublasSgemm(int n, float alpha, float beta,
cublasDestroy(cnpHandle);
}
#endif
int choose_cuda_device()
{
@ -63,6 +67,7 @@ int main(int argc, char** argv)
return 0;
}
#if __CUDACC_VER_MAJOR__ <= 9
// initial values that will make sure that the cublasSgemm won't actually
// do any work
int n = 0;
@ -72,6 +77,7 @@ int main(int argc, char** argv)
float* d_B = nullptr;
float* d_C = nullptr;
deviceCublasSgemm<<<1, 1>>>(n, alpha, beta, d_A, d_B, d_C);
#endif
return 0;
}