Browse Source

preliminary support for OpenCL (https://trac.osgeo.org/grass/ticket/1446)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55949 15284696-431f-4ddb-bdfa-cd5b030d7da7
Hamish Bowman 12 năm trước cách đây
mục cha
commit
0b601796c7

+ 40 - 0
configure.in

@@ -265,6 +265,7 @@ LOC_ARG_WITH(opendwg, openDWG, no)
 LOC_ARG_WITH(regex, regex)
 LOC_ARG_WITH(regex, regex)
 LOC_ARG_WITH(pthread, POSIX threads, no)
 LOC_ARG_WITH(pthread, POSIX threads, no)
 LOC_ARG_WITH(openmp, OpenMP, no)
 LOC_ARG_WITH(openmp, OpenMP, no)
+LOC_ARG_WITH(opencl, OpenCL, no)
 
 
 AC_ARG_WITH(gdal,
 AC_ARG_WITH(gdal,
 [  --with-gdal[=path/gdal-config]
 [  --with-gdal[=path/gdal-config]
@@ -366,6 +367,9 @@ LOC_ARG_WITH_LIB(pthread, POSIX threads)
 LOC_ARG_WITH_INC(openmp, OpenMP)
 LOC_ARG_WITH_INC(openmp, OpenMP)
 LOC_ARG_WITH_LIB(openmp, OpenMP)
 LOC_ARG_WITH_LIB(openmp, OpenMP)
 
 
+LOC_ARG_WITH_INC(opencl, OpenCL)
+LOC_ARG_WITH_LIB(opencl, OpenCL)
+
 # Put this early on so CPPFLAGS and LDFLAGS have any additional dirs
 # Put this early on so CPPFLAGS and LDFLAGS have any additional dirs
 
 
 # With includes option
 # With includes option
@@ -1748,6 +1752,41 @@ AC_SUBST(USE_OPENMP)
 
 
 # Done checking OpenMP
 # Done checking OpenMP
 
 
+# Enable OpenCL option
+
+LOC_CHECK_USE(opencl,OpenCL,USE_OPENCL)
+
+OCLINCPATH=
+OCLLIBPATH=
+OCLLIB=
+
+if test -n "$USE_OPENCL"; then
+
+# With OpenCL includes directory
+
+LOC_CHECK_INC_PATH(opencl,OpenCL,OCLINCPATH)
+LOC_CHECK_INCLUDES(CL/cl.h,OpenCL,$OCLINCPATH)
+
+# With OpenCL library directory
+
+LOC_CHECK_LIB_PATH(OpenCL,OpenCL,OCLLIBPATH)
+# FIXME: -L${OCLLIBPATH} is not being added to the gcc conftest.c command. why not? (trac #1943?)
+LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCLfunctions,$OCLLIBPATH,OCLLIB,,,)
+
+# expanded symbol check: yes? no?
+#LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL functions,OCLLIB,,,,,[
+#LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,)
+#])
+
+fi # $USE_OPENCL
+
+AC_SUBST(OCLINCPATH)
+AC_SUBST(OCLLIBPATH)
+AC_SUBST(OCLLIB)
+AC_SUBST(USE_OPENCL)
+
+# Done checking OpenCL
+
 # Enable LFS (from cdr-tools)
 # Enable LFS (from cdr-tools)
 dnl Check for large file support
 dnl Check for large file support
 dnl Do this last to make sure that no large file definition
 dnl Do this last to make sure that no large file definition
@@ -1910,6 +1949,7 @@ LOC_MSG_USE(MySQL support,USE_MYSQL)
 LOC_MSG_USE(NLS support,USE_NLS)
 LOC_MSG_USE(NLS support,USE_NLS)
 LOC_MSG_USE(ODBC support,USE_ODBC)
 LOC_MSG_USE(ODBC support,USE_ODBC)
 LOC_MSG_USE(OGR support,USE_OGR)
 LOC_MSG_USE(OGR support,USE_OGR)
+LOC_MSG_USE(OpenCL support,USE_OPENCL)
 LOC_MSG_USE(OpenGL support,USE_OPENGL)
 LOC_MSG_USE(OpenGL support,USE_OPENGL)
 LOC_MSG_USE(OpenMP support,USE_OPENMP)
 LOC_MSG_USE(OpenMP support,USE_OPENMP)
 LOC_MSG_USE(PNG support,USE_PNG)
 LOC_MSG_USE(PNG support,USE_PNG)

+ 19 - 13
include/Make/Platform.make.in

@@ -94,7 +94,7 @@ ZLIB                = @ZLIB@
 ZLIBINCPATH         = @ZLIBINCPATH@
 ZLIBINCPATH         = @ZLIBINCPATH@
 ZLIBLIBPATH         = @ZLIBLIBPATH@
 ZLIBLIBPATH         = @ZLIBLIBPATH@
 
 
-DBMIEXTRALIB         = @DBMIEXTRALIB@
+DBMIEXTRALIB        = @DBMIEXTRALIB@
 
 
 #readline
 #readline
 READLINEINCPATH     = @READLINEINCPATH@
 READLINEINCPATH     = @READLINEINCPATH@
@@ -115,14 +115,14 @@ MYSQLLIB            = @MYSQLLIB@
 MYSQLDLIB           = @MYSQLDLIB@
 MYSQLDLIB           = @MYSQLDLIB@
 
 
 #SQLite:
 #SQLite:
-SQLITEINCPATH        = @SQLITEINCPATH@
-SQLITELIBPATH        = @SQLITELIBPATH@
-SQLITELIB            = @SQLITELIB@
+SQLITEINCPATH       = @SQLITEINCPATH@
+SQLITELIBPATH       = @SQLITELIBPATH@
+SQLITELIB           = @SQLITELIB@
 
 
 #FFMPEG
 #FFMPEG
-FFMPEGINCPATH        = @FFMPEGINCPATH@
-FFMPEGLIBPATH        = @FFMPEGLIBPATH@
-FFMPEGLIB            = @FFMPEGLIB@
+FFMPEGINCPATH       = @FFMPEGINCPATH@
+FFMPEGLIBPATH       = @FFMPEGLIBPATH@
+FFMPEGLIB           = @FFMPEGLIB@
 
 
 #ODBC:
 #ODBC:
 ODBCINC             = @ODBCINC@
 ODBCINC             = @ODBCINC@
@@ -152,9 +152,9 @@ FFTWLIB             = @FFTWLIB@
 
 
 #LAPACK/BLAS stuff for gmath lib:
 #LAPACK/BLAS stuff for gmath lib:
 BLASLIB             = @BLASLIB@
 BLASLIB             = @BLASLIB@
-BLASINC				= @BLASINC@
+BLASINC             = @BLASINC@
 LAPACKLIB           = @LAPACKLIB@
 LAPACKLIB           = @LAPACKLIB@
-LAPACKINC			= @LAPACKINC@
+LAPACKINC           = @LAPACKINC@
 
 
 #GDAL/OGR
 #GDAL/OGR
 GDALLIBS            = @GDAL_LIBS@
 GDALLIBS            = @GDAL_LIBS@
@@ -163,7 +163,7 @@ USE_GDAL            = @USE_GDAL@
 USE_OGR             = @USE_OGR@
 USE_OGR             = @USE_OGR@
 
 
 #NetCDF
 #NetCDF
-NETCDFLIBS           = @NETCDF_LIBS@
+NETCDFLIBS          = @NETCDF_LIBS@
 NETCDFCFLAGS        = @NETCDF_CFLAGS@    
 NETCDFCFLAGS        = @NETCDF_CFLAGS@    
 USE_NETCDF          = @USE_NETCDF@
 USE_NETCDF          = @USE_NETCDF@
 
 
@@ -231,6 +231,12 @@ OMPLIB              = @OMPLIB@
 OMPCFLAGS           = @OMPCFLAGS@
 OMPCFLAGS           = @OMPCFLAGS@
 USE_OPENMP          = @USE_OPENMP@
 USE_OPENMP          = @USE_OPENMP@
 
 
+#OpenCL
+OCLINCPATH          = @OCLINCPATH@
+OCLLIBPATH          = @OCLLIBPATH@
+OCLLIB              = @OCLLIB@
+USE_OPENCL          = @USE_OPENCL@
+
 #i18N
 #i18N
 HAVE_NLS            = @HAVE_NLS@
 HAVE_NLS            = @HAVE_NLS@
 
 
@@ -242,8 +248,8 @@ HAVE_SOCKET         = @HAVE_SOCKET@
 
 
 MINGW		    = @MINGW32@
 MINGW		    = @MINGW32@
 MACOSX_APP	    = @MACOSX_APP@
 MACOSX_APP	    = @MACOSX_APP@
-MACOSX_ARCHS    = @MACOSX_ARCHS@
-MACOSX_SDK      = @MACOSX_SDK@
+MACOSX_ARCHS        = @MACOSX_ARCHS@
+MACOSX_SDK          = @MACOSX_SDK@
 
 
 # Cross compilation
 # Cross compilation
-CROSS_COMPILING = @CROSS_COMPILING@ 
+CROSS_COMPILING     = @CROSS_COMPILING@ 

+ 3 - 1
raster/r.sun/Makefile

@@ -4,7 +4,9 @@ PGM = r.sun
 
 
 LIBES = $(GPROJLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB) $(PROJLIB)
 LIBES = $(GPROJLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB) $(PROJLIB)
 DEPENDENCIES = $(GPROJDEP) $(RASTERDEP) $(GISDEP)
 DEPENDENCIES = $(GPROJDEP) $(RASTERDEP) $(GISDEP)
-EXTRA_INC = $(PROJINC)
+EXTRA_INC = $(PROJINC) $(OCLINCPATH)
+EXTRA_LIBS = $(OCLLIB)
+#needed?  LIBES += $(OCLLIBPATH)  or  EXTRA_LDFLAGS = $(OCLLIBPATH)
 
 
 include $(MODULE_TOPDIR)/include/Make/Module.make
 include $(MODULE_TOPDIR)/include/Make/Module.make
 
 

+ 4 - 0
raster/r.sun/main.c

@@ -33,6 +33,10 @@ email: hofierka@geomodel.sk,marcel.suri@jrc.it,suri@geomodel.sk Thomas.Huld@jrc.
 #include <stdio.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdlib.h>
 #include <math.h>
 #include <math.h>
+#ifdef USE_OPENCL
+#include <CL/cl.h>
+#endif
+
 #include <grass/gis.h>
 #include <grass/gis.h>
 #include <grass/raster.h>
 #include <grass/raster.h>
 #include <grass/gprojects.h>
 #include <grass/gprojects.h>