protected void SetCudaRedFunctionParams() { CudaHelpers.GetNumThreadsAndBlocks(sizeSV, maxReductionBlocks, maxReductionThreads, ref reductionThreads, ref reductionBlocks); cuda.SetFunctionBlockShape(cuFuncReduce, reductionThreads, 1, 1); int offset = 0; offsetMemToReduce = offset; cuda.SetParameter(cuFuncReduce, offset, evalOutputCuPtr[0].Pointer); offset += IntPtr.Size; offsetOutMemReduce = offset; cuda.SetParameter(cuFuncReduce, offset, reduceCuPtr[0].Pointer); offset += IntPtr.Size; cuda.SetParameter(cuFuncReduce, offset, (uint)sizeSV); offset += sizeof(int); cuda.SetParameterSize(cuFuncReduce, (uint)offset); }