Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public KernelInvocation(JittedFunction function, IEnumerable <KernelArgument> args)
 {
     CudaDriver.Ensure();
     Function = function.AssertNotNull();
     Args     = new KernelArguments(args);
 }
Exemple #5
0
 public KernelInvocation(JittedFunction function, params KernelArgument[] args)
     : this(function, (IEnumerable <KernelArgument>)args)
 {
 }