Re: [Cython] OpenCL support

2012-02-06 Thread mark florisson
On 6 February 2012 07:22, Stefan Behnel  wrote:
> mark florisson, 06.02.2012 00:12:
>> On 5 February 2012 22:39, Dimitri Tcaciuc wrote:
>>> 3. Does it make sense to make OpenCL more explicit? Heuristics and
>>> automatic switching between, say, CPU and GPU is great for eg. Sage
>>> users, but maybe not so much if you know exactly what you're doing
>>> with your machine resources. E.g just having a library with thin
>>> cython-adapted wrappers would be awesome. I imagine this can be
>>> augmented by arrays having a knowledge of device-side/client-side
>>> (which would go towards addressing the issue 1. above)
>>
>> Hm, there are several advantages to supporting this in the language.
>
> ... and there's always the obvious disadvantage of making the language too
> complex and magic to learn and understand. Worth balancing.

Definitely. This would however introduce very minor changes to the
language (no new syntax at least, just a few memoryview methods), but
more major changes to the compiler. The support would mostly be
transparent.
Clyther (http://srossross.github.com/Clyther/) is a related project,
which does a similar thing by compiling python (bytecode) to opencl.
What I want for Cython is something even more transparent, the user
wouldn't perhaps even know opencl was involved, and the compiler has
more control over how data is handled.

> Stefan
> ___
> cython-devel mailing list
> cython-devel@python.org
> http://mail.python.org/mailman/listinfo/cython-devel
___
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] OpenCL support

2012-02-06 Thread Dimitri Tcaciuc
On Mon, Feb 6, 2012 at 2:21 AM, mark florisson
 wrote:
> On 6 February 2012 07:22, Stefan Behnel  wrote:
>> mark florisson, 06.02.2012 00:12:
>>> On 5 February 2012 22:39, Dimitri Tcaciuc wrote:
 3. Does it make sense to make OpenCL more explicit? Heuristics and
 automatic switching between, say, CPU and GPU is great for eg. Sage
 users, but maybe not so much if you know exactly what you're doing
 with your machine resources. E.g just having a library with thin
 cython-adapted wrappers would be awesome. I imagine this can be
 augmented by arrays having a knowledge of device-side/client-side
 (which would go towards addressing the issue 1. above)
>>>
>>> Hm, there are several advantages to supporting this in the language.
>>
>> ... and there's always the obvious disadvantage of making the language too
>> complex and magic to learn and understand. Worth balancing.
>
> Definitely. This would however introduce very minor changes to the
> language (no new syntax at least, just a few memoryview methods), but
> more major changes to the compiler. The support would mostly be
> transparent.
> Clyther (http://srossross.github.com/Clyther/) is a related project,
> which does a similar thing by compiling python (bytecode) to opencl.
> What I want for Cython is something even more transparent, the user
> wouldn't perhaps even know opencl was involved, and the compiler has
> more control over how data is handled.

What I'm absolutely certain of is that sort of complete transparency
will eventually start getting edge cases and from there on additional
development and design will have to be made, so I it's better to plan
not-as-transparent elements and user-side control right form the
start.

I think another reason I would go for a less automatic solution is
because I imagine the alternative would inevitably complicate Cython
internals. I think keeping that as simple as possible is huge
advantage in the long run, which is arguably as important as reducing
amount of code a language user has to write (hence me initially
suggesting a more library-like Cython integration, although pyopencl
did work quite well already :).

Dimitri.

>
>> Stefan
>> ___
>> cython-devel mailing list
>> cython-devel@python.org
>> http://mail.python.org/mailman/listinfo/cython-devel
> ___
> cython-devel mailing list
> cython-devel@python.org
> http://mail.python.org/mailman/listinfo/cython-devel
___
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel