Sha256: 83803d18270172f5b540cbc7b56816620a22ff24023aa7f5bb9fbb653d772b5d
Contents?: true
Size: 905 Bytes
Versions: 2
Compression:
Stored size: 905 Bytes
Contents
module TensorStream class OpenCLBuffer < Buffer include ArrayOpsHelper attr_accessor :shape, :buffer, :cl_buffer, :op 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 def to_ruby return [] if buffer.empty? if shape.empty? return buffer[0] != 0 if data_type == :boolean return buffer[0] end if dirty op.command_queue.enqueue_read_buffer(cl_buffer, buffer, event_wait_list: [op].compact) op.command_queue.finish self.dirty = false end result = buffer.reshape(*shape.map { |s| s.to_i}.reverse).to_a if data_type == :boolean result = process_function_op(result, ->(a, _b) { a != 0 }) end result end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tensor_stream-0.6.1 | lib/tensor_stream/evaluator/opencl/opencl_buffer.rb |
tensor_stream-0.6.0 | lib/tensor_stream/evaluator/opencl/opencl_buffer.rb |