提交 68bec4a1 authored 作者: Frederic's avatar Frederic

remove the vm_lazy linker string and add the flag vm.lazy.

上级 d03ed942
...@@ -67,7 +67,6 @@ predefined_linkers = { ...@@ -67,7 +67,6 @@ predefined_linkers = {
'c|py_nogc': gof.OpWiseCLinker(allow_gc=False), 'c|py_nogc': gof.OpWiseCLinker(allow_gc=False),
'c&py': gof.DualLinker(checker=check_equal), 'c&py': gof.DualLinker(checker=check_equal),
'vm': gof.vm.VM_Linker(use_cloop=False), 'vm': gof.vm.VM_Linker(use_cloop=False),
'vm_lazy': gof.vm.VM_Linker(use_cloop=False, lazy=True),
'cvm': gof.vm.VM_Linker(use_cloop=True), 'cvm': gof.vm.VM_Linker(use_cloop=True),
'vm_nogc': gof.vm.VM_Linker(allow_gc=False, use_cloop=False), 'vm_nogc': gof.vm.VM_Linker(allow_gc=False, use_cloop=False),
'cvm_nogc': gof.vm.VM_Linker(allow_gc=False, use_cloop=True), 'cvm_nogc': gof.vm.VM_Linker(allow_gc=False, use_cloop=True),
......
...@@ -100,14 +100,14 @@ try: ...@@ -100,14 +100,14 @@ try:
("Default linker used if the theano flags mode is Mode " ("Default linker used if the theano flags mode is Mode "
"or ProfileMode"), "or ProfileMode"),
EnumStr('cvm', 'c|py', 'py', 'c', 'c|py_nogc', 'c&py', EnumStr('cvm', 'c|py', 'py', 'c', 'c|py_nogc', 'c&py',
'vm', 'vm_lazy', 'vm_nogc', 'cvm_nogc'), 'vm', 'vm_nogc', 'cvm_nogc'),
in_c_key=False) in_c_key=False)
except OSError: except OSError:
# g++ is not present, linker should default to python only # g++ is not present, linker should default to python only
AddConfigVar('linker', AddConfigVar('linker',
("Default linker used if the theano flags mode is Mode " ("Default linker used if the theano flags mode is Mode "
"or ProfileMode"), "or ProfileMode"),
EnumStr('py', 'vm', 'vm_lazy', 'vm_nogc'), EnumStr('py', 'vm', 'vm_nogc'),
in_c_key=False) in_c_key=False)
_logger.warning('g++ not detected ! Theano will be unable to execute ' _logger.warning('g++ not detected ! Theano will be unable to execute '
'optimized C-implementations (for both CPU and GPU) and will ' 'optimized C-implementations (for both CPU and GPU) and will '
......
...@@ -302,6 +302,7 @@ def test_vm_gc(): ...@@ -302,6 +302,7 @@ def test_vm_gc():
pass pass
x = theano.tensor.vector() x = theano.tensor.vector()
p = RunOnce()(x) p = RunOnce()(x)
mode = theano.Mode(linker=theano.gof.vm.VM_Linker(lazy=True))
f = theano.function([theano.In(x, mutable=True)], [p + 1, p + 2], f = theano.function([theano.In(x, mutable=True)], [p + 1, p + 2],
mode=theano.Mode(linker='vm_lazy')) mode=mode)
f([1,2,3]) f([1, 2, 3])
...@@ -22,6 +22,12 @@ AddConfigVar('profile', ...@@ -22,6 +22,12 @@ AddConfigVar('profile',
AddConfigVar('profile_optimizer', AddConfigVar('profile_optimizer',
"If VM should collect optimizer profile information", "If VM should collect optimizer profile information",
BoolParam(False)) BoolParam(False))
AddConfigVar('vm.lazy',
"Useful only for the vm linkers. When lazy is None,"
" auto detect if lazy evaluation is needed and use the apropriate"
" version. If lazy it True/False, force the version used between"
" Loop/LoopGC and Stack.",
BoolParam(False))
raise_with_op = link.raise_with_op raise_with_op = link.raise_with_op
...@@ -488,7 +494,7 @@ class VM_Linker(link.LocalLinker): ...@@ -488,7 +494,7 @@ class VM_Linker(link.LocalLinker):
lazy - Useful only when use_cloop is False. When lazy is None, auto lazy - Useful only when use_cloop is False. When lazy is None, auto
detect if lazy evaluation is needed and use the apropriate detect if lazy evaluation is needed and use the apropriate
version. If lazy it True/False, for the version used between version. If lazy it True/False, force the version used between
Loop/LoopGC and Stack. Loop/LoopGC and Stack.
""" """
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论