| 20 | */ |
| 21 | template <typename T> |
| 22 | __global__ void dnmat_dot_kernel( |
| 23 | T* dnmat3_vals, T* dnmat1_vals, T* dnmat2_vals, |
| 24 | size_s total_len, const size_s power |
| 25 | ) { |
| 26 | size_l idx = threadIdx.x + blockIdx.x * blockDim.x; |
| 27 | if (idx < total_len) { |
| 28 | if(power == 1) dnmat3_vals[idx] = dnmat1_vals[idx] * dnmat2_vals[idx]; |
| 29 | else dnmat3_vals[idx] = dnmat1_vals[idx] * pow(dnmat2_vals[idx],power); |
| 30 | } |
| 31 | return; |
| 32 | } |
| 33 | |
| 34 | // cpu function of Ddot |
| 35 | template <typename T> |
nothing calls this directly
no outgoing calls
no test coverage detected