Skip to content

Make CPU kernels synchronous if `dependencies=nothing`

Churavy, Valentin requested to merge vc/sync_cpukernels into master

Created by: vchuravy

In order to have them be asynchronous the user can pass in a NoneEvent(). This makes small kernels faster.

~/builds/julia-1.3.1/bin/julia --color=yes --project=. -L ~/perfka.jl
[ Info: Ka + Wait Static
BenchmarkTools.Trial: 
  memory estimate:  80 bytes
  allocs estimate:  3
  --------------
  minimum time:     195.714 ns (0.00% GC)
  median time:      213.559 ns (0.00% GC)
  mean time:        239.629 ns (1.00% GC)
  maximum time:     3.369 μs (86.47% GC)
  --------------
  samples:          10000
  evals/sample:     555

[ Info: Ka Launch
BenchmarkTools.Trial: 
  memory estimate:  816 bytes
  allocs estimate:  9
  --------------
  minimum time:     132.569 ns (0.00% GC)
  median time:      158.833 ns (0.00% GC)
  mean time:        226.427 ns (16.90% GC)
  maximum time:     8.768 μs (96.22% GC)
  --------------
  s amples:          6944
  evals/sample:     893

KA Launch was measured with dependencies=NoneEvent(), script from #80

Merge request reports

Loading