# Array addition of oneAPI.jl slower

**URL:** <https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663>\
**Category:** Performance\
**Tags:** gpu, performance, oneapi\
**Created:** [November 4, 2025, 7:05pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663 "2025-11-04T19:05:00Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![raman\_kumar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raman_kumar/32/26782_2.png) [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Post date:** [November 4, 2025, 7:05pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/1 "2025-11-04T19:05:01Z")

</div>

Why oneAPI.jl array addition is slow?

```julia-auto
julia> using BenchmarkTools, oneAPI

julia> c = rand(100,100);
julia> @btime $c.+1
  4.950 μs (3 allocations: 78.21 KiB)

julia> a = oneArray(rand(100,100));
julia> @btime $a.+1
  423.117 μs (526 allocations: 63.27 KiB)

```

---

<div class="post-metadata">

**Author:** ![Michel\_Schanen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/michel_schanen/32/19656_2.png) [@Michel\_Schanen](https://discourse.julialang.org/u/Michel_Schanen)\
**Post date:** [November 5, 2025, 1:25pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/2 "2025-11-05T13:25:10Z")

</div>

Three (possible) reasons:

- Your array is small. Your are likely measuring what it costs to launch the broadcast.
- if you want best performance, use a kernel.
- oneAPI.jl is by far not yet as optimized as CUDA.jl.

However, once you get beyond the overhead the raw compute performance in Julia on Intel GPUs is pretty good.

---

<div class="post-metadata">

**Author:** ![raman\_kumar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raman_kumar/32/26782_2.png) [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Post date:** [November 5, 2025, 1:30pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/3 "2025-11-05T13:30:39Z")

</div>

I have Intel GPU so i can’t use CUDA.jl. Please improve the documentation of oneAPI.jl. I see that this [oneAPI.jl documentation](https://juliagpu.org/oneapi/) link is broken. How to use kernel?

---

<div class="post-metadata">

**Author:** ![Michel\_Schanen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/michel_schanen/32/19656_2.png) [@Michel\_Schanen](https://discourse.julialang.org/u/Michel_Schanen)\
**Post date:** [November 10, 2025, 2:25pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/4 "2025-11-10T14:25:00Z")

</div>

I would suggest starting with writing kernels in [KernelAbstractions.jl](https://github.com/JuliaGPU/KernelAbstractions.jl). I assume that in the long run, you don’t want to support Intel GPUs solely anyway. With KernelAbstractions.jl you can target CUDA, oneAPI, ROCm, and Metal together.

---

<div class="post-metadata">

**Author:** ![raman\_kumar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raman_kumar/32/26782_2.png) [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Post date:** [November 10, 2025, 5:08pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/5 "2025-11-10T17:08:53Z")

</div>

Yes, But KernelAbstractions.jl don’t have documentations to start with. Will KernelAbstractions.jl be slower than oneAPI.jl due to overhead of converting code etc.?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [November 10, 2025, 5:14pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/6 "2025-11-10T17:14:23Z")

</div>

> [@raman\_kumar](#):
>
> But [KernelAbstractions.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/KernelAbstractions) don’t have documentations to start with.

[https://juliagpu.github.io/KernelAbstractions.jl/stable/](https://juliagpu.github.io/KernelAbstractions.jl/stable/)

---

<div class="post-metadata">

**Author:** ![raman\_kumar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raman_kumar/32/26782_2.png) [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Post date:** [November 10, 2025, 5:15pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/7 "2025-11-10T17:15:51Z")

</div>

Thanks, I think it would be better to link it on [GitHub - JuliaGPU/KernelAbstractions.jl: Heterogeneous programming in Julia](https://github.com/JuliaGPU/KernelAbstractions.jl) page. I used to look in About section on right. Sorry

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [November 10, 2025, 5:32pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/8 "2025-11-10T17:32:20Z")

</div>

As for nearly every Julia package, it is linked through the “docs:stable” blue badge on the README.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [November 10, 2025, 5:36pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/9 "2025-11-10T17:36:06Z")

</div>

But you’re right that I also like to have the link in the about section on top

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [November 10, 2025, 8:07pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/10 "2025-11-10T20:07:12Z")

</div>

> [@raman\_kumar](#):
>
> I see that this [oneAPI.jl documentation](https://juliagpu.org/oneapi/) link is broken.

Where did you find it? From the navigation menu, if I go to “backends” and then “oneAPI” I arrive to [Intel oneAPI ⋅ JuliaGPU](https://juliagpu.org/backends/oneapi/)

---

<div class="post-metadata">

**Author:** ![raman\_kumar](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raman_kumar/32/26782_2.png) [@raman\_kumar](https://discourse.julialang.org/u/raman_kumar)\
**Post date:** [November 10, 2025, 8:30pm UTC](https://discourse.julialang.org/t/array-addition-of-oneapi-jl-slower/133663/11 "2025-11-10T20:30:05Z")

</div>

I found it in about section of [GitHub - JuliaGPU/oneAPI.jl: Julia support for the oneAPI programming toolkit.](https://github.com/JuliaGPU/oneAPI.jl)

> [@raman\_kumar](#):
>
> I used to look in About section on right. Sorry
