aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-02-19 13:44:22 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-02-19 13:44:22 -0800
commit46fc23f91c1c5ea21bab67976773c613bd7e4ab0 (patch)
tree015899134a2739442d75a6e5acf23e5040b8e9da /unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
parent670db7988d6903fbb51c449383c4d5162d83caaf (diff)
Print an error message to stderr when the initialization of the CUDA runtime fails. This helps debugging setup issues.
Diffstat (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h')
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h b/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
index 3808eb155..c01704e56 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h
@@ -34,12 +34,23 @@ static void initializeDeviceProp() {
if (!m_devicePropInitialized) {
int num_devices;
cudaError_t status = cudaGetDeviceCount(&num_devices);
- EIGEN_UNUSED_VARIABLE(status)
- assert(status == cudaSuccess);
+ if (status != cudaSuccess) {
+ std::cerr << "Failed to get the number of CUDA devices: "
+ << cudaGetErrorString(status)
+ << std::endl;
+ assert(status == cudaSuccess);
+ }
m_deviceProperties = new cudaDeviceProp[num_devices];
for (int i = 0; i < num_devices; ++i) {
status = cudaGetDeviceProperties(&m_deviceProperties[i], i);
- assert(status == cudaSuccess);
+ if (status != cudaSuccess) {
+ std::cerr << "Failed to initialize CUDA device #"
+ << i
+ << ": "
+ << cudaGetErrorString(status)
+ << std::endl;
+ assert(status == cudaSuccess);
+ }
}
m_devicePropInitialized = true;
}