OmniSciDB  16c4e035a1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CudaMgr.cpp File Reference
#include "CudaMgr/CudaMgr.h"
#include "QueryEngine/NvidiaKernel.h"
#include "Shared/boost_stacktrace.hpp"
#include <algorithm>
#include <cassert>
#include <iostream>
#include <stdexcept>
#include <boost/filesystem.hpp>
#include "Logger/Logger.h"
+ Include dependency graph for CudaMgr.cpp:

Go to the source code of this file.

Namespaces

 CudaMgr_Namespace
 

Functions

std::string CudaMgr_Namespace::errorMessage (CUresult const status)
 
std::string get_cuda_home (void)
 

Function Documentation

std::string get_cuda_home ( void  )

Definition at line 405 of file CudaMgr.cpp.

References LOG, and logger::WARNING.

405  {
406  static const char* CUDA_DEFAULT_PATH = "/usr/local/cuda";
407  const char* env = nullptr;
408 
409  if (!(env = getenv("CUDA_HOME")) && !(env = getenv("CUDA_DIR"))) {
410  // check if the default CUDA directory exists: /usr/local/cuda
411  if (boost::filesystem::exists(boost::filesystem::path(CUDA_DEFAULT_PATH))) {
412  env = CUDA_DEFAULT_PATH;
413  }
414  }
415 
416  if (env == nullptr) {
417  LOG(WARNING) << "Could not find CUDA installation path: environment variables "
418  "CUDA_HOME or CUDA_DIR are not defined";
419  return "";
420  }
421 
422  // check if the CUDA directory is sensible:
423  auto cuda_include_dir = env + std::string("/include");
424  auto cuda_h_file = cuda_include_dir + "/cuda.h";
425  if (!boost::filesystem::exists(boost::filesystem::path(cuda_h_file))) {
426  LOG(WARNING) << "cuda.h does not exist in `" << cuda_include_dir << "`. Discarding `"
427  << env << "` as CUDA installation path.";
428  return "";
429  }
430 
431  return std::string(env);
432 }
#define LOG(tag)
Definition: Logger.h:205