summaryrefslogtreecommitdiff
path: root/tests/projects/cuda/console/src
diff options
context:
space:
mode:
authorruki <[email protected]>2018-04-28 00:47:39 +0800
committerruki <[email protected]>2018-04-27 22:45:56 +0800
commit119dd6ff5786ef7a390b98b0558554029113f0dd (patch)
tree2fa5d1196a8951c0f8e4ad67c8b443b47280a0ab /tests/projects/cuda/console/src
parent7d486e88c2b3301449974e0e97168bc0f0fd6c64 (diff)
add wdk tests
Diffstat (limited to 'tests/projects/cuda/console/src')
-rw-r--r--tests/projects/cuda/console/src/main.cu61
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/projects/cuda/console/src/main.cu b/tests/projects/cuda/console/src/main.cu
new file mode 100644
index 000000000..a02371a2d
--- /dev/null
+++ b/tests/projects/cuda/console/src/main.cu
@@ -0,0 +1,61 @@
+/*
+ * Copyright 1993-2015 NVIDIA Corporation. All rights reserved.
+ *
+ * Please refer to the NVIDIA end user license agreement (EULA) associated
+ * with this source code for terms and conditions that govern your use of
+ * this software. Any use, reproduction, disclosure, or distribution of
+ * this software and related documentation outside the terms of the EULA
+ * is strictly prohibited.
+ *
+ */
+
+
+// System includes
+#include <stdio.h>
+#include <assert.h>
+
+// CUDA runtime
+#include <cuda_runtime.h>
+
+// helper functions and utilities to work with CUDA
+#include <helper_functions.h>
+#include <helper_cuda.h>
+
+#ifndef MAX
+#define MAX(a,b) (a > b ? a : b)
+#endif
+
+__global__ void testKernel(int val)
+{
+ printf("[%d, %d]:\t\tValue is:%d\n",\
+ blockIdx.y*gridDim.x+blockIdx.x,\
+ threadIdx.z*blockDim.x*blockDim.y+threadIdx.y*blockDim.x+threadIdx.x,\
+ val);
+}
+
+int main(int argc, char **argv)
+{
+ int devID;
+ cudaDeviceProp props;
+
+ // This will pick the best possible CUDA capable device
+ devID = findCudaDevice(argc, (const char **)argv);
+
+ //Get GPU information
+ checkCudaErrors(cudaGetDevice(&devID));
+ checkCudaErrors(cudaGetDeviceProperties(&props, devID));
+ printf("Device %d: \"%s\" with Compute %d.%d capability\n",
+ devID, props.name, props.major, props.minor);
+
+ printf("printf() is called. Output:\n\n");
+
+ //Kernel configuration, where a two-dimensional grid and
+ //three-dimensional blocks are configured.
+ dim3 dimGrid(2, 2);
+ dim3 dimBlock(2, 2, 2);
+ testKernel<<<dimGrid, dimBlock>>>(10);
+ cudaDeviceSynchronize();
+
+ return EXIT_SUCCESS;
+}
+