自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI知识搬运工

算法工程师一枚,专注自动驾驶,也对AIGC感兴趣。

  • 博客(207)
  • 资源 (4)
  • 收藏
  • 关注

原创 【性能优化】分块

整体上展示了矩阵乘法在硬件和软件领域中的分块计算策略。通过划分小块的方式,提高了数据局部性,减小了存储访问开销,同时通过调度方案的选择,优化了计算的效率和资源的利用率。

2024-09-15 23:19:39 72

原创 CUDA PTX代码学习:square_kernel注释

这个代码是使用LLVM NVPTX后端生成的CUDA PTX代码,用于在NVIDIA GPU上执行一个核函数。

2024-09-11 14:27:58 138

原创 【性能分析】ncu Metric Name解释

这些指标用于分析 CUDA 内核在 GPU 上执行时的性能表现,帮助识别潜在的性能瓶颈和优化机会,例如计算吞吐量、内存吞吐量、寄存器使用情况、共享内存使用情况等。

2024-09-11 14:18:59 101

原创 pointpillar部署-TensorRT实现(三)

【代码】pointpillar部署-TensorRT实现(三)

2024-09-10 18:20:06 49

原创 pointpillar部署-TensorRT实现(二)

pointpillar网络实现中ScatterBEV操作即Learned Features 是如何变化为Pseudo Images 在TensorRT并不支持,需要手动添加自定义操作。主要使用nvinfer1::plugin来实现。

2024-09-10 18:18:47 55

原创 pointpillar部署-TensorRT实现(一)

统一内存管理,无须进行cpu内存申请,gpu内存申请,cpu到gpu的数据拷贝过程。但是需要注意的是cudaMallocManaged 需要在变量初始化之前使用。相对于主机是异步的,因此调用可能在memset完成之前返回。可以通过传递非零流参数将操作与流相关联。如果流为非零,则该操作可能与其他流中的操作重叠。两个过程对应cuda程序中:generateVoxels_random_launch 和 generateFeatures_launch。主要包括两个过程,一个是生成voxel,一个是生成体素特征。

2024-09-10 18:18:23 59

原创 [译] 大模型推理的极限:理论分析、数学建模与 CPU/GPU 实测(2024)

在开发calm的过程中,我们考虑的一个核心问题是:推理的极限在哪儿?因为我们需要以此为准绳,去衡量真实推理系统的速度。calm 是一个基于 CUDA、完全从头开始编写的轻量级 transformer-based language models推理实现。本文试图讨论这个极限及其影响。如果对推导细节感兴趣,可参考这个 python notebook。对于大模型推理场景,计算和访存的次数是已知的,因此可以进行数学建模,计算理论极限。这非常有用,不仅可以用来验证推理系统的性能, 而且能预测架构变化带来的影响。

2024-09-09 14:25:17 1495

原创 【模型分析】Roofline Model

Roofline 模型是一种性能分析工具,用于描述计算性能和内存带宽之间的关系。它的核心思想是将计算性能(通常以 GFLOP/s 为单位)与内存带宽(通常以 GB/s 为单位)进行计算比例关系来分析模型瓶颈。直接运行此代码,将根据输入的芯片参数和模型参数,绘制 Roofline 图,并标识出模型的性能位置。重构为一个函数,并添加一个接口,用于输入一个模型的 FLOPS 和内存占用量,在 Roofline 模型中标识该模型的性能位置。)修改这些值来绘制不同的 Roofline 图。

2024-08-28 17:21:57 63 1

原创 【AI 绘画】web_ui 搭建(基于gradio)

Gradio的优势在于易用性,代码结构相比Streamlit简单,只需简单定义输入和输出接口即可快速构建简单的交互页面,更轻松部署模型。适合场景相对简单,想要快速部署应用的开发者。便于分享:gradio可以在启动应用时设置share=True参数创建外部分享链接,可以直接在微信中分享给用户使用。

2024-08-15 19:50:41 83

原创 【AI 绘画】Q版人物定制生成

添加不同的lora可以产生不同的效果,比如我们添加一个龙的背景lora,来生成不同风格的写真import sysimport cv2else:else:ims = []steps = 4inps = [None,None,None,prompt,scale,n_samples,seed,steps,H,W,id_scale,mode,id_mix,return ims。

2024-08-15 19:31:42 844

原创 【AI 绘画】模型转换与快速生图(基于diffusers)

本次主要展示一下不同框架内文生图模型转换,以及快速生成图片的方法。SDXL文生图。

2024-08-15 14:34:08 143

原创 【AI 绘画】instantID手办定制

添加不同的lora可以产生不同的效果,比如我们添加一个龙的背景lora,来生成不同风格的写真例如:使用龙作为背景import cv2!

2024-08-14 23:27:50 60

原创 【AI 绘画】 文生图&图生图(基于diffusers)

本次测试主要结果展示如下:SDXL文生图可爱Lora。

2024-08-14 22:43:38 99

原创 【AI绘画】 学习内容简介

本次课程主要介绍AI绘画的常用方法,包括文生图、图生图、模型转换、web_ui搭建、controlnet基础使用、instantID手办定制、PulID手办定制、文生视频介绍、图片与视频超分、ComfyUI基础使用、ComfyUI进阶使用等。AI绘画一般会比较消耗显存,一般本地使用3090以及V100资源,这将给我们没有GPU的电脑带来不便,本专栏也将介绍如何使用AI studio等免费云端资源进行AI绘画,以方便没有GPU资源的小伙伴们进行学习。理解AI绘画的原理,掌握AI绘画的常用方法。

2024-08-14 22:30:23 261

原创 PDF转markdown工具:magic-pdf

将magic-pdf.template.json文件修改为magic-pdf.json放在系统目录,不同的系统默认目录不同,测试使用cpu执行,内存16g,3页pdf解析大概2分钟, 页数过多会崩掉。有些公式好像解析的不太对,整体可用。可以是单个 PDF 文件,也可以是包含多个 PDF 的目录。结果将保存在目录中。magic-pdf.template.json 中models-dir修改为模型的下载路径。

2024-08-13 16:08:38 722

原创 【AI编译器】triton学习:矩阵乘优化

且需要注意的是,当M与数据握的大小BLOCK_SIZE_M不是相匹配的时候,我们可以通过添加一个额外模式来处理这种情况,例如,在数据中往底部加上一些无用的值。这种方式非常重要,因为执行顺序可能导致该程序中L2缓存的命中率不同,而且令人遗憾的是,如果我们使用矩阵增量式顺序执行代码,则其性能将会受到影响。通过比较如果我们按行向量序排列输出的话,则需要在SRAM中加载90个元素来计算第一层的9个输出值,而若是以固定单元格为基础进行分组操作,只需加载54个元素。为了实现该操作,我们需要使用多维指针运算方式。

2024-06-25 17:22:53 1054

原创 【AI编译器】triton学习:编程模型

在过去十年里,深度神经网络 (DNNs) 已成为机器学习 (ML) 模型的一个重要分支,能够实现跨领域多种应用中的最佳性能。这些模型由一系列包括参数化(如滤波器)和非参数化(如缩小值函数)元件组成的层次结构组成,这种模式虽然运算复杂度高且计算量大,但对于多核、并行处理器来说是非常适用的。由于深度神经网络的计算能力和 GPU编程带来了极高的难度,因此对特定应用语言 (DSL)及编译器引发出广泛的学术与产业界兴趣。

2024-06-25 17:20:09 1115

原创 Stable Diffusion 3: Research Paper

扩展模型 (Stable Diffusion) 在與 DALL·E 3、Midjourney v6 和 Ideogram v1这些图像生成系统相比,在书写效果以及响应指令方面表现出色。人类用户的预测性评估显示了这一点。全新多模态扩散变换器(MMDiT)架构,在图像和语言表示之间使用了不同的参数化学习权重函数,这有助于提高 Stable Diffusion 文本理解与翻译能力。

2024-06-13 14:35:33 985

原创 【AI绘画】Stable Diffusion 3开源

Stable Diffusion 3是Stability AI目前为止最先进的文本转图像开放源代码算法。这款模型的小巧设计使其完美适合用于消费级PC和笔记本电脑,以及企业级图形处理单元上运行。它已经满足了标准化的文字转图像模型所需要的一切条件,适应市场需求的下一代模型正在到来。:采用先进的图像处理技术,能够生成精确、色彩饱和且光线自然的图像,同时也可以制作出高品质且多样化风格的输出。利用如16 通道 VAE的创新性技术解决了其他模型经常会遇到的问题,例如手部和面部实体效果不足等问题。

2024-06-13 13:40:29 838

原创 Hyper-SD: diffusion实时出图,一步搞定,字节出品

近来,一系列面向扩散模型(Diffusion Models,DM)的迭代紧凑式传播推断算法陆续出现,以解决其中的复杂性问题。目前,这些算法常常将方法分为两类:一是保持 ODE 流形连续性;二是重写 ODE 流形。然而,这两种方法在压缩后的执行效果中存在显著问题。因此,我们提出了 Hyper-SD 框架,通过有机结合以上两类算法的优点,并将其应用于压缩后模型的学习,从而实现高质量执行。此外,我们引入了人工反馈学习,以提高在低步长情况下的表现和改进该过程中可能发生的损失。

2024-06-06 19:03:36 853

原创 【pytorch】大模型训练张量并行

原始 Tensor Parallel (TP) 模型并行技术于Megatron-LM论文中被提出,是一种用于培育大规模Transformer模型的高效模型并行技术。我们在本练习指南中介绍的序列并行 (SP) 实际上是TP模型并行技术的一个变种,这里使用序列划分对 nn.LayerNorm 或 RMSNorm 进行划分,以节省在训练过程中的活动内存。随着模型体量的扩大,其运算内存就会成为主要瓶颈,因此TP模型并行技术通常是将序列并行应用于 LayerNorm 或 RMSNorm 层。

2024-06-03 17:47:18 1604

原创 DistriFusion: 分布式并行推理加速高分辨率 Diffusion Models

虽然采用扩散模型来生成高质量图像已经取得了巨大的进展,但是要通过该方法构建多分辨率图像还存在不小的困难。这主要是由于扩散模型需要消耗庞大的计算量才能达到理想效果,造成了非常严重的时间延迟问题,而此类应用在交互性方面具有核心作用。为解决这个难点,我们提出了 DistriFusion 模型以实现高效率处理。该模型首先将输入分片后再按 GPU 分配,但是由于无法考虑图像相邻层之间的关联性就可能导致丢失了原始信息并产生模糊度。

2024-06-03 10:42:17 520

原创 TinyChat: Visual Language Models & Edge AI 2.0

了解TinyChat和AWQ最新的技术发展。在边缘部署语言理解模型(LSTM)后,借助于视觉语言模型(VLM),可以为LLM提供更好地处理图像输入的能力,从而极大方便了文字对话问答、图片标题生成等图形内容解读任务。TinyChat最新版支持先进VLM技术 VILA,可通过AWQ轻松实现量化操作,从而为用户提供了完美的使用体验来应对图片内容处理等任务。

2024-05-22 15:37:40 615

原创 Ollama部署

量化 model 到 4-bits (using Q4_K_M method)转换 model 为 ggml FP16 格式。导入Ollama model。运行Ollama model。创建 Modelfile。

2024-05-21 18:23:44 489 1

原创 QServe: W4A8KV4 Quantization and System Co-design for Efficient LLM Serving

量化技术能够加速大规模语言模型(LMM)的预测。在INT8量化方法之上,研究者们正积极探索更低精度的技术,如INT4量化。然而,目前的INT4量化算法尚未实现对GPU中加速器内部重要运算(weight和KV全盘逐段)的低负载表现。我们发现,有关如何提高LMM服务效率的问题核心在于对GPU上进行操作时处理速度与通道数密切相关。因此,我们开发了QoQ量化算法,其中W4A8KV4指的是 4-bit weight、8-bit activation和4-bit KV cash;

2024-05-21 18:15:35 552

原创 经典多模态大模型

Q-former结构中,冻结的图像编码器和text tokens不能直接交互,因此想做生成时需要两步,第一步使用queries提取表征,第二步将表征通过自注意力层传递给text token(这里体现在q-former中的图像部分和文本部分使用的self-attention是共享的)因此,query被迫提取有关文本所有信息的视觉表征。在训练过程中,原LLM的参数被固定不训练,所以训练消耗的FLOPs不变(笔者个人理解,不变是不可能的,只是增加的不多)。如果直接冻结预训练好的参数,去做下游任务,效果不佳。

2024-05-11 15:25:51 810

原创 【大模型量化】OliVe:硬件友好的A4W4量化方案

基于Transformer的大型语言模型(LLM)[77]在过去几年中取得了巨大的成功。这种成功通常是通过越来越大的模型大小实现的:模型大小每两年增长240倍,显著超过硬件进展(每两年3.1倍)[24]。因此,LLM的推理变得具有挑战性和成本。例如,最近基于Transformer的LLMOPT-175B[90]具有1750亿参数,无法适应具有80GB内存的最新高端H100GPU。量化[6,7,21,22,72,74,79,93]是降低大型模型推理成本的最有效的硬件方法之一。

2024-01-20 15:19:08 1284 1

原创 【自动驾驶】PETR/PETRv2/StreamPETR论文分析

为了缓解在3D场景中的收敛困难,类似于Anchor DETR,我们首先在均匀分布的3D世界空间中初始化一组可学习的锚点从0到1。在我们的实践中,在三维空间中使用锚点可以保证收敛在采用DETR中的设置或生成锚点的同时在BEV空间中不能实现令人满意的检测性能。StreamPETR的总体架构。不同色调的矩形象征着来自不同帧,灰色矩形表示当前帧的初始化查询,虚线矩形对应于背景查询。petrv2的整体框图如下,与petr不同的地方在于加入了时序模块,分割头,以及改变了 3D Position Encoder。

2023-10-09 14:58:14 960 1

原创 【自动驾驶】PETR 环境安装与测试

该工程依赖MMCV, MMDetection, MMDetection3d,MMSegmentation。

2023-09-12 10:46:05 887

原创 【模型压缩】网络层与算子融合

由于深度学习网络层数深,结构复杂,生成的算子数量众多,带了巨大的计算资源在和时间的消耗。业界对于加速算子的计算展开了一定研究,比较经典的方法是将多个算子重新组合成一个新的算子,同时对生成的代码进行底层的性能优化,一个常规的例子:一个原始的Inception Block,首先将神经网络的conv、BN、Relu三个层融合为了一个层,简称CBR,另外TensorRT还可以对网络做水平组合,水平组合是指将输入为相同张量和执行相同操作的层融合一起,下面的Figure3即是将三个相连的CBR为一个大的的CBR。

2023-08-23 10:20:22 633

原创 【虚拟数字人】SadTalker简易部署教程

视频教程在这里:sadtalker数字人创建简易教程项目基于SadTalkers实现视频唇形合成的Wav2lip。通过以视频文件方式进行语音驱动生成唇形,设置面部区域可配置的增强方式进行合成唇形(人脸)区域画面增强,提高生成唇形的清晰度。使用DAIN 插帧的DL算法对生成视频进行补帧,补充帧间合成唇形的动作过渡,使合成的唇形更为流畅、真实以及自然。

2023-08-01 17:57:33 3052

原创 pytorch量化库使用(2)

Eager 模式和 FX 图形模式量化 API 都为用户提供了一个钩子,以指定以自定义方式量化的模块,并使用用户定义的逻辑进行观察和量化。在转换模块交换期间,它将使用 (3) 中类的from_observed函数将 (2) 中指定类型的每个模块转换为(3) 中指定的类型。在准备模块交换期间,它将使用 (2) 中类的from_float函数将 (1) 中指定类型的每个模块转换为 (2) 中指定的类型。模型的输入和输出都是浮点张量,但量化模型中的激活是量化的,因此我们需要运算符在浮点和量化张量之间进行转换。

2023-06-29 17:56:13 1441 3

原创 pytorch量化库使用(1)

量化简介量化是指以低于浮点精度的位宽执行计算和存储张量的技术。量化模型以降低的精度而不是全精度(浮点)值对张量执行部分或全部运算。这允许更紧凑的模型表示以及在许多硬件平台上使用高性能矢量化操作。与典型的 FP32 模型相比,PyTorch 支持 INT8 量化,从而使模型大小减少 4 倍,内存带宽要求减少 4 倍。与 FP32 计算相比,对 INT8 计算的硬件支持通常快 2 到 4 倍。量化主要是一种加速推理的技术,量化运算符仅支持前向传递。PyTorch 支持多种量化深度学习模型的方法。

2023-06-29 17:02:51 1364

原创 【BEVformer部署】tensorrt部署整体流程

Rotateand性能对比如下:grid 指定了 采样像素的位置(由input 空间维度归一化),因此,它的大多数值应该在[-10,10]范围内。例如,值x=-10,y=-10是输入的左上像素,值x=10,y=10是输入的右下像素。输入:Tensor shape:(5D case)输出:Tensor shape:(5D case)

2023-06-29 00:13:38 1664 9

原创 【CUDA编程】 动态体素化实现

动态体素化实现动态体素化DV克服了硬体素化HV的一些缺点。动态体素化DV保留了分组grouping阶段,相反,它没有采样固定的点数或体素容量,它保留了点和体素之间的完全映射。因此,体素数和每个体素中的点数都是动态的,依赖于具体的映射函数。这消除了对固定大小缓冲区的需求,也消除了对随机点和体素的丢弃过程。因为所有原始点和体素信息都被保留了,动态体素化DV没有引入信息丢失,并产生了确定的体素嵌入,使得检测结果更稳定。

2023-06-16 18:13:43 804

原创 【自动驾驶】CenterPoint复现笔记

从VoxelNet主体将原来的anchor head改为center head即可,重构完成。需要排查输入输出的shpe和数值;在报错行打印数据的维度以及数值

2023-05-24 10:20:54 784

原创 VoxelNeXt:用于3D检测和跟踪的纯稀疏体素网络

在本文中,我们提出了VoxelNeXt。这是一个简单、高效且无需后期处理的3D对象检测器。我们设计的核心是体素到对象方案,其根据体素特征直接预测3D对象一个强大的完全稀疏的卷积网络。关键的优点是我们的方法可以去掉锚代理,稀疏到密集转换、区域建议网络和其他复杂组件。由于我们的体素到对象方案避免了密集的特征图,所以网络可以高效推理。它只预测稀疏和必要的位置,如表1所示,与CenterPoint[57]相比。这种表示也使得VoxelNeXt可以很容易地扩展到使用离线跟踪器的3D跟踪。

2023-05-18 17:52:21 1507

原创 【融合感知】激光雷达和相机融合感知-BEVFusion

常见的前融合第一种如(a)中首先将雷达点,根据外参和相机内参投影到图像或图像提取的2D特征上去采样对应的视觉特征,然后拼接到点云上,后面就可以通过常用的点云3D检测算法进行处理,比如3DSSD[1], PointPillar[2], CenterPoint[3]等,目前PointPainting[4], PointAugment[5]就属于这类工作;第二种如图1(b)所示,先对雷达点云进行特征提取,然后将特征或者初始预测值按照外参和相机内参投影到图像或图像提取的2D特征上去采样对应特征。

2023-05-18 14:40:33 4134

原创 OpenPcdet中的点云体素化-VFE实现

过程也很简洁,直接使用torch.unique 输出体素坐标中非重复坐标,原始坐标在非重复坐标中的索引,以及非重复坐标的个数。dim: 值沿着哪个维度进行unique的处理,这个我试验后没有搞懂怎样的机理。如果处理的张量都是一维的,那么这个不需要理会。return_inverse: 是否返回原始tensor中的每个元素在这个无重复张量中的索引。该过程调用spconv库中的实现,主要过程为points_to_voxel。sorted:是否对返回的无重复张量按照数值进行排列,默认是生序排列的。

2023-05-17 15:19:03 908

原创 【CUDA入门笔记】GPU存储结构模型(2)

GPU存储结构模型1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容;主机代码可以把数据传输到设备上,也可以从设备中读取数据;2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Memory、Constant Memory以及Texture Memory;不同Memory的作用范围是不同的,和线程、block以及grid有关;线程可以读写Register、Shar

2022-12-31 19:16:23 569 4

Annual International Conference on Network and Informa

计算机网络信息国际会议论 Annual International Conference on Network and Informa

2022-12-14

kitti数据点云网络训练数据增强标签

自动驾驶-kitti数据点云网络训练数据增强标签 给出了点云道路平面的范围,可以在此范围对点云进行目标增强 也可通过点云与图像的变换矩阵对图像3d目标增强

2022-12-14

pytorch版本DCGAN生成二次元头像,包含源码训练测试代码,以及训练数据和训练权重 pytorch学习练手项目

pytorch学习练手项目 pytorch版本DCGAN生成二次元头像, 包含源码训练测试代码,以及训练数据和训练权重

2022-02-18

facedetection.zip

针对嵌入式平台的人脸检测

2021-04-06

MS-Celeb-1M_clean_list

MS-Celeb-1M 微软名人人脸库,净化版描述文件txt,针对已经对齐的人脸MS-Celeb-1M_clean_list

2018-09-19

手写体图片(png格式)+MNIST数据集

手写体图片(png格式)+MNIST数据集,编程时自动下载不下来,将MNIST数据集放程序目录即可

2018-09-14

空空如也

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

TA关注的人

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