diff --git a/include/aidge/backend/cpu/operator/DropoutImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/DropoutImpl_forward_kernels.hpp
deleted file mode 100644
index 457832031a24e117f855753fe94ec8bf151154b4..0000000000000000000000000000000000000000
--- a/include/aidge/backend/cpu/operator/DropoutImpl_forward_kernels.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/********************************************************************************
- * Copyright (c) 2024 CEA-List
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- ********************************************************************************/
-
-#ifndef AIDGE_CPU_OPERATOR_DROPOUTIMPL_FORWARD_KERNEL_H_
-#define AIDGE_CPU_OPERATOR_DROPOUTIMPL_FORWARD_KERNEL_H_
-
-#include <cmath>
-#include <cstddef>
-#include <numeric>
-#include <random>
-
-#include "aidge/backend/cpu/operator/DropoutImpl.hpp"
-#include "aidge/data/Data.hpp"
-#include "aidge/utils/Registrar.hpp"
-#include "aidge/utils/Types.h"
-
-namespace Aidge {
-
-template <class I, class O>
-void DropoutImpl_cpu_forward_kernel(const typename Dropout_Op::Attrs& attr, const std::vector<DimSize_t>& dims, const void* input_, void* output_) {
-    // Cast input and output to appropriate types
-    const I* input = static_cast<const I*>(input_);
-    O* output = static_cast<O*>(output_);
-
-    // Extract dropout rate from attributes
-    // const float dropoutRate = attr.dropout_ratio;  // Assuming Attrs has dropout_ratio field
-    // const float dropoutRate = attr.probability;  // Assuming Attrs has Probability field
-    const float dropoutRate = std::get<0>(attr);
-    const float scale = 1.0f / (1.0f - dropoutRate);
-
-    // Initialize random number generator
-    std::random_device rd;
-    std::mt19937 gen(rd());
-    std::bernoulli_distribution dist(1.0f - dropoutRate);
-
-    // Calculate total number of elements in the input tensor
-    std::size_t totalElements = std::accumulate(dims.begin(), dims.end(), std::size_t(1), std::multiplies<std::size_t>());
-
-    // Apply dropout
-    for (std::size_t i = 0; i < totalElements; ++i) {
-        if (dist(gen)) {
-            output[i] = input[i] * scale;  // Retain and scale input
-        } else {
-            output[i] = 0;  // Dropout
-        }
-    }
-}
-
-// Register kernel implementations for different input/output types
-namespace {
-static Registrar<DropoutImplForward_cpu> registrarDropoutImplForward_cpu_Float32(
-        {DataType::Float32, DataType::Float32}, Aidge::DropoutImpl_cpu_forward_kernel<float, float>);
-static Registrar<DropoutImplForward_cpu> registrarDropoutImplForward_cpu_Int32(
-        {DataType::Int32, DataType::Int32}, Aidge::DropoutImpl_cpu_forward_kernel<int, int>);
-static Registrar<DropoutImplForward_cpu> registrarDropoutImplForward_cpu_Float64(
-        {DataType::Float64, DataType::Float64}, Aidge::DropoutImpl_cpu_forward_kernel<double, double>);
-}  // namespace
-}  // namespace Aidge
-
-#endif /* AIDGE_CPU_OPERATOR_DROPOUTIMPL_FORWARD_KERNEL_H_ */
\ No newline at end of file