We will be speaking at this year’s GPU Tech. Conf. in San Jose, which goes from Sept. 30 to Oct. 2, about using CUDA within Mathematica. The slides are almost ready and we are just organizing some logistics etc. I thought we might write a bit about the talk in order to get some initial feedback on the content.
The talk is divided into three parts, initially we introduce the structure of Mathematica, in particular its MathLink API and go into the basics idea of creating a simple C++ application which we can call from Mathematica. Then we discuss the API in a bit more details, especially receiving and sending arrays to and from Mathematica. Its here where we also discus how to receive and send complex numbers, which is handy when doing FFT for example. We then briefly discuss running MathLink applications on remote computers, which is specially useful if you share your CUDA enabled computer with others. Finally we go through some basic error and interruption handling in the MathLink API.
The second part then concentrates on the CUDA aspect of the MathLink application, in some sense the whole philosophy of the talk. If we create a CUDA application that can get and receive data from Mathematica, via the MathLink API, then we are done! In particular we give an overview of a simple example using the
mathematica_cuda plugin, which lets you do just this. For a more universal solution, one that works under Windows, there is the excellent CMake module: FindCUDA together with my FindMathLink module which I wrote about previously. We then finish this part by going through a complete example: FFT via CUFFT and show how one goes about getting it working in Mathematica.
The last part, time permitting, is where we show some of the work we have been doing with sending computations to the GPU from Mathematica. In particular I will show some of the work I have been doing with image deconvolution of Confocal and Wide-field images. I am using the GPU to do my deconvolution experiments and using Mathematica to read in the images and analyze the results. check domains . Shoaib will present his work on calculating the vegetation index in multi and hyper-spectral satellite images.
I hope you find this overview helpful. We will put the slides up here when the tutorial is over, and if you plan to attend the conference it would be great to see you and get your feedback. Also if there is something specific you would like us to cover, you still have a few days to let us know.