#include "cuda_helper.cuh"
#include "input.cuh"

using namespace CUDANet::Layers;

Input::Input(int inputSize) : inputSize(inputSize) {
    d_output = nullptr;
    CUDA_CHECK(cudaMalloc((void**)&d_output, sizeof(float) * inputSize));
}

Input::~Input() {
    cudaFree(d_output);
}

float* Input::forward(const float* input) {
    CUDA_CHECK(cudaMemcpy(
        d_output, input, sizeof(float) * inputSize, cudaMemcpyHostToDevice
    ));
    CUDA_CHECK(cudaDeviceSynchronize());

    return d_output;
}

int Input::getOutputSize() {
    return inputSize;
}


int Input::getInputSize() {
    return inputSize;
}