]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgomp, nvptx: Update bundled CUDA header file
authorKwok Cheung Yeung <kcy@codesourcery.com>
Wed, 22 Jun 2022 14:43:05 +0000 (07:43 -0700)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Tue, 28 Jun 2022 20:49:40 +0000 (13:49 -0700)
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  <kcy@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.

include/ChangeLog.omp
include/cuda/cuda.h
libgomp/ChangeLog.omp
libgomp/plugin/cuda-lib.def

index e36407a914715fbcb6efa076ef90a8cb107954b6..4c63f1107eefe87dd47bbdbe1ce88ffbd3eb4dab 100644 (file)
@@ -1,3 +1,13 @@
+2022-06-21  Kwok Cheung Yeung  <kcy@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.
+
 2021-02-02  Chung-Lin Tang  <cltang@codesourcery.com>
 
        * gomp-constants.h (GOMP_REQUIRES_UNIFIED_ADDRESS): New symbol.
index 5c813ad2cf814be6823c0e854b47c10f0b4a0812..bbd9fd21b96562fdc7d28776e63f1813a32fc946 100644 (file)
@@ -73,9 +73,19 @@ typedef enum {
   CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS = 31,
   CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_MULTIPROCESSOR = 39,
   CU_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT = 40,
+  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
@@ -156,6 +166,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 cuMemcpy (CUdeviceptr, CUdeviceptr, size_t);
 #define cuMemcpyDtoDAsync cuMemcpyDtoDAsync_v2
 CUresult cuMemcpyDtoDAsync (CUdeviceptr, CUdeviceptr, size_t, CUstream);
@@ -182,6 +193,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);
index d52cf78c82199d9b64a1a00453642149f9ffe00d..4c1b878ccbb616aef342ffafdf2064e004af3ecd 100644 (file)
@@ -1,3 +1,8 @@
+2022-06-21  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * plugin/cuda-lib.def (cuMemAllocManaged): Add new call.
+       (cuPointerGetAttribute): Likewise.
+
 2021-11-16  Frederik Harwath  <frederik@codesourcery.com>
 
        * testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c: Adjust.
index cd91b39b1d2721ebf131813bf78b0aa0c3094fc3..b6d03290f352efc20e5b06e193bdf93ef7bab9fc 100644 (file)
@@ -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 (cuMemcpy)
 CUDA_ONE_CALL (cuMemcpyDtoDAsync)
 CUDA_ONE_CALL (cuMemcpyDtoH)
@@ -46,6 +47,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)