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.
Thank you very much
Chuck
------------------------------------------------------------------------------
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