提交 09f534d1 authored 作者: nouiz's avatar nouiz

Merge pull request #1217 from lamblin/anaconda

Changes to make Theano work on Windows with Anaconda
...@@ -764,6 +764,7 @@ class OpenMPOp(Op): ...@@ -764,6 +764,7 @@ class OpenMPOp(Op):
self.openmp = openmp self.openmp = openmp
def c_compile_args(self): def c_compile_args(self):
self.update_self_openmp()
if self.openmp: if self.openmp:
return ['-fopenmp'] return ['-fopenmp']
return [] return []
...@@ -808,7 +809,10 @@ class OpenMPOp(Op): ...@@ -808,7 +809,10 @@ class OpenMPOp(Op):
return False return False
return default_openmp return default_openmp
def make_thunk(self, node, storage_map, compute_map, no_recycling): def update_self_openmp(self):
"""
Make sure self.openmp is not True if there is no support in gxx
"""
if self.openmp: if self.openmp:
if OpenMPOp.gxx_support_openmp is None: if OpenMPOp.gxx_support_openmp is None:
OpenMPOp.gxx_support_openmp = OpenMPOp.test_gxx_support() OpenMPOp.gxx_support_openmp = OpenMPOp.test_gxx_support()
...@@ -819,9 +823,13 @@ class OpenMPOp(Op): ...@@ -819,9 +823,13 @@ class OpenMPOp(Op):
" know this happen with some version of the EPD mingw" " know this happen with some version of the EPD mingw"
" compiler. We disable openmp everywhere in Theano." " compiler. We disable openmp everywhere in Theano."
" To remove this warning set the theano flags `openmp`" " To remove this warning set the theano flags `openmp`"
" to False.") " to False.",
stacklevel=3)
if OpenMPOp.gxx_support_openmp is False: if OpenMPOp.gxx_support_openmp is False:
self.openmp = False self.openmp = False
theano.config.openmp = False theano.config.openmp = False
def make_thunk(self, node, storage_map, compute_map, no_recycling):
self.update_self_openmp()
return super(OpenMPOp, self).make_thunk(node, storage_map, return super(OpenMPOp, self).make_thunk(node, storage_map,
compute_map, no_recycling) compute_map, no_recycling)
...@@ -13,5 +13,9 @@ def call_subprocess_Popen(command, **params): ...@@ -13,5 +13,9 @@ def call_subprocess_Popen(command, **params):
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
except AttributeError: except AttributeError:
startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW
# Under Windows 7 64-bits, Anaconda's g++ is not found unless
# specifying "shell=True".
params['shell'] = True
proc = subprocess.Popen(command, startupinfo=startupinfo, **params) proc = subprocess.Popen(command, startupinfo=startupinfo, **params)
return proc return proc
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论