On 2013-07-25, at 10:45 , Chuck Zhao <[email protected]> wrote:

> Lack of finding any detailed description of what the kernel compiler 
> does, I have been in the process of reading the LLVM source code for all 
> files under
> {POCL_SRC}/lib/llvmopencl/
> 
> I have roughly read all files twice.
> 
> Some I can easily understand, while others contain too much details. 
> Without some level of introduction, it becomes difficult.
> 
> I can roughly understand as:
> - package the kernel with 2 launchers: kernel_workgroup(), and 
> kernel_workgroup_fast(), suitable for 2 different types of devices;
> - various analysis and optimizations are there to help:
>   . Flatten: POCL-specific inlining strategy;
>   . Workitem-Loops: package workitems into loops;
>   . Workitem-replication: package workitems through replication;
>   . Workitem-chooser: selectively pick Workitem-Loops or 
> Workitem-replication;
>   . Kernel: the functions appear in opencl files only;
>   . PHIsToAllocas: convert PHINodes into AllocaInsts, and load/store on 
> each incoming path of the original PHINode (somehow similar to reg2mem);
>   . GenerateHeader: details descriptions of the kernel function 
> (parameters, types, workgroup properties, etc.)
>   . Barrier: Barrier Instruction, "pocl.barrier", simulated using a 
> CallInst;
>   . AllocasToEntry: move all AllocaInst(s) to the entry block of the 
> function;
>   . etc.
> 
> I am asking the list if there is any written document describing the 
> kernel compiler?
> An overall flow graph with a 1-2 page text writing will be much appreciated.
> In particular, the creations of the 2 launchers, and how the design 
> decision is made.


I second this motion.

-erik

-- 
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/

My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://keys.gnupg.net.


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
pocl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pocl-devel

Reply via email to