public static Object Invoke(this JittedFunction function, dim3 gridDim, dim3 blockDim, params KernelArgument[] args) { function.AssertNotNull(); args = args ?? Seq.Empty <KernelArgument>().ToArray(); CudaDriver.Ensure(); return(function.Invoke(gridDim, blockDim, (IEnumerable <KernelArgument>)args)); }
public static KernelResult Run(this JittedFunction function, dim3 gridDim, dim3 blockDim, IEnumerable <KernelArgument> args) { function.AssertNotNull(); args = args ?? Seq.Empty <KernelArgument>().ToArray(); CudaDriver.Ensure(); var invocation = new KernelInvocation(function, args); return(invocation.Launch(gridDim, blockDim)); }
public static Object Invoke(this JittedFunction function, dim3 gridDim, dim3 blockDim, IEnumerable <KernelArgument> args) { function.AssertNotNull(); args = args ?? Seq.Empty <KernelArgument>().ToArray(); CudaDriver.Ensure(); var invocation = new KernelInvocation(function, args); var invocation_result = invocation.Launch(gridDim, blockDim); var result = invocation_result.Result; args.ForEach(arg => arg.Dispose()); return(result); }
public KernelInvocation(JittedFunction function, IEnumerable <KernelArgument> args) { CudaDriver.Ensure(); Function = function.AssertNotNull(); Args = new KernelArguments(args); }
public KernelInvocation(JittedFunction function, params KernelArgument[] args) : this(function, (IEnumerable <KernelArgument>)args) { }