[持续更新] HPC高性能计算CUDA/C++面试知识点
书籍相关
- 《cuda c编程权威指南》
- 《通用图形处理器设计——GPGPU编程模型与架构原理》
CUDA
CUDA知识点考察
- cuda graph作用原理,kernel launch流程
- cuda内存模型理解
- 如何确定blocksize和gridsize
- shared memor的bank conflict及解决方法
- threadfence的作用
- 如何debug cuda kernel
- unified memory和zero-copy memory
- cuda sort如何实现(涉及并行计算的特点+代码能力考察)
- sin函数在哪个硬件计算,这个硬件还能算什么
- Volat架构特性,ITS
- 3090上单个block能用的shmem最大有多少
- PTX与SASS的区别
- GPU性能xx TFLOPS是怎么计算的
CUDA代码能力考察
CUDA实现尽量做到和C++实现做到bit对齐,有些公司会考察这个能力。
- reduce
- reduction
- histogram
- softmax
- gemm,高性能计算方向大概率会问
- scan
- sort
- matrix transpose
- avg pooling
- 算两堆bbox的iou
- layernorm
C++
C++知识点考察
- C++虚函数实现机制,单继承、多继承、虚继承的内存布局
- 四种cast
- 三种智能指针
- 函数模板声明与定义能否分离
- CRTP静态多态
- vector扩容,resize和reserve
C++代码能力考察
- leetcode top/hot 100
- 单例模式
- 生产者消费者模式
- NMS
- conv2d
- 双线性插值(简化版有遇到过:对一维数组插值,就是只处理一行数据,比如8段lut插值成16段)
- layernorm