This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[gomp4] Lack of OpenACC NVPTX devices is not an error during scanning
- From: Julian Brown <julian at codesourcery dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 19 May 2015 11:36:58 +0100
- Subject: [gomp4] Lack of OpenACC NVPTX devices is not an error during scanning
- Authentication-results: sourceware.org; auth=none
Hi,
This patch fixes an oversight whereby if the CUDA libraries are
available for some reason on a system that doesn't actually contain an
nVidia card, an OpenACC program will raise an error if the NVPTX
backend is picked as a default instead of falling back to some other
device instead.
OK for gomp4 branch? For trunk?
Thanks,
Julian
ChangeLog
libgomp/
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
on cuInit failure.
commit 696a0d7e22bb8217ff581886cdf0979bfc2e85bb
Author: Julian Brown <julian@codesourcery.com>
Date: Fri May 15 03:22:56 2015 -0700
Lack of PTX devices is not an error during scanning.
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index b36691a..d09a91c 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -781,7 +781,13 @@ nvptx_get_num_devices (void)
until cuInit has been called. Just call it now (but don't yet do any
further initialization). */
if (instantiated_devices == 0)
- cuInit (0);
+ {
+ r = cuInit (0);
+ /* This is not an error: e.g. we may have CUDA libraries installed but
+ no devices available. */
+ if (r != CUDA_SUCCESS)
+ return 0;
+ }
r = cuDeviceGetCount (&n);
if (r!= CUDA_SUCCESS)