Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What size of Clyther overhead?

I'm thinking about using Clyther for a high performance task. It is exciting to write OpenCL kernels using only python, but I'm wondering about the performance gap.

What are tasks that Clyther is good at? Bad at? Are Clyther-generated kernels good or not?

Is it possible to find some benchmarks?

like image 419
petRUShka Avatar asked Nov 21 '12 19:11

petRUShka


1 Answers

As the documentation states, the main entry points for CLyther are its clyther.task and clyther.kernel decorators - once a function is decorated with one of these the function will be compiled to OpenCL when called.

CLyther is a compiler of a subset of the Python language. It compiles your Python subset code into OpenCL, so the actual run time of the kernel will not (or should not) differ much between interfaces to OpenCL. The actual overhead of CLyther (as with all interfaces with Python) comes from calling the OpenCL functions, or the moving of data between CLyther/Python and OpenCL.

Benchmarks showing CLyther's performance are available in the documentation. The source tarball contains the C++ and FORTRAN edition of the benchmarked program, a Laplace equation solver, so you can use them to reproduce the benchmark results yourself.

Personally, I believe that you can use CLyther effectively on the majority of problems in need of OpenCL computation.

like image 160
olokki Avatar answered Oct 12 '22 07:10

olokki