Module: Candle::BuildInfo

Defined in:
lib/candle/build_info.rb

Class Method Summary collapse

Class Method Details

.accelerate_available?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/candle/build_info.rb', line 37

def self.accelerate_available?
  Candle.build_info["accelerate_available"]
end

.cuda_available?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/candle/build_info.rb', line 25

def self.cuda_available?
  Candle.build_info["cuda_available"]
end

.cudnn_available?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/candle/build_info.rb', line 41

def self.cudnn_available?
  Candle.build_info["cudnn_available"]
end

.display_cuda_infoObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/candle/build_info.rb', line 3

def self.display_cuda_info
  info = Candle.build_info
  
  # CUDA info is now controlled by logger level
  
  if info["cuda_available"] == false
    # :nocov:
    # Check if CUDA could be available on the system
    cuda_potentially_available = ENV['CUDA_ROOT'] || ENV['CUDA_PATH'] || 
                               File.exist?('/usr/local/cuda') || File.exist?('/opt/cuda')
    
    if cuda_potentially_available
      Candle.logger.warn "=" * 80
      Candle.logger.warn "Red Candle: CUDA detected on system but not enabled in build."
      Candle.logger.warn "This may be due to CANDLE_DISABLE_CUDA being set during installation."
      Candle.logger.warn "To enable CUDA support, reinstall without CANDLE_DISABLE_CUDA set."
      Candle.logger.warn "=" * 80
    end
    # :nocov:
  end
end

.metal_available?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/candle/build_info.rb', line 29

def self.metal_available?
  Candle.build_info["metal_available"]
end

.mkl_available?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/candle/build_info.rb', line 33

def self.mkl_available?
  Candle.build_info["mkl_available"]
end

.summaryObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/candle/build_info.rb', line 45

def self.summary
  info = Candle.build_info
  
  available_backends = []
  available_backends << "Metal" if info["metal_available"]
  available_backends << "CUDA" if info["cuda_available"]
  available_backends << "CPU"
  
  {
    default_device: info["default_device"],
    available_backends: available_backends,
    cuda_available: info["cuda_available"],
    metal_available: info["metal_available"],
    mkl_available: info["mkl_available"],
    accelerate_available: info["accelerate_available"],
    cudnn_available: info["cudnn_available"]
  }
end