一名AI算法工程师,热爱生成式模型和具身智能.
总结一下多GPU的相关要点。
1、使用多gpu的原因:
总结一下流的相关要点。
1、流中排队的所有操作,相对于主机都是异步的,但在流的内部,它们严格按照主机代码确定的顺序执行的。
2、异步函数和流是在cuda中构建网格级并发的两个基本支柱。
收集那些看了之后直呼过瘾的资料。
浮点系统采用位模式来表示数值。一个数值的表示由3部分组成:符号位(S)、阶码(E)和尾数(M)。每个(S,E,M)模式根据下列格式可以标识一个唯一的数值:
以下是对影响模型推理速度的因素分析,目的是构建总体的分析框架。属于学习笔记,原文在这里,向作者致谢。
计算量越大,推理耗时通常越长。模型的计算量主要有各个算子的计算量相加得到。常说的计算量通常指FLOps(Float Operations)。 pytorch中分析计算量的工具:ptflops。
参数量并不直接影响推理速度,但是会影响内存占用和模型磁盘空间占用,以及程序初始化时间。
静态链接的出现,提高了程序的模块化水平。对于一个大的项目,不同的人可以独立地测试和开发自己的模块。通过静态链接,生成最终的可执行文件。
但是在多进程的背景下,静态链接的缺点就显示出来了。
想象这样一种情况,一个程序使用了glibc标准库,现在计算机中同时运行着该程序的100个进程。那么,每个进程中都会有一份glibc,操作系统需要在真实的物理内存中加载100份glibc,浪费了很多内存。
在kernel执行过程中,执行了两个相互独立的索引映射。
第一个映射比较简单,就是根据线程索引映射到原始矩阵的全局内存地址。
分成两步完成,第一步是映射到矩阵的坐标。
当初选择技术作为职业方向时,怀着技术改变世界的理想。
入行后,慢慢地,一种声音总在耳边来回响,那就是技术要服务业务。
好像这个说法也没毛病,毕竟这样才能体现技术的价值。