 #pragma once
 
 #include "cnn/macros.h"
+#include "gpu-kernels.h"
+
 namespace cnn {
 namespace gpu {
 

        }
    }

} // namespace gpu
} // namespace cnn


    __global__ void _rowElementMultiplyWith(
        ElemType* us,
        const ElemType* a,
        const int N, // usrow;
        const int M) // acol;
    {
        int id = blockDim.x * blockIdx.x + threadIdx.x;
        if (id >= M)
            return;

        // __shared__ ElemType _a[MAX_THREADS_PER_BLOCK];
        // _a[threadIdx.x]=a[id];
        ElemType mul = a[id];
        for (int i = 0; i < N; ++i)
