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

Fixed CuDNN descriptor lazy initialization

parent 23771ce5
No related branches found
No related tags found
No related merge requests found
Pipeline #31893 passed
......@@ -44,10 +44,7 @@ private:
void* mWorkspace = nullptr;
public:
ConvImpl_cuda(const Conv_Op<DIM> &op) : mOp(op) {
CHECK_CUDNN_STATUS(cudnnCreateConvolutionDescriptor(&mConvDesc));
CHECK_CUDNN_STATUS(cudnnCreateFilterDescriptor(&mFilterDesc));
}
ConvImpl_cuda(const Conv_Op<DIM> &op) : mOp(op) {}
static std::unique_ptr<ConvImpl_cuda> create(const Conv_Op<2> &op) {
return std::make_unique<ConvImpl_cuda>(op);
......
......@@ -78,12 +78,13 @@ void Aidge::ConvImpl_cuda<DIM>::forward() {
assert(mOp.getInput(0) && "missing input #0");
assert(mOp.getInput(1) && "missing input #1");
// Initialize CuDNN convolution descriptor
// 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> paddings(DIM, 0);
const std::vector<int> upscales(mOp.template get<ConvParam::DilationDims>().begin(), mOp.template get<ConvParam::DilationDims>().end());
CHECK_CUDNN_STATUS(cudnnCreateConvolutionDescriptor(&mConvDesc));
CHECK_CUDNN_STATUS(
cudnnSetConvolutionNdDescriptor(mConvDesc,
DIM,
......@@ -94,10 +95,11 @@ void Aidge::ConvImpl_cuda<DIM>::forward() {
DataTypeToCudnn(mOp.getOutput(0)->dataType())));
}
// Initialize CuDNN filter descriptor
// Lazy-initialize CuDNN filter descriptor
if (mFilterDesc == nullptr) {
const std::vector<int> kernels(mOp.getInput(1)->dims().begin(), mOp.getInput(1)->dims().end());
CHECK_CUDNN_STATUS(cudnnCreateFilterDescriptor(&mFilterDesc));
CHECK_CUDNN_STATUS(cudnnSetFilterNdDescriptor(mFilterDesc,
DataTypeToCudnn(mOp.getInput(1)->dataType()),
CUDNN_TENSOR_NCHW,
......
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