Class: TensorStream::OpenCLBuffer
- Includes:
- ArrayOpsHelper
- Defined in:
- lib/tensor_stream/evaluator/opencl_buffer.rb
Instance Attribute Summary collapse
-
#buffer ⇒ Object
Returns the value of attribute buffer.
-
#cl_buffer ⇒ Object
Returns the value of attribute cl_buffer.
-
#data_type ⇒ Object
Returns the value of attribute data_type.
-
#op ⇒ Object
Returns the value of attribute op.
-
#shape ⇒ Object
Returns the value of attribute shape.
Attributes inherited from Buffer
Instance Method Summary collapse
-
#initialize(data_type:, shape:, buffer:, cl_buffer:, op: nil, name: nil) ⇒ OpenCLBuffer
constructor
A new instance of OpenCLBuffer.
- #to_ruby ⇒ Object
Methods included from ArrayOpsHelper
#broadcast, #broadcast_dimensions, #get_rank, #process_function_op, #reduced_shape, #shape_diff, #slice_tensor, #tile_arr, #truncate, #vector_op
Constructor Details
#initialize(data_type:, shape:, buffer:, cl_buffer:, op: nil, name: nil) ⇒ OpenCLBuffer
Returns a new instance of OpenCLBuffer.
7 8 9 10 11 12 13 14 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 7 def initialize(data_type: , shape:, buffer:, cl_buffer:, op: nil, name: nil) @data_type = data_type @shape = shape @buffer = buffer @cl_buffer = cl_buffer @name = name @op = op end |
Instance Attribute Details
#buffer ⇒ Object
Returns the value of attribute buffer.
5 6 7 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 5 def buffer @buffer end |
#cl_buffer ⇒ Object
Returns the value of attribute cl_buffer.
5 6 7 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 5 def cl_buffer @cl_buffer end |
#data_type ⇒ Object
Returns the value of attribute data_type.
5 6 7 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 5 def data_type @data_type end |
#op ⇒ Object
Returns the value of attribute op.
5 6 7 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 5 def op @op end |
#shape ⇒ Object
Returns the value of attribute shape.
5 6 7 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 5 def shape @shape end |
Instance Method Details
#to_ruby ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/tensor_stream/evaluator/opencl_buffer.rb', line 16 def to_ruby return [] if buffer.empty? if shape.empty? return buffer[0] != 0 if data_type == :boolean return buffer[0] end result = buffer.reshape(*shape.reverse).to_a if data_type == :boolean result = process_function_op(result, ->(a, _b) { a != 0 }) end result end |