Broadcasting and reshaped, transposed, CuArrays
- Dominant language
- Julia
- Stars
- 1.4k
- Forks
- 281
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 30
Description
Some broadcasting operations work fine on `reshape(transpose(cu(` objects, but some fail:
```julia
using CUDA
CUDA.allowscalar(false)
mat = cu(rand(2,2))
reshape(transpose(mat),2,1,2) .+ mat # ok
exp.(reshape(transpose(mat), 2,1,2)) # ERROR: scalar getindex is disallowed
CUDA.exp.(reshape(transpose(mat), 2,1,2)) # FATAL ERROR: Symbol "__nv_expf"not found
```
Something like this appears to be the cause of https://github.com/mcabbott/TensorCast.jl/issues/25, where the failure happens only when broadcasting two such objects, just one is fine:
```julia
C = cu(ones(10,2))
L = cu(ones(10,3))
reshape(C,1,2,10) .+ reshape(L', 3,1,10) # ok
reshape(C',1,2,10) .+ reshape(L, 3,1,10) # ok
reshape(C',1,2,10) .+ reshape(L', 3,1,10) # ERROR: scalar getindex is disallowed
```
This is with CUDA v0.1.0, I get the same errors on CuArrays v2.2.1, and on CuArrays v1.7.2 the only change is this:
```
julia> CuArrays.CUDAnative.exp.(reshape(transpose(mat), 2,1,2)) #
ERROR: LLVM error: Program used external function '___nv_expf' which could not be resolved!
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.