Sha256: dee244ca92cf47f581e7cdfd3ae5fb0138c3133e7fa975bafc7bcb10f0e9390f

Contents?: true

Size: 740 Bytes

Versions: 11

Compression:

Stored size: 740 Bytes

Contents

% c_dtype = dtype_to_c_type(dtype)

__kernel void sign_<%= dtype %>(const int M, const int N, __global const <%= c_dtype %> *A, __global <%= c_dtype %> *C) {
    // Get the index of the current element to be processed
    const int globalRow = get_global_id(0); // Row ID of C (0..M)
    const int globalCol = get_global_id(1); // Col ID of C (0..N)
    <%= c_dtype %> value = A[globalRow * N + globalCol];
% if floating_point?(dtype)
    if (isnan(value) || value == 0.0f) {
      C[globalRow * N + globalCol] = 0.0;
    } else {
      C[globalRow * N + globalCol] = value < 0 ? -1.0 : 1.0;
    }
% else
  if (value == 0) {
    C[globalRow * N + globalCol] = 0;
  } else {
    C[globalRow * N + globalCol] = value < 0 ? -1 : 1;
  }
% end
}

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
tensor_stream-opencl-0.1.3 lib/tensor_stream/opencl/kernels/sign.cl
tensor_stream-opencl-0.1.2 lib/tensor_stream/opencl/kernels/sign.cl
tensor_stream-opencl-0.1.1 lib/tensor_stream/opencl/kernels/sign.cl
tensor_stream-opencl-0.1.0 lib/tensor_stream/opencl/kernels/sign.cl
tensor_stream-0.8.1 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.8.0 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.7.0 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.6.1 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.6.0 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.5.1 lib/tensor_stream/evaluator/opencl/kernels/sign.cl
tensor_stream-0.5.0 lib/tensor_stream/evaluator/opencl/kernels/sign.cl