Sha256: 2634b495570b198cd6d98c45f3e9ab78d6033feb25a175371f2175282a0c9324

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

<% unless type_name == 'robject' %>
__global__ void <%="cumo_#{c_iter}_index_kernel"%>(char *ptr, size_t *idx, dtype val, uint64_t n)
{
    for (uint64_t i = blockIdx.x * blockDim.x + threadIdx.x; i < n; i += blockDim.x * gridDim.x) {
        *(dtype*)(ptr + idx[i]) = val;
    }
}

__global__ void <%="cumo_#{c_iter}_stride_kernel"%>(char*ptr, ssize_t step, dtype val, uint64_t n)
{
    for (uint64_t i = blockIdx.x * blockDim.x + threadIdx.x; i < n; i += blockDim.x * gridDim.x) {
        *(dtype*)(ptr + (i*step)) = val;
    }
}

void <%="cumo_#{c_iter}_index_kernel_launch"%>(char *ptr, size_t *idx, dtype val, uint64_t n)
{
    size_t gridDim = get_gridDim(n);
    size_t blockDim = get_blockDim(n);
    <%="cumo_#{c_iter}_index_kernel"%><<<gridDim, blockDim>>>(ptr,idx,val,n);
}

void <%="cumo_#{c_iter}_stride_kernel_launch"%>(char *ptr, ssize_t step, dtype val, uint64_t n)
{
    size_t gridDim = get_gridDim(n);
    size_t blockDim = get_blockDim(n);
    <%="cumo_#{c_iter}_stride_kernel"%><<<gridDim, blockDim>>>(ptr,step,val,n);
}
<% end %>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cumo-0.1.0 ext/cumo/narray/gen/tmpl/fill_kernel.cu