James Schloss

Results 253 comments of James Schloss

``` julia> d_input = CuArray(zeros(Int32, 1024)); julia> wait(f_test!(d_input, Int32)); ERROR: InvalidIRError: compiling kernel gpu_f_test_kernel!(Cassette.Context{nametype(CUDACtx), Nothing, Nothing, KernelAbstractions.var"##PassType#274", Nothing, Cassette.DisableHooks}, typeof(gpu_f_test_kernel!), KernelAbstractions.CompilerMetadata{KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicCheck, Nothing, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, KernelAbstractions.NDIteration.NDRange{1, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.StaticSize{(256,)}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}},...

Created a MWE for this: ``` using KernelAbstractions, CUDA, CUDAKernels, Test @kernel function f_test_kernel!(input, H) tid = @index(Global, Linear) input[tid] = H(tid) end function test!(input, H; numcores = 4, numthreads...

Ready for something crazy? I added the following kernel: ``` function cuda_test!(input, H) i = (blockIdx().x-1) * blockDim().x + threadIdx().x if i

I tried a few different kernels, like: ``` function null() end ``` and ``` function test(H) end ``` It seems like the smallest kernel necessary to get these tests to...

Ok, bear with me. I added `@synchronize()` to the kernel and it didn't seem to do anything different. I then updated the `@print` macros cuda backend to also have a...

Ok, but it looks like wait already called that synchronize. From the cuda backend: ``` function wait(::CPU, ev::CudaEvent, progress=yield) if progress === nothing CUDA.synchronize(ev.event) else while !isdone(ev) progress() end end...

Ah, tried that one too, but got a spectacular error message. I'll poke around more after* an upcoming meeting * after = during.

https://github.com/JuliaGPU/KernelAbstractions.jl/pull/306#issuecomment-1155333857

Hey @tkf. You did not answer my questions in the previous post, I believe I may have poorly communicated my intentions here, so let me be more explicit: Things we...

Ok, after calling @tkf, I think we have solutions to most things: 1. CPU tests should now pass by using UnsafeAtomics#master. I was accidentally updating UnsafeAtomicsLLVM, which is why I...