tags:

views:

349

answers:

4

Hi!

I have an interview coming up in a week's time for an entry level position that involves programming in CUDA (hopefully with C).

I was wondering if anybody can suggest some interview questions that I can expect during the interview.

I have gone through the official programming guide but I'm not all that convenient right now.

Thanks.

+12  A: 

Some questions I think you should prepare are:

  • How many different kind of memories are in a GPU ?
  • What means coalesced / uncoalesced?
  • Can you implement a matrix transpose kernel?
  • What is a warp ?
  • How many warps can run simultaneously inside a multiprocessor?
  • What is the difference between a block and a thread ?
  • Can thread communicate between them? and blocks ?
  • Can you describe how works a cache?
  • What is the difference between shared memory and registers?
  • Which algorithms perform better on the gpu? data bound or cpu bound?
  • Which steps will you perform to port of an application to cuda ?
  • What is a barrier ?
  • What is a Stream ?
  • Can you describe what means occupancy of a kernel?
  • What means structure of array vs array of structures?
fabrizioM
@fabrizioMThanks a lot! That was indeed very helpful. I can answer most of these :) Feeling a bit confident now.
Gitmo
It's supposed to be an interview not a quiz show. You want to ask something that requires them to show how the wheels in their head turn, not verify they read the user guide.
Ranieri
+2  A: 

If it's a scientific role then expect questions on floating point and numerical accuracy, in particular you should look at the reduction sample in the NVIDIA SDK since that illustrates a whole load of the points in Fabrizio's post too.

Tom
A: 

could somebody please answer these questions. i am doing a research on gpgpu programming and with cuda... and i am not about the answer of these questions.

scatman
Please try not to post for an answer like this as it does not contribute anything and creates noise. If someone can answer the question, they will.
JasCav
+2  A: 

"You have N vectors of length M (N>>M). Tell me how you would go about designing a kernel to evaluate the distance matrix. Pay special attention to the way the problem is sub-divided and to the way the thread co-operation can be used to improve occupancy.

How would your answer to this question change if M>>N?"

The idea here is not to get you writing code, but to get you thinking out loud. This shows that you really know how to use GPGPU technology and are not merely regurgitating the user guide.

Ranieri