diff --git a/Makefile b/Makefile
old mode 100644
new mode 100755
index afdd14c8ea75753987aa75bd1d6aadd9eef2dd3e..f65a80eeaa17e341d18c35f65ecf586c6b5a6746
--- a/Makefile
+++ b/Makefile
@@ -56,9 +56,9 @@ OPT += -DPHASE_ON
 #OPT += -DNORMALIZE_UVW
 
 # Gridding kernel: GAUSS, GAUSS_HI_PRECISION, KAISERBESSEL
-#OPT += -DGAUSS_HI_PRECISION
+OPT += -DGAUSS_HI_PRECISION
 
-OPT += -DGAUSS
+#OPT += -DGAUSS
 
 #OPT += -DKAISERBESSEL
 
@@ -96,6 +96,13 @@ OPT += -DGAUSS
 
 # ========================================================
 
+# ========================================================
+#FULL GPU SUPPORT!!!
+OPT += -DFULL_NVIDIA
+ifeq (FULL_NVIDIA,$(findstring FULL_NVIDIA,$(OPT)))
+OPT += -DCUDACC -DNCCL_REDUCE -DCUFFTMP
+endif
+# =======================================================
 
 ifeq (USE_OMP,$(findstring USE_OMP,$(OPT)))
 FLAGS=$(OPTIMIZE)
@@ -311,7 +318,11 @@ ifeq (CUDACC,$(findstring CUDACC,$(OPT)))
 EXEC_EXT := $(EXEC_EXT)_acc-fft
 LINKER=$(MPIC++)
 FLAGS=$(OPTIMIZE)
+ifeq (NCCL_REDUCE,$(findstring NCCL_REDUCE,$(OPT)))
+LIBS=$(NVLIB_2) $(NVLIB_3)
+else
 LIBS=$(NVLIB_2)
+endif
 $(OBJ_ACC_CUFFTMP): $(DEPS_ACC_CUFFTMP)
 	$(NVCC) $(OPT_NVCC) $(OPT) -c $^ $(LIBS)
 OBJ += $(OBJ_ACC_CUFFTMP)