嵌入式 GPU 平台部署

简介: 近些年来,随着计算能力的大幅提升,深度学习网络得以快速的发展,已经被广泛应用于语音识别、计算机视觉、自然语言处理等研究。为了提取更加有效的特征,深度学习网络的层数增长较快,并且具有计算量大、参数多的特点,需要高性能的GPU等设备为其提供算力的支持。另一方面,随着无人机、机器人、智能手机等嵌入式或移动设备的快速发展,在这些设备上部署深度学习网络的需求也变得更加强烈。然而这些实时应用平台上的资源(例如存储、计算以及电池功率等)都非常有限,因此在这些平台上加速与优化深度学习网络变成了学术界和工业界共同关注的研究课题。

1. GPU平台部署

      对于嵌入式 GPU 端,由于其支持 CUDA 与 TensorRT 加速计算库,可以通过 CUDA与 TensorRT 对模型进行大幅度的优化。CUDA 的加速主要使用到了上文提到的一些内存对齐排列、并行计算、矩阵乘法优化方法等策略对网络推理进行加速。而 TensorRT的加速原理是将现有的模型算法以及输入输出编译为 CUDA GPU 可以直接运行的机器码。这样在实际的网络推理过程中,GPU 便不需要像常用的深度学习框架那样加载模型,初始化后等待输出。大大的提升了在 GPU 端的运行速度并且优化了 GPU 的资源占用。

@(6@J7)Q$PHQILNWU6F]W30.png

     嵌入式 GPU 端部署流程图如上图所示。完整的嵌入式 GPU 平台应用部署的具体流程如下: (1)经过Pytorch训练过程可得到 Pytorch 训练输出的 Pth 格式模型文件,对该模型文件进行格式转换变为 ONNX 格式,之后可方便再转换为其他框架支持的模型格式。 (2)利用 ONNX 自带的优化工具可将模型转换后的一些冗余结构进行删除,再使用 TensorRT 的转换工具将训练的语义分割模型从 ONNX 格式序列化后编译为 TensorRT 推理时用到的引擎文件。

(3)模型转换完毕后,模型还需要数据的前处理与后处理才可正常完成语义分割任务,因此需将数据前处理算法与后处理算法结合模型文件的读取与推理部分代码打包后编译成动态库实现部署。其中前处理算法主要包括输入图像的尺寸调节、利用数据集均值与方差对输入图像数据进行标准化与归一化。同时 TensorRT 推理时要求输入数据必须是内存连续的,因此数据处理时还需要保证三个通道数据内存连续。模型推理后的数据后处理算法则主要是利用通道维度的最大值索引获得像素分类结果并转换为彩色图完成可视化。

2. 实验结果分析

    在实际室内场景部署后分割效果如下图 所示。整体来看分割效果是比较不错的,实际场景中的类别有墙面、地面、白板、投影幕布、桌子、椅子、电脑等,各类物品分割效果均是较为准确的。从第一排至第四排的分割结果以及融合效果可以看出,所提出的 LCSNet 网络在实际室内场景应用时整体分割效果边界清晰,类别准确无混淆。      

     同时通过分析分割可视化结果发现在数据集中没有对应类别样本的物体分割能力存在一些不足。如第一排中图像右侧的玻璃门,由于其半透明且训练数据中没有玻璃门因此被分割成了墙面类别。而第三排桌面下方的杂物、第四排图像右侧的机械臂与机器人、第五排图像中桌面的杂物等在训练数据集中均没有较为精细的类别标签,因此虽然可以将该物体图像区域进行正确分割,但类别都为其他类。在后续规划中,为得到类别更为精细的室内场景语义分割会针对实际场景扩增标注类别对场景类别进一步细化,对数据集进行增补。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
4月前
|
人工智能 机器人 Serverless
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
584 2
|
5月前
|
TensorFlow 算法框架/工具 异构计算
Windows部署TensorFlow后识别GPU失败,原因是啥?
Windows部署TensorFlow后识别GPU失败,原因是啥?
|
5月前
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
296 0
|
7月前
|
人工智能 并行计算 openCL
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
|
7月前
|
PyTorch Serverless 算法框架/工具
Serverless应用引擎中部署带有GPU支持的PyTorch镜像
Serverless应用引擎中部署带有GPU支持的PyTorch镜像
179 1
|
9月前
|
机器学习/深度学习 人工智能 弹性计算
|
5月前
|
机器学习/深度学习 异构计算 Python
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更是让JupyterNoteBook的脚本运行形式如虎添翼。 本次我们利用Bert-vits2的最终版Bert-vits2-v2.3和JupyterNoteBook的脚本来复刻生化危机6的人气角色艾达王(ada wong)。
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
|
9月前
|
机器学习/深度学习 人工智能 监控
GPU云服务器上部署Stable Diffusion玩
GPU云服务器上部署Stable Diffusion玩
461 1
|
8月前
|
弹性计算 人工智能 PyTorch
GPU实验室-在云上部署ChatGLM2-6B大模型
ChatGLB2-6B大模型:由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。截至2023年7月,在C-Eval中,排名靠前。Pytorch:一个开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如计算机视觉和自然语言处理。它主要由Meta Platforms的人工智能研究团队开发。著名的用途有:特斯拉自动驾驶,Uber最初发起而现属Linux基金会项目的概率编程软件Pyro,Lightning。
|
2月前
|
运维 监控 Serverless
一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务
本文介绍如何使用函数计算 GPU 实例闲置模式低成本、快速的部署 Google Gemma 模型服务。
164785 57

热门文章

最新文章