logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

测试batch_isend_irecv多卡,多组通信

batch_isend_irecv支持同时配置多组P2P算子,但是其底层实现上也是拆开来做的。以下是NCCL的几种测试场景。

文章图片
#batch#开发语言#pytorch
K210上利用LittleVGL制作一套酷炫的嵌入式页面

最近工程需要,需要在勘智的k210平台进行一些本体软件开发。首当其冲的就是界面设计了。由于k210自身存储空间不是很大,留给ROM和程序的空间并不是很多,所以littlevgl并没有吧它全部去支持了。而是采取了一半一半的方式。界面渲染采用了littlevgl,关键的按键消息机制也采用了原生的,但是界面的元素的回调和处理,就没有用LittleVGL了。而是采用了即时生成的方式,效果还...

#python#嵌入式
利用多GPU,推理transformer模型,避免显存溢出

transformers框架提供了多设备load模型的方式,通过设置device_map,让模型均匀的分布在多卡,从而以类模型并行的方式,比如用上4-6个8g-24g显存的设备就可以跑起来70B, moe, vl这些。像llama系列和MOE系列还好,可以借助deepseed等加速框架对齐进行TP切分,从而达到多卡切分参数的效果,但是像VL系列,TP等策略就不太好使了。最终,笔者利用4个32G的设

文章图片
#transformer#深度学习#人工智能
一种统计torch内部计算过程算子输入输出信息的方法

最近有个需求,相对比网络中不同设备之间的运行情况,出现差异的时候,需要知道差异的地方,不同的设备上发生了什么,设计如下过程,可以看到中间算子的执行信息,用来辅助算子开发。

文章图片
#pytorch#人工智能#python
一个torch.baddbmm算子实现的细节

在一些算法框架,如Megatron-DeepSpeed下,对于input会用empty定义出来,这就导致会进行一个empty*beta的计算过程,此时需要注意,如果beta是0的话,inptu*beta是要跳过的,不然的话如果empty过程中引入了inf值,会导致计算结果中存在NAN。在torch的CPU实现中,也是规避了0带来的NAN的异常值引入。torch.baddbmm算子定义如下。

文章图片
#人工智能#深度学习
pytorch linalg模块

是 PyTorch 框架中的一个模块,它提供了一系列线性代数运算。这个模块在 PyTorch 2.0 中被引入,是为了补充现有的。模块包含了一些线性代数的核心操作,例如矩阵分解、特征值和特征向量计算等。运算,提供更全面的线性代数功能。

文章图片
#python#pytorch
利用多GPU,推理transformer模型,避免显存溢出

transformers框架提供了多设备load模型的方式,通过设置device_map,让模型均匀的分布在多卡,从而以类模型并行的方式,比如用上4-6个8g-24g显存的设备就可以跑起来70B, moe, vl这些。像llama系列和MOE系列还好,可以借助deepseed等加速框架对齐进行TP切分,从而达到多卡切分参数的效果,但是像VL系列,TP等策略就不太好使了。最终,笔者利用4个32G的设

文章图片
#transformer#深度学习#人工智能
命令行关闭代理设置

【代码】命令行关闭代理设置。

#ubuntu
Ubuntu 16.04 下交叉编译python3.5到arm板子,荔枝派Nano为例!

虽然网上有那么多python的交叉编译移植教程,但是方法差异蛮大,需要根据实际开发板的型号做调整,以下是适用于荔枝派Nano的板子移植过程。下载python3.5源码准备一个Ubuntu16.04环境,虚拟机 or 实体机均可编译前的预准备第一步,将源码首先编译一遍,因为需要用到一些Python的解释模块,需要提前生成cd Python3.5.2mkdir prebuildcd prebuild.

#python
到底了