Skip to content
Snippets Groups Projects
Commit 4e1f953b authored by Olivier BICHLER's avatar Olivier BICHLER
Browse files

Sync changes with core dev branch

parent eeba5ca4
No related branches found
No related tags found
No related merge requests found
......@@ -14,6 +14,5 @@
#include "aidge/backend/cuda/data/TensorImpl.hpp"
#include "aidge/backend/cuda/operator/ConvImpl.hpp"
#include "aidge/backend/cuda/operator/ProducerImpl.hpp"
#endif /* AIDGE_BACKEND_CUDA_IMPORTS_H_ */
\ No newline at end of file
/********************************************************************************
* Copyright (c) 2023 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_CUDA_OPERATOR_PRODUCERIMPL_H_
#define AIDGE_CUDA_OPERATOR_PRODUCERIMPL_H_
#include <memory>
#include "aidge/backend/OperatorImpl.hpp"
#include "aidge/operator/Producer.hpp"
#include "aidge/utils/Registrar.hpp"
#include "aidge/utils/Types.h"
namespace Aidge {
class ProducerImpl_cuda : public OperatorImpl {
public:
ProducerImpl_cuda(const Producer_Op &op) : OperatorImpl(op) {}
static std::unique_ptr<ProducerImpl_cuda> create(const Producer_Op &op) {
return std::make_unique<ProducerImpl_cuda>(op);
}
NbElts_t getNbProducedData(const IOIndex_t outputIdx) const override final;
void forward() override;
};
namespace {
static Registrar<Producer_Op> registrarProducerImpl_cuda("cuda", Aidge::ProducerImpl_cuda::create);
} // namespace
} // namespace Aidge
#endif /* AIDGE_CUDA_OPERATOR_PRODUCERIMPL_H_ */
......@@ -2,8 +2,8 @@
#define AIDGE_BACKEND_CUDA_CUDA_CONTEXT_H
#include <vector>
#include <cstdio>
#include "aidge/utils/ErrorHandling.hpp"
#include "aidge/backend/cuda/utils/CudaUtils.hpp"
namespace Aidge {
......@@ -87,7 +87,7 @@ public:
if (cublas_h[dev] == NULL) {
CHECK_CUBLAS_STATUS(cublasCreate(&cublas_h[dev]));
printf("CUBLAS initialized on device #%d\n", dev);
fmt::print("CUBLAS initialized on device #{}\n", dev);
}
return cublas_h[dev];
......@@ -113,7 +113,7 @@ public:
if (cudnn_h[dev] == NULL) {
CHECK_CUDNN_STATUS(cudnnCreate(&cudnn_h[dev]));
printf("CUDNN initialized on device #%d\n", dev);
fmt::print("CUDNN initialized on device #{}\n", dev);
}
return cudnn_h[dev];
......
......@@ -11,6 +11,8 @@
#include <cuda.h>
#include <cudnn.h>
#include "aidge/utils/ErrorHandling.hpp"
#define CHECK_CUDNN_STATUS(status) \
do { \
const cudnnStatus_t e = (status); \
......
/********************************************************************************
* Copyright (c) 2023 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
*
********************************************************************************/
#include <cassert>
#include <numeric> // std::accumulate
#include <vector>
#include "aidge/data/Tensor.hpp"
#include "aidge/operator/Producer.hpp"
#include "aidge/utils/Types.h"
#include "aidge/backend/cuda/operator/ProducerImpl.hpp"
Aidge::DimSize_t Aidge::ProducerImpl_cuda::getNbProducedData(
Aidge::IOIndex_t outputIdx) const
{
// Requires the whole tensors, regardless of available data on inputs
assert(outputIdx == 0 && "operator has only one output");
(void) outputIdx;
return std::static_pointer_cast<Tensor>(mOp.getRawOutput(0))->size();
}
void Aidge::ProducerImpl_cuda::forward()
{
}
......@@ -40,7 +40,7 @@ void Aidge::Cuda::setMultiDevicePeerAccess(unsigned int size, unsigned int* devi
CHECK_CUDA_STATUS(cudaSetDevice(devices[j]));
const cudaError_t status = cudaDeviceEnablePeerAccess(devices[i], 0);
if (status == cudaErrorPeerAccessAlreadyEnabled) {
printf("Peer access already enabled between device %d and device %d\n", devices[j], devices[i]);
fmt::print("Peer access already enabled between device {} and device {}\n", devices[j], devices[i]);
} else {
CHECK_CUDA_STATUS(status);
}
......
......@@ -19,7 +19,7 @@
#include "aidge/graph/GraphView.hpp"
#include "aidge/graph/OpArgs.hpp"
#include "aidge/scheduler/Scheduler.hpp"
#include "aidge/recipies/Recipies.hpp"
#include "aidge/recipes/Recipes.hpp"
#include "aidge/backend/cuda.hpp"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment