aboutsummaryrefslogtreecommitdiff
path: root/libgomp/plugin/cuda-lib.def
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2018-08-08 14:26:37 +0000
committerTom de Vries <vries@gcc.gnu.org>2018-08-08 14:26:37 +0000
commit8e09a12f016e53f1edadc10db22806937d3b8894 (patch)
tree5feb1173be84ed942075d7f1805f6ca45fb6fdf1 /libgomp/plugin/cuda-lib.def
parentcedd9bd016db29cc7f7f358125a89193d81dfa50 (diff)
downloadgcc-8e09a12f016e53f1edadc10db22806937d3b8894.zip
gcc-8e09a12f016e53f1edadc10db22806937d3b8894.tar.gz
gcc-8e09a12f016e53f1edadc10db22806937d3b8894.tar.bz2
[libgomp, nvptx] Fall back to cuLinkAddData/cuLinkCreate if _v2 not found
Cuda driver api functions cuLinkAddData and cuLinkCreate are available starting version 5.5. In version 6.5, they are remapped onto _v2 versions. The dlopen interface of the libgomp nvptx plugin uses the _v2 versions, so it won't work with a cuda driver with driver api version lower than 6.5. This patch fixes the problem by testing for the presence of the _v2 versions, and falling back to the original versions in case of absence of the _v2 versions. Build on x86_64 with nvptx accelerator and reg-tested libgomp, both with and without --without-cuda-driver. 2018-08-08 Tom de Vries <tdevries@suse.de> * plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using CUDA_ONE_CALL_MAYBE_NULL. * plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare. (cuLinkAddData_v2, cuLinkCreate_v2): Declare. (link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions are not found. From-SVN: r263408
Diffstat (limited to 'libgomp/plugin/cuda-lib.def')
-rw-r--r--libgomp/plugin/cuda-lib.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgomp/plugin/cuda-lib.def b/libgomp/plugin/cuda-lib.def
index 6365cdb..29028b5 100644
--- a/libgomp/plugin/cuda-lib.def
+++ b/libgomp/plugin/cuda-lib.def
@@ -19,8 +19,10 @@ CUDA_ONE_CALL_MAYBE_NULL (cuGetErrorString)
CUDA_ONE_CALL (cuInit)
CUDA_ONE_CALL (cuLaunchKernel)
CUDA_ONE_CALL (cuLinkAddData)
+CUDA_ONE_CALL_MAYBE_NULL (cuLinkAddData_v2)
CUDA_ONE_CALL (cuLinkComplete)
CUDA_ONE_CALL (cuLinkCreate)
+CUDA_ONE_CALL_MAYBE_NULL (cuLinkCreate_v2)
CUDA_ONE_CALL (cuLinkDestroy)
CUDA_ONE_CALL (cuMemAlloc)
CUDA_ONE_CALL (cuMemAllocHost)