自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(307)
  • 收藏
  • 关注

原创 算法工程汇总(通信框架)

Infiniband: 8GB/s为什么快:自己是一套协议,不需要窗口流控,路由更直接;接收方空间够,发送方才发送; 无需CPU介入;NVLink: 60GB/s!CUDA-aware MPI:用了拆小包Pipeline;用了GPUDirect直达;忽略CPU和主存,忽略Host buffer、CUDA buffer、网卡buffer;例子:OpenMPI;Ri...

2020-02-06 20:00:50 488

原创 算法工程知识汇总(神经网络)

神经网络预测推理---TensorRT: (比Tensorflow的推理快20倍)1. Kernel融合: 横向融合(例如1*1卷积等), 纵向融合(卷积+bias+Relu),消除concatenate层(预分配输出缓存,跳跃式的写入);2. 量化成FP16或者INT8: 减少显存占用,加快推理速度;3. Auto-Tuning:例如,对于卷积计算有若干种算法,TensorRT会...

2020-02-06 18:21:32 462

原创 if __name__ == “__main__“

被import,则__name__被设置module name。例如import mycode,则mycode.py里的__name__被设置为”mycode“被python XXX直接调用,则__name__被设置为"__main__";2. 判断是不是本文件内的单元测试调用的自己;1. 做main函数;

2024-04-18 16:20:21 69

原创 LLM推理中的参数:beam_search、num_sequences、do_sample、temperature、top_k、top_p

越小,采样概率拉的越开。设为0时,greedy取top-1。top_k: 每一步,只从概率最高的K个token里采样。设为0则disable该机制(无top_p的话,则所有token都参与采样)。num_sequences: generate输出几个top序列。top_p: 取值范围0~1。每一步,只从按概率从高到底排序的tokens,前面累加概率达到p的这些词,参与采样。do_sample: 设为True,则每个输出都进行采样;设为False,则每个输出都greedy取top-1。

2024-04-16 11:27:27 122

原创 启动大模型训练常见的docker参数

v /etc/hosts:/etc/hosts:允许容器访问这个文件,该文件记录了很多IP和主机名的映射。--security-opt seccomp=unconfined:容器默认会处在Secure computing mode下,即出于安全考虑,容器有几十个系统调用被禁用。--device=/dev/infiniband/:允许容器访问/dev/infiniband/这个外部设备。--ulimit memlock=-1:-1:允许容器内的进程,lock住任意大小的memory;

2024-04-09 17:53:55 332

原创 Docker常用命令

Run完结束自动删除container,避免很多Exited状态的container(用docker ps -a才能看到)

2023-05-20 14:20:52 536

原创 计算句子向量相似度:SentenceBert和SimCSE

Sentence Bert;SimCSE;

2023-02-23 17:47:00 1040

转载 拉流协议比较:RTMP、HLS、Flv-HTTP

RTMP和HTTP-FLV的延迟低;

2022-11-05 22:54:10 467

转载 VSCode里的Python import解析不到

然后选择一个python解释器即可;

2022-10-31 17:09:46 1104

转载 Python加速库numba

python 代码的编译过程包括四个阶段:词法分析 -> 语法分析 -> 生成字节码 -> 将字节码解释为机器码执行, 常见的 python 解释器的类型有 cpython、IPython、PyPy、Jython、IronPython,与其他解释器不同,numba 是使用 LLVM 编译技术来解释字节码的。numba 基本对所有的 for 循环代码都有非常好的加速效果,当然前提是 for 循环里面的代码必须是 numba 能够理解的。

2022-10-31 16:52:32 282

原创 AzureDevops基本用法

AzureDevops基本用法

2022-10-28 17:01:51 944

原创 Linux创建新用户和key登陆

Linux创建新用户和key登陆

2022-10-26 20:05:04 2241

转载 Chrome Trace 资料

官方文档:Trace Event Format - Google 文档中文简介:(168条消息) 强大的可视化利器 Chrome Trace Viewer 使用详解_csdn_yuan88的博客-CSDN博客_trace viewer

2022-09-08 18:51:49 691

转载 FFmpeg资料

ffmpeg

2022-07-29 19:38:40 54

转载 使用ab命令对web服务进行压力测试

使用ab命令对web服务进行压力测试

2022-07-28 17:18:49 198

原创 查看网络被哪个进程占用得多

网络,linux

2022-06-13 13:59:06 388

原创 Java中的HashMap、TreeMap、ConcurrentHashMap

HashMap:JDK1.8之前:数组挂接链表;JDK1.8之后:数组挂接(链表 or 红黑树)。引入红黑树大程度优化了HashMap的性能,这主要体现在hash算法不均匀时,即产生的链表非常长,这时把链表转为红黑树可以将复杂度从O(N)降到O(lgN)当负载大于0.75之后,数组扩容(增大一倍);当某个桶的链表过长之后(超过8),链表替换成红黑树;TreeMap:1棵红黑树;有序;HashTable: 线程安全;一把大锁,低效;ConcurrentHashMap: 线程

2022-05-22 10:39:01 293

转载 ubuntu下agt-get包管理命令

apt-cache search package 搜索软件包 apt-cache show package 获取包的相关信息,如说明、大小、版本等 sudo apt-get install package 安装包 sudo apt-get install package --reinstall 重新安装包 sudo apt-get -f install 修复安装 sudo apt-get remove package 删除包 sudo...

2022-04-06 07:33:12 463

原创 GPU Kernel冷启动warm up

1. Kernel代码copy至GPU设备上When using the CUDA runtime API, kernel code is downloaded to the device once. This happens as an implicit action right after CUDA runtime context creation. When using the CUDA driver API, the app has control over when kernels get d

2022-02-17 12:06:50 1003

原创 移动端推理库

上层框架:Tensorflow LiteCaffee2PyTorch Mobile:CPU端定点计算:使用自家的QNNPACK做CPU端INT8量化计算; CPU端浮点计算:使用XNNPACK; iOS GPU端计算:Metal Android GPU端计算:Vulkan Android上的DSP和NPU支持:通过Google NNAPI 支持计算图优化腾讯NCNN小米MACE阿里MNN通用性:支持 Tensorflow、Caffe、ONNX 等主流模型格式,支持 C

2022-02-16 22:23:28 355

转载 腾讯移动端推理框架NCNN

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。支持大部分常用的 CNN 网络:Classical CNN: VGG AlexNet GoogleNet Inception …Practical CNN: ResNet DenseNet SENet FPN …Light-weight CNN: SqueezeNet MobileNetV1/V2/V3 Shuffl

2022-02-16 14:12:50 2199

转载 MACE简介

Mobile AI Compute Engine (MACE)是一个专为移动端异构计算平台优化的神经网络计算框架。 主要从以下的角度做了专门的优化: 性能 代码经过NEON指令,OpenCL以及Hexagon HVX专门优化,并且采用Winograd算法来进行卷积操作的加速。 此外,还对启动速度进行了专门的优化。 功耗 支持芯片的功耗管理,例如ARM的big.LITTLE调度,以及高通Adreno GPU功耗选项。 系统响应 支持自动拆..

2022-02-15 22:25:41 1113

转载 阿里推理引擎MNN

MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。1、MNN简介MNN 是一个轻量级的深度学习端侧推理引擎,核心解决深度神经网络模型在端侧推理运行问题,涵盖深度神经网络模型的优化、转换和推理。目前,MNN已经在手淘、手猫、优酷、聚划算、UC、飞猪、千牛等 20 多个 App

2022-02-15 09:10:05 1648

原创 神经网络定点量化

把某个tensor或者某个channel的这组float32, 用int8来表示,就是量化。这组float32的上下界,可以取他们的min和max,也可以moving average,也可以去中间99%的那部分。。。越界的就用量化为0或者255。公式:(r实数-0) / (q整数-Z整数)= S = (r实数max-r实数min) / (q整数max-q整数min) =(r实数max-r实数min) / 255Linear层和卷积的量化:神经网络量化入门--基本原理 - 知乎 .

2022-02-13 21:04:50 1732

转载 conda的好处

conda: python虚拟环境管理工具,其中一个功能是安装python包。 pip: python的包管理工具,可以用于安装python包。 miniconda: conda的压缩包,自带了一个名为base的虚拟环境,这个虚拟环境里只安装了python和几个必要的库。 anaconda:conda的压缩包。自带了一个名为base的虚拟环境,这个虚拟环境里安装了很多和数据处理有关的python包。比如我们今天要跑一个开源仓库,该仓库依赖了python2.7和torch0.4,而你又不想把你现在环境

2022-02-06 10:49:16 3041

转载 静态库和动态库的区别

静态库和动态库最本质的区别就是:该库是否被编译进目标(可执行文件)内部。静态(函数)库一般扩展名为(.a或.lib),这类的函数库通常扩展名为libxxx.a或xxx.lib 。这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译。动态函数库动态函数库的扩展名一般为(.so或.dll),这类函数库通常名为libx

2022-02-05 17:53:46 204

转载 为什么深度比宽度重要

engio和LeCun等人的论文《Scaling learning algorithms towards AI》中提到,如果一个深层结构能够刚刚好解决问题,那么就不可能用一个更浅的同样紧凑的结构来解决,因此要解决复杂的问题,要么增加深度,要么增加宽度。但是神经网络一般来说不是越深越好,也不是越宽越好,并且由于计算量的限制或对于速度的需求,如何用更少的参数获得更好的准确率无疑是一个永恒的追求。而目前针对网络宽度的研究远远不如针对网络深度的研究多,我认为主要有两点原因:①提升同样效果需要增加的宽度远远超过需

2022-02-01 20:45:01 1128

转载 预训练模型综述

预训练模型综述摘要:近年来,预训练模型的出现将自然语言处理带入了一个新的时代。本文概述了面向自然语言处理领域的预训练模型技术。我们首先概述了预训练模型及其发展历史。并详细介绍自然语言处理领域的经典预训练模型,包括最经典的预训练模型技术和现在一系列新式的有启发意义的预训练模型。然后梳理了这些预训练模型在自然语言处理领域的优势和预训练模型的两种主流分类。最后,对预训练技术的未来发展趋势进行了展望。关键词:深度学习、自然语言处理、预训练模型1 引言在学术界,预训练语言模型(PLMs,Pre-tra

2022-01-24 08:28:30 1291

转载 NVIDIA Triton推理服务器

【译】 英伟达Triton推理服务(一)Triton Architecture - 知乎 (zhihu.com)​​​​​​NVIDIA Triton 助力蚂蚁集团打造新一代推理引擎 - 知乎 (zhihu.com)以上图片展示的是Triton Inference Server的高层级的架构。其中Model Respository 是一个基于文件系统的模型仓库,Triton通过仓库中的模型进行推理。推理服务的requests请求通过HTTP/REST,或GRPC,或者C API进行调用,然后发送.

2022-01-23 18:00:01 1094

转载 Batch Normalization和Layer Normalization

atch Normalization 也是可以用的,但为什么不用,我们来分析一下问题。我们回到RNN,RNN其实也能够使用Batch Normalization ,但它为什么不用?是因为变长吗,变长序列我们也是能够padding到同一个长度进行训练的,至于为什么不用,是因为BN对一个Batch中对应位置的分量进行归一化,这就存在一定的问题,因为一个Batch中对应位置的分量不一定有意义,它可能是padding的结果。实际上LSTM训练的时候我们会把一个batch中的序列按照长度降序,长度短的

2022-01-22 13:51:47 464

转载 经过CPU来做内存拷贝,会导致Cache污染

在hishscalability.com上看到一篇文章:Strategy: Stop Using Linked-Lists(这文章写的挺烂,只列结论没有具体分析),正好上周看到了一篇讲同样事情的文章为什么python标准库没有链表。两篇文章主题都是让大家写代码的时候少用链表,多用数组,主要原因是locality,局部性差的后果轻则cache miss,重则page fault。数组由于存储在连续空间里,其局部性显然是好过链表。还记得大学操作系统课上老师说过:「局部性是编程里最重要的概念之一」,当时听的一

2021-11-29 23:04:28 1021

转载 Python里Decorator的本质

 Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。在认识装饰器之前,我们先来点感性认识,看一个Python修饰器的Hello World的代码。 1 2 3 4 5 6 7 8 9 10 11 12 13 下面是代码:文件名:hello.py de

2021-11-29 22:22:47 91

转载 什么是内存模型

内存模型一:什么是内存模型总结了一下对于内存模型的理解,起因是在公司听了一场关于多线程编程的分享会。首先解释一下,内存模型和对象模型是不同的。对象模型说的是一个对象是如何被设计的,其在内存中是如何布局的。而内存模型说的是,在多核多线程环境下,各种不同的CPU是如何以一种统一的方式来与内存交互的。背景知识:CPU的高速缓存总所周知,CPU和内存并不是直接交换数据的,它们之间还隔着一个高速缓存。高速缓存是对程序员透明的,这意味在编程的时候是感知不到CPU的缓存的存在的。一般情况下确实如此,但在,

2021-11-29 13:01:36 4985 1

转载 PyTorch用户侧性能优化

原文:Performance Tuning Guide — PyTorch Tutorials 1.10.0+cu102 documentation1. DataLoad: num_workers开启多进程读取;pin_memory允许异步H2D拷贝。2. torch.no_grad():不需要backward的地方,用这个可以不创建反向图,不缓存激活值;3. 如果BatchNorm后面接Conv,则该Conv不需要再指定bias做相加了;4. param.grad=None取代mod.

2021-11-28 23:03:26 296

转载 TorchScript VS. ONXX

使用ONNX和Torchscript加快推理速度的测试 - 知乎 (zhihu.com)结论:1. Batch size小时,ONNX明显比TorchScript要快;Batch size大时,差距缩小;2. Batch内部的序列长度相似时,Batch size越大,加速效果约好;3. 序列越长,加速效果越不明显4. Batch内部的序列长度相差大的话,Batch size可能在中间某个范围是加速比最大的,因为再大就带来很多“补齐”造成的冤枉计算。...

2021-11-28 14:54:01 1069

转载 NCCL的Double Binary Tree实现原理

延迟小的原因:hop次数是lgN(RingAllReduce是N-1)吞吐量高的原因:每个节点,应该是把数据流动起来了,子节点传过来一部分,加和这部分,传出给父节点;Massively Scale Your Deep Learning Training with NCCL 2.4BySylvain JeaugeyImagine using tens of thousands of GPUs to train your neural network. Using mult...

2021-11-27 23:22:51 2268 1

转载 1bit quantization

原论文:1-Bit Stochastic Gradient Descent and its Application to Data-Parallel Distributed Training of Speech DNNs该文的核心思想就是将32位单精度浮点数压缩成1位,从而降低训练过程的数据交换开销。为了进一步降低通信开销,作者设定在节点间只进行梯度的交换,不进行模型参数的交换。为了降低量化误差带来的负面影响,作者使用了误差补偿技术:每次量化时,把上一次迭代的量化误差加到本次迭代的梯度上,然后再进行量化.

2021-11-27 16:22:54 425

转载 右值引用,移动语义,完美转发

[c++11]我理解的右值引用、移动语义和完美转发 - 简书

2021-11-25 00:31:59 45

转载 卷积在GPU上的实现

​​​​​​【卷积加速】深度学习卷积算法的GPU加速实现方法_cbd_2012的博客-CSDN博客(Caffe)卷积的实现_沤江一流的专栏-CSDN博客_caffe卷积实现C​​​​​​​CCaffe是将feature map和kernel都展开成矩阵,使用矩阵成法来做的...

2021-11-21 22:50:01 656

转载 多轮对话实现

个人助理(完成任务):填充槽位1. 先做意图识别,可以是树形;2. 槽位填充;可以由机器去向人问问题;要能识别话题跳转;谈多轮对话 - 简书

2021-11-13 21:27:52 437

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除