提交 ed26b2c1 authored 作者: Frederic Bastien's avatar Frederic Bastien

Raise error about nvcc not being available only when we try to use cuda.

In the past it was warned when we load theano.sandbox.cuda.
上级 413ed3e5
...@@ -64,12 +64,6 @@ def set_cuda_disabled(): ...@@ -64,12 +64,6 @@ def set_cuda_disabled():
""" """
global cuda_available, cuda_warning_is_displayed global cuda_available, cuda_warning_is_displayed
cuda_available = False cuda_available = False
# Note that we do not display this warning when the user manually unset the
# config.cuda.root configuration variable.
if not cuda_warning_is_displayed and config.cuda.root:
cuda_warning_is_displayed = True
warning('Cuda is disabled, cuda-based code will thus not be '
'working properly')
#cuda_ndarray compile and import #cuda_ndarray compile and import
cuda_path = os.path.abspath(os.path.split(__file__)[0]) cuda_path = os.path.abspath(os.path.split(__file__)[0])
...@@ -113,11 +107,6 @@ if not compile_cuda_ndarray: ...@@ -113,11 +107,6 @@ if not compile_cuda_ndarray:
try: try:
if compile_cuda_ndarray: if compile_cuda_ndarray:
if not nvcc_compiler.is_nvcc_available(): if not nvcc_compiler.is_nvcc_available():
# Hide the error message if the user manually unset the
# config.cuda.root configuration variable.
if config.cuda.root:
error('nvcc compiler not found on $PATH.'
' Check your nvcc installation and try again.')
set_cuda_disabled() set_cuda_disabled()
if cuda_available: if cuda_available:
...@@ -199,11 +188,27 @@ def use(device, ...@@ -199,11 +188,27 @@ def use(device,
default_to_move_computation_to_gpu=True, default_to_move_computation_to_gpu=True,
move_shared_float32_to_gpu=True, move_shared_float32_to_gpu=True,
enable_cuda=True): enable_cuda=True):
"""
Error and warning about CUDA should be displayed only when this function is called.
We need to be able to load this module only to check if it is available!
"""
global cuda_enabled, cuda_initialization_error_message global cuda_enabled, cuda_initialization_error_message
if force and not cuda_available and device.startswith('gpu'): if force and not cuda_available and device.startswith('gpu'):
raise EnvironmentError("You forced use of device %s, but CUDA initialization failed " if not nvcc_compiler.is_nvcc_available():
"with error:\n%s" % (device, cuda_initialization_error_message)) raise EnvironmentError("You forced the use of gpu device '%s', but "
if not cuda_available: "nvcc was not found. Set it in your PATH "
"environment variable or set the Theano "
"flags 'cuda.root' to its directory" % device)
else:
raise EnvironmentError("You forced the use of gpu device %s, "
"but CUDA initialization failed "
"with error:\n%s" % (
device, cuda_initialization_error_message))
elif not nvcc_compiler.is_nvcc_available():
error('nvcc compiler not found on $PATH.'
' Check your nvcc installation and try again.')
return
elif not cuda_available:
error_addendum = "" error_addendum = ""
try: try:
if cuda_initialization_error_message: if cuda_initialization_error_message:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论