@@ -55,40 +55,43 @@ function nmf_suite(ctx; method, accels)
55
55
nw = length (workers ())
56
56
nsuite = BenchmarkGroup ()
57
57
while nw > 0
58
- opts = if accel == " cuda"
58
+ scope = if accel == " cuda"
59
+ error (" Not implemented" )
59
60
Dagger. Sch. SchedulerOptions (;proctypes= [
60
61
DaggerGPU. CuArrayDeviceProc
61
62
])
62
63
elseif accel == " amdgpu"
64
+ error (" Not implemented" )
63
65
Dagger. Sch. SchedulerOptions (;proctypes= [
64
66
DaggerGPU. ROCArrayProc
65
67
])
66
68
elseif accel == " cpu"
67
- Dagger. Sch . SchedulerOptions ( )
69
+ scope = Dagger. scope (;workers = workers ()[ 1 : nw] )
68
70
else
69
71
error (" Unknown accelerator $accel " )
70
72
end
71
73
# bsz = ncol ÷ length(workers())
72
74
bsz = ncol ÷ 64
73
75
nsuite[" Workers: $nw " ] = @benchmarkable begin
74
- _ctx = Context ($ ctx, workers ()[1 : $ nw])
75
- compute (_ctx, nnmf ($ X[], $ W[], $ H[]); options= $ opts)
76
+ Dagger. with_options (;scope= $ scope) do
77
+ fetch (nnmf ($ X[], $ W[], $ H[]))
78
+ end
76
79
end setup= begin
77
80
_nw, _scale = $ nw, $ scale
78
81
@info " Starting $_nw worker Dagger NNMF (scale by $_scale )"
79
82
if $ accel == " cuda"
80
83
# FIXME : Allocate with CUDA.rand if possible
81
- $ X[] = Dagger. mapchunks (CUDA . cu, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol); options = $ opts ))
82
- $ W[] = Dagger. mapchunks (CUDA . cu, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures); options = $ opts ))
83
- $ H[] = Dagger. mapchunks (CUDA . cu, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol); options = $ opts ))
84
+ $ X[] = Dagger. mapchunks (CuArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol))
85
+ $ W[] = Dagger. mapchunks (CuArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures))
86
+ $ H[] = Dagger. mapchunks (CuArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol))
84
87
elseif $ accel == " amdgpu"
85
- $ X[] = Dagger. mapchunks (ROCArray, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol); options = $ opts ))
86
- $ W[] = Dagger. mapchunks (ROCArray, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures); options = $ opts ))
87
- $ H[] = Dagger. mapchunks (ROCArray, compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol); options = $ opts ))
88
+ $ X[] = Dagger. mapchunks (ROCArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol))
89
+ $ W[] = Dagger. mapchunks (ROCArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures))
90
+ $ H[] = Dagger. mapchunks (ROCArray, rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol))
88
91
elseif $ accel == " cpu"
89
- $ X[] = compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol); options = $ opts )
90
- $ W[] = compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures); options = $ opts )
91
- $ H[] = compute ( rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol); options = $ opts )
92
+ $ X[] = rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ ncol)
93
+ $ W[] = rand (Blocks ($ bsz, $ bsz), Float32, $ nrow, $ nfeatures)
94
+ $ H[] = rand (Blocks ($ bsz, $ bsz), Float32, $ nfeatures, $ ncol)
92
95
end
93
96
end teardown= begin
94
97
if render != " " && ! live
0 commit comments