Skip to content

Use LoopVectorization.jl's threads, sometimes? #113

@mcabbott

Description

@mcabbott

LoopVectorization has changed two things since its interaction with Tullio was thought out:

  1. a name change @avx -> @turbo, and
  2. a multi-threading macro @avxt or @tturbo == @turbo thread=true.

The easy change would be to make the keyword here turbo=true etc.

I believe the threading uses https://github.com/JuliaSIMD/Polyester.jl, and has lower overhead to launch threads than Threads.@spawn. But if I understand right, using both together can cause problems, e.g. JuliaSIMD/LoopVectorization.jl#221 or JuliaSIMD/ThreadingUtilities.jl#25. To allow but not require use of this, the questions are:

  • Should this just mean calling @tturbo on the whole iteration space (as is done for KernelAbstractions now) or should it also/only be possible to use these threads within Tullio's recursive threads-then-blocks algorithm?
  • Is there a non-confusing interface for this? Since @tullio aims to be concise it's nice not to need 5 keyword options every time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions