微信扫码
与创始人交个朋友
我要投稿
1. 描述一下SM的结构?
2. 共享内存和寄存器分别应该存放哪些数据。
3. bank冲突是什么?描述具体结构,如何解决?
4. 说一下分支冲突,如果warp内有冲突,部分符合if条件,部分符合else条件,是否需要等待?
if
条件,而其他线程满足else
条件),这将导致warp内的线程分裂成多个执行路径,从而增加了计算的开销。当warp中的线程分裂到不同的执行路径时,它们不能再同时执行相同的指令,因为它们需要执行不同的指令集。这导致了一种情况,其中部分线程在某个时刻被激活,而其他线程则被暂停。if
条件而其他线程满足else
条件,那么这个warp会被分裂成两个独立的warp。5. 项目中用过TensorCore吗?了解TensorCore的原理吗?
Tensor Cores 使用介绍:https://zhuanlan.zhihu.com/p/671312675
6. 为什么用float4向量来存取数据?有什么好处?
float4
向量,数据被自动对齐到4字节的边界,从而提高了访问速度。float4
向量时,它们可以在一个内存事务中处理多个数据元素,从而减少了内存访问的开销。float4
向量可以更有效地利用内存带宽,从而提高整体系统的性能。7. 了解cuda流和cuda graph吗?
CUDA流(CUDA Streams):CUDA流是CUDA编程模型中用于管理和调度并行操作的抽象概念。使用CUDA流,可以将多个GPU操作组织成不同的流,并发地执行这些流中的操作。CUDA流提供了一种灵活的方式来管理GPU资源并优化并行计算。
CUDA图(CUDA Graphs):CUDA图是一种高级的CUDA编程技术,用于提前定义和优化GPU操作的执行顺序。通过创建和使用CUDA图,可以减少GPU操作之间的依赖关系,从而提高并行性和性能。CUDA图允许开发者以图的形式表示和管理GPU操作,这使得在某些情况下可以实现更高级的优化和调度。
8. 在Nsight Computing中,经常关注的与内存相关的指标?
9.cutlass中如何对GEMM进行优化的吗?
CUTLASS 基础介绍:https://zhuanlan.zhihu.com/p/671324125
10. 了解Transformer吗?底层是什么结构?知道Faster Transformer吗?cuda中如何优化?
11. Paged Attention有了解吗?
从 FlashAttention 到 PagedAttention, 如何进一步优化 Attention 性能
https://zhuanlan.zhihu.com/p/638468472
12. TensorFlow和Pytorch设计思路有何不同?
TensorFlow:最初采用静态计算图的方式进行计算,用户需要先定义计算图,然后执行计算。
PyTorch:采用动态计算图的方式进行计算,允许用户在运行时动态地构建和修改计算图。
13. Nsight Compute和Nsight System使用场景和区别?
14.模型导出fp32的trt engine没有明显精度损失,导出fp16损失很明显,可能的原因有哪些?
15.onnx模型推理结果正确,但tensorRT量化后的推理结果不正确,大概原因有哪些?
可能原因有:
a. calibrator的算法选择不对;
b. calibration过程使用的数据不够;
c. 对网络敏感层进行了量化;
d. 对某些算子选择了不适合OP特性的scale计算。
正常的,因为calibration(校正)是以tensor为单位计算的。对于每次计算,如果histogram的最大值需要更新,那么PTQ会把histogram的range进行翻倍。不考虑内存不足的问题,推荐使用更大的batch_size,这样每个batch中包含样本更加丰富,校准后的精度会更好。但具体设置多大,需要通过实验确定(从大的batch size开始测试。一点一点往下减)。需要注意的是batch_size越大,校准时间越长。
17.模型量化到INT8后,推理时间反而比FP16慢,这正常吗?
正常的,这可能是tensorrt中内核auto tuning机制作怪(会把所有的优化策略都运行一遍,结果发现量化后涉及一堆其他的操作,反而效率不高,索性使用cuda core,而非tensorrt core)。当网络参数和模型架构设计不合理时,trt会添加额外的处理,导致INT8推理时间比FP16长。我们可以通过trt-engine explorer工具可视化engine模型看到。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-21
2024-04-11
2024-08-13
2024-07-09
2024-07-18
2024-10-25
2024-07-01
2024-06-17