# Multiprecision arithmetic in CUDA

**URL:** <https://discourse.julialang.org/t/multiprecision-arithmetic-in-cuda/18087>\
**Category:** GPU\
**Created:** [November 28, 2018, 12:38am UTC](https://discourse.julialang.org/t/multiprecision-arithmetic-in-cuda/18087 "2018-11-28T00:38:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![elaine](https://avatars.discourse-cdn.com/v4/letter/e/439d5e/32.png) [@elaine](https://discourse.julialang.org/u/elaine)\
**Post date:** [November 28, 2018, 12:38am UTC](https://discourse.julialang.org/t/multiprecision-arithmetic-in-cuda/18087/1 "2018-11-28T00:38:34Z")

</div>

RE: Compary or something similar  
Is this already implemented or can it be done in Julia and/or Python ?

links to 2018 source code for multiprecision arithmetic in CUDA

[link to source Campary](http://homepages.laas.fr/mmjoldes/campary/)

> **[CAMPARY --CudA Multiple Precision ARithmetic librarY](https://homepages.laas.fr/mmjoldes/campary/)**
>
> CAMPARY

Purpose is to get multiprecision on the GPU ( 32 is not enough )  
I would like to use this if it is available or assist in getting it going.  
.

---

<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:** [November 28, 2018, 2:17am UTC](https://discourse.julialang.org/t/multiprecision-arithmetic-in-cuda/18087/2 "2018-11-28T02:17:50Z")

</div>

This just works:

```julia
using CUDAnative, CuArrays, DoubleFloats

T = Double64
# T = Float64

function sum_plus_mul!(c, a, b)
   @cuda blocks = 1 threads = 32 kernel(c, a, b)
   CUDAnative.synchronize()
end
function kernel(c, a, b)
   i = threadIdx().x
   while i <= length(c)
       c[i] = a[i] + b[i] + a[i] * b[i]
       i += 32
   end
   return
end
a = rand(T, 10) |> CuArrays.CuArray;
b = rand(T, 10) |> CuArrays.CuArray;
c = similar(a);

sum_plus_mul!(c, a, b)

```
