michael goesele's homepage

GRIS | Fachbereich Informatik | TU Darmstadt
Overview | Multi-View Stereo for CPCs| DISCO| light source acquisition
GDV3 WS2007/08 | GRIS Seminar and Praktikum WS2007/08
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

michael goesele's homepage

Exercise 0

Download and install the NVIDIA CUDA SDK from http://www.nvidia.com/object/cuda_home.html (e.g. home directory as installation path). Details regarding the installation and the code examples can be found in the SDK Release Notes.(The toolkit is already installed on the PCs in the lab, you only have to install the SDK.)

Then you add the following line to your .cshrc file (in your home) under "Arrange all PATH settings": "/usr/local/cuda/bin"

Have a look at the sample projects included in the SDK (SDKPATH/projects)

UPDATE: the necessary permissions on the computers have been set, so you shouldn't have a problem anoymore accessing the NVIDIA hardware. pc1691, pc1608 and pc1647 have CUDA capable graphic cards, but you can also use the other computers in the lab to connect via ssh to the aforementioned ones

Your task is to implement a simple matrix multiplication as shown in the lecture. Your program should be a able to process matrices of arbitrary dimensions (i.e. not only power of 2) up to grid dimensions (see general specifications in [1]). A naive implementation is sufficient, it doesn't have to be very efficient or fast (you don't have to use shared memory, consider memory coalescing, et cetera). The purpose of this task is to get you acquainted with CUDA.

You can use the template project as a starting point for your code. For hints you can look at the MatrixMul project in the SDK (which uses shared memory).

Please send your solution (your project folder) via E-mail to Mate Beljan (firstname.lastname@gris.informatik.tu-darmstadt.de) until Tuesday, 22.04. 09.30h.

As an introduction to C/C++ you can have a look at [2] and [3].

[1] CUDA Programming Guide Appendix A.1 and 2.2
[2] cplusplus tutorial
[3] C Programming Tutorial

 

 

Contact Information | © 2005-2008 Michael Goesele / TU Darmstadt