You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2016/02/23 07:20:41 UTC

[4/4] incubator-singa git commit: SINGA-143 The compilation cannot detect libsingagpu.so file

SINGA-143 The compilation cannot detect libsingagpu.so file

Add LIBTOOL environment parameters in configure.ac.
Edit some parameters in Makefile.am.


Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/8d4953a2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/8d4953a2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/8d4953a2

Branch: refs/heads/master
Commit: 8d4953a2a601bc1a6ae78f44f65fbbe2967687aa
Parents: c1444b7
Author: xiezl <xi...@comp.nus.edu.sg>
Authored: Mon Feb 1 13:57:23 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Mon Feb 1 14:06:31 2016 +0800

----------------------------------------------------------------------
 Makefile.am                 |   6 +-
 configure.ac                |   6 +-
 tool/python/singa/driver.py | 122 ---------------------------------------
 3 files changed, 8 insertions(+), 126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8d4953a2/Makefile.am
----------------------------------------------------------------------
diff --git a/Makefile.am b/Makefile.am
index dd97844..55c45e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,6 +2,7 @@ ACLOCAL_AMFLAGS = -I config
 AUTOMAKE_OPTIONS = foreign subdir-objects
 
 #AM_CPPFLAGS = -I$(top_srcdir)/src
+#AM_LDFLAGS = $(LD_FLAGS) 
 
 MSHADOW_FLAGS = -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_MKL=0
 DEFAULT_FLAGS = -Wall -pthread -fPIC -std=c++11 -Wno-unknown-pragmas \
@@ -179,7 +180,7 @@ endif
 if DCUDA
 libsinga_la_SOURCES += $(CUDA_SRCS) $(CUDA_HDRS)
 libsinga_la_CXXFLAGS += $(CUDA_CFLAGS)
-libsinga_la_LDFLAGS += $(CUDA_LDFLAGS) $(CUDA_LIBS) -lsingagpu
+libsinga_la_LDFLAGS += $(CUDA_LDFLAGS) $(CUDA_LIBS) -L./ -lsingagpu -Wl,-rpath=.
 libsinga_la_LIBADD = libsingagpu.so
 endif
 
@@ -298,6 +299,7 @@ clean-local:
 	rm -rf src/utils/math_kernel.o
 	rm -rf rat_check
 	rm -rf tool/python/pb2
+	rm -rf libsingagpu.so
 
 # Add scrips for py driver installation
 all-local:
@@ -325,7 +327,7 @@ rat:
 
 # Generate gpu libs for singa
 libsingagpu.so: $(CUDA_OBJS)
-	$(NVCC)  -o libsingagpu.so -shared -Xcompiler -fPIC $(CUDA_OBJS)  $(CUDA_CFLAGS) $(CUDA_LDFLAGS) $(CUDA_LIBS) -I$(top_srcdir)/include -std=c++11 -G
+	$(NVCC) -o libsingagpu.so -shared -Xcompiler -fPIC $(CUDA_OBJS)  $(CUDA_CFLAGS) $(CUDA_LDFLAGS) $(CUDA_LIBS) -I$(top_srcdir)/include -std=c++11 -G
 
 # Create python class files
 install-pyLTLIBRARIES: $(py_LTLIBRARIES)

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8d4953a2/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index c7f1877..41ff510 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,11 +68,12 @@ if test x"$cudaval" = x"yes"; then
     CUDA_LDFLAGS="-L$cuda_prefix/lib64 -L$cuda_prefix/lib"
     CUDA_LIBS="-lcublas -lcudart -lcurand"
     LIBS="$LIBS $CUDA_LIBS"
-    LDFLAGS="$LDFLAGS $CUDA_LDFLAGS"
+    LDFLAGS="$LDFLAGS $CUDA_LDFLAGS -L./"
+    LIBTOOL='LD_LIBRARY_PATH=$(PWD) $(SHELL) $(top_builddir)/libtool'
     NVCC="nvcc"
   DEBUG="-DUSE_GPU"
     AC_DEFINE(DCUDA,[1],[Defined if CUDA should be used])
-  AC_CHECK_LIB([cuda], [main], [], [
+  AC_CHECK_LIB([cublas], [main], [], [
      AC_MSG_ERROR([unable to find cuda library])
     ])
   AC_CHECK_LIB([cudart], [main], [], [
@@ -88,6 +89,7 @@ else
     NVCC=""
     DEBUG="-DCPU_ONLY"
 fi
+AC_SUBST(LIBTOOL)
 AC_SUBST(NVCC)
 AC_SUBST(CUDA_LDFLAGS)
 AC_SUBST(CUDA_LIBS)

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/8d4953a2/tool/python/singa/driver.py
----------------------------------------------------------------------
diff --git a/tool/python/singa/driver.py b/tool/python/singa/driver.py
deleted file mode 100644
index d203923..0000000
--- a/tool/python/singa/driver.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# This file was automatically generated by SWIG (http://www.swig.org).
-# Version 2.0.11
-#
-# Do not make changes to this file unless you know what you are doing--modify
-# the SWIG interface file instead.
-
-
-
-
-
-from sys import version_info
-if version_info >= (2,6,0):
-    def swig_import_helper():
-        from os.path import dirname
-        import imp
-        fp = None
-        try:
-            fp, pathname, description = imp.find_module('_driver', [dirname(__file__)])
-        except ImportError:
-            import _driver
-            return _driver
-        if fp is not None:
-            try:
-                _mod = imp.load_module('_driver', fp, pathname, description)
-            finally:
-                fp.close()
-            return _mod
-    _driver = swig_import_helper()
-    del swig_import_helper
-else:
-    import _driver
-del version_info
-try:
-    _swig_property = property
-except NameError:
-    pass # Python < 2.2 doesn't have 'property'.
-def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
-    if (name == "thisown"): return self.this.own(value)
-    if (name == "this"):
-        if type(value).__name__ == 'SwigPyObject':
-            self.__dict__[name] = value
-            return
-    method = class_type.__swig_setmethods__.get(name,None)
-    if method: return method(self,value)
-    if (not static):
-        self.__dict__[name] = value
-    else:
-        raise AttributeError("You cannot add attributes to %s" % self)
-
-def _swig_setattr(self,class_type,name,value):
-    return _swig_setattr_nondynamic(self,class_type,name,value,0)
-
-def _swig_getattr(self,class_type,name):
-    if (name == "thisown"): return self.this.own()
-    method = class_type.__swig_getmethods__.get(name,None)
-    if method: return method(self)
-    raise AttributeError(name)
-
-def _swig_repr(self):
-    try: strthis = "proxy of " + self.this.__repr__()
-    except: strthis = ""
-    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
-
-try:
-    _object = object
-    _newclass = 1
-except AttributeError:
-    class _object : pass
-    _newclass = 0
-
-
-class SwigPyIterator(_object):
-    __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
-    __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)
-    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract")
-    __repr__ = _swig_repr
-    __swig_destroy__ = _driver.delete_SwigPyIterator
-    __del__ = lambda self : None;
-    def value(self): return _driver.SwigPyIterator_value(self)
-    def incr(self, n=1): return _driver.SwigPyIterator_incr(self, n)
-    def decr(self, n=1): return _driver.SwigPyIterator_decr(self, n)
-    def distance(self, *args): return _driver.SwigPyIterator_distance(self, *args)
-    def equal(self, *args): return _driver.SwigPyIterator_equal(self, *args)
-    def copy(self): return _driver.SwigPyIterator_copy(self)
-    def next(self): return _driver.SwigPyIterator_next(self)
-    def __next__(self): return _driver.SwigPyIterator___next__(self)
-    def previous(self): return _driver.SwigPyIterator_previous(self)
-    def advance(self, *args): return _driver.SwigPyIterator_advance(self, *args)
-    def __eq__(self, *args): return _driver.SwigPyIterator___eq__(self, *args)
-    def __ne__(self, *args): return _driver.SwigPyIterator___ne__(self, *args)
-    def __iadd__(self, *args): return _driver.SwigPyIterator___iadd__(self, *args)
-    def __isub__(self, *args): return _driver.SwigPyIterator___isub__(self, *args)
-    def __add__(self, *args): return _driver.SwigPyIterator___add__(self, *args)
-    def __sub__(self, *args): return _driver.SwigPyIterator___sub__(self, *args)
-    def __iter__(self): return self
-SwigPyIterator_swigregister = _driver.SwigPyIterator_swigregister
-SwigPyIterator_swigregister(SwigPyIterator)
-
-class Driver(_object):
-    __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, Driver, name, value)
-    __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, Driver, name)
-    __repr__ = _swig_repr
-    def Train(self, *args): return _driver.Driver_Train(self, *args)
-    def Init(self, *args): return _driver.Driver_Init(self, *args)
-    def InitLog(self, *args): return _driver.Driver_InitLog(self, *args)
-    def Test(self, *args): return _driver.Driver_Test(self, *args)
-    def __init__(self): 
-        this = _driver.new_Driver()
-        try: self.this.append(this)
-        except: self.this = this
-    __swig_destroy__ = _driver.delete_Driver
-    __del__ = lambda self : None;
-Driver_swigregister = _driver.Driver_swigregister
-Driver_swigregister(Driver)
-
-# This file is compatible with both classic and new-style classes.
-
-