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
