public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/omp/gcc-11] Tweak error return value for acc_set_cuda_stream.
@ 2021-05-13 16:08 Kwok Yeung
0 siblings, 0 replies; only message in thread
From: Kwok Yeung @ 2021-05-13 16:08 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:5c357d4f2c835f9b4f432ab03847beb11aec8888
commit 5c357d4f2c835f9b4f432ab03847beb11aec8888
Author: Julian Brown <julian@codesourcery.com>
Date: Tue Feb 12 06:36:03 2019 -0800
Tweak error return value for acc_set_cuda_stream.
The return value of acc_set_cuda_stream is unspecified in OpenACC 2.6.
The testsuite changes might be unnecessary with the current async code.
libgomp/
* oacc-cuda.c (acc_set_cuda_stream): Return 0 on error/invalid
arguments.
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Handle unnumbered
async stream being an alias for a numbered async stream.
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
Diff:
---
libgomp/ChangeLog.omp | 8 ++++++++
libgomp/oacc-cuda.c | 5 ++++-
libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c | 6 ++++++
libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c | 6 ++++++
4 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp
index 15faa26336b..a18e49aa572 100644
--- a/libgomp/ChangeLog.omp
+++ b/libgomp/ChangeLog.omp
@@ -1,3 +1,11 @@
+2019-02-12 Julian Brown <julian@codesourcery.com>
+
+ * oacc-cuda.c (acc_set_cuda_stream): Return 0 on error/invalid
+ arguments.
+ * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Handle unnumbered
+ async stream being an alias for a numbered async stream.
+ * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
+
2018-10-02 Thomas Schwinge <thomas@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
diff --git a/libgomp/oacc-cuda.c b/libgomp/oacc-cuda.c
index 112fa153496..cf8d4384de1 100644
--- a/libgomp/oacc-cuda.c
+++ b/libgomp/oacc-cuda.c
@@ -115,6 +115,9 @@ acc_get_cuda_stream (int async)
return ret;
}
+/* As of OpenACC 2.6, the return code of this function appears to be
+ unspecified. We choose to return 1 for success, or 0 for failure. */
+
int
acc_set_cuda_stream (int async, void *stream)
{
@@ -127,7 +130,7 @@ acc_set_cuda_stream (int async, void *stream)
thr = goacc_thread ();
- int ret = -1;
+ int ret = 0;
if (thr && thr->dev && thr->dev->openacc.cuda.set_stream_func)
{
acc_prof_info prof_info;
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c
index d793c743630..e2d86dee61c 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c
@@ -38,6 +38,12 @@ main (int argc, char **argv)
if (streams[i] != NULL)
abort ();
+ /* The no-value async may be an alias for a numbered async stream.
+ Skip over setting it below else the above NULL check will fail for
+ the aliased stream. */
+ if (i == acc_async_noval)
+ continue;
+
r = cuStreamCreate (&streams[i], CU_STREAM_DEFAULT);
if (r != CUDA_SUCCESS)
{
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c
index 141c83b53dd..22982415d45 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c
@@ -38,6 +38,12 @@ main (int argc, char **argv)
if (streams[i] != NULL)
abort ();
+ /* The no-value async may be an alias for a numbered async stream.
+ Skip over setting it below else the above NULL check will fail for
+ the aliased stream. */
+ if (i == acc_async_noval)
+ continue;
+
r = cuStreamCreate (&streams[i], CU_STREAM_DEFAULT);
if (r != CUDA_SUCCESS)
{
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-05-13 16:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-13 16:08 [gcc/devel/omp/gcc-11] Tweak error return value for acc_set_cuda_stream Kwok Yeung
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).