You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is it possible that the issue is related to CuStream? Because CUDA.synchronize() function takes CuStream as the input argument.
Maybe you need to pass CUDA.jl CuStream to the C code.
julia>@time (mul!(b, a, a); CUDA.synchronize(CUDA.context()))
0.093036 seconds (2 allocations:48 bytes)
This one works. Using the CuContext as the input will synchronize all streams in the context, which is a heavy API.
It would be great if the stream id can be an input.
The current benchmark in the RAEDME does not look good. When we read benchmark, we always read the min-time, because it reflects the true performance.
julia>using CuTropicalGEMM
julia>@benchmark CUDA.@sync$a *$a
BenchmarkTools.Trial:93 samples with 4 evaluations.
Range (min … max):6.653 μs …158.961 ms ┊ GC (min … max):0.00%…0.00%
Time (median):13.535 ms ┊ GC (median):0.00%
Time (mean ± σ):13.499 ms ±15.867 ms ┊ GC (mean ± σ):0.00%±0.00%
█
▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
6.65 μs Histogram: frequency by time 13.5 ms <
Memory estimate:256 bytes, allocs estimate:7.
Resolved by the stream-control work merged in PR #27 and released as v0.1.2. The current matmul! API accepts a CuStream (defaulting to CUDA.stream()), and the README benchmark examples use CUDA.@sync so BenchmarkTools measures completed GPU work. This closure does not claim a new GPU run in the current maintenance environment.
Activity
GiggleLiu commentedon Sep 28, 2023
Is it possible that the issue is related to CuStream? Because CUDA.synchronize() function takes CuStream as the input argument.
Maybe you need to pass CUDA.jl CuStream to the C code.
In your current code, the stream id seems to be the default value 0.
GiggleLiu commentedon Sep 28, 2023
This one works. Using the
CuContextas the input will synchronize all streams in the context, which is a heavy API.It would be great if the stream id can be an input.
GiggleLiu commentedon Oct 14, 2023
The current benchmark in the RAEDME does not look good. When we read benchmark, we always read the min-time, because it reflects the true performance.
GiggleLiu commentedon Sep 8, 2026
Resolved by the stream-control work merged in PR #27 and released as v0.1.2. The current matmul! API accepts a CuStream (defaulting to CUDA.stream()), and the README benchmark examples use CUDA.@sync so BenchmarkTools measures completed GPU work. This closure does not claim a new GPU run in the current maintenance environment.