CUBLAS.jl
CUBLAS.jl copied to clipboard
importall BLAS for generic code
Hi Nick,
Currently CUBLAS does not export or modify any existing functions, but provides separate CUBLAS versions like CUBLAS.axpy! etc. (If I understand things correctly). If you add the line:
importall Base.LinAlg.BLAS
to the beginning of CUBLAS.jl, (see module usage), then it will be possible for the users to write generic code that works whether the inputs are Arrays or CudaArrays.
best, deniz
:+1: what's the status of this?
Nevermind, I just saw you did this in 217c8d7, so close this issue?
Does this really work?
julia> using CUDArt
julia> using CUBLAS
julia> x = rand(10); y = rand(10);
julia> d_x = CudaArray(x); d_y = CudaArray(y);
julia> dot(d_x, d_y)
ERROR: MethodError: `dot` has no method matching dot(::CUDArt.CudaArray{Float64,1}, ::CUDArt.CudaArray{Float64,1})
julia> VERSION
v"0.4.1"
I think dot is in Base.LinAlg rather than Base.LinAlg.BLAS. We should probably importall that as well. I'll test this.
On Thu, Dec 3, 2015 at 6:18 PM Dominique [email protected] wrote:
Does this really work?
julia> using CUDArt julia> using CUBLAS julia> x = rand(10); y = rand(10); julia> d_x = CudaArray(x); d_y = CudaArray(y); julia> dot(d_x, d_y) ERROR: MethodError:
dot
has no method matching dot(::CUDArt.CudaArray{Float64,1}, ::CUDArt.CudaArray{Float64,1}) julia> VERSIONv"0.4.1"— Reply to this email directly or view it on GitHub https://github.com/JuliaGPU/CUBLAS.jl/issues/1#issuecomment-161851863.
Hmm, it seems a bit more complicated. Base.LinAlg and Base.LinAlg.BLAS each export a different version of dot, so it is not clear which we should extend. I submitted an issue about this: https://github.com/JuliaLang/julia/issues/14268