JuliaParallel / JuliaParallel/Dagger.jl

Support various block sizes

Open
#212 0 comments 0 reactions 1 assignee Claimed by @shashi View on GitHub
array interface
Dominant language
Julia
Stars
723
Forks
90
Avg merge
1d 37m
Merged PRs (30d)
9

Description

```
# Following https://dl.acm.org/doi/pdf/10.1145/3016078.2851152
# See Figure 1

const ncol = 2001
const nrow = 1002
const nfeatures = 12

X = compute(ctx, rand(Blocks(nrow, ncol÷p), Float32, nrow, ncol))
W = compute(ctx, rand(Blocks(nrow÷p, nfeatures), Float32, nrow, nfeatures))
H = compute(ctx, rand(Blocks(nfeatures, ncol÷p), Float32, nfeatures, ncol))

julia> compute(ctx, W' * (X ./ (W * H)))
ERROR: DimensionMismatch("Block distributions being multiplied are not compatible")
Stacktrace:
[1] *(x::Dagger.DomainBlocks{2}, y::Dagger.DomainBlocks{2})
@ Dagger ~/.julia/packages/Dagger/QME91/src/lib/domain-blocks.jl:45
[2] stage(ctx::Context, mul::Dagger.MatMul{Any, 2})
@ Dagger ~/.julia/packages/Dagger/QME91/src/array/matrix.jl:178
[3] cached_stage(ctx::Context, x::Dagger.MatMul{Any, 2})
@ Dagger ~/.julia/packages/Dagger/QME91/src/array/darray.jl:293
[4] compute(ctx::Context, x::Dagger.MatMul{Any, 2}; options::Nothing)
@ Dagger ~/.julia/packages/Dagger/QME91/src/array/darray.jl:76
[5] compute(ctx::Context, x::Dagger.MatMul{Any, 2})
@ Dagger ~/.julia/packages/Dagger/QME91/src/array/darray.jl:76
[6] top-level scope
@ REPL[21]:1
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.