Hi! 我是李文举.

一名AI算法工程师,热爱生成式模型和具身智能.

TensorRT中的int8量化

神经网络的int8计算是近来神经网络计算优化的方向之一。 本文介绍intel针对cnn的int8量化方案。该方案原理简单直观,并且集成在了tensorrt中,操作实验方便。

阅读全文 »

阻塞非阻塞异步同步概念辨析

1、从I/O说起

这些概念之所以容易令人迷惑,在于很多人对I/O就没有清晰准确的理解,后面的理解自然不可能正确。我想用一个具体的例子来说明一下I/O。 设想自己是一个进程,就叫小进吧。小进需要接收一个输入,我们不管这个输入是从网络套接字来,还是键盘,鼠标来,输入的来源可以千千万万。但是,都必须由内核来帮小进完成,为啥内核这么霸道?因为计算机上运行的可不只是咱小进一个进程,还有很多进程。这些进程兄弟也可能需要从这些输入设备接收输入,没有内核居中协调,岂不是乱套。 从小进的角度看,内核帮助它完成输入,其实包括三个步骤:

阅读全文 »

并行并发多进程多线程协程辨析

1、并行(Parallelism)

并行是说同一时刻做很多操作。多进程是实行并行的有效方法。因为它可以将许多任务分配到计算机的多个核心上。多进程很适合计算密集型的任务,因为它充分地利用了多个CPU。

阅读全文 »

CUDA多GPU编程要点

总结一下多GPU的相关要点。

1、使用多gpu的原因:

  • 单一gpu内存难以加载庞大的数据集
  • 提升吞吐量和效率

阅读全文 »

CUDA中的流的相关要点

总结一下流的相关要点。

1、流中排队的所有操作,相对于主机都是异步的,但在流的内部,它们严格按照主机代码确定的顺序执行的。

2、异步函数和流是在cuda中构建网格级并发的两个基本支柱。

阅读全文 »

AI经典资料收集

收集那些看了之后直呼过瘾的资料。

深度学习中的Normalize

GEMM代码优化讲解

pytorch实现Transformer

pytorch源码解读系列

阅读全文 »

IEEE754浮点标准

一、基本结构

浮点系统采用位模式来表示数值。一个数值的表示由3部分组成:符号位(S)、阶码(E)和尾数(M)。每个(S,E,M)模式根据下列格式可以标识一个唯一的数值:

阅读全文 »

模型推理速度影响因素分析

以下是对影响模型推理速度的因素分析,目的是构建总体的分析框架。属于学习笔记,原文在这里,向作者致谢。

1、计算量

计算量越大,推理耗时通常越长。模型的计算量主要有各个算子的计算量相加得到。常说的计算量通常指FLOps(Float Operations)。 pytorch中分析计算量的工具:ptflops。

2、参数量

参数量并不直接影响推理速度,但是会影响内存占用和模型磁盘空间占用,以及程序初始化时间。

阅读全文 »