cuda 面试题整理(长期更新)
整理了校招面试时遇到的cuda 八股文
涉及岗位:异构计算/AI框架研发/高性能计算/模型部署/算法优化/算子研发
1.cpu与gpu的区别?
CPU的设计着重于处理单个线程的复杂计算和控制流程。
GPU 被设计用于高密度和并行计算,更多的晶体管投入到数据处理而不是数据缓存和流量控制
体现在GPU的ALU(算术逻辑运算单元)数量更多
2.cuda编程中的SM SP 是什么?
SP(streaming processor),计算核心,最基本处理单元
SM(Streaming multiprocessor),多个SP加上其他找资源组成一个SM
3.cuda编程的内存模型
全局内存
共享内存
寄存器
4.cuda编程的软件模型
Block,线程块
Grid,线程格
thread,线程
5.stream(cuda 流)概念的理解
主机发出的在一个设备中执行的CUDA操作(和CUDA有关的操作,包括主机-设备数据传输和kerenl执行)
6.使用共享内存时需要注意什么?
(1)线程同步
__syncthreads() 在利用共享内存进行线程块之间合作通信前,都要进行同步,以确保共享内存变量中的数据对线程块内的所有线程来说都准备就绪
(2)避免共享内存的 bank 冲突
bank 冲突概念:同一线程束内的多个线程试图访问同一个 bank 中不同层的数据时,造成bank冲突
只要同一线程束内的多个线程不同时访问同一个 bank 中不同层的数据,该线程束对共享内存的访问就只需要一次内存事务
7.对一个cuda kernel的进行优化可以从哪些角度入手
8.GPU L1/L2缓存介绍
9.同步stream和异步stream的理解
手撕
矩阵乘
softmax规约
nchw转nhwc
长度为n的数组 统计每个元素出现的频率 元素大小为0-256 统计的频率放在另一个数组里面
将数组里面的奇数位置的数放在左边,偶数位置的数放在右边,原地操作
涉及岗位:异构计算/AI框架研发/高性能计算/模型部署/算法优化/算子研发
1.cpu与gpu的区别?
CPU的设计着重于处理单个线程的复杂计算和控制流程。
GPU 被设计用于高密度和并行计算,更多的晶体管投入到数据处理而不是数据缓存和流量控制
体现在GPU的ALU(算术逻辑运算单元)数量更多
2.cuda编程中的SM SP 是什么?
SP(streaming processor),计算核心,最基本处理单元
SM(Streaming multiprocessor),多个SP加上其他找资源组成一个SM
3.cuda编程的内存模型
全局内存
共享内存
寄存器
4.cuda编程的软件模型
Block,线程块
Grid,线程格
thread,线程
5.stream(cuda 流)概念的理解
主机发出的在一个设备中执行的CUDA操作(和CUDA有关的操作,包括主机-设备数据传输和kerenl执行)
6.使用共享内存时需要注意什么?
(1)线程同步
__syncthreads() 在利用共享内存进行线程块之间合作通信前,都要进行同步,以确保共享内存变量中的数据对线程块内的所有线程来说都准备就绪
(2)避免共享内存的 bank 冲突
bank 冲突概念:同一线程束内的多个线程试图访问同一个 bank 中不同层的数据时,造成bank冲突
只要同一线程束内的多个线程不同时访问同一个 bank 中不同层的数据,该线程束对共享内存的访问就只需要一次内存事务
7.对一个cuda kernel的进行优化可以从哪些角度入手
8.GPU L1/L2缓存介绍
9.同步stream和异步stream的理解
手撕
矩阵乘
softmax规约
nchw转nhwc
长度为n的数组 统计每个元素出现的频率 元素大小为0-256 统计的频率放在另一个数组里面
将数组里面的奇数位置的数放在左边,偶数位置的数放在右边,原地操作
全部评论
大佬能分享一下高性能计算学习路线吗?
你说的这些好基础一般面试官都会问我CUDA中某stream中kernel遇到数据依赖导致切换时保存的上下文是什么,还有计算强度,occupancy,内存墙这些
码住了,之前实习做过cpu加速,但gpu的东西还不太会。
AI Lab不能没有你
佬,催更ing
狠狠订阅!冲冲冲
催更大佬!
大佬,请问手撕cuda的代码应该怎么准备
相关推荐
10-31 20:05
南开大学 研发工程师 点赞 评论 收藏
分享