Speziale Ettore
2011-Oct-21 13:48 UTC
[LLVMdev] ANN: libclc (OpenCL C library implementation)
Hi,> libclc: http://www.pcc.me.uk/~peter/libclc/ > pocl: https://launchpad.net/pocl > clover: http://cgit.freedesktop.org/~steckdenis/clover/I have pushed our implementation on GitHub: https://github.com/speziale-ettore/OpenCRun I have focused on desiging a modular system, because OpenCRun is intended to be used for research purpose -- not many people, no too much time, so clean design is not an option. For the same reason, I have tried to re-use as much as possible what LLVM/CLANG offers: compiler, jit, build system, diagnostic routines, testing infrastructure, ... Currently I have implemented an OpenCL backend for i386 and X86_64 CPUs. I have coded work-item stacks by hand because after some sintetic benchmarks I have observed that both ucontext and setjmp/longjmp contain some extra overheads. Code is not fully documented -- sorry -- and some mandatory features are still missing (e.g. local variables). Looking at the code, you can observe that there are a lot of LLVM passes. I have implemented some features through passed because I want to keep the code as much modular as possible. Best regards, speziale.ettore at gmail.com PS-1: OpenCRun requires some extra metadata to be generated by clang. In sources root directory there is a clang patch to add support for metadata generation PS-2: some parts are very bad-coded. I know, but I haven't had yet time to do some refactoring
Michael Boyer
2011-Oct-21 14:07 UTC
[LLVMdev] [cfe-dev] ANN: libclc (OpenCL C library implementation)
On Fri, Oct 21, 2011 at 9:48 AM, Speziale Ettore <speziale.ettore at gmail.com> wrote:> Currently I have implemented an OpenCL backend for i386 and X86_64 CPUs. > I have coded work-item stacks by hand because after some sintetic > benchmarks I have observed that both ucontext and setjmp/longjmp contain > some extra overheads.If you have not already seen it, you (and anyone else working on OpenCL runtimes) might be interested in this paper from AMD: http://dl.acm.org/citation.cfm?id=1854302 In particular, Section 4 describes the implementation approach for their x86 OpenCL runtime and mentions a number of optimizations they applied to things like the work-item stack. - Michael
Speziale Ettore
2011-Oct-21 14:11 UTC
[LLVMdev] [cfe-dev] ANN: libclc (OpenCL C library implementation)
Hi,> If you have not already seen it, you (and anyone else working on > OpenCL runtimes) might be interested in this paper from AMD: > http://dl.acm.org/citation.cfm?id=1854302 > In particular, Section 4 describes the implementation approach for > their x86 OpenCL runtime and mentions a number of optimizations they > applied to things like the work-item stack.I know, but I hadn't time to apply all the optimizations -- I have only coded the most trivial. Best regards, speziale.ettore at gmail.com
Seemingly Similar Threads
- [LLVMdev] ANN: libclc (OpenCL C library implementation)
- [LLVMdev] [cfe-dev] ANN: libclc (OpenCL C library implementation)
- [LLVMdev] ANN: libclc (OpenCL C library implementation)
- [LLVMdev] ANN: libclc (OpenCL C library implementation)
- [LLVMdev] ANN: libclc (OpenCL C library implementation)