整理了校招面试时遇到的cuda 八股文涉及岗位:异构计算/AI框架研发/高性能计算/模型部署/算法优化/算子研发1.cpu与gpu的区别?CPU的设计着重于处理单个线程的复杂计算和控制流程。GPU 被设计用于高密度和并行计算,更多的晶体管投入到数据处理而不是数据缓存和流量控制体现在GPU的ALU(算术逻辑运算单元)数量更多2.cuda编程中的SM SP 是什么?SP(streaming processor),计算核心,最基本处理单元SM(Streaming multiprocessor),多个SP加上其他找资源组成一个SM3.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 统计的频率放在另一个数组里面将数组里面的奇数位置的数放在左边,偶数位置的数放在右边,原地操作