# Scalar Indexing error when performing mul!(A, B, C) with A a view of a Matrix

**URL:** https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439
**Category:** GPU
**Tags:** gpu, cuda, views
**Created:** [June 10, 2024, 4:07pm UTC](https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439 "2024-06-10T16:07:14Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [June 10, 2024, 4:07pm UTC](https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439/1 "2024-06-10T16:07:14Z")

</div>

Hello,

I paste also here the [issue raised here](https://github.com/JuliaGPU/CUDA.jl/issues/2412).

**Describe the bug**

The in-place multiplication `mul!(A, B, C)` fails when `A` is a vector view of a matrix.

**To reproduce**

The Minimal Working Example (MWE) for this bug:

```julia
using LinearAlgebra
using CUDA
CUDA.allowscalar(false)

# Working case
prova1 = CUDA.rand(Int, 100) # Vector
prova2 = CUDA.rand(Int, 200, 200) # Matrix
prova3 = CUDA.rand(Int, 200) # Vector
mul!(@view(prova1[1:10]), transpose(@view(prova2[1:10, 1:10])), @view(prova3[1:10]))

# Not working case
prova1 = CUDA.rand(Int, 100, 100) # Matrix
prova2 = CUDA.rand(Int, 200, 200) # Matrix
prova3 = CUDA.rand(Int, 200) # Vector
mul!(@view(prova1[1, 1:10]), transpose(@view(prova2[1:10, 1:10])), @view(prova3[1:10]))

```

Surprisingly, it works for matrix views of matrices

```julia
# Working case
prova1 = CUDA.rand(Int, 100) # Vector
prova2 = CUDA.rand(Int, 200, 200) # Matrix
prova3 = CUDA.rand(Int, 200, 200) # Matrix
mul!(@view(prova1[1:10]), transpose(@view(prova2[1:10, 1:10])), @view(prova3[1, 1:10]))

```

---

<div class="post-metadata">

### Author: ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)
#### Post date: [June 10, 2024, 8:55pm UTC](https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439/2 "2024-06-10T20:55:32Z")

</div>

I don’t think it’s particularly useful to cross-post issues from a bug tracker. Unless there’s something you want to discuss that couldn’t happen over there?

---

<div class="post-metadata">

### Author: ![albertomercurio](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albertomercurio/32/27051_2.png) [@albertomercurio](https://discourse.julialang.org/u/albertomercurio)
#### Post date: [June 10, 2024, 10:32pm UTC](https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439/3 "2024-06-10T22:32:15Z")

</div>

Ok, I don’t know which place is most suitable for discussing about this issue.

---

<div class="post-metadata">

### Author: ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)
#### Post date: [June 11, 2024, 4:49pm UTC](https://discourse.julialang.org/t/scalar-indexing-error-when-performing-mul-a-b-c-with-a-a-view-of-a-matrix/115439/4 "2024-06-11T16:49:53Z")

</div>

I would suggest the issue itself.
