JuliaAttic / CUBLAS.jl

Julia interface to CUBLAS
Other
26 stars 19 forks source link

Adding wrapper functions to half precision (FP16) and cublas****Ex() functions. #29

Closed mikhail-j closed 7 years ago

mikhail-j commented 7 years ago

I have written these wrapper functions to be defined if the CUDA runtime version is 7.5+.

I would like to submit these to the project.

Since this module is precompiled based on other unstable changes in the respective CUDA wrapper libraries (CUDAdrv and CUDArt), I manually removed existing compilecaches of CUDAdrv.jl, CUDArt.jl, and CUBLAS.jl during testing.

codecov-io commented 7 years ago

Codecov Report

Merging #29 into master will decrease coverage by 1.1%. The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #29      +/-   ##
==========================================
- Coverage    63.5%   62.39%   -1.11%     
==========================================
  Files           5        5              
  Lines         844      859      +15     
==========================================
  Hits          536      536              
- Misses        308      323      +15
Impacted Files Coverage Δ
src/blas.jl 94.39% <ø> (ø) :arrow_up:
src/libcublas.jl 0.41% <0%> (-0.03%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1e10286...2fca61d. Read the comment docs.

mikhail-j commented 7 years ago

I also added Float16 case to cublasHgemm() in the gemm!() macro in blas.jl.

kshyatt commented 7 years ago

Thanks so much for doing this, and sorry for the late response. I think we need a squash (to get rid of the "Revert..." commits) and if there's any way for you to preserve the coverage statistics, that would be good.

mikhail-j commented 7 years ago

I believe the decreased coverage issue is unfounded as it reflects the libcublas.jl changes rather than the blas.jl changes. The code coverage in blas.jl remains unchanged (94.39%).

This pull request includes newer Julia functions to wrap several newly introduced C CUDA functions since CUDA 7.5.

This translates to decreased code coverage in libcublas.jl, in the same fashion that cublasrot(), cublasrotg(), cublasrotm(), cublasrotmg(), cublasswap(), cublastpttr(), and cublastrttp() (and several other Julia wrapper functions in libcublas.jl that are unimplemented in blas.jl and aren't referenced in Base.Test tests).

kshyatt commented 7 years ago

Well, in that case, let's just squash and merge :D