예제 #1
0
        internal IComputeKernel CreateKernel(CLKernelHandle handle)
        {
            var kernel = new ComputeKernel100();

            kernel.Handle = handle;
            kernel.SetID(kernel.Handle.Value);

            kernel.FunctionName = kernel.GetStringInfo <CLKernelHandle, ComputeKernelInfo>(kernel.Handle,
                                                                                           ComputeKernelInfo.FunctionName, OpenCL100.GetKernelInfo);
            logger.Info("Create " + this + " in Thread(" + Thread.CurrentThread.ManagedThreadId + ").", "Information");
            return(kernel);
        }
예제 #2
0
        /// <summary>
        /// Creates a kernel for a kernel function of a specified name.
        /// </summary>
        /// <returns> The created kernel. </returns>
        public IComputeKernel CreateKernel(IComputeProgram program, string functionName)
        {
            var kernel = new ComputeKernel100();

            kernel.Handle = OpenCL100.CreateKernel(
                program.Handle,
                functionName,
                out ComputeErrorCode error);
            ComputeException.ThrowOnError(error);

            kernel.SetID(kernel.Handle.Value);
            kernel.FunctionName = functionName;
            logger.Info("Create " + this + " in Thread(" + Thread.CurrentThread.ManagedThreadId + ").", "Information");
            return(kernel);
        }