嵌入式 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 网络在实际室内场景应用时整体分割效果边界清晰,类别准确无混淆。      

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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
7月前
|
人工智能 机器人 Serverless
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
魔搭大模型一键部署到阿里云函数计算,GPU 闲置计费功能可大幅降低开销
771 2
|
7月前
|
TensorFlow 算法框架/工具 异构计算
Windows部署TensorFlow后识别GPU失败,原因是啥?
Windows部署TensorFlow后识别GPU失败,原因是啥?
|
人工智能 并行计算 openCL
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
|
PyTorch Serverless 算法框架/工具
Serverless应用引擎中部署带有GPU支持的PyTorch镜像
Serverless应用引擎中部署带有GPU支持的PyTorch镜像
230 1
|
7月前
|
并行计算 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...
723 0
|
7月前
|
机器学习/深度学习 异构计算 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算力平台)
|
4月前
|
人工智能 自动驾驶 vr&ar
探索GPU算力平台的创新应用:从游戏到自动驾驶的跨越
【8月更文第5天】本文探讨了GPU(图形处理器)在现代计算中的角色转变,从最初的图形渲染到如今成为人工智能和高性能计算的重要组成部分。我们将通过几个具体的案例研究,包括游戏渲染、虚拟现实(VR)以及自动驾驶系统,来展示GPU是如何推动这些领域的进步和发展。
92 1
|
4月前
|
机器学习/深度学习 人工智能 并行计算
GPU算力平台:数字化转型的核心驱动力
【8月更文第5天】随着人工智能(AI)、大数据分析以及高性能计算需求的不断增长,图形处理器(GPU)因其卓越的并行计算能力而成为加速这些领域的关键技术。GPU算力平台不仅能够显著提升计算效率,还能帮助企业更好地处理大规模数据集,支持复杂的机器学习模型训练,并促进实时数据分析。本文将探讨GPU算力平台在数字化转型中的核心作用,并通过示例代码展示其在实际应用中的优势。
290 1
|
1月前
|
并行计算 Linux PyTorch
在云上部署ChatGLM2-6B大模型(GPU版)
本教程指导您在配置了Alibaba Cloud Linux 3的GPU云服务器上,安装大模型运行环境(如Anaconda、Pytorch等),并部署大语言模型,最后通过Streamlit运行大模型对话网页Demo。教程包括创建资源、登录ECS实例、安装及校验CUDA、NVIDIA驱动和cuDNN等步骤。
|
4月前
|
机器学习/深度学习 并行计算 调度
构建高效GPU算力平台:挑战、策略与未来展望
【8月更文第5天】随着深度学习、高性能计算和大数据分析等领域的快速发展,GPU(图形处理器)因其强大的并行计算能力和浮点运算速度而成为首选的计算平台。然而,随着模型规模的增长和技术的进步,构建高效稳定的GPU算力平台面临着新的挑战。本文旨在探讨这些挑战、应对策略以及对未来发展的展望。
479 1