# Looking for Windows ARM tester

**URL:** https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912
**Category:** GPU
**Created:** [November 16, 2025, 2:10pm UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912 "2025-11-16T14:10:06Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![GeorgeGkountouras](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@GeorgeGkountouras](https://discourse.julialang.org/u/GeorgeGkountouras)
#### Post date: [November 16, 2025, 2:10pm UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/1 "2025-11-16T14:10:06Z")

</div>

After a successful OpenCL test on my AMD iGPU, I want to see if the same method can be used to target Snapdragon Adreno GPUs. Unfortunately, I don’t have access to one of these devices.

Can someone on Windows ARM help me and @ChetanVardhan run a few julia commands to test this?

---

<div class="post-metadata">

### Author: ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)
#### Post date: [November 17, 2025, 2:14am UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/2 "2025-11-17T02:14:40Z")

</div>

I have. Where is the command?

---

<div class="post-metadata">

### Author: ![GeorgeGkountouras](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@GeorgeGkountouras](https://discourse.julialang.org/u/GeorgeGkountouras)
#### Post date: [November 17, 2025, 3:40pm UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/3 "2025-11-17T15:40:37Z")

</div>

Ok, first install this: [Release v1.2404.1.0 · microsoft/OpenCLOn12 · GitHub](https://github.com/microsoft/OpenCLOn12/releases/tag/v1.2404.1.0)

Then install OpenCL.jl in a new julia environment and try:

```julia-auto
using OpenCL
OpenCL.cl.platforms()

```

---

<div class="post-metadata">

### Author: ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)
#### Post date: [November 18, 2025, 2:02am UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/4 "2025-11-18T02:02:26Z")

</div>

Before installing that appx it can also run:

```julia-auto
julia> using OpenCL

julia> OpenCL.cl.platforms()
2-element Vector{OpenCL.cl.Platform}:
 OpenCL.Platform('QUALCOMM Snapdragon(TM)' @0x00007ff8c7f50ec0)
 OpenCL.Platform('OpenCLOn12' @0x00000270b7ab9cc0)

julia>

```

Is installing of that necessary? Is that the same thing as

 ![image](https://global.discourse-cdn.com/julialang/original/3X/3/5/35ba04839db043fb1203dcb05373a8ef87101cf9.png)

---

<div class="post-metadata">

### Author: ![GeorgeGkountouras](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@GeorgeGkountouras](https://discourse.julialang.org/u/GeorgeGkountouras)
#### Post date: [November 18, 2025, 2:17pm UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/5 "2025-11-18T14:17:11Z")

</div>

It might work without installing it, but I didn’t try that on my machine.

Try `cl.devices(cl.platforms()[2])` and then pick the GPU from the devices shown. Not the CPU fallback. It should say Adreno or something related. Then run the example:

```julia-auto
cl.device!(cl.devices(cl.platforms()[2])[1]) # change this to pick the GPU!

const source = """
   __kernel void vadd(__global const float *a,
                      __global const float *b,
                      __global float *c) {
      int i = get_global_id(0);
      c[i] = a[i] + b[i];
    }"""

dims = (2,)
a = round.(rand(Float32, dims) * 100)
b = round.(rand(Float32, dims) * 100)
c = similar(a)

d_a = CLArray(a)
d_b = CLArray(b)
d_c = CLArray(c)

prog = cl.Program(; source) |> cl.build!
kern = cl.Kernel(prog, "vadd")

len = prod(dims)
clcall(kern, Tuple{CLPtr{Float32}, CLPtr{Float32}, CLPtr{Float32}},
       d_a, d_b, d_c; global_size=(len,))
c = Array(d_c)
a + b ≈ c

```

Also try the same with the official Qualcomm drivers `cl.devices(cl.platforms()[1])[...]`

If that works, there is no need for the fallback.

---

<div class="post-metadata">

### Author: ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)
#### Post date: [November 19, 2025, 1:50am UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/6 "2025-11-19T01:50:27Z")

</div>

![image](https://global.discourse-cdn.com/julialang/original/3X/f/e/feae96bf1be5046c7aa60ac8713add15af3f9959.png)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/a/7/a7da3d8c3a652339ab77be212138647affa7b23f.png)

Both [2] and [1] works and have the same warning. Last line result is true.

---

<div class="post-metadata">

### Author: ![GeorgeGkountouras](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@GeorgeGkountouras](https://discourse.julialang.org/u/GeorgeGkountouras)
#### Post date: [November 19, 2025, 2:19pm UTC](https://discourse.julialang.org/t/looking-for-windows-arm-tester/133912/7 "2025-11-19T14:19:59Z")

</div>

That’s fine, it shows the same warning for my iGPU.
