[python-arrayfire] 204/250: Set the AF_PATH to one of known paths if none is found
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Mar 28 22:59:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/master
in repository python-arrayfire.
commit 48cf2b450d60056697bc086a86acabb349f31665
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Thu Dec 24 21:38:55 2015 -0500
Set the AF_PATH to one of known paths if none is found
This helps users avoiding setting the path
---
arrayfire/library.py | 46 +++++++++++++++++++++++++++-------------------
1 file changed, 27 insertions(+), 19 deletions(-)
diff --git a/arrayfire/library.py b/arrayfire/library.py
index 4854d93..91ba1af 100644
--- a/arrayfire/library.py
+++ b/arrayfire/library.py
@@ -322,18 +322,20 @@ def _setup():
platform_name = platform.system()
try:
- AF_SEARCH_PATH = os.environ['AF_PATH']
+ AF_PATH = os.environ['AF_PATH']
except:
- AF_SEARCH_PATH = None
+ AF_PATH = None
pass
+ AF_SEARCH_PATH = AF_PATH
+
try:
CUDA_PATH = os.environ['CUDA_PATH']
except:
CUDA_PATH= None
pass
- CUDA_EXISTS = False
+ CUDA_FOUND = False
assert(len(platform_name) >= 3)
if platform_name == 'Windows' or platform_name[:3] == 'CYG':
@@ -353,7 +355,7 @@ def _setup():
AF_SEARCH_PATH="C:/Program Files/ArrayFire/v3/"
if CUDA_PATH is not None:
- CUDA_EXISTS = os.path.isdir(CUDA_PATH + '/bin') and os.path.isdir(CUDA_PATH + '/nvvm/bin/')
+ CUDA_FOUND = os.path.isdir(CUDA_PATH + '/bin') and os.path.isdir(CUDA_PATH + '/nvvm/bin/')
elif platform_name == 'Darwin':
@@ -367,7 +369,7 @@ def _setup():
if CUDA_PATH is None:
CUDA_PATH='/usr/local/cuda/'
- CUDA_EXISTS = os.path.isdir(CUDA_PATH + '/lib') and os.path.isdir(CUDA_PATH + '/nvvm/lib')
+ CUDA_FOUND = os.path.isdir(CUDA_PATH + '/lib') and os.path.isdir(CUDA_PATH + '/nvvm/lib')
elif platform_name == 'Linux':
pre = 'lib'
@@ -379,20 +381,23 @@ def _setup():
if CUDA_PATH is None:
CUDA_PATH='/usr/local/cuda/'
- if platform.architecture()[0][:2] == 64:
- CUDA_EXISTS = os.path.isdir(CUDA_PATH + '/lib64') and os.path.isdir(CUDA_PATH + '/nvvm/lib64')
+ if platform.architecture()[0][:2] == '64':
+ CUDA_FOUND = os.path.isdir(CUDA_PATH + '/lib64') and os.path.isdir(CUDA_PATH + '/nvvm/lib64')
else:
- CUDA_EXISTS = os.path.isdir(CUDA_PATH + '/lib') and os.path.isdir(CUDA_PATH + '/nvvm/lib')
+ CUDA_FOUND = os.path.isdir(CUDA_PATH + '/lib') and os.path.isdir(CUDA_PATH + '/nvvm/lib')
else:
raise OSError(platform_name + ' not supported')
- return pre, post, AF_SEARCH_PATH, CUDA_EXISTS
+ if AF_PATH is None:
+ os.environ['AF_PATH'] = AF_SEARCH_PATH
+
+ return pre, post, AF_SEARCH_PATH, CUDA_FOUND
class _clibrary(object):
def __libname(self, name, head='af'):
libname = self.__pre + head + name + self.__post
- libname_full = self.AF_SEARCH_PATH + '/lib/' + libname
+ libname_full = self.AF_PATH + '/lib/' + libname
return (libname, libname_full)
def set_unsafe(self, name):
@@ -405,25 +410,27 @@ class _clibrary(object):
more_info_str = "Please look at https://github.com/arrayfire/arrayfire-python/wiki for more information."
- pre, post, AF_SEARCH_PATH, CUDA_EXISTS = _setup()
+ pre, post, AF_PATH, CUDA_FOUND = _setup()
self.__pre = pre
self.__post = post
- self.AF_SEARCH_PATH = AF_SEARCH_PATH
+ self.AF_PATH = AF_PATH
+ self.CUDA_FOUND = CUDA_FOUND
self.__name = None
- self.__clibs = {'cuda' : None,
- 'opencl' : None,
- 'cpu' : None,
- '' : None}
+ self.__clibs = {'cuda' : None,
+ 'opencl' : None,
+ 'cpu' : None,
+ 'unified' : None}
- self.__backend_map = {0 : 'default',
+ self.__backend_map = {0 : 'unified',
1 : 'cpu' ,
2 : 'cuda' ,
4 : 'opencl' }
self.__backend_name_map = {'default' : 0,
+ 'unified' : 0,
'cpu' : 1,
'cuda' : 2,
'opencl' : 4}
@@ -442,8 +449,9 @@ class _clibrary(object):
for libname in libnames:
try:
ct.cdll.LoadLibrary(libname)
- self.__clibs[name] = ct.CDLL(libname)
- self.__name = name
+ __name = 'unified' if name == '' else name
+ self.__clibs[__name] = ct.CDLL(libname)
+ self.__name = __name
break;
except:
pass
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/python-arrayfire.git
More information about the debian-science-commits
mailing list