julia> using CUDAdrv
julia> dev = CuDevice(0)
CuDevice(0): GeForce RTX 2080 Ti
julia> ctx = CuContext(dev)
CuContext(Ptr{Nothing} @0x000000000265ddd0, true, true)
julia> s1 = CuStream()
CuStream(Ptr{Nothing} @0x0000000002fbf770, CuContext(Ptr{Nothing} @0x000000000265ddd0, true, true))
julia> priority(s::CuStream) = (prio_ref = Ref{Cint}(); CUDAdrv.@apicall(:cuStreamGetPriority, (CUDAdrv.CuStream_t, Ptr{Cint}), s, prio_ref); prio_ref[])
priority (generic function with 1 method)
julia> priority(s1)
0
julia> function CUDAdrv.CuStream(priority::Integer, flags::CUDAdrv.CUstream_flags=CUDAdrv.STREAM_DEFAULT)
handle_ref = Ref{CUDAdrv.CuStream_t}()
CUDAdrv.@apicall(:cuStreamCreateWithPriority , (Ptr{CUDAdrv.CuStream_t}, Cuint, Cint),
handle_ref, flags, priority)
ctx = CuCurrentContext()
obj = CuStream(handle_ref[], ctx)
finalizer(CUDAdrv.unsafe_destroy!, obj)
return obj
end
julia> s2 = CuStream(-1)
CuStream(Ptr{Nothing} @0x0000000003934530, CuContext(Ptr{Nothing} @0x000000000265ddd0, true, true))
julia> priority(s2)
-1