    /**
     * I'm sure there may be a faster way, but this works
     */
-   convRequestedAlgoCount = 6;  // reset to max number of available backward algorithms
+   CUDNNCHECK(cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(cudnnHandle, &convRequestedAlgoCount))  // ask cuDNN how much it can try
    cudnnConvolutionBwdFilterAlgoPerf_t convBwdFilterPerfResults[convRequestedAlgoCount];  // this will store metrics to choose convolution algorithm
    CUDNNCHECK(cudnnFindConvolutionBackwardFilterAlgorithm(
       cudnnHandle,

   /**
    * I'm sure there may be a faster way, but this works
    */
   convRequestedAlgoCount = 6;  // reset to max number of available backward algorithms
   cudnnConvolutionBwdDataAlgoPerf_t convBwdDataPerfResults[convRequestedAlgoCount];  // this will store metrics to choose convolution algorithm
   CUDNNCHECK(cudnnFindConvolutionBackwardDataAlgorithm(
      cudnnHandle,

   /**
    * I'm sure there may be a faster way, but this works
    */
   int convRequestedAlgoCount{0};  // requestedAlgoCount is setting how many algorithms to try
   CUDNNCHECK(cudnnGetConvolutionForwardAlgorithmMaxCount(cudnnHandle, &convRequestedAlgoCount))  // ask cuDNN how much it can try

   int algoCount;
   cudnnConvolutionFwdAlgoPerf_t convFwdPerfResults[convRequestedAlgoCount];  // this will store metrics to choose convolution algorithm
