关于CUDA编程的面试问题?

时间:2009-12-24 13:28:07

标签: c cuda

我在一周的时间内接受了一次面试,其中涉及CUDA编程(希望与C一起)。

我想知道是否有人可以在面试中提出一些我可以期待的面试问题。

我已经阅读了官方编程指南,但我现在并不是那么方便。

感谢。

3 个答案:

答案 0 :(得分:21)

我认为你应该准备的一些问题是:

  • GPU中有多少种不同的记忆?
  • 什么意思是合并/未合并?
  • 你能实现矩阵转置内核吗?
  • 什么是扭曲?
  • 多处理器内可以同时运行多少个warp?
  • 块和线程有什么区别?
  • 可以在它们之间进行线程通信吗?和块?
  • 你能描述缓存是如何工作的吗?
  • 共享内存和寄存器有什么区别?
  • 哪些算法在gpu上表现更好?数据绑定或cpu绑定?
  • 您将对cuda的应用程序端口执行哪些步骤?
  • 什么是障碍?
  • 什么是流?
  • 您能描述一下内核占用的含义吗?
  • 数组与结构数组的结构是什么意思?

答案 1 :(得分:7)

“你有N个长度为M的向量(N> M)。告诉我如何设计内核来评估距离矩阵。特别注意问题被细分的方式和线程合作的方式可以用来提高占用率。

如果M>> N?“

,您对此问题的答案会如何变化?

这里的想法不是为了让你编写代码,而是为了让你大声思考。这表明您确实知道如何使用GPGPU技术,而不仅仅是反复使用用户指南。

答案 2 :(得分:4)

如果它是一个科学角色,那么期待有关浮点和数值精度的问题,特别是你应该看一下NVIDIA SDK中的缩减样本,因为这也说明了Fabrizio帖子中的整个点数。