[LLVMdev] SPMD Autovectorizer

Pekka Jääskeläinen pekka.jaaskelainen at tut.fi
Tue Jul 7 11:19:35 PDT 2015


On 07/07/2015 01:32 PM, Renato Golin wrote:
> Wouldn't OpenMP account for some of that? At least on a single
> machine, could you have both parallel and simd optimisations done on
> the same loop?

The point in SPMD program description (e.g. CUDA or OpenCL C)
autovectorization is to produce something like OpenMP parallel
loops or SIMD pragmas automatically from the single thread/WI
description, adhering to its barrier synchronization semantics
etc.

That is, the output of this pass could be also converted to
OpenMP SIMD constructs, if wanted. In pocl's case the output
is simply a new kernel function (we call "work group function")
that executes all WIs using parallel loops (which can be
autovectorized more easily, or even multithreaded if seeing fit,
or both).

-- 
--Pekka



More information about the llvm-dev mailing list