CPU是Arm A57的
GPU是128cuda核
一.小车跟踪的需求和设计方法
比如有一个小车跟踪的项目。需求是:小车识别出罪犯,然后去跟踪他。
方法:摄像头采集到人之后传入到开发板,内部做一下识别,然后控制小车去跟随。
在人工智能算法上:先目标检测,找到人脸然后目标识别,把人脸与库中人脸比对然后目标追踪,运动轨迹预测。防止重新检测和识别。
二.嵌入式设备上的运算流程
模型存在 Flash卡(类似硬盘,永久存储)上面。运行的时候把数据搬到内存里面,速度比flash快很多。现在的手机都是 Flash + 内存。AI模型师放到Flash硬盘里的,然后加载到内存,内存再加载到GPU。
三.算法的部署流程
3.1 剪枝、蒸馏、量化
要把模型在板子上快速运行。先把模型压缩,减少运算量。表现为:剪枝、蒸馏、量化
剪枝:去掉权重很低的神经元。蒸馏:找个比较大的模型去训练,蒸馏出比较关键的分布,再用小模型基于这个分布训练。量化:对模型运算的时候,很多都是浮点数,有的场合不需要这么这么长的精度。
3.2 TensorRT 推理加速
英伟达提出的,其它公司可能有自己的工具。推理加速可以提升到10-100秒。
3.3 cuda并发编程
基于硬件层的优化如果对上面的速度还不满意,可以使用cuda并发编程。
网上有岗位叫GPU工程师。怎么使GPU效率最高,读进来的时候有延迟,类似于调度算法,你看看怎么分配,使他们的时间衔接最好。个性化定制。CPU负责任务调度,数据都是存在flash上面的。
CPU构造:
运算的时候CPU将内存中的数据搬到cache中,cache的速度比内存块。再通过控制器把cache的数据放到ALU运算单元中去,cpu的运算单元比较少。
GPU构造
128 cuda核的GPU就是有128个ALU运算单元8行16列=128。每一行是一组,每组都有控制单元和Cache。这八组可以并行计算。
CPU是牛人,可以处理复杂逻辑。GPU是人多力量大,适合逻辑简单,工作内容很多的工作。
四.补充知识
4.1 NVIDIA Jetson Nano开发板
NVIDIA Jetson Nano开发板:NVIDIA Jetson Nano是一款基于ARM架构的高性能开发板,它具有强大的计算能力、多种外设接口和易于使用的编程环境,适用于各种人工智能和嵌入式系统开发。
前段时间英伟达发布了一款开发板 Jetson Nano, 价格只需$99,相当于3个树莓派或者一个RK3399, 性能却完爆它们。相对于树莓派,RK3399, NanoPi, OrangePi等开发板,Jetson Nano 有以下优点:强大的GPU用于机器学习。这是最重要的功能,其他开发板所不能比的!兼容树莓派周边设备。支持TensorFlow, Pytorch等众多机器学习框架。预装Ubuntu18, 内置Cuda, Opencv等,做机器视觉很方便。也可以作为ROS开发平台。便宜。和TX1, TX2相比,Nano便宜太多,学生也能负担得起。超小。核心板非常小,加上底板也只比树莓派大一圈而已。嵌入机器人更方便。CPU是A57(树莓派A53)内存是4G(树莓派1G),并且Nano是外置内存,说不定可以升级为8G, 16G?外置无线网卡M2接口,可接千兆无线网卡(树莓派的板载无线,那个PCB天线速度慢的一笔,怎么传4K视频?)4*USB3.0(树莓派4*USB2.0)总的来说,这款开发板物超所值,性价比非常高,树莓派能干的 Jetson Nano 也能干,树莓派不能干的事情,Jetson Nano 反而更擅长(GPU加速),还有什么理由不入坑。英伟达为了让更多开发者轻松入门 Jetson Nano, 开发Jetbot机器人,并在发布会上进行了演示。
4.2 ARM处理器架构
Advanced RISC Machine,广泛应用于嵌入式机器的处理器设计。ARM处理器具有高性能MPU和多种并行控制单元和通信接口,构成支持多种应用的强大架构,广泛应用于消费性电子产品、电脑外设、甚至导弹的弹载计算机等军用设施。
参考链接
https://www.bilibili.com/video/BV19m4y1978f/?spm_id_from=333.999.top_right_bar_window_history.content.click&vd_source=ebc47f36e62b223817b8e0edff181613