/// <summary> /// Creates a new Stream /// </summary> /// <param name="flags">Parameters for stream creation (must be <see cref="CUStreamFlags.None"/>)</param> public CudaStream(CUStreamFlags flags) { _stream = new CUstream(); res = DriverAPINativeMethods.Streams.cuStreamCreate(ref _stream, flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuStreamCreate", res)); if (res != CUResult.Success) throw new CudaException(res); _isOwner = true; }
/// <summary> /// Creates a new Stream using <see cref="CUStreamFlags.None"/> and with the given priority<para/> /// This API alters the scheduler priority of work in the stream. Work in a higher priority stream /// may preempt work already executing in a low priority stream.<para/> /// <c>priority</c> follows a convention where lower numbers represent higher priorities.<para/> /// '0' represents default priority. /// </summary> /// <param name="priority">Stream priority. Lower numbers represent higher priorities.</param> /// <param name="flags">Parameters for stream creation (must be <see cref="CUStreamFlags.None"/>)</param> public CudaStream(int priority, CUStreamFlags flags) { _stream = new CUstream(); res = DriverAPINativeMethods.Streams.cuStreamCreateWithPriority(ref _stream, flags, priority); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuStreamCreateWithPriority", res)); if (res != CUResult.Success) { throw new CudaException(res); } _isOwner = true; }
/// <summary> /// Query the flags of this stream. /// </summary> /// <returns>the stream's flags<para/> /// The value returned in <c>flags</c> is a logical 'OR' of all flags that /// were used while creating this stream.</returns> public CUStreamFlags cuStreamGetFlags() { CUStreamFlags flags = 0; CUResult res = DriverAPINativeMethods.Streams.cuStreamGetFlags(_stream, ref flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuStreamGetFlags", res)); if (res != CUResult.Success) { throw new CudaException(res); } return(flags); }
public static extern CUResult cuStreamGetFlags(CUstream hStream, ref CUStreamFlags flags);
public static extern CUResult cuStreamCreateWithPriority(ref CUstream phStream, CUStreamFlags flags, int priority);
public static extern CUResult cuStreamCreate( ref CUstream phStream, CUStreamFlags Flags );