summaryrefslogtreecommitdiff
path: root/mnv/runtime/syntax/cuda.mnv
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/syntax/cuda.mnv')
-rw-r--r--mnv/runtime/syntax/cuda.mnv53
1 files changed, 53 insertions, 0 deletions
diff --git a/mnv/runtime/syntax/cuda.mnv b/mnv/runtime/syntax/cuda.mnv
new file mode 100644
index 0000000000..69d6fc98c4
--- /dev/null
+++ b/mnv/runtime/syntax/cuda.mnv
@@ -0,0 +1,53 @@
+" MNV syntax file
+" Language: CUDA (NVIDIA Compute Unified Device Architecture)
+" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
+" Last Change: 2024 Apr 04
+" Contributor: jiangyinzuo
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+" Read the C++ syntax to start with
+runtime! syntax/cpp.mnv
+
+" CUDA extentions.
+" Reference: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-language-extensions
+syn keyword cudaStorageClass __device__ __global__ __host__ __managed__
+syn keyword cudaStorageClass __constant__ __grid_constant__ __shared__
+syn keyword cudaStorageClass __inline__ __noinline__ __forceinline__ __inline_hint__
+syn keyword cudaStorageClass __align__ __thread__ __restrict__
+"syn keyword cudaStorageClass __import__ __export__ __location__
+syn keyword cudaType char1 char2 char3 char4
+syn keyword cudaType uchar1 uchar2 uchar3 uchar4
+syn keyword cudaType short1 short2 short3 short4
+syn keyword cudaType ushort1 ushort2 ushort3 ushort4
+syn keyword cudaType int1 int2 int3 int4
+syn keyword cudaType uint1 uint2 uint3 uint4
+syn keyword cudaType long1 long2 long3 long4
+syn keyword cudaType ulong1 ulong2 ulong3 ulong4
+syn keyword cudaType longlong1 longlong2 longlong3 longlong4
+syn keyword cudaType ulonglong1 ulonglong2 ulonglong3 ulonglong4
+syn keyword cudaType float1 float2 float3 float4
+syn keyword cudaType double1 double2 double3 double4
+syn keyword cudaType dim3 texture textureReference
+syn keyword cudaType cudaError_t cudaDeviceProp cudaMemcpyKind
+syn keyword cudaType cudaArray cudaChannelFormatKind
+syn keyword cudaType cudaChannelFormatDesc cudaTextureAddressMode
+syn keyword cudaType cudaTextureFilterMode cudaTextureReadMode
+syn keyword cudaVariable gridDim blockIdx blockDim threadIdx warpSize
+syn keyword cudaConstant __CUDA_ARCH__
+syn keyword cudaConstant __DEVICE_EMULATION__
+" There are too many CUDA enumeration constants. We only define a subset of commonly used constants.
+" Reference: https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html
+syn keyword cudaConstant cudaSuccess
+
+hi def link cudaStorageClass StorageClass
+hi def link cudaType Type
+hi def link cudaVariable Identifier
+hi def link cudaConstant Constant
+
+let b:current_syntax = "cuda"
+
+" mnv: ts=8