# CuArray dot fuction error

**URL:** <https://discourse.julialang.org/t/cuarray-dot-fuction-error/19532>\
**Category:** GPU\
**Created:** [January 11, 2019, 7:27pm UTC](https://discourse.julialang.org/t/cuarray-dot-fuction-error/19532 "2019-01-11T19:27:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jianghaizhu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jianghaizhu/32/1866_2.png) [@jianghaizhu](https://discourse.julialang.org/u/jianghaizhu)\
**Post date:** [January 11, 2019, 7:27pm UTC](https://discourse.julialang.org/t/cuarray-dot-fuction-error/19532/1 "2019-01-11T19:27:53Z")

</div>

I am playing around some code to run on GPU. I encountered the following error. Here is a MWE.

```julia
julia> B = rand(100, 100, 2)
julia> B_g = cu(B)
julia> B_gv = reshape(B_g, 10000, 2)

julia> dot(view(B_g, :, :, 1), view(B_g, :, :, 1))
3356.4253f0

julia> dot(view(B_gv, :, 1), view(B_gv, :, 1))
ERROR: conversion to pointer not defined for CuArray{Float32,2}
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] unsafe_convert(::Type{Ptr{Float32}}, ::CuArray{Float32,2}) at ./pointer.jl:67
 [3] unsafe_convert(::Type{Ptr{Float32}}, ::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}) at ./subarray.jl:337
 [4] pointer(::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}) at ./abstractarray.jl:858
 [5] macro expansion at ./gcutils.jl:87 [inlined]
 [6] dot(::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}, ::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}) at /home/zhu/julia/usr/share/julia/stdlib/v1.0/LinearAlgebra/src/blas.jl:334
 [7] dot(::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}, ::SubArray{Float32,1,CuArray{Float32,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true}) at /home/zhu/julia/usr/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:9
 [8] top-level scope at none:0

```

I don’t understand why the first `dot` worked, but the second didn’t.

Julia version is 1.0.3 and CuArrays version is 0.8.1.

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 11, 2019, 9:30pm UTC](https://discourse.julialang.org/t/cuarray-dot-fuction-error/19532/2 "2019-01-11T21:30:33Z")

</div>

Works on master.

---

<div class="post-metadata">

**Author:** ![jianghaizhu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jianghaizhu/32/1866_2.png) [@jianghaizhu](https://discourse.julialang.org/u/jianghaizhu)\
**Post date:** [January 16, 2019, 6:22pm UTC](https://discourse.julialang.org/t/cuarray-dot-fuction-error/19532/3 "2019-01-16T18:22:08Z")

</div>

Thanks! I confirm that it works on 1.1.0-rc2.
