Right.  As you can see from the example I posted, you have to keep a
separation between host compiler code and nvcc code, which you then
link together.  There are a few things to keep in mind.

1) NVCC cannot see any boost::python.  I'm in the process of filing a
bug against boost::python, which contains some non-standard C++ that
will never be compilable by NVCC.  Consequently, you'll need to do all
the manipulation of Python objects (access, construction) in host code
compiled with the host compiler.
2) The host compiler cannot see any GPU code.  So all your calls to
Thrust, etc. should be done from the device module.  You can include
your own code and link against your own libraries with the appropriate
Codepy calls.
3) As far as templates go, I've used two main strategies.  As you
mentioned, one is to write a wrapper which instantiates the template,
and call that wrapper from the host code.  The other is to use
explicit template instantiation in the device module, and use an
extern template instantiation in the host module.  Both have worked
for me in the past.

- bryan

On Wed, May 23, 2012 at 2:20 AM, Apostolis Glenis <[email protected]> wrote:
> Really cool stuff.I guess I can have my thrust code in a different file and
> just compile the file at runtime,correct?
> One more thing is templates.If I have a function that requires template
> argument,i have to write a wrapper function for initialization at runtime?
>
> Thanks again,
>
> Apostolis
>
>
> 2012/5/23 Bryan Catanzaro <[email protected]>
>>
>> Thanks and Done!
>>
>> - bryan
>>
>> On Tue, May 22, 2012 at 4:29 PM, Andreas Kloeckner
>> <[email protected]> wrote:
>> > On Tue, 22 May 2012 15:43:12 -0700, Bryan Catanzaro <[email protected]>
>> > wrote:
>> >> Sure, here's an example of how to call thrust::sort on a PyCUDA
>> >> gpuarray.
>> >> https://gist.github.com/2772091
>> >
>> > Cool, like it! I've stolen this and put it here:
>> >
>> > http://wiki.tiker.net/PyCuda/Examples/ThrustInterop
>> >
>> > Bryan, can you please fill in a license there?
>> >
>> > Thanks!
>> > Andreas
>
>

_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda

Reply via email to