On Mon, Sep 10, 2012 at 12:59 PM, Luis Mochan <[email protected]> wrote:
> By the way, I have access to an nvidia fitted machine and would like
> to learn Cuda and use Cuda routines from within perl/pdl programs. I
> haven't learned Cuda yet. I'll appreciate any recommendations: what
> should I install and what should I read?
>
>
> On Mon, Sep 10, 2012 at 09:56:51AM -0500, David Mertens wrote:
>> Luis -
>>
>> When I was working on CUDA::Minimal, I included the ability to
>> transfer CUDA data to/from a piddle. I must have struck this problem
>> ...
>
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Luis -

I learned CUDA at a one-week workshop (as well as the online courses
offered leading up to that workshop) taught mostly by Wen-mei Hwu, at
the University of Illinois. It was a great introduction. I wish they
offered the online courses publicly because they were an excellent
introduction. If you cannot attend a workshop, or if they're too
expensive (I was a grad student at Illinois at the time and got in for
free!) you can find a large collection of online resources for
learning CUDA. Too many, arguably.

Not surprisingly, nVidia has a ton of developer resources for getting
started with CUDA. Probably the best place is their own page dedicated
to this task, which includes videos and slides introducing the topic:
http://developer.nvidia.com/cuda/get-started-cuda-cc

Wen-mei co-authored a book with David Kirk entitled "Programming
Massively Parallel Processors." I bought the book but have made little
use of it, mostly because the classes I took taught me nearly
everything that the book covered. As a beginner, it may prove more
useful to you.

If you want to play around with mixing CUDA and Perl, you will likely
want to use ExtUtils::nvcc, which handles the build chain intricacies
and includes a complete working example for Inline::C. I also wrote
CUDA::Minimal, which is only available on github
(https://github.com/run4flat/perl-CUDA-Minimal), and provides
Perl-level functions for shuttling data back and forth between the GPU
and the CPU. You'll still have to write GPU kernels and the C code to
invoke those kernels (again, Inline::C is useful for this), but the
intricacies of extracting data from PDL or packed Perl scalars are
covered for you.

I am more than happy to answer any questions you may have about CUDA
and perl+CUDA. :-)

David

-- 
 "Debugging is twice as hard as writing the code in the first place.
  Therefore, if you write the code as cleverly as possible, you are,
  by definition, not smart enough to debug it." -- Brian Kernighan

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to