LAPACK_DIR = /opt/intel/mkl/lib/intel64 LAPACK_LIB = -L$(LAPACK_DIR) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread CUDA_DIR = /usr/local/cuda CUDA_LIB = -L$(CUDA_DIR)/lib64 -lcublas -lcudart NVCC = nvcc NVCC_FLAGS = -O3 -Xptxas -v -m 64 -arch compute_20 CXX = icc CXX_FLAGS = -openmp -Wall -O3 -I$(CUDA_DIR)/include FC = ifort FC_FLAGS = -openmp -O3 all: openmp gpu openmp: omp_hello omp_workshare1 omp_dgemm omp_dgemm_fortran gpu: gpu_multd gpu_dgemm %: %.o $(CXX) $(CUDA_LIB) $(LAPACK_LIB) -lrt $^ -o $@ omp_dgemm_fortran: omp_dgemm_fortran.o $(FC) $(LAPACK_LIB) $^ -o $@ %.o: %.c++ $(CXX) $(CXX_FLAGS) -c $< %.o: %.f90 $(FC) $(FC_FLAGS) -c $< %.o: %.cu $(NVCC) $(NVCC_FLAGS) -c $< clean: rm -f omp_hello omp_workshare1 omp_dgemm omp_dgemm_fortran gpu_multd gpu_dgemm *.o