The Warwick Anuual Retreat Projects are back! The Warwick Anuual Retreat Projects, or WARPS as the cool crowd calls them, are study group style projects that we will work on during the retreat. The aim of these projects is to foster a collaborative atmosphere within the department, particularly between year groups. This format was debuted last year, and we hope that this year it will be as enjoyable and informative as the previous one.
If you wish to propose a project then please add a brief description of the problem you want to tackle, as a topic in the forum below. We hope that we can start a discussion on these problems before the retreat starts. Hence, others can express their interest and give comments on the projects. The deadline for project proposals is 7th April 2017.
If you like any of the proposed projects and want to join the group working on it, please specify your preference below, so we can allocate the project groups before the retreat starts. If you hate all of the projects below, then please propose one you like! This time we want to allocate projects before the start of the retreat so we allow for more time to work on the projects.
I want to try using CUDA ( the library you use for programming GPU's, used with C code) to write something basic but not totally basic. A PDE simulation/ a matrix multiplication etc. The idea would be, do a bit of reading and decide on a thing to simulate beforehand, then try and code it up in the ~7hrs we have. Depending on time, we could then try profiling it, improving it, comparing it to CPU implementations etc.
We need a (compute card) GPU - we can ssh to tinis, or try and 'rent' one from amazon for the retreat, or if someone has a better idea...or a GPU...
Great idea Jack. I can bring my desktop which has a GeForce GTX 750 Ti with compute capability 5.0. The nvcc compiler is running and I've already got it to do vector sums so far. I'm currently experimenting with doing simple matrix operations to compare it with my CPU and to explore the size limit of arrays I can put onto there since transferring host<=>device tends to take up most computational time. I'm using cuBLAS, a linear algebra library, to do matrix operations as this probably chooses the best algorithm for the specific GPU architecture plus requires the least CUDA knowledge(!) but also happy to go into the detail too.
Happy to preread beforehand. I have zero PDE experience so would be good if you can walk us through the problem you have and how you've done it in C.
Update: OpenCV 2.4 now running to perform elementary matrix operations on data.
Attached: Jack's links and mine all zipped into this one file. Download it yourself to your laptop prior to the retreat in case WiFi is poor.
Plan: All compilation and running of code to occur on my desktop computer. People can write code and transfer it to mine via USB memory stick. Sorry, that's the most lo-tech way we could think of as I didn't want to try setting up an ssh server on this machine as I'm treating this CUDA installation as quite fragile as can't afford to reboot the machine else would have to cancel this WARP.