Guidelines


Policies on working together

You are allowed to perform this assignment with another student (in groups of maximum two people). You can also choose to do this assignment individually.

If you are in a group, you and your team mate both need to submit a report and code package. Furthermore if you are in a group, add your team mate as co-author such that it is clear you worked as a team. When working in a group, keep in mind that it is import both team members understand everything in detail, as there wil be questions on this assignment in the final exam which is individual.

Whether you are working in a group or not, it is of course always allowed (and encouraged!) to talk to other people about what you are doing.

Programming guidelines

For the assignment you have to port the provided application to a GPU. You can chose yourself what language you want to use for this. On this website we have provided several resources for two popular choices, CUDA and OpenCL. Check out the cookbook on CUDA and OpenCL for examples on how to use these languages to harness the power of GPUs. Using these examples and the additional resources in the External Links section you can start to port the provided application to the GPU.

Our advice is to port sections of the algorithm one by one, and test functional correctness every step of the way. Also, keep track of the performance of your program, and document all your optimizations and their results carefully for the report.

Platform

In principle we do not require you use any specific GPU for this assignment. This means you are free to use the GPUs in your laptop, or any other machine you have access to. However, to make your life a bit easier, we grant you access to some of the GPUs of the Electronic Systems group that have all drivers installed already. These are also the only machines we provide support for, so if you want to use your own laptop, you will have to install all drivers and support software yourself. You can use the server account your got for the first assignment, and log into:

  • co13.ics.ele.tue.nl
  • co14.ics.ele.tue.nl

Both these machines contain 4 GTX570 GPU cards, which you are free to use to develop your application. On these servers, both CUDA and OpenCL drivers are installed, and the examples provided on this website for CUDA and OpenCL should work out-of-the-box on these machines.

Note: For those of you who want to participate in the competition, the GPUs used in co13 and co14 are the same as the GPU used for the competition. Thus, you can tune your application for the GTX570 cards in co13 and co14, and expect similar performance in the competition.

Report guidelines

Do not just present the results, but also explain them. What do you expect? Do the results match what you expect? If they do not match, can you think of reasons why not? Explain the optimizations you performed, and their impact on the application. Are you optimizing the dominating parts? Are the chosen optimization techniques solving the bottleneck? If you do not manage to optimize the dominating parts, explain why not. It is important to understand the fundamental limits. Explain results in a concise and clear way. Tables and figures may help avoid verbose text. Yet data in tables and figures should always be clearly analysed and explained.

Submission

We expect you to submit the following:

  • A report of maximum 8 pages in PDF format.
  • A zip file containing the source code.

A zipfile of your source can be made by running make zip.

To submit please use the assignment under lab 2 on oncourse

Additional Information

If there are any unclarities or problems, we refer you to our forum on oncourse.

Copyright TU/e