/// <summary>
        /// カーネルを並列実行します
        /// </summary>
        /// <param name="kernel"></param>
        /// <param name="globalWorkSize"></param>
        /// <param name="localWorkSize"></param>
        public void EnqueueRange(CLKernel kernel, MultiDimension globalWorkSize, MultiDimension localWorkSize)
        {
            MultiDimension offset = new MultiDimension();

            CLfunc.clEnqueueNDRangeKernel(
                InternalPointer,
                kernel.InternalPointer,
                globalWorkSize.Dimension,
                ref offset,
                ref globalWorkSize,
                ref localWorkSize,
                0,
                null,
                IntPtr.Zero);
        }
 /// <summary>
 /// カーネルを実行します
 /// </summary>
 /// <param name="kernel"></param>
 public void EnqueueTask(CLKernel kernel)
 {
     CLfunc.clEnqueueTask(InternalPointer, kernel.InternalPointer, 0, null, IntPtr.Zero);
 }