Chris Elrod
Chris Elrod
Probably after fixing this issue: https://github.com/chriselrod/ThreadingUtilities.jl/issues/17 For now, my plan would be to have a few libraries like Octavian and LoopVectorization use the low level interface. The test suite has...
Currently, how it works is that you need a function that takes a `Ptr{UInt}` as it's only argument. You then need to get a `Ptr` to that function. To run...
A complicating problem is that this has to be GC friendly, meaning we need `GC.@preserve`s in a lot of places while working with these pointers. So to automate this, what...
I think it might work if the thing `@spawnfn` returns what needs to be `GC.@preserve`d, and then let the `wait` function do the preserving.
> Does ThreadingUtilities require that you tell it which thread to run the function on? It could loop through them until it finds one that is either `WAIT` or `SPIN`.
> Then we define the method `Base.wait(w::PreserveWrapper{T}) where {T}`, and inside that method we do the preserving. Yes, that's what I meant. It'd also need to carry the id to...
I'll probably work on this fairly soon. Turns out only `@threads` sets the threading region, meaning all the checks in Octavian and `LoopVectorization.vmapt!` don't actually work. While I think you...
> I'm trying to use this for the `subspace_mul!` since I find `Threads.@threads` somehow slows down the original `@avx` implementation 4 times on my machine. https://github.com/JuliaSIMD/LoopVectorization.jl/issues/221 I'll try and get...
> from what I understand, the function implemented using `MulStaticArray` is the function gets executed by each thread? Yes. Parametric functors are often a convenient way of specifying some aspects...
> We could start off by just using [FileCheck](https://llvm.org/docs/CommandGuide/FileCheck.html) which I think would let us avoid building opt, which took a while locally. Yeah, ideally we don't have to build...