[llvm-dev] LLVM and parallelization of target code

Kun Ling via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 27 09:37:56 PDT 2015


Hi Lulia,
   There are different kind of parallelization ? I am assuming you are asking for use LLVM to generate parallel code, not make LLVM run in parallel.


   There are at least two different kinds of parallelization: 
   1. Auto-parallel. 


   2. parallel language extension support in LLVM+Clang toolchain.


   


1. Auto-parallel:
1.1 Auto-vectorization is such kind of parallel, It automatically analyze standard C/C++ code, and take advantage of the underlying target's SIMD instruction support, such as SSE/AVX/NEON to generate parallel code (SIMD code).  
      This webpage might contain more details: http://llvm.org/docs/Vectorizers.html#the-slp-vectorizer
      For the detail implementation, there are LoopVectorizer, SLPVectorizer and BBVectorizer. 


1.2 Instruction Scheduling could be treated as another kind of parallel, which works together with underlying target's VLIW support or Out-Of-Order execution support to improve Instruction-Level-Parallel (ILP). Usually, people likes to treat this as an basic function of the compiler, not a kind of parallelization. But it did improve ILP.


1.3 Thread-Level automatic parallel support. OpenMP could be treated as a kind of such parallel ( http://blog.llvm.org/2015/05/openmp-support_22.html).




2.  parallel language extension support
2.1 OpenMP  http://blog.llvm.org/2015/05/openmp-support_22.html
2.2 OpenCL  http://portablecl.org/index.html
2.3 CUDA  http://llvm.org/docs/NVPTXUsage.html
2.4 Cilkplus  https://github.com/cilkplus?tab=repositories


Kun Ling




 
 
------------------ Original ------------------
From: "Iulia Stirb via llvm-dev"; 
Date: 2015年9月27日(星期天) 凌晨2:54
To: "llvm-dev at lists.llvm.org"; 
Subject: [llvm-dev] LLVM and parallelization of target code

 
Hello,


I am new in this group. I would like to ask what is already implemented in LLVM regarding parallelization?


Any answer would be much appreciated.


Many thanks,
Iulia Stirb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150928/09ae0834/attachment.html>


More information about the llvm-dev mailing list