提交 13d94593 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Check if gxx has openmp before setting compile flags

上级 bf8f1389
...@@ -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)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论