module Chainer::Device

Public Class Methods

change_default(device_spec) click to toggle source

Changes default device

@param [Object] device_spec @see Chainer::Device.create

# File lib/chainer/device.rb, line 23
def change_default(device_spec)
  @default = create(device_spec)
  @default.use
end
create(device_spec) click to toggle source

Creates device

@param [Integer or Chainer::AbstractDevice] device_spec Device specifier.

Negative integer indicates CPU. 0 or positive integer indicates GPU.
If a device object is given, itself is returned.

@return [Chainer::AbstractDevice] device object

# File lib/chainer/device.rb, line 9
def create(device_spec)
  return device_spec if device_spec.kind_of?(AbstractDevice)
  if device_spec.kind_of?(Integer)
    return CpuDevice.new if device_spec < 0
    return GpuDevice.new(device_spec)
  end
  raise "Invalid device_spec: #{device_spec}"
end
default() click to toggle source

Gets default device

@return [Chainer::AbstractDevice] the default device.

# File lib/chainer/device.rb, line 32
def default
  @default ||= CpuDevice.new
end

Private Instance Methods

change_default(device_spec) click to toggle source

Changes default device

@param [Object] device_spec @see Chainer::Device.create

# File lib/chainer/device.rb, line 23
def change_default(device_spec)
  @default = create(device_spec)
  @default.use
end
create(device_spec) click to toggle source

Creates device

@param [Integer or Chainer::AbstractDevice] device_spec Device specifier.

Negative integer indicates CPU. 0 or positive integer indicates GPU.
If a device object is given, itself is returned.

@return [Chainer::AbstractDevice] device object

# File lib/chainer/device.rb, line 9
def create(device_spec)
  return device_spec if device_spec.kind_of?(AbstractDevice)
  if device_spec.kind_of?(Integer)
    return CpuDevice.new if device_spec < 0
    return GpuDevice.new(device_spec)
  end
  raise "Invalid device_spec: #{device_spec}"
end
default() click to toggle source

Gets default device

@return [Chainer::AbstractDevice] the default device.

# File lib/chainer/device.rb, line 32
def default
  @default ||= CpuDevice.new
end