diff --git a/include/aidge/backend/cuda/data/TensorImpl.hpp b/include/aidge/backend/cuda/data/TensorImpl.hpp index ea63f581400b5dc0669793a8d5f4c351885a9bb9..73b211113b3b21b9c8294e51e16cc001afad25e1 100644 --- a/include/aidge/backend/cuda/data/TensorImpl.hpp +++ b/include/aidge/backend/cuda/data/TensorImpl.hpp @@ -58,7 +58,11 @@ class TensorImpl_cuda : public TensorImpl, public TensorImpl_cuda_ { void *rawPtr() override { lazyInit(reinterpret_cast<void**>(&mData)); return mData; - }; + } + + void* getRaw(std::size_t idx) { + return static_cast<void*>(static_cast<T*>(rawPtr()) + idx); + } const cudnnTensorDescriptor_t& getCudnnTensorDesc() const override { if (mCudnnTensor == nullptr) { diff --git a/src/operator/ConvImpl.cpp b/src/operator/ConvImpl.cpp index 35efa84dc3d0d7f54a7a463d9100115ac8a79fdd..e21bc92c2b30300eb8ec64461d55ce0c599f52f4 100644 --- a/src/operator/ConvImpl.cpp +++ b/src/operator/ConvImpl.cpp @@ -80,9 +80,9 @@ void Aidge::ConvImpl_cuda<DIM>::forward() { // Lazy-initialize CuDNN convolution descriptor if (mConvDesc == nullptr) { - const std::vector<int> strides(mOp.template get<ConvParam::StrideDims>().begin(), mOp.template get<ConvParam::StrideDims>().end()); + const std::vector<int> strides(mOp.template getAttr<ConvAttr::StrideDims>().begin(), mOp.template getAttr<ConvAttr::StrideDims>().end()); const std::vector<int> paddings(DIM, 0); - const std::vector<int> upscales(mOp.template get<ConvParam::DilationDims>().begin(), mOp.template get<ConvParam::DilationDims>().end()); + const std::vector<int> upscales(mOp.template getAttr<ConvAttr::DilationDims>().begin(), mOp.template getAttr<ConvAttr::DilationDims>().end()); CHECK_CUDNN_STATUS(cudnnCreateConvolutionDescriptor(&mConvDesc)); CHECK_CUDNN_STATUS(