diff --git a/lib/gpu/.gitignore b/lib/gpu/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..228a9f7731efcf3ad4344a09126311b7fc2bb538
--- /dev/null
+++ b/lib/gpu/.gitignore
@@ -0,0 +1,4 @@
+obj
+obj_ocl
+ocl_get_devices
+nvc_get_devices
diff --git a/lib/gpu/Makefile.shannon b/lib/gpu/Makefile.shannon
new file mode 100644
index 0000000000000000000000000000000000000000..2ddb0d1f0455ad88bc2279a4e82823487e10ea88
--- /dev/null
+++ b/lib/gpu/Makefile.shannon
@@ -0,0 +1,50 @@
+# /* ----------------------------------------------------------------------   
+#  Generic Linux Makefile for CUDA 
+#     - Change CUDA_ARCH for your GPU
+# ------------------------------------------------------------------------- */
+
+# which file will be copied to Makefile.lammps
+
+EXTRAMAKE = Makefile.lammps.standard
+
+CUDA_HOME = ${CUDA_ROOT}
+NVCC = nvcc
+
+# Kepler CUDA
+CUDA_ARCH = -arch=sm_35
+# Tesla CUDA
+#CUDA_ARCH = -arch=sm_21
+# newer CUDA
+#CUDA_ARCH = -arch=sm_13
+# older CUDA
+#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE
+
+# this setting should match LAMMPS Makefile
+# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL
+
+LMP_INC = -DLAMMPS_SMALLBIG
+
+# precision for GPU calculations
+# -D_SINGLE_SINGLE  # Single precision for all calculations
+# -D_DOUBLE_DOUBLE  # Double precision for all calculations
+# -D_SINGLE_DOUBLE  # Accumulation of forces, etc. in double
+
+CUDA_PRECISION = -D_DOUBLE_DOUBLE
+
+CUDA_INCLUDE = -I$(CUDA_HOME)/include
+CUDA_LIB = -L$(CUDA_HOME)/lib64
+CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math
+
+CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK
+CUDR_OPTS = -O2 # -xHost -no-prec-div -ansi-alias
+
+BIN_DIR = ./
+OBJ_DIR = ./
+LIB_DIR = ./
+AR = ar
+BSH = /bin/sh
+
+CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini
+
+include Nvidia.makefile
+