Implement concat layer

This commit is contained in:
2024-03-17 21:38:29 +01:00
parent 9aab7cdb10
commit aac0c3a826
9 changed files with 121 additions and 33 deletions

32
src/layers/concat.cu Normal file
View File

@@ -0,0 +1,32 @@
#include "concat.cuh"
#include "cuda_helper.cuh"
using namespace CUDANet;
Layers::Concat::Concat(const unsigned int inputASize, const unsigned int inputBSize)
: inputASize(inputASize), inputBSize(inputBSize) {
d_output = nullptr;
CUDA_CHECK(cudaMalloc(
(void**)&d_output, sizeof(float) * (inputASize + inputBSize)
));
}
Layers::Concat::~Concat() {
cudaFree(d_output);
}
float* Layers::Concat::forward(const float* d_input_A, const float* d_input_B) {
CUDA_CHECK(cudaMemcpy(
d_output, d_input_A, sizeof(float) * inputASize, cudaMemcpyDeviceToDevice
));
CUDA_CHECK(cudaMemcpy(
d_output + inputASize, d_input_B,
sizeof(float) * inputBSize, cudaMemcpyDeviceToDevice
));
return d_output;
}

View File

@@ -26,11 +26,3 @@ float* Layers::Input::forward(const float* input) {
return d_output;
}
void Layers::Input::setWeights(const float* weights) {}
void Layers::Input::setBiases(const float* biases) {}
void Layers::Input::initializeWeights() {}
void Layers::Input::initializeBiases() {}
void Layers::Input::toCuda() {}