KernelAbstractions.jl
KernelAbstractions.jl copied to clipboard
Heterogeneous programming in Julia
Hello! I am recently trying to exploit the single-process multi GPU capabilities of CUDA.jl 3.8.0 to run on multiple GPU. Unfortunately, for some weird reason, my kernel fails with `ERROR:...
After updating to KernelAbstractions.jl v0.8, I'm seeing a strange repetitive recompilation: ```julia using CUDA, KernelAbstractions, CUDAKernels f(x) = x[1] function test() v = CuArray(zeros(10)) w = CuArray(zeros(10)) @kernel k(a) =...
It seems like methods aren't properly invalidated on GPU when redefined. Example (due to the async printing, it looks weird so you'll just have to take my comments as truth...
Sometimes `wait(kernel(...))` hangs up. MWE: ```julia using KernelAbstractions using CUDA, CUDAKernels using ProgressMeter @kernel function test_kernel(a::AbstractArray{T}) where {T} index = @index(Global) a[index] = T(1) end a = CuArray(zeros(Float32, 500, 500));...
KA currently uses a very verbose and explicit dependency management. ``` event = kernel(CPU())(...) event = kernel(CPU())(..., dependencies=(event,)) ``` This was added since at the time CUDA.jl used one stream,...
``` @kernel f(fns::T) where T fns[1](...) end ``` Just watched @leios get not get a GPU kernel invalidated... Might be a second `@generated` in the way.
MWE: ``` using KernelAbstractions, CUDA, CUDAKernels @kernel function f_test_kernel!(input, tuple_thingy, tuple_size) tid = @index(Global, Linear) meh = tid%tuple_size+1 input[tid] = tuple_thingy[meh](tid) end function test!(input, tuple_thingy, tuple_size; numcores = 4, numthreads...
I feel like this must be known somewhere, but I couldn't find the issue in my quick search. Here's a MWE: ``` using Test using CUDA using CUDAKernels using KernelAbstractions...
I may have missed something important, but this code is currently failing on the CPU ``` using KernelAbstractions @kernel function f_test_kernel!(input) tid = @index(Global, Linear) @uniform a = tid end...