https://gcc.gnu.org/g:209d374b10250f889fca6c9def989e27484ffdf7

commit 209d374b10250f889fca6c9def989e27484ffdf7
Author: Kwok Cheung Yeung <k...@codesourcery.com>
Date:   Wed Jun 22 07:43:05 2022 -0700

    libgomp, nvptx: Update bundled CUDA header file
    
    This updates the bundled cuda.h header file to include some new API calls 
and
    constants that are now used in the code.
    
    This patch should be included when the "libgomp, nvptx: low-latency memory
    allocator" or "openmp: Add support for 'target_device' context selector set"
    patches are upstreamed.
    
    2022-06-21  Kwok Cheung Yeung  <k...@codesourcery.com>
    
            include/
            * cuda/cuda.h (CUdevice_attribute): Add definitions for
            CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR and
            CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR.
            (CUmemAttach_flags): New.
            (CUpointer_attribute): New.
            (cuMemAllocManaged): New prototype.
            (cuPointerGetAttribute): New prototype.
    
            libgomp/
            * plugin/cuda-lib.def (cuMemAllocManaged): Add new call.
            (cuPointerGetAttribute): Likewise.

Diff:
---
 include/ChangeLog.omp       | 10 ++++++++++
 include/cuda/cuda.h         | 12 ++++++++++++
 libgomp/ChangeLog.omp       |  5 +++++
 libgomp/plugin/cuda-lib.def |  2 ++
 4 files changed, 29 insertions(+)

diff --git a/include/ChangeLog.omp b/include/ChangeLog.omp
index a460e639d22..261be6b587a 100644
--- a/include/ChangeLog.omp
+++ b/include/ChangeLog.omp
@@ -1,3 +1,13 @@
+2022-06-21  Kwok Cheung Yeung  <k...@codesourcery.com>
+
+       * cuda/cuda.h (CUdevice_attribute): Add definitions for
+       CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR and
+       CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR.
+       (CUmemAttach_flags): New.
+       (CUpointer_attribute): New.
+       (cuMemAllocManaged): New prototype.
+       (cuPointerGetAttribute): New prototype.
+
 2018-10-04  Cesar Philippidis  <ce...@codesourcery.com>
             Julian Brown  <jul...@codesourcery.com>
 
diff --git a/include/cuda/cuda.h b/include/cuda/cuda.h
index 0dca4b3a5c0..826db47ea52 100644
--- a/include/cuda/cuda.h
+++ b/include/cuda/cuda.h
@@ -83,9 +83,19 @@ typedef enum {
   CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39,
   CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40,
   CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING = 41,
+  CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR = 75,
+  CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR = 76,
   CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR = 82
 } CUdevice_attribute;
 
+typedef enum {
+  CU_MEM_ATTACH_GLOBAL = 0x1
+} CUmemAttach_flags;
+
+typedef enum {
+  CU_POINTER_ATTRIBUTE_IS_MANAGED = 8
+} CUpointer_attribute;
+
 enum {
   CU_EVENT_DEFAULT = 0,
   CU_EVENT_DISABLE_TIMING = 2
@@ -245,6 +255,7 @@ CUresult cuMemGetInfo (size_t *, size_t *);
 CUresult cuMemAlloc (CUdeviceptr *, size_t);
 #define cuMemAllocHost cuMemAllocHost_v2
 CUresult cuMemAllocHost (void **, size_t);
+CUresult cuMemAllocManaged(CUdeviceptr *, size_t, unsigned int);
 CUresult cuMemHostAlloc (void **, size_t, unsigned int);
 CUresult cuMemcpy (CUdeviceptr, CUdeviceptr, size_t);
 CUresult cuMemcpyPeer (CUdeviceptr, CUcontext, CUdeviceptr, CUcontext, size_t);
@@ -286,6 +297,7 @@ CUresult cuModuleLoadData (CUmodule *, const void *);
 CUresult cuModuleUnload (CUmodule);
 CUresult cuOccupancyMaxPotentialBlockSize(int *, int *, CUfunction,
                                          CUoccupancyB2DSize, size_t, int);
+CUresult cuPointerGetAttribute(void *, CUpointer_attribute, CUdeviceptr);
 typedef void (*CUstreamCallback)(CUstream, CUresult, void *);
 CUresult cuStreamAddCallback(CUstream, CUstreamCallback, void *, unsigned int);
 CUresult cuStreamCreate (CUstream *, unsigned);
diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp
index 928dee0287a..35b25404133 100644
--- a/libgomp/ChangeLog.omp
+++ b/libgomp/ChangeLog.omp
@@ -1,3 +1,8 @@
+2022-06-21  Kwok Cheung Yeung  <k...@codesourcery.com>
+
+       * plugin/cuda-lib.def (cuMemAllocManaged): Add new call.
+       (cuPointerGetAttribute): Likewise.
+
 2021-10-21  Tobias Burnus  <tob...@codesourcery.com>
 
        * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90: Compile
diff --git a/libgomp/plugin/cuda-lib.def b/libgomp/plugin/cuda-lib.def
index 007c6e0f4df..bd25375c26a 100644
--- a/libgomp/plugin/cuda-lib.def
+++ b/libgomp/plugin/cuda-lib.def
@@ -29,6 +29,7 @@ CUDA_ONE_CALL_MAYBE_NULL (cuLinkCreate_v2)
 CUDA_ONE_CALL (cuLinkDestroy)
 CUDA_ONE_CALL (cuMemAlloc)
 CUDA_ONE_CALL (cuMemAllocHost)
+CUDA_ONE_CALL (cuMemAllocManaged)
 CUDA_ONE_CALL (cuMemHostAlloc)
 CUDA_ONE_CALL (cuMemcpy)
 CUDA_ONE_CALL (cuMemcpyDtoDAsync)
@@ -50,6 +51,7 @@ CUDA_ONE_CALL (cuModuleLoad)
 CUDA_ONE_CALL (cuModuleLoadData)
 CUDA_ONE_CALL (cuModuleUnload)
 CUDA_ONE_CALL_MAYBE_NULL (cuOccupancyMaxPotentialBlockSize)
+CUDA_ONE_CALL (cuPointerGetAttribute)
 CUDA_ONE_CALL (cuStreamAddCallback)
 CUDA_ONE_CALL (cuStreamCreate)
 CUDA_ONE_CALL (cuStreamDestroy)

Reply via email to