Add device number to GOMP_OFFLOAD_openacc_async_construct
authorAndrew Stubbs <ams@codesourcery.com>
Wed, 13 Nov 2019 12:37:59 +0000 (12:37 +0000)
committerAndrew Stubbs <ams@gcc.gnu.org>
Wed, 13 Nov 2019 12:37:59 +0000 (12:37 +0000)
2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>

libgomp/
* libgomp-plugin.h (GOMP_OFFLOAD_openacc_async_construct): Add int
parameter.
* oacc-async.c (lookup_goacc_asyncqueue): Pass device number to the
queue constructor.
* oacc-host.c (host_openacc_async_construct): Add device parameter.
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_openacc_async_construct): Add
device parameter.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r278134

libgomp/ChangeLog
libgomp/libgomp-plugin.h
libgomp/oacc-async.c
libgomp/oacc-host.c
libgomp/plugin/plugin-nvptx.c

index ad9fdeaeac26815bfd78124ac8fa99ea5f3bf32a..c8977988060fc638338e25b5923cd7d09fc12f94 100644 (file)
@@ -1,3 +1,14 @@
+2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
+           Julian Brown  <julian@codesourcery.com>
+
+       * libgomp-plugin.h (GOMP_OFFLOAD_openacc_async_construct): Add int
+       parameter.
+       * oacc-async.c (lookup_goacc_asyncqueue): Pass device number to the
+       queue constructor.
+       * oacc-host.c (host_openacc_async_construct): Add device parameter.
+       * plugin/plugin-nvptx.c (GOMP_OFFLOAD_openacc_async_construct): Add
+       device parameter.
+
 2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
 
        * configure.tgt (nvptx*-*-*): Add "accel" directory.
index 01483f27f4cb9d3033e533e9c6e91db519e4345a..de969e1ba4562e9f81fbd61a3edde23722c7520c 100644 (file)
@@ -112,7 +112,7 @@ extern void GOMP_OFFLOAD_openacc_exec (void (*) (void *), size_t, void **,
                                       void **, unsigned *, void *);
 extern void *GOMP_OFFLOAD_openacc_create_thread_data (int);
 extern void GOMP_OFFLOAD_openacc_destroy_thread_data (void *);
-extern struct goacc_asyncqueue *GOMP_OFFLOAD_openacc_async_construct (void);
+extern struct goacc_asyncqueue *GOMP_OFFLOAD_openacc_async_construct (int);
 extern bool GOMP_OFFLOAD_openacc_async_destruct (struct goacc_asyncqueue *);
 extern int GOMP_OFFLOAD_openacc_async_test (struct goacc_asyncqueue *);
 extern bool GOMP_OFFLOAD_openacc_async_synchronize (struct goacc_asyncqueue *);
index 1760e8c90c63360260e9b014dfd73490e14304e0..2b24ae7adc28a71293bae94bbcb5e31b23125e63 100644 (file)
@@ -100,7 +100,8 @@ lookup_goacc_asyncqueue (struct goacc_thread *thr, bool create, int async)
 
   if (!dev->openacc.async.asyncqueue[async])
     {
-      dev->openacc.async.asyncqueue[async] = dev->openacc.async.construct_func ();
+      dev->openacc.async.asyncqueue[async]
+       = dev->openacc.async.construct_func (dev->target_id);
 
       if (!dev->openacc.async.asyncqueue[async])
        {
index 12299aee65d28105a647b58347ab7ad608b22b0e..cbcac9bf7b3319e7d29180035a9b2fd9b2ae9dd2 100644 (file)
@@ -211,7 +211,7 @@ host_openacc_async_queue_callback (struct goacc_asyncqueue *aq
 }
 
 static struct goacc_asyncqueue *
-host_openacc_async_construct (void)
+host_openacc_async_construct (int device __attribute__((unused)))
 {
   /* Non-NULL 0xffff... value as opaque dummy.  */
   return (struct goacc_asyncqueue *) -1;
index 9e088612b44286d1428489a890d6d38c5e833acb..911d0f66a6e4dad9108061d98886dae234cd2f04 100644 (file)
@@ -1575,7 +1575,7 @@ GOMP_OFFLOAD_openacc_cuda_set_stream (struct goacc_asyncqueue *aq, void *stream)
 }
 
 struct goacc_asyncqueue *
-GOMP_OFFLOAD_openacc_async_construct (void)
+GOMP_OFFLOAD_openacc_async_construct (int device __attribute__((unused)))
 {
   CUstream stream = NULL;
   CUDA_CALL_ERET (NULL, cuStreamCreate, &stream, CU_STREAM_DEFAULT);